:root{--orange:#ff6900;--ink:#202b34;--muted:#737a80;--line:#e6e8e9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ff6900;outline-offset:5px}header{height:82px;position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:34px;padding:0 4%;border-bottom:1px solid #eee;background:#ffffffed;backdrop-filter:blur(18px)}.brand{justify-self:start}.logo{display:block;width:166px;height:43px;overflow:hidden;position:relative}.logo img{position:absolute;width:222px;max-width:none;left:-32px;top:-17px}header nav{display:flex;gap:26px;font-size:14px;font-weight:550;justify-self:center;white-space:nowrap}.button{display:inline-flex;gap:30px;align-items:center;justify-content:center;border:0;border-radius:50px;background:var(--orange);color:#fff;padding:19px 26px;font-size:16px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:#ff6900}.button span{font-size:22px}.button.small{padding:11px 20px;font-size:14px}.menu{display:none}.eyebrow{font-size:12px;letter-spacing:2.6px;font-weight:700;line-height:1.6}.hero{text-align:center;padding:76px 5% 35px;overflow:hidden;background:radial-gradient(ellipse at 50% 75%,#fff0e5,transparent 58%)}h1,h2,h3,p{margin:0}h1{font-size:clamp(60px,7.8vw,118px);line-height:1.02;letter-spacing:-.065em;font-weight:700;margin:25px 0}h1 span,.section-top h2 span,.contact h2 span{color:var(--orange)}.hero>p{font-size:21px;line-height:1.6;color:#657079}.actions{display:flex;justify-content:center;gap:32px;align-items:center;margin:30px 0 60px}.text-link{font-size:16px;font-weight:600}.text-link span{margin-left:15px}.hero-stage{position:relative;max-width:1020px;margin:auto;perspective:1800px}.orbit{position:absolute;width:110%;height:90%;left:-5%;top:13%;border:60px solid var(--orange);border-radius:50%;transform:rotate(-12deg);opacity:.95}.browser{position:relative;text-align:left;overflow:hidden;border:8px solid #fff;border-radius:20px;box-shadow:0 30px 75px #202b3420;transform:rotateX(5deg);transition:transform .7s}/* REMOVED: the browser mock is decorative artwork. The carousel's real controls - .template-arrow,
   the dots, and the focusable region's arrow keys - keep their own hover and focus feedback. */.browser-bar{display:flex;justify-content:space-between;background:#f5f5f5;padding:10px 16px;font-size:12px;color:#899095}.browser-bar>span:first-child{letter-spacing:3px;color:#b7bbc0}.sample{background:#dbe2d1;color:#213c2e;min-height:420px}.sample-nav{display:flex;justify-content:space-between;align-items:center;padding:24px 35px;font-size:12px}.sample-nav b{font-size:20px;letter-spacing:-1px}.sample-nav b span{font-size:9px;letter-spacing:2px;display:block}.sample button{border:0;background:#213c2e;color:#fff;padding:13px 20px;border-radius:3px}.sample-content{padding:35px 5% 45px;background:linear-gradient(100deg,#dbe2d1 20%,#dbe2d180),url('garden.jpg') center/cover;min-height:310px}.sample h2{font-family:Georgia,serif;font-size:62px;letter-spacing:-3px;line-height:1.05;margin:15px 0}.sample-content p{margin-bottom:20px}.sample-bottom{padding:18px 5%;font-size:10px;letter-spacing:2px}.floating-tag{position:absolute;right:-30px;bottom:32px;background:white;border:1px solid #eee;border-radius:16px;padding:20px;box-shadow:0 10px 40px #0001;font-size:14px}.floating-tag span{color:var(--orange);font-size:24px;margin-right:10px}.caption{font-size:10px;letter-spacing:2px;color:#8a8a8a;margin-top:32px}.promise{display:flex;justify-content:center;gap:8%;padding:27px;background:var(--ink);color:white;font-size:14px}.section{padding:110px max(6%,calc((100vw - 1200px)/2))}.section h2{font-size:clamp(40px,5.2vw,76px);letter-spacing:-.055em;line-height:1.07;margin:20px 0 25px}.muted{color:#9a9fa3}.intro>p{max-width:600px;color:#6c747a;font-size:20px;line-height:1.6}.feature-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;margin-top:55px}.feature{background:#f5f5f7;border-radius:27px;min-height:340px;padding:40px;position:relative;overflow:hidden}.feature h3{font-size:30px;letter-spacing:-1px;line-height:1.15;margin:25px 0 16px}.feature p{font-size:16px;line-height:1.6;color:#687078;max-width:360px}.number{font-size:11px;font-weight:650;letter-spacing:1.6px}.feature.dark{background:var(--ink);color:#fff;grid-row:span 1}.feature.orange{background:var(--orange);color:white}.feature.orange p{color:#fff}.swatch-art{margin-top:35px;display:flex;align-items:center;justify-content:space-between}.swatch-art>span{font-size:74px;font-weight:750;letter-spacing:-6px}.swatch-art div{display:flex}.swatch-art i{display:block;height:45px;width:45px;border-radius:50%;border:4px solid #f5f5f7;margin-left:-10px;background:#ff6900}.swatch-art i:nth-child(2){background:#202b34}.swatch-art i:nth-child(3){background:#b9c5ac}.swatch-art i:nth-child(4){background:#dedddd}.device-demo{position:absolute;right:30px;bottom:-85px;width:155px;height:265px;background:#fff;border:7px solid #586168;border-radius:28px;transform:rotate(-12deg);box-shadow:0 15px 30px #0003}.device-demo>div{color:var(--ink);padding:20px 13px;font-size:13px;font-weight:700}.device-demo span{display:block;font-size:28px;letter-spacing:-1px;margin-top:25px}.device-demo i{display:block;color:var(--orange);font-size:40px}.round-link{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fff;color:var(--orange);border-radius:50%;margin-top:22px;font-size:25px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.chips span{background:white;border:1px solid #e8e8e8;border-radius:30px;padding:10px 14px;font-size:13px}.play{background:#f5f5f7}.section-top{display:flex;justify-content:space-between;align-items:end;gap:35px}.section-top>p{max-width:350px;font-size:18px;line-height:1.65;color:#737a80;margin-bottom:30px}.play-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:center;margin-top:35px}.tabs{display:flex;flex-direction:column}.tabs button{display:flex;align-items:center;text-align:left;border:0;border-top:1px solid #ddd;background:transparent;padding:27px 5px;gap:17px;color:#8a9095}.tabs button:last-child{border-bottom:1px solid #ddd}.tabs button[aria-selected=true]{color:var(--ink)}.tabs b{font-size:12px;color:var(--orange)}.tabs span{font-size:17px;font-weight:650}.tabs small{display:block;font-size:14px;font-weight:400;margin-top:8px}.tabs i{margin-left:auto;font-style:normal;font-size:23px}.demo{min-height:440px;background:white;box-shadow:0 18px 45px #202b3409;border:1px solid #e9e9eb;border-radius:25px;padding:32px}.demo .eyebrow{color:#92979b;font-size:10px}.demo h3{font-size:27px;letter-spacing:-1px;margin:12px 0 10px}.demo p{font-size:14px;color:#737a80;line-height:1.6}.dates,.times{display:flex;gap:8px;margin:22px 0;flex-wrap:wrap}.dates button,.times button{border:1px solid #e3e5e6;border-radius:12px;background:white;padding:13px;font-size:14px}.dates button span{display:block;font-weight:700;font-size:20px;margin-top:5px}.dates button.active,.times button.active{background:var(--ink);color:white;border-color:var(--ink)}.demo .button{width:100%;margin-top:10px;font-size:14px;padding:14px}.demo-message{padding:35px 0}.demo-message strong{font-size:40px;color:var(--orange)}.gallery-image{width:100%;height:200px;object-fit:cover;border-radius:12px;margin-top:18px}.gallery-controls{display:flex;justify-content:space-between;align-items:center;margin-top:15px}.gallery-controls button,.tone{border:1px solid #ddd;background:white;border-radius:30px;padding:10px 18px}.style-preview{border-radius:14px;background:#202b34;color:white;padding:25px;margin:20px 0;transition:background .3s}.style-preview h4{font-size:37px;line-height:1.05;letter-spacing:-1.5px;margin:18px 0}.tones{display:flex;gap:9px}.tone{font-size:13px}.tone[aria-pressed=true]{outline:2px solid var(--orange)}.statement{text-align:center;background:var(--ink);color:#fff}.statement h2{font-size:clamp(48px,7vw,98px)}.statement em{font-style:normal;color:var(--orange)}.statement p{max-width:650px;margin:30px auto 0;color:#b7c0c7;font-size:20px;line-height:1.65}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin:60px 0 80px}.steps article>span{color:var(--orange);font-size:40px;font-weight:650;letter-spacing:-2px}.steps h3{font-size:23px;letter-spacing:-.7px;margin:20px 0 15px}.steps p{font-size:16px;line-height:1.7;color:#737a80}.faq{max-width:850px;margin:auto}.faq details{border-bottom:1px solid #ddd}.faq summary{list-style:none;cursor:pointer;padding:24px 0;font-weight:550;display:flex;justify-content:space-between;gap:20px;font-size:18px}.faq summary::-webkit-details-marker{display:none}.faq summary span{color:var(--orange)}.faq p{padding:0 35px 25px 0;line-height:1.7;color:#737a80}.contact{background:#f5f5f7;text-align:center}.contact>p{font-size:19px;color:#737a80;line-height:1.6}.contact form{max-width:700px;margin:45px auto 0;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:14px;font-weight:550;margin-bottom:20px}input,textarea{width:100%;border:1px solid #ddd;background:white;border-radius:12px;padding:17px;margin-top:9px;color:var(--ink);font-size:16px}textarea{min-height:125px;resize:vertical}.form-note{font-size:13px;color:#737a80;line-height:1.6;margin-top:16px}footer{display:flex;align-items:center;justify-content:space-between;padding:35px 6%;gap:20px;font-size:13px;color:#737a80}.footer-brand{font-size:30px;font-weight:750;letter-spacing:-2px;color:var(--ink)}dialog{border:0;border-radius:25px;padding:40px;max-width:620px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#202b3488;backdrop-filter:blur(8px)}dialog h2{font-size:35px;letter-spacing:-1.5px;margin:20px 0}dialog pre{white-space:pre-wrap;background:#f5f5f7;padding:20px;border-radius:14px;font:16px/1.7 inherit;max-height:35vh;overflow:auto}.close{float:right;border:0;background:transparent;font-size:30px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:var(--ink);color:white;padding:18px 25px;border-radius:15px;z-index:40;transition:.3s;max-width:90%;font-size:14px}.toast.show{transform:translate(-50%,0);opacity:1}.reveal,.js .reveal{opacity:1;transform:none}
@media(min-width:1500px){.hero{padding-top:95px}}@media(max-width:850px){header nav{gap:17px}.section{padding:75px 6%}.hero{padding-top:55px}.hero-stage{max-width:90%}.sample-nav>span{display:none}.sample h2{font-size:48px}.sample-content{min-height:270px}.floating-tag{right:-20px;bottom:20px;font-size:12px;padding:12px}.feature-grid{gap:15px}.feature{padding:28px}.feature h3{font-size:27px}.play-layout{gap:25px;grid-template-columns:1fr}.tabs{flex-direction:row;gap:12px}.tabs button{flex:1;align-items:start;border-bottom:1px solid #ddd;padding:20px 0}.tabs span{font-size:14px}.tabs i,.tabs b{display:none}.tabs small{font-size:12px}.steps{gap:25px}.section-top>p{max-width:280px}.promise{gap:25px;font-size:12px}}
@media(max-width:600px){header{height:70px;padding:0 5%;gap:12px}.logo{width:136px;height:35px}.logo img{width:181px;left:-26px;top:-14px}header .small{padding:9px 14px;font-size:12px;gap:10px}.menu{display:block;border:0;background:none;font-size:22px;color:var(--ink)}header nav{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:25px;box-shadow:0 15px 20px #0001;flex-direction:column}header nav.open{display:flex}.hero{padding:44px 5% 24px}.eyebrow{font-size:10px;letter-spacing:1.7px}h1{font-size:59px;margin:20px 0}.hero>p{font-size:17px}.actions{flex-direction:column;gap:22px;margin:25px 0 40px}.button{font-size:14px;padding:16px 23px}.hero-stage{max-width:100%}.browser{border-width:5px;border-radius:12px}.browser-bar{font-size:9px;padding:8px}.sample{min-height:0}.sample-nav{padding:15px 18px}.sample-nav b{font-size:15px}.sample-content{padding:20px;min-height:240px}.sample h2{font-size:42px;letter-spacing:-2px}.sample-content p{font-size:12px}.sample button{font-size:10px;padding:10px}.sample-bottom{font-size:7px}.floating-tag{display:none}.orbit{border-width:25px}.caption{font-size:8px;letter-spacing:1px;margin-top:20px}.promise{gap:13px;padding:20px 5%;text-align:center;font-size:11px;line-height:1.5}.promise span{flex:1}.section{padding:60px 6%}.section h2{font-size:43px}.intro>p{font-size:17px}.feature-grid{grid-template-columns:1fr;margin-top:35px}.feature{min-height:300px;border-radius:22px}.feature.dark{min-height:320px}.feature h3{font-size:30px}.section-top{display:block}.section-top>p{max-width:none;font-size:16px}.tabs{gap:10px}.tabs button span{font-size:13px;line-height:1.4}.tabs small{font-size:11px}.demo{padding:23px;min-height:420px}.dates{gap:5px}.dates button{padding:11px}.steps{grid-template-columns:1fr;margin:35px 0 45px;gap:30px}.steps h3{margin:12px 0}.steps article{border-bottom:1px solid #eee;padding-bottom:25px}.statement h2{font-size:53px}.statement p{font-size:17px}.form-row{grid-template-columns:1fr;gap:0}.contact>p{font-size:17px}.faq summary{font-size:16px}.faq p{font-size:15px}footer{flex-wrap:wrap;justify-content:center;text-align:center}footer .footer-brand{width:100%}dialog{padding:26px}dialog h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}

/* Homepage template carousel */
.template-carousel{max-width:1120px;padding:0 52px;perspective:none;outline-offset:8px}
.template-carousel .browser,.template-carousel:hover .browser{transform:none}
.template-carousel .orbit{pointer-events:none;top:5%;height:75%;width:100%;left:0;border-width:45px;opacity:.85}
.template-viewport{width:100%;min-width:0;overflow:hidden;overflow:clip;position:relative;aspect-ratio:1280 / 820;background:#f2f3f4;touch-action:pan-y}
.template-track{display:flex;height:100%;transition:transform .65s cubic-bezier(.22,.7,.2,1);will-change:transform}
.template-slide{position:relative;flex:0 0 100%;min-width:0;height:100%;overflow:hidden}
.template-slide iframe{display:block;border:0;width:var(--preview-width,1280px);height:var(--preview-height,820px);transform:scale(var(--preview-scale, .75));transform-origin:top left;pointer-events:none;background:white}
.template-arrow{position:absolute;top:calc((100% - 140px)/2);width:48px;height:48px;border:1px solid #e4e6e8;border-radius:50%;background:#fff;color:var(--ink);font-size:25px;box-shadow:0 6px 20px #202b3412;z-index:2;transition:background .2s,color .2s,transform .2s}
.template-arrow:hover{background:var(--ink);color:white;transform:scale(1.06)}
.template-prev{left:-7px}.template-next{right:-7px}
.template-details{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;margin:24px 4px 10px;font-size:14px}
.template-name{font-weight:650}.template-count{font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:1px;color:#737a80;margin-left:16px}
.template-open{font-size:12px;font-weight:600;border-bottom:1px solid #d4d6d8;padding:6px 0}
.template-navigation{position:relative;display:flex;justify-content:center;align-items:center;gap:16px;min-height:44px}
.template-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:0}
.template-dot{display:grid;place-items:center;width:28px;height:44px;padding:0;background:transparent;border:0;border-radius:8px}
.template-dot span{width:7px;height:7px;border-radius:10px;background:#c7ccd0;transition:width .25s,background .25s}
.template-dot[aria-current=true] span{width:22px;background:var(--orange)}
.template-dot:hover span{background:var(--ink)}
.template-rotation{width:44px;height:44px;border:1px solid #dcdfe1;border-radius:50%;background:#fff;color:var(--ink);font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:850px){.template-carousel{max-width:100%;padding:0 38px}.template-arrow{width:44px;height:44px}.template-prev{left:-10px}.template-next{right:-10px}}
@media(max-width:600px){.template-carousel{padding:0 18px}.template-carousel .browser{border-width:4px}.template-arrow{top:calc((100% - 150px)/2);width:40px;height:44px;font-size:21px}.template-prev{left:-16px}.template-next{right:-16px}.template-details{margin:17px 0 4px;gap:6px;align-items:flex-start}.template-details>span{display:flex;flex-direction:column;gap:5px}.template-name{font-size:12px}.template-count{margin:0;font-size:10px}.template-open{font-size:10px}.template-navigation{gap:3px}.template-dot{width:23px}.template-rotation{flex:0 0 36px;width:36px;height:40px}.template-carousel .orbit{border-width:20px}.template-carousel+.caption{margin-top:13px}}

/* Buffalo community section */
.buffalo-local{position:relative;isolation:isolate;overflow:hidden;min-height:490px;padding:65px max(6%,calc((100vw - 1200px)/2)) 105px;color:#fff;background:#202f37 url('buffalo-skyline.webp') center bottom / cover no-repeat}
.buffalo-local::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(32,47,55,.45),rgba(32,47,55,.12) 53%,transparent 76%)}
.buffalo-copy{max-width:650px;position:relative;z-index:1}
.buffalo-copy h2{font-size:clamp(36px,4.1vw,60px);font-weight:750;line-height:1.08;letter-spacing:-.045em;margin:0 0 22px}
.buffalo-copy p{max-width:570px;font-size:17px;line-height:1.75;color:#d3dce0;margin:0 0 26px;text-wrap:pretty}
.buffalo-button{border-radius:6px;padding:15px 22px;font-size:14px;gap:24px}
.buffalo-signature{position:absolute;right:5%;top:48px;color:#d6e0e5;opacity:.25;font-family:"Segoe Print","Bradley Hand",cursive;font-size:23px;font-style:italic;line-height:1.13;transform:rotate(-12deg);text-align:center}
.buffalo-signature>span{display:block;font-size:32px;margin-top:7px}
@media(min-width:1800px){.buffalo-local{background-size:100% auto;min-height:530px}}
@media(max-width:850px){.buffalo-local{padding:50px 6% 155px;background-position:62% bottom;min-height:500px}.buffalo-copy{max-width:560px}.buffalo-copy h2{font-size:42px}.buffalo-copy p{font-size:16px;max-width:490px}.buffalo-signature{display:none}.buffalo-local::before{background:linear-gradient(90deg,rgba(32,47,55,.7),rgba(32,47,55,.3) 70%,transparent)}}
@media(max-width:600px){.buffalo-local{padding:40px 6% 200px;min-height:560px;background-size:auto 310px;background-position:75% bottom}.buffalo-local::before{background:linear-gradient(180deg,#202f37 0%,#202f37 49%,rgba(32,47,55,.35) 72%,transparent)}.buffalo-copy h2{font-size:clamp(32px,8.5vw,42px);line-height:1.1;margin-bottom:18px}.buffalo-copy p{font-size:15px;line-height:1.7;margin-bottom:22px}.buffalo-button{padding:14px 19px}}

/* Packages and module showcase */
.package-showcase .section-top>p{max-width:390px}.package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:42px}.package-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e0e3e5;border-radius:22px;padding:32px;min-width:0}.package-number{font-size:11px;letter-spacing:1.6px;font-weight:750;color:#6b747c}.package-card h3{font-size:33px;line-height:1.1;letter-spacing:-1.2px;margin:22px 0 18px}.package-card>p{font-size:15px;line-height:1.65;color:#69737b}.package-card ul{list-style:none;padding:0;margin:25px 0 30px;font-size:14px;line-height:1.5}.package-card li{padding:10px 0 10px 21px;position:relative;border-bottom:1px solid #edf0f1}.package-card li:before{content:'✓';position:absolute;left:0;color:var(--orange);font-weight:bold}.package-choose{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:50px;background:var(--ink);color:white;padding:15px 18px;font-size:14px;font-weight:600}.package-choose:hover{background:#3a4852}.package-premium{background:var(--ink);color:#fff;border-color:var(--ink)}.package-premium .package-number{color:#ff6900}.package-premium>p{color:#c2cbd1}.package-premium li{border-color:#ffffff20}.package-premium .package-choose{background:var(--orange)}/* Secondary action, and it must read as one. It now sits BELOW the primary "I'm interested"
   button (source order changed in what-we-offer.html) with real separation, so the two no longer
   compete or look cramped. Underlined text + arrow, not a second button. */
.package-secondary{display:inline-flex;align-items:center;gap:8px;align-self:center;margin-top:18px;font-size:14px;font-weight:600;color:var(--muted);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.package-secondary:hover{color:var(--ink);text-decoration-color:var(--orange)}
.package-secondary span{transition:translate .2s var(--motion-ease,ease)}
.package-secondary:hover span{translate:0 3px}.package-note{font-size:13px;line-height:1.65;color:#727b82;margin:20px 0 0;max-width:850px}.module-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:90px 0 30px;scroll-margin-top:110px}.module-heading h3{font-size:42px;line-height:1.08;letter-spacing:-1.7px;margin-top:16px}.module-heading>p{max-width:390px;color:#737a80;font-size:15px;line-height:1.7}.module-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:36px;align-items:start}.module-tabs{display:flex;flex-direction:column}.module-tabs>button{display:flex;align-items:center;gap:15px;text-align:left;border:0;border-bottom:1px solid #dde1e4;background:transparent;color:#69757e;padding:17px 13px;min-height:77px;border-radius:8px}.module-tabs>button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 5px 16px #202b3408}.module-tabs>button>span:nth-child(2){flex:1;font-size:16px;font-weight:650}.module-tabs small{display:block;font-size:12px;font-weight:400;margin-top:5px}.module-icon{font-size:11px;font-weight:700;color:var(--orange)}.module-demo-wrap{min-width:0;position:sticky;top:110px}.module-demo{border:1px solid #e2e6e9;border-radius:23px;background:white;padding:30px;min-height:540px;box-shadow:0 18px 45px #202b3409}.module-demo-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:25px}.module-demo-top .eyebrow{font-size:9px;letter-spacing:1.7px;color:#68757f}.demo-badge{font-size:10px;border:1px solid #e0e4e7;border-radius:20px;padding:6px 9px;color:#6b757d;white-space:nowrap}.module-demo h4{font-size:29px;line-height:1.1;letter-spacing:-1px;margin:0 0 15px}.module-demo p{font-size:14px;line-height:1.65;color:#69757d}.module-demo .button{font-size:14px;width:100%;padding:14px 19px;margin-top:15px}.module-demo button:disabled{opacity:.45;cursor:default;transform:none}.module-demo .module-status:not(:empty){background:#edf4ef;color:#285037;border-radius:10px;padding:14px;margin-top:17px}.module-demo .module-explainer{font-size:12px;margin-top:18px}.module-add{border:1px solid #d7dde1;border-radius:30px;padding:13px 18px;background:#fff;color:var(--ink);margin-top:24px;font-size:13px;width:100%}.module-add[aria-pressed=true]{border-color:#80ac8d;background:#eff7f1;color:#285037}.module-selection{font-size:12px;line-height:1.6;display:flex;gap:16px;justify-content:space-between;align-items:center;padding:17px 6px;color:#68757f}.module-selection .text-link{font-size:12px;white-space:nowrap;color:var(--ink)}.billboard-preview{padding:23px;border-radius:15px;background:#f6f3ed}.billboard-preview>.eyebrow{font-size:9px}.billboard-preview h4{font-size:26px;margin:14px 0}.sample-map{height:115px;margin-top:19px;border:1px solid #d4ddd7;border-radius:10px;background:linear-gradient(27deg,transparent 43%,#fff 43%,#fff 49%,transparent 49%),linear-gradient(90deg,#dce7df 38%,#fafbf8 38%,#fafbf8 44%,#dce7df 44%);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#335a42;font-size:12px}.map-pin{display:grid;place-items:center;border-radius:50%;width:27px;height:27px;background:var(--orange);color:#fff}.module-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.module-actions button,.order-row button{border:1px solid #d2d9de;border-radius:8px;background:white;padding:10px 12px;font-size:12px;color:var(--ink)}.billboard-preview blockquote{font-size:14px;font-style:italic;margin:20px 0 0;line-height:1.6}.billboard-preview blockquote small{display:block;font-style:normal;color:#7d858b;font-size:10px;margin-top:5px}.sample-product{display:flex;gap:20px;align-items:center;margin:25px 0}.product-art{display:flex;justify-content:center;align-items:center;background:#e9dfcf;min-width:120px;height:145px;border-radius:12px;color:#6f604b;font-weight:800;letter-spacing:-1px;text-align:center;font-size:22px}.sample-product strong{font-size:16px}.quantity{display:flex;align-items:center;gap:15px;margin-top:17px}.quantity button{width:36px;height:36px;background:white;border:1px solid #ddd;border-radius:50%}.sample-total{display:flex;justify-content:space-between;gap:15px;padding:19px 0;border-top:1px solid #e2e5e8;margin-top:22px;font-size:14px}.sample-total strong{font-size:22px}.order-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:24px 0;border-bottom:1px solid #e4e7e9}.order-row strong{font-size:15px}.order-row small{display:block;font-size:12px;color:#737a80;margin-top:7px}.sample-quote{margin-top:23px}.module-demo textarea{font-size:14px}.sample-quote select,.brief-package select{width:100%;font:inherit;color:var(--ink);border:1px solid #d9dfe3;background:white;padding:14px;border-radius:10px;margin-top:9px}.sample-announcement{background:#fff0e5;border-radius:13px;padding:20px;margin:25px 0}.sample-announcement strong{display:block;margin:12px 0;font-size:18px}.sample-faq details{border-bottom:1px solid #e3e6e9;padding:16px 0}.sample-faq summary{font-size:14px;cursor:pointer;font-weight:600}.sample-faq p{margin-top:13px}.custom-feature-label{margin-top:25px}.managed{background:#fff}.managed-intro{max-width:740px}.managed-intro>p{font-size:19px;line-height:1.7;color:#737a80;max-width:650px}.managed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:50px}.managed-grid article{border-top:2px solid var(--orange);padding-top:22px}.managed-grid article>span{font-size:10px;letter-spacing:1.4px;color:#737a80}.managed-grid h3{font-size:23px;letter-spacing:-.7px;margin:17px 0}.managed-grid p{font-size:15px;line-height:1.75;color:#737a80}.brief-package{margin-top:20px}.selected-modules-field{background:#f9fafb;color:#68747e}.partners{padding:65px 6%;background:white;border-top:1px solid #e3e7e9}.partners-inner{max-width:1200px;margin:auto}.partners h2{font-size:38px;letter-spacing:-1.5px;margin:13px 0 25px}.partner-card{display:flex;align-items:center;gap:55px;background:#f5f5f7;border:1px solid #e9ecee;border-radius:20px;padding:35px 45px}.partner-logo{display:block;flex:0 0 240px;background:white;border-radius:13px;padding:25px}.partner-logo img{display:block;width:100%;height:125px;object-fit:contain}.partner-copy{max-width:620px}.partner-copy h3{font-size:25px;margin:0 0 12px}.partner-copy p{font-size:16px;line-height:1.7;color:#6c7780;margin-bottom:17px}.partner-copy a{font-size:14px;font-weight:650;text-decoration:underline;text-underline-offset:5px}.footer-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.footer-links a{font-size:12px}
@media(max-width:1050px){.package-card{padding:24px}.package-card h3{font-size:27px}.module-layout{gap:22px;grid-template-columns:.8fr 1.2fr}.module-demo{padding:23px}.partner-card{gap:30px}.partner-logo{flex-basis:200px}}
@media(max-width:750px){.package-grid{grid-template-columns:1fr}.package-card{padding:29px}.package-card h3{font-size:33px}.package-card h3 br{display:none}.package-card ul{margin:17px 0 23px}.module-heading{display:block;margin-top:65px}.module-heading>p{margin-top:20px;max-width:none}.module-layout{grid-template-columns:1fr}.module-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.module-tabs>button{padding:14px 9px;gap:9px;min-height:85px}.module-tabs>button>span:nth-child(2){font-size:13px}.module-tabs>button>span:last-child{display:none}.module-tabs small{font-size:10px}.module-demo-wrap{position:static}.module-demo{min-height:0}.module-heading h3{font-size:36px}.module-selection{flex-wrap:wrap}.managed-grid{grid-template-columns:1fr;gap:28px}.managed-intro>p{font-size:17px}.partner-card{flex-direction:column;align-items:flex-start;padding:26px;gap:24px}.partner-logo{flex:auto;width:220px}.partners{padding:50px 6%}.partners h2{font-size:33px}.partner-copy p{font-size:15px}.sample-product{gap:14px}.product-art{min-width:94px;height:120px}.order-row{gap:8px}.order-row button{padding:10px 8px}.module-demo h4{font-size:26px}.module-demo-top{flex-wrap:wrap}.billboard-preview{padding:18px}.module-demo .dates button{padding:9px}.module-demo .times button{padding:10px}.package-showcase .section-top>p{max-width:none}}

/* Separate pages */
header nav a[aria-current="page"]{color:var(--orange);text-decoration:underline;text-underline-offset:7px}
.package-showcase .section-top h1{font-size:clamp(40px,5.2vw,76px);letter-spacing:-.055em;line-height:1.07;margin:20px 0 25px}
.package-showcase .section-top h1 span,.page-intro h1 span{color:var(--orange)}
.page-intro{background:#f5f5f7;padding-bottom:75px}
.page-intro h1{font-size:clamp(44px,6vw,86px);letter-spacing:-.055em;line-height:1.05;margin:22px 0 28px}
.page-intro>p{max-width:720px;font-size:20px;line-height:1.7;color:#68747c}
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:40px 70px}
.about-story h2{font-size:clamp(36px,4vw,56px)}
.about-copy p{font-size:17px;line-height:1.8;color:#68747c;margin-bottom:20px}
.about-story>.managed-grid{grid-column:1/-1;margin-top:5px}
.page-cta{background:#f5f5f7;text-align:center}
.page-cta h2{font-size:clamp(36px,4vw,56px)}
.page-cta p{font-size:18px;color:#68747c;line-height:1.7;margin-bottom:26px}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}
.contact-layout h2{font-size:42px;margin-top:0}
.contact-details p{font-size:16px;line-height:1.75;color:#68747c}
.contact-detail{border-top:1px solid #e1e5e8;padding-top:24px;margin-top:24px}
.contact-detail h3{font-size:19px;margin-bottom:10px}
.contact-detail a{display:inline-block;margin-top:12px;text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}
#contact-message{margin:0;max-width:none;min-width:0;text-align:left}
#contact-message select{width:100%;font:inherit;color:var(--ink);border:1px solid #d9dfe3;background:white;padding:14px;border-radius:10px;margin-top:9px}
#contact-message textarea{min-height:180px}
#email-draft{margin-top:30px;padding:25px;background:#f5f5f7;border:1px solid #e1e5e8;border-radius:16px}
#email-draft pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px;line-height:1.7}
select:focus-visible{outline:3px solid #ff6900;outline-offset:4px}
@media(max-width:850px){.about-story,.contact-layout{grid-template-columns:minmax(0,1fr);gap:30px}.page-intro{padding-bottom:55px}.page-intro>p{font-size:17px}.contact-layout h2{font-size:36px}}

#contact-success{text-align:center;max-width:480px;max-height:calc(100vh - 32px);overflow:auto}#contact-success .close{position:absolute;right:18px;top:12px;float:none;width:44px;height:44px}#contact-success .success-check{display:grid;place-items:center;width:68px;height:68px;margin:12px auto 24px;border-radius:50%;background:#fff0e5;color:var(--orange);font-size:38px;font-weight:700}#contact-success p{font-size:16px;line-height:1.7;color:#68747c;margin:0 0 28px}#contact-success h2{margin:14px 0}#contact-success .eyebrow{font-size:10px}

.offer-hosting{display:grid;grid-template-columns:1.3fr .8fr;gap:65px;background:#202b34;color:#fff;align-items:center}
.hosting-intro>.eyebrow{color:#ff6900}
.offer-hosting h2{font-size:clamp(38px,4.7vw,66px);margin-top:20px}
.offer-hosting h2 span{color:#ff6900}
.hosting-intro>p{max-width:650px;color:#c4cdd3;font-size:18px;line-height:1.8;margin-bottom:28px}
.hosting-visual{border:1px solid #53616b;border-radius:24px;padding:32px;background:linear-gradient(145deg,#33424e,#1a252e);box-shadow:0 25px 60px #10182040;transform:rotate(-3deg)}
.hosting-visual-label{font-size:10px;font-weight:700;letter-spacing:2.4px;color:#bdcbd4;margin-bottom:25px}
.hosting-server{display:flex;align-items:center;gap:9px;border:1px solid #5d6b74;background:#25343f;border-radius:10px;padding:23px 18px;margin:12px 0;box-shadow:0 5px 0 #17232c}
.hosting-server span{width:55%;height:8px;border-radius:5px;background:repeating-linear-gradient(90deg,#101c25 0,#101c25 4px,transparent 4px,transparent 8px);margin-right:auto}
.hosting-server i{display:block;width:7px;height:7px;border-radius:50%;background:#879ba9}.hosting-server i:last-child{background:#ff6900;box-shadow:0 0 12px #ff690060}
.hosting-visual-caption{font-size:14px;line-height:1.8;color:#c4cdd3;margin-top:24px}
.hosting-benefits{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}
.hosting-benefits article{border-top:1px solid #53616b;padding-top:24px}
.hosting-benefits article>span{font-size:10px;letter-spacing:1.5px;color:#ff6900}
.hosting-benefits h3{font-size:23px;letter-spacing:-.5px;margin:16px 0 12px}
.hosting-benefits p{font-size:15px;line-height:1.8;color:#c4cdd3}
@media(max-width:850px){.offer-hosting{grid-template-columns:minmax(0,1fr);gap:40px}.hosting-visual{width:100%;max-width:420px;justify-self:center;transform:none}.hosting-benefits{grid-template-columns:minmax(0,1fr);gap:26px}.hosting-intro>p{font-size:16px}.hosting-benefits h3{font-size:22px}}

/* Homepage ongoing care */
.care-section{background:radial-gradient(ellipse at 100% 0,#ffead780,transparent 48%),#fcfaf7}
.care-section #managed-heading span{color:var(--orange)}
.care-section .managed-intro{max-width:850px}
.care-grid{gap:22px;margin-top:46px}
.care-grid .care-card{display:flex;flex-direction:column;min-width:0;border:1px solid #e9dfd5;border-radius:26px;padding:24px 30px 28px;overflow:hidden;background:#fff;box-shadow:0 14px 35px #202b3406;transition:transform .2s,box-shadow .2s}
/* REMOVED: the card body is not clickable. Its only link sits inside the collapsed
   <details class="care-more">, so nothing in the card is reachable until the disclosure is
   expanded - the <summary> is the one directly-clickable thing, and it keeps its own affordance.
   A card that lifts like a button and does nothing when clicked is a broken promise. */
.care-art{margin:-3px -14px 24px}
.care-art svg{display:block;width:100%;height:auto}
.care-grid .care-card>span{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#84644c}
.care-grid .care-card h3{font-size:32px;line-height:1.13;letter-spacing:-1px;margin:15px 0 18px}
.care-grid .care-card p{font-size:15px;line-height:1.8;color:#636e76;margin-bottom:27px}
.care-tag{display:flex;align-items:center;gap:10px;padding-top:20px;border-top:1px solid #e5e2dd;margin-top:auto;font-size:12px;font-weight:650;line-height:1.6}
.care-tag i{display:grid;place-items:center;flex:0 0 25px;height:25px;border-radius:50%;background:#fff0e5;color:#ff6900;font-size:15px;font-style:normal}
.care-grid .care-domain{background:#fffdf9}
.care-grid .care-hardware{background:linear-gradient(145deg,#2c3b47,#1c2730);border-color:#2c3b47;color:white}
.care-grid .care-hardware>span{color:#ff6900}.care-grid .care-hardware p{color:#c2cdd5}.care-hardware .care-tag{border-color:#4b5a66}.care-hardware .care-tag i{background:#ffffff12;color:#ff6900}
.care-grid .care-people{background:linear-gradient(150deg,#fff0e3,#ffe0c6);border-color:#f3d3b9}
.care-people .care-tag{border-color:#e7c9b0}.care-people .care-tag i{background:#fff9f3}
.care-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px}.care-bottom p{font-size:14px;line-height:1.7;color:#68747c}.care-bottom a{font-size:14px;white-space:nowrap}
@media(max-width:1050px) and (min-width:851px){.care-grid .care-card{padding:20px}.care-grid .care-card h3{font-size:27px}.care-tag{font-size:11px}}
@media(max-width:850px){.care-grid{gap:22px}.care-grid .care-card{padding:24px 28px 28px}.care-art{max-width:320px;width:100%;align-self:center;margin:0 0 20px}.care-bottom{flex-direction:column;align-items:flex-start;gap:14px}.care-bottom a{white-space:normal}}
@media(prefers-reduced-motion:reduce){.care-grid .care-card{transition:none}.care-grid .care-card:hover{transform:none}}

.page-intro.approach-roots{position:relative;isolation:isolate;overflow:hidden;background:#111e28;color:#fff;min-height:640px;display:flex;flex-direction:column;justify-content:center;padding-top:95px;padding-bottom:100px}
.approach-roots::before{content:"";position:absolute;inset:0;z-index:-2;background:url('buffalo-skyway.jpg') center center/cover no-repeat}
.approach-roots::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#101c26ed 0%,#101c26c9 42%,#101c2630 85%)}
.approach-roots>.eyebrow{color:#ffb27f;letter-spacing:3px}
.page-intro.approach-roots h1{font-size:clamp(48px,5.7vw,82px);max-width:780px;line-height:1.06;letter-spacing:-.055em;margin:23px 0 26px;text-shadow:0 2px 28px #08111b55}
.page-intro.approach-roots h1 span{color:#ff6900}
.page-intro.approach-roots>p{max-width:570px;color:#e1e6e9;font-size:19px;line-height:1.8;text-shadow:0 1px 12px #08111b}
.roots-location{display:flex;align-items:center;gap:10px;color:#e1c5af;font-size:11px;letter-spacing:1.8px;font-weight:650;margin-top:35px;text-transform:uppercase}
.roots-location svg{width:18px;height:18px;flex-shrink:0;color:#ff6900}
@media(max-width:850px){.page-intro.approach-roots{min-height:0;padding-top:65px;padding-bottom:325px}.approach-roots::before{top:auto;height:350px;background-position:75% center}.approach-roots::after{background:linear-gradient(180deg,#111e28 0%,#111e28 43%,#111e2800 76%)}.page-intro.approach-roots h1{font-size:clamp(44px,8.5vw,65px);max-width:620px}.page-intro.approach-roots>p{font-size:17px}.roots-location{font-size:10px;letter-spacing:1.3px;margin-top:25px}}

.approach-photo-credit{position:absolute;bottom:14px;right:20px;left:20px;text-align:right;font-size:10px;line-height:1.6;color:#fff}.approach-photo-credit>span{display:inline-block;background:#101c26dd;padding:5px 9px;border-radius:4px}.approach-photo-credit a{text-decoration:underline;text-underline-offset:2px}@media(max-width:850px){.approach-roots::before{background-position:55% center}.approach-photo-credit{font-size:9px;right:12px;left:12px}}

.approach-graphic{position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px;background:radial-gradient(ellipse at 90% 30%,#ffe3cb 0,transparent 57%),#fcf9f4;padding-top:95px;padding-bottom:100px}
.approach-copy{position:relative;z-index:1;min-width:0}
.approach-copy>.eyebrow{display:flex;align-items:center;gap:10px;color:#6a6058;font-size:11px;letter-spacing:2.5px}
.approach-dot{width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px #ff690013}
.approach-copy h1{font-size:clamp(48px,5.5vw,80px);line-height:1.04;letter-spacing:-.06em;margin:28px 0}
.approach-copy h1>span{color:#e85e00}
.approach-copy>p{font-size:18px;line-height:1.8;color:#626d76;max-width:620px}
.approach-values{display:flex;flex-wrap:wrap;gap:10px 18px;margin:25px 0 30px;color:#4d5962;font-size:12px;font-weight:650}.approach-values span::before{content:'✓';color:#e85e00;margin-right:7px}
.approach-copy>.text-link{font-size:14px;text-decoration:underline;text-underline-offset:6px}
.approach-art{position:relative;padding:20px 15px 28px;min-width:0}
.approach-orbit{position:absolute;inset:11% -7%;border:28px solid #ff9b50;border-radius:50%;transform:rotate(-23deg)}
.community-card{position:relative;background:#24333e;color:#fff;border:6px solid #fff;border-radius:23px;box-shadow:0 24px 55px #41312124;transform:rotate(3deg);overflow:hidden}
.community-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 15px;background:#30424e;color:#c1cdd5;font-size:10px}.community-bar>span:first-child{color:#ffab6f;font-size:9px;letter-spacing:2px}
.community-card svg{display:block;width:100%;height:auto}
.community-caption{padding:0 24px 30px;text-align:center;font-size:14px;color:#bac8d1;line-height:1.7}.community-caption strong{font-size:20px;color:white;letter-spacing:-.5px}
.buffalo-stamp{position:absolute;right:-5px;bottom:-1px;background:#ff6900;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;width:105px;height:105px;border:5px solid #fff5eb;border-radius:50%;transform:rotate(-12deg);box-shadow:0 10px 25px #74320020}.buffalo-stamp strong{font-size:35px;line-height:1.1;letter-spacing:-2px}.buffalo-stamp span{font-size:8px;font-weight:750;letter-spacing:1.1px;margin-top:5px}
@media(max-width:850px){.approach-graphic{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:65px;padding-bottom:65px}.approach-copy h1{font-size:clamp(46px,8vw,64px)}.approach-line{display:none}.approach-copy>p{font-size:17px}.approach-art{width:100%;max-width:440px;justify-self:center;padding:18px 12px 24px}.approach-orbit{inset:12% 0;border-width:22px}.community-bar{font-size:9px;padding:12px}.community-caption strong{font-size:18px}.buffalo-stamp{width:90px;height:90px;right:0}.buffalo-stamp strong{font-size:30px}}

@media(max-width:850px){.approach-art{padding-bottom:48px}.buffalo-stamp{bottom:-12px}.community-caption{padding-bottom:48px}}

.buffalo-stamp .buffalo-emoji{display:block;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:38px;line-height:1.1;letter-spacing:0;text-align:center}.buffalo-stamp span{text-align:center;white-space:nowrap}@media(max-width:850px){.approach-art{margin-inline:auto}.buffalo-stamp{left:50%;right:auto;transform:translateX(-50%)}.buffalo-stamp .buffalo-emoji{font-size:32px}}

@media(max-width:850px){.buffalo-stamp{width:96px;height:96px}.buffalo-stamp span{width:62px;white-space:normal;font-size:8px;line-height:1.2;letter-spacing:.6px;margin-top:4px}}

.buffalo-stamp .buffalo-icon{display:block;width:64px;height:43px;object-fit:contain;flex-shrink:0}@media(max-width:850px){.buffalo-stamp .buffalo-icon{width:60px;height:40px}.buffalo-stamp span{margin-top:2px}}

.eyebrow.page-eyebrow{display:flex;align-items:center;gap:10px}.page-eyebrow>.approach-dot{display:block;flex:0 0 9px}



#possibilities{--card-bg:#f5f5f7;--card-ink:#202b34;--card-muted:#59636b;--card-dark:#202b34;--card-accent:#ff6900;--card-accent-ink:#202b34;--card-white:#fff}
#possibilities[data-palette=slate]{--card-bg:#e9eef3;--card-ink:#182e42;--card-muted:#455c70;--card-dark:#10263a;--card-accent:#355d7b;--card-accent-ink:#fff;--card-white:#f6faff}
#possibilities[data-palette=sage]{--card-bg:#edf1e7;--card-ink:#29392b;--card-muted:#51614e;--card-dark:#293c30;--card-accent:#b9c5ac;--card-accent-ink:#253425;--card-white:#fbfcf7}
#possibilities[data-palette=stone]{--card-bg:#eeeae6;--card-ink:#39332f;--card-muted:#625a53;--card-dark:#443d37;--card-accent:#dedddd;--card-accent-ink:#39332f;--card-white:#fffdf9}
#possibilities .feature{background:var(--card-bg);color:var(--card-ink)}
#possibilities .feature p{color:var(--card-muted)}
#possibilities .feature.dark{background:var(--card-dark);color:var(--card-white)}
#possibilities .feature.orange{background:var(--card-accent);color:var(--card-accent-ink)}
#possibilities .feature.orange p{color:inherit}
#possibilities .device-demo{background:var(--card-white);border-color:var(--card-muted)}
#possibilities .device-demo>div{color:var(--card-ink)}
#possibilities .device-demo i{color:var(--card-dark)}
#possibilities .round-link,#possibilities .chips span{background:var(--card-white);color:var(--card-ink);border-color:var(--card-muted)}
#possibilities .palette-controls{gap:2px}
#possibilities .palette-controls button{display:block;flex:0 0 44px;width:44px;height:44px;padding:0;border:4px solid var(--card-bg);border-radius:50%;cursor:pointer;background:#ff6900}
#possibilities .palette-controls [data-palette=slate]{background:#202b34}
#possibilities .palette-controls [data-palette=sage]{background:#b9c5ac}
#possibilities .palette-controls [data-palette=stone]{background:#dedddd}
#possibilities .palette-controls [aria-pressed=true]{box-shadow:0 0 0 2px var(--card-ink)}
#possibilities .palette-controls button:focus-visible{outline:3px solid var(--card-ink);outline-offset:3px}
@media(max-width:600px){#possibilities .swatch-art{flex-wrap:wrap;gap:16px}#possibilities .swatch-art>span{font-size:64px}}

.buffalo-water{position:absolute;left:0;width:100%;pointer-events:none;z-index:-2}
@media(prefers-reduced-motion:reduce){.buffalo-water{display:none}}

/* Fine meteor trail, beneath the copy and independent of continuous water. */
.buffalo-shooting-star{position:absolute;left:0;top:0;width:2px;height:2px;z-index:0;pointer-events:none;opacity:0;transform-origin:0 50%;border-radius:50%;background:#f2f6f8;box-shadow:0 0 4px 1px #d6e8f066}
.buffalo-shooting-star::before{content:"";position:absolute;right:1px;top:.5px;width:76px;height:1px;background:linear-gradient(90deg,transparent,rgba(205,225,238,.15) 30%,rgba(234,244,250,.8));border-radius:100% 0 0 100%}
@media(max-width:600px){.buffalo-shooting-star::before{width:48px}}
@media(prefers-reduced-motion:reduce){.buffalo-shooting-star{display:none}}

/* Accessibility fixes: readable contrast, visible focus, and keyboard access. */
:root{--muted:#59636b}
.button{background:#ff6900;color:#fff}.button:hover{background:#ff6900}
h1 span,.section-top h2 span,.contact h2 span,.care-intro h2 span{color:#ff6900}
.muted{color:#626d75}
.caption,.template-count,footer,.form-note,.section-top>p,.contact>p,.partners p,.partner-card p,.care-intro p{color:#56616a}
.browser-bar{color:#56616a}.browser-bar>span:first-child{color:#56616a}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;background:#202b34;color:#fff;padding:12px 18px;transform:translateY(-180%);border-radius:6px}
.skip-link:focus{transform:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #202b34;outline-offset:4px;box-shadow:0 0 0 7px #fff}
input,textarea,select{border-color:#737a80!important;color:#202b34;background:#fff}
input::placeholder,textarea::placeholder{color:#59636b;opacity:1}
input[type=checkbox]{width:20px;height:20px;accent-color:#ff6900}
label{line-height:1.5}button,select{min-height:24px}
.footer-links{display:flex;flex-wrap:wrap;gap:12px 20px}.footer-links a{padding:5px 0}
.privacy-note a,.legal-content a,.contact-details a{text-decoration:underline;text-underline-offset:3px}
.legal-content{max-width:900px;margin:auto;padding:65px 24px;line-height:1.75}
.legal-content h1{font-size:clamp(36px,6vw,64px);letter-spacing:-.04em}
.legal-content h2{font-size:25px;line-height:1.3;margin:30px 0 12px;letter-spacing:-.02em}
.legal-content p,.legal-content ul{margin:12px 0}.draft-notice{padding:18px;border:2px solid #ff6900;background:#fff5eb;color:#202b34;border-radius:8px;margin:20px 0}
.motion-controls{padding:12px 6%;display:flex;justify-content:flex-end;background:#fff}
.motion-controls button{border:1px solid #59636b;border-radius:8px;background:#fff;color:#202b34;padding:9px 14px}
html.motion-paused{scroll-behavior:auto}
.motion-paused #possibilities>*,.motion-paused #possibilities .feature{opacity:1!important;transform:none!important;pointer-events:auto!important;will-change:auto!important}
.motion-paused .buffalo-water,.motion-paused .buffalo-shooting-star{display:none!important}
.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){#possibilities>*,#possibilities .feature{opacity:1!important;transform:none!important;pointer-events:auto!important}}
@media(max-width:600px){input,select,textarea{font-size:16px!important}.legal-content{padding:40px 20px}.footer-links{justify-content:center}.motion-controls{justify-content:center}}

address{font-style:normal;line-height:1.65}.footer-business{font-size:13px;color:#56616a}.footer-business a{text-decoration:underline}.promise-clarification{text-align:center;padding:14px 24px;margin:0;font-size:14px;line-height:1.6;background:#fff;color:#56616a}.promise-clarification a,.faq p a{text-decoration:underline;text-underline-offset:3px}

/* Readable secondary text and accent labels across page and module states. */
header nav a[aria-current=page],.steps article>span,.faq summary span,.module-icon{color:#ff6900}
.page-intro h1 span,.package-showcase .section-top h1 span,.page-intro.approach-roots h1 span,.managed-intro h2 span{color:#ff6900}
.managed-intro>p,.managed-grid>article:not(.care-card)>span,.managed-grid>article:not(.care-card)>p,.steps p,.faq p,.page-intro>p,.page-cta>p,.package-note,.module-heading>p,.module-demo p,.module-selection>span,.care-bottom p{color:#56616a}
.module-tabs>button{color:#56616a}
.package-card.featured .package-choose,.package-card.premium .package-choose{background:#ff6900;color:#fff}
.map-pin{background:#ff6900}

/* Review R1: no-script access and explicit, readable privacy choices. */
/* The privacy notice is a viewport banner, not footer content. It used to sit after </footer> in
   normal document flow, so a visitor had to scroll the whole page to find it - which is not what a
   cookie notice is for. Fixed to the bottom of the screen, matching .toast's existing positioning
   language (fixed, bottom, high z-index) rather than inventing a new one.
   z-index is 30: above page content, deliberately BELOW .toast (40) so a status message is never
   hidden behind it. The sticky header is 20, and this never overlaps it. */
.privacy-notice{position:fixed;left:50%;translate:-50% 0;bottom:18px;width:min(1000px,calc(100% - 32px));z-index:30;margin:0;padding:18px 22px;background:#fff;border:1px solid #737a80;border-radius:14px;box-shadow:0 18px 44px #202b3426;color:#202b34;font-size:15px;line-height:1.65}
/* Once dismissed the element is removed from the DOM by script.js, so there is no hidden overlay
   left sitting over the foot of the page intercepting clicks. */
.privacy-notice summary{cursor:pointer;font-weight:650;min-height:28px}.privacy-notice p{margin:12px 0}.privacy-notice a{text-decoration:underline}
.privacy-dismiss{display:none;border:1px solid #59636b;background:#fff;color:#202b34;border-radius:8px;padding:10px 18px}.js .privacy-dismiss{display:inline-block}
.form-consent{display:flex!important;align-items:flex-start;gap:12px;margin:18px 0!important;text-align:left;font-size:14px!important}.form-consent input{width:22px!important;height:22px!important;flex:0 0 22px;margin:3px 0 0!important}.form-consent a{text-decoration:underline}
html:not(.js) #brief{display:none}html:not(.js) .module-tabs{display:none}html:not(.js) .template-arrow,html:not(.js) .template-navigation{display:none}
.template-list{text-align:left;padding:20px;background:#fff}.template-list a{text-decoration:underline;display:inline-block;padding:7px}
.page-intro.approach-roots h1 span{color:#ff6900}.care-section .managed-intro>p{color:#56616a}.care-section .managed-intro h2 span{color:#ff6900}
.package-card .package-choose{border-color:#737a80}.package-card.featured .package-choose{background:#ff6900;color:#fff}.package-card.premium .package-choose{background:#ff6900;color:#fff}
.module-selection #module-selection-summary,.module-demo .module-explainer,.module-demo .sample-product p{color:#52606a}
.module-demo .dates button.active,.module-demo .times button.active,.module-add{background:#ff6900;color:#fff}.module-demo .dates button,.module-demo .times button{border-color:#737a80}
@media(max-width:980px){html:not(.js) header{height:auto;min-height:82px;grid-template-columns:1fr;justify-items:center;row-gap:10px;padding-top:14px;padding-bottom:14px}html:not(.js) header nav{display:flex!important;position:static!important;flex-wrap:wrap;justify-content:center;gap:14px;padding:12px 0!important;box-shadow:none;white-space:normal}html:not(.js) .menu{display:none!important}}
@media(max-width:600px){.privacy-notice{margin:20px 16px}.form-consent{font-size:14px!important}}
.package-premium .package-choose{background:#ff6900;color:#fff}
.module-demo .order-row small{color:#56616a}
.package-card .package-price{display:block;margin:2px 0 14px;font-size:20px;font-weight:650;letter-spacing:-.4px}
.package-card .package-price{color:#202b34}.package-card.package-premium .package-price{color:#fff}
.hosting-pricing{margin:24px 0;padding:20px 22px;border:1px solid #53616b;border-radius:16px;background:#ffffff0a}.hosting-pricing p{margin:0 0 10px;font-size:15px;line-height:1.7;color:#c4cdd3}.hosting-pricing p:last-child{margin-bottom:0}.hosting-pricing .hosting-free{font-size:17px;color:#fff}.hosting-pricing .hosting-free strong{color:#ff6900}.hosting-pricing .hosting-rates strong{color:#fff}.hosting-pricing .hosting-terms{font-size:13px;line-height:1.75}.hosting-pricing a{color:#fff;text-underline-offset:3px}

/* ---- global template search, in the header ------------------------------------------------- */
/* Visually hidden label. website-templates.css defines .catalog-sr for its own page, but the
   header search appears on all ten pages and only that one page loads that stylesheet - without
   this the label would render as stray text in the nav on the other nine. */
.catalog-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Lives inside <nav> so one element serves both layouts: a flex item beside the links on desktop,
   and a full-width row inside the panel the ☰ button opens on mobile. No JS, no duplicate DOM. */
.nav-search{position:relative;flex:0 1 clamp(180px,16vw,280px);min-width:180px}
.nav-search input{width:100%;border:1px solid var(--line);border-radius:50px;background:#fff;padding:9px 14px;font-size:13px;line-height:1.3;color:var(--ink);min-height:38px}
.nav-search input::placeholder{color:var(--muted);opacity:.7}
.nav-search input::-webkit-search-cancel-button{display:none}
/* Without JavaScript the box cannot search anything, so it is not shown at all. */
html:not(.js) .nav-search{display:none}

.nav-search-results{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,86vw);z-index:40;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 48px #202b3426;overflow:hidden}
.nav-search-hit{display:flex;gap:11px;align-items:flex-start;padding:10px 12px;border-bottom:1px solid #f0f1f2;text-align:left}
.nav-search-hit img{flex:none;width:64px;height:43px;object-fit:cover;border-radius:7px;background:#f0f1f1}
.nav-search-text{display:block;min-width:0}
.nav-search-text strong{display:block;font-size:13px;line-height:1.35;color:var(--ink)}
.nav-search-industry{display:block;font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--orange);margin:2px 0}
.nav-search-desc{display:block;font-size:11px;line-height:1.45;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-search-hit[aria-selected=true],.nav-search-hit:hover,.nav-search-hit:focus-visible{background:#fff6ee;outline:none}
.nav-search-none{margin:0;padding:13px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid #f0f1f2}
.nav-search-all{display:block;padding:12px 14px;font-size:12px;font-weight:650;color:var(--ink);background:#fafafa;text-align:left}
.nav-search-all[aria-selected=true],.nav-search-all:hover,.nav-search-all:focus-visible{background:#fff1e3;color:#93400e;outline:none}

@media(max-width:600px){
 /* Inside the opened menu panel it is a full-width row, and the results list sits inline rather
    than floating, so it can never overflow the screen edge. */

 .nav-search-results{position:static;width:auto;margin-top:8px;box-shadow:none;max-height:58vh;overflow-y:auto}
}

/* ---- inline form validation ------------------------------------------------------------------ */
/* Custom messages rather than the browser's native popups, which appear one at a time, vanish on
   the next interaction and cannot be styled. Empty by default so it takes no space until needed. */
.field-error{display:block;font-size:13px;line-height:1.5;color:#963400;font-weight:600;margin-top:7px}
.field-error:empty{display:none}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#963400;background:#fff9f5}

/* ---- R21 header architecture -------------------------------------------------------------------
   The search box used to live INSIDE <nav>, competing with the four labels for width, which is why
   "What We Offer" and "Website Templates" broke onto two lines between roughly 600px and 1100px.
   It is now a sibling in .header-right, and the header is a minmax/auto/minmax grid so the nav is centred
   against the page rather than merely following the logo. Labels never wrap; below 980px the
   existing mobile panel takes over instead. */
.header-right{display:flex;align-items:center;gap:14px;justify-self:end;justify-content:flex-end;min-width:0}
.header-right .button.small{flex:none}
header nav a{white-space:nowrap}
@media(max-width:1180px) and (min-width:981px){
 html.js header{grid-template-columns:auto auto 1fr;gap:18px}
 html.js header nav{justify-self:start;gap:18px}
 html.js .nav-search{flex:0 1 clamp(150px,14vw,210px);min-width:150px}
 html.js header .small{padding:9px 15px;font-size:13px;gap:8px}
}
@media(max-width:980px){
 html.js header{grid-template-columns:auto 1fr auto;gap:12px}
 header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:22px 5%;box-shadow:0 15px 20px #0001;flex-direction:column;gap:18px;white-space:normal;justify-self:stretch}
 header nav.open{display:flex}
 .menu{display:block;border:0;background:none;font-size:22px;color:var(--ink)}
 .nav-search{flex:0 1 190px}
}
@media(max-width:600px){
 .nav-search{flex:0 1 132px;order:0}
 .nav-search input{padding:8px 12px;font-size:12px;min-height:36px}
 .nav-search-results{position:absolute;top:calc(100% + 8px);width:min(320px,82vw);right:0;margin-top:0;max-height:62vh;overflow-y:auto}
 .header-right{gap:8px}
}
@media(max-width:420px){
 .logo{width:112px;height:29px}
 .logo img{width:150px;left:-21px;top:-12px}
 .nav-search{flex:0 1 92px}
 header .small{padding:8px 11px;font-size:11px;gap:6px}
}
/* ---- EVERY SCREEN card: readable paragraph on the one dark card --------------------------------
   #possibilities .feature p paints card paragraphs in --card-muted, which is a LIGHT-card grey
   (#59636b default, #455c70 slate, #51614e sage, #625a53 stone). Against --card-dark that lands
   around 2:1 - well under the 4.5:1 floor, and worse in slate. The dark card's paragraph follows
   the card's own text token instead, which is light in every palette. */
.feature.dark p{color:#fff;max-width:calc(100% - 205px)}
#possibilities .feature.dark p{color:var(--card-white)}

/* The phone mock is position:absolute (right:30px, 155px wide, rotated -12deg, so its left edge
   swings about 26px further in). It does not displace text - it sits on top of it. The paragraph is
   therefore held clear of its footprint, as a calc so the reserve scales with the card instead of
   assuming one card width. Below 600px the card is far narrower, which would leave roughly 127px of
   usable text width, so the mock shrinks there rather than the type. */
@media(max-width:850px){
 .device-demo{width:132px;height:225px;bottom:-62px;right:20px;border-width:6px;border-radius:24px}
 .device-demo>div{padding:16px 11px;font-size:12px}
 .device-demo span{font-size:23px;margin-top:19px}
 .device-demo i{font-size:34px}
 .feature.dark p{max-width:calc(100% - 152px)}
}
@media(max-width:600px){
 .device-demo{width:118px;height:200px;bottom:-55px;right:16px;border-width:5px;border-radius:22px}
 .device-demo>div{padding:14px 10px;font-size:11px}
 .device-demo span{font-size:20px;margin-top:16px}
 .device-demo i{font-size:30px}
 .feature.dark p{max-width:calc(100% - 138px)}
}
/* Accessible validation feedback. */
.field-error{display:block;color:#a12619;font-size:14px;line-height:1.5;margin-top:5px}
[aria-invalid=true]{border-color:#a12619}

/* Module choices are navigation links with a full-width button layout. */
.module-demo a.module-add{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:48px;margin-top:24px;padding:14px 20px;border:0;border-radius:30px;background:var(--orange);color:#fff!important;font-size:14px;font-weight:700;line-height:1.4;text-align:center;text-decoration:none}
.module-demo a.module-add:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
