:root{--fl-green:#44B649;--fl-green-bright:#5FCF65;--fl-green-dim:#36963a;--fl-blue:#204291;--bg:#06080c;--bg-elevated:#0e1118;--bg-card:#141a24;--bg-card-hover:#1a2230;--text:#f4f6f8;--text-muted:rgba(244,246,248,0.62);--text-quiet:rgba(244,246,248,0.55);--border:rgba(68,182,73,0.22);--border-strong:rgba(68,182,73,0.45);--border-quiet:rgba(255,255,255,0.08);--radius:14px;--radius-lg:22px;--header-h:76px;--content-max:1200px;--content-narrow:880px;--ease-out:cubic-bezier(0.22,1,0.36,1);--shadow-card:0 24px 48px rgba(0,0,0,0.35);--shadow-glow:0 0 0 1px rgba(68,182,73,0.4),0 18px 40px rgba(68,182,73,0.18)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);overflow-x:clip}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.001ms !important;transition-duration:0.001ms !important}.reveal{opacity:1 !important;transform:none !important}}body{overflow-x:clip;max-width:100vw;font-family:"Raleway",Tahoma,sans-serif;font-weight:500;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--fl-green);color:#001a02}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:var(--scroll-progress,0%);background:linear-gradient(90deg,var(--fl-green-dim),var(--fl-green) 50%,var(--fl-green-bright));z-index:9999;pointer-events:none;box-shadow:0 0 14px rgba(68,182,73,0.6),0 0 4px rgba(68,182,73,0.9);transition:width 0.08s linear}@media (prefers-reduced-motion:reduce){.scroll-progress{display:none}}.noise{pointer-events:none;position:fixed;inset:0;z-index:9000;opacity:0.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.divider-strip{position:relative;height:1px;background:linear-gradient(90deg,transparent 0%,var(--fl-green) 50%,transparent 100%);opacity:0.4;max-width:720px;margin:0 auto}.divider-strip-thick{position:relative;height:80px;background:radial-gradient(ellipse 50% 100% at 50% 50%,rgba(68,182,73,0.18),transparent 60%)}.stat-band{position:relative;padding:clamp(56px,9vw,96px) clamp(20px,4vw,48px);background:linear-gradient(180deg,var(--bg-elevated) 0%,var(--bg) 100%);border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet);overflow:hidden}.stat-band::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(720px,80%);height:1px;background:linear-gradient(90deg,transparent,var(--fl-green),transparent);opacity:0.6}.stat-band-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,5vw,56px);max-width:var(--content-max);margin:0 auto;text-align:center;position:relative}@media (min-width:800px){.stat-band-grid{grid-template-columns:repeat(4,1fr)}}.stat-big{position:relative}.stat-big strong{display:block;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:900;line-height:1;letter-spacing:-0.04em;color:var(--fl-green);margin-bottom:12px;text-shadow:0 0 40px rgba(68,182,73,0.18)}.stat-big span{display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-muted);line-height:1.4}@media (min-width:800px){.stat-big+.stat-big::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:56px;background:linear-gradient(to bottom,transparent,var(--border-strong),transparent)}}.audience-tags{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px}.audience-tags span{display:inline-flex;align-items:center;gap:6px;font-size:0.74rem;font-weight:700;letter-spacing:0.06em;color:var(--text-muted);padding:6px 12px;background:rgba(68,182,73,0.08);border:1px solid rgba(68,182,73,0.18);border-radius:999px}.audience-tags span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fl-green);flex-shrink:0}.photo-placeholder{position:relative;border-radius:var(--radius-lg);border:1px solid var(--border);background:radial-gradient(ellipse at 30% 30%,rgba(68,182,73,0.18),transparent 60%),linear-gradient(160deg,#0e1a13,#06080c);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:380px;text-align:center;padding:40px;overflow:hidden}.photo-placeholder::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 30 L30 0 L60 30 L30 60 Z' fill='none' stroke='rgba(68,182,73,0.06)' stroke-width='0.5'/%3E%3C/svg%3E");opacity:0.6;pointer-events:none}.photo-placeholder svg{position:relative;z-index:1;width:56px;height:56px;color:var(--fl-green);opacity:0.5}.photo-placeholder-label{position:relative;z-index:1;font-size:0.74rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-muted)}.photo-placeholder-sub{position:relative;z-index:1;font-size:0.82rem;font-weight:600;color:var(--text-quiet);max-width:24ch;line-height:1.5}.tech-grid{display:grid;gap:18px;max-width:var(--content-max);margin:0 auto}@media (min-width:700px){.tech-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.tech-grid{grid-template-columns:repeat(3,1fr)}}.tech-card{position:relative;padding:28px;background:linear-gradient(160deg,var(--bg-card),var(--bg-card-hover));border:1px solid var(--border-quiet);border-radius:var(--radius);overflow:hidden;transition:border-color 0.3s,transform 0.3s var(--ease-out)}.tech-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--fl-green);opacity:0;transition:opacity 0.3s}.tech-card:hover{border-color:var(--border-strong);transform:translateY(-3px)}.tech-card:hover::before{opacity:1}.tech-card .tech-tag{display:inline-block;font-size:0.66rem;font-weight:800;letter-spacing:0.2em;text-transform:uppercase;color:var(--fl-green);background:rgba(68,182,73,0.1);padding:4px 10px;border-radius:999px;margin-bottom:14px}.tech-card h3{font-size:1.08rem;font-weight:900;margin-bottom:10px;letter-spacing:-0.01em}.tech-card p{font-size:0.92rem;color:var(--text-muted);line-height:1.65}.tech-card strong{color:var(--text)}.faq-wrap{max-width:880px;margin:0 auto}.faq-item{border:1px solid var(--border-quiet);border-radius:var(--radius);padding:0;margin-bottom:12px;background:var(--bg-card);overflow:hidden;transition:border-color 0.25s,background 0.25s}.faq-item[open]{border-color:var(--border-strong);background:var(--bg-card-hover)}.faq-item summary{cursor:pointer;list-style:none;display:block;position:relative;padding:22px 56px 22px 24px;font-size:1rem;font-weight:800;letter-spacing:-0.005em;color:var(--text);user-select:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"";position:absolute;right:24px;top:50%;width:12px;height:12px;border-right:2px solid var(--fl-green);border-bottom:2px solid var(--fl-green);transform:translate(-3px,-50%) rotate(45deg);transform-origin:top left;transition:transform 0.25s var(--ease-out)}.faq-item[open] summary::after{transform:translate(-3px,-50%) rotate(225deg)}.faq-item summary:hover{color:var(--fl-green)}.faq-item .faq-body{padding:0 24px 22px;color:var(--text-muted);font-size:0.95rem;line-height:1.7}.faq-item .faq-body p+p{margin-top:12px}.faq-item .faq-body strong{color:var(--text)}.process-section{position:relative;padding:clamp(80px,12vw,132px) clamp(20px,4vw,48px);background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(68,182,73,0.08),transparent 70%),linear-gradient(180deg,var(--bg) 0%,var(--bg-elevated) 100%)}.process-section.bright,.section.bright{color:#1a1f29;background:radial-gradient(ellipse 65% 55% at 50% 0%,rgba(68,182,73,0.12),transparent 70%),linear-gradient(180deg,#f4efe4 0%,#ede7d8 100%);border-top:1px solid rgba(68,182,73,0.18);border-bottom:1px solid rgba(68,182,73,0.18)}.process-section.bright .section-title,.section.bright .section-title{color:#0a1010}.process-section.bright .section-title .accent,.section.bright .section-title .accent{color:#2d8030}.process-section.bright .section-desc,.section.bright .section-desc{color:rgba(10,16,16,0.62)}.process-section.bright .section-label,.section.bright .section-label{color:#2d8030;background:rgba(68,182,73,0.1);border-color:rgba(68,182,73,0.32)}.process-section.bright .process-timeline::before{background:linear-gradient(to bottom,transparent 0%,var(--fl-green) 8%,var(--fl-green) 92%,transparent 100%);opacity:0.55}.process-section.bright .process-step-num{background:#ffffff;border-color:var(--fl-green);color:#2d8030;box-shadow:0 0 0 6px #f4efe4,0 0 28px rgba(68,182,73,0.22)}.process-section.bright .process-step-content h3{color:#06080c}.process-section.bright .process-step-content p{color:rgba(10,16,16,0.7)}.process-section.bright .process-step-tag{color:#2d8030}.process-timeline{position:relative;max-width:880px;margin:0 auto;padding:16px 0}.process-timeline::before{content:"";position:absolute;left:31px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent 0%,var(--fl-green) 8%,var(--fl-green) 92%,transparent 100%);opacity:0.45}@media (min-width:760px){.process-timeline::before{left:50%;transform:translateX(-1.5px)}}.process-step{position:relative;display:grid;grid-template-columns:64px 1fr;gap:24px;margin-bottom:clamp(40px,6vw,64px);align-items:start}.process-step:last-child{margin-bottom:0}@media (min-width:760px){.process-step{grid-template-columns:1fr 64px 1fr;gap:32px}.process-step:nth-child(odd) .process-step-content{grid-column:1;text-align:right;padding-right:8px}.process-step:nth-child(odd) .process-step-num{grid-column:2}.process-step:nth-child(even) .process-step-content{grid-column:3;text-align:left;padding-left:8px}.process-step:nth-child(even) .process-step-num{grid-column:2}}.process-step-num{position:relative;z-index:2;width:64px;height:64px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--fl-green);box-shadow:0 0 0 6px var(--bg),0 0 32px rgba(68,182,73,0.28);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:900;color:var(--fl-green);letter-spacing:-0.03em;align-self:start;margin-top:4px}.process-step-content{padding-top:10px}.process-step-tag{display:inline-block;font-size:0.66rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--fl-green);margin-bottom:10px}.process-step-content h3{font-size:clamp(1.1rem,2.2vw,1.45rem);font-weight:900;line-height:1.2;letter-spacing:-0.015em;margin-bottom:10px}.process-step-content p{font-size:0.96rem;color:var(--text-muted);line-height:1.7}.client-band{position:relative;padding:clamp(72px,10vw,120px) clamp(20px,4vw,48px);background:linear-gradient(180deg,var(--bg) 0%,var(--bg-elevated) 100%);border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet)}.client-band-head{text-align:center;max-width:760px;margin:0 auto clamp(40px,5vw,56px)}.client-marquee{position:relative;overflow:hidden;max-width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 6%,#000 94%,transparent 100%)}.client-marquee-track{display:flex;width:max-content;gap:14px;animation:client-marquee-scroll 56s linear infinite}.client-marquee:hover .client-marquee-track{animation-play-state:paused}@keyframes client-marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.client-marquee-track{animation:none}}.client-tile{flex-shrink:0;width:clamp(240px,24vw,280px);min-height:140px;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:28px 24px;border:1px solid var(--border-quiet);border-radius:var(--radius);background:rgba(20,26,36,0.55);transition:border-color 0.3s,transform 0.3s var(--ease-out),background 0.3s;text-align:center}.client-tile:hover{border-color:var(--border-strong);transform:translateY(-3px);background:var(--bg-card-hover);box-shadow:0 16px 40px rgba(0,0,0,0.32)}.client-tile-name{font-size:1.15rem;font-weight:900;letter-spacing:-0.01em;line-height:1.25;color:var(--text)}.client-tile-meta{font-size:0.74rem;font-weight:600;color:var(--text-muted);letter-spacing:0.04em}.client-tile-logo{display:block;height:36px;width:auto;margin:4px auto;filter:grayscale(1) brightness(1.4);opacity:0.85;transition:filter 0.3s,opacity 0.3s}.client-tile:hover .client-tile-logo{filter:none;opacity:1}.feature-spread{position:relative;padding:clamp(120px,18vw,220px) clamp(20px,4vw,48px);overflow:hidden;isolation:isolate}.feature-spread-bg{position:absolute;inset:0;z-index:0;background-image:url("gallery-putting-lake.jpg");background-size:cover;background-position:center}.feature-spread-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(0.85)}.feature-spread-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(6,8,12,0.92) 0%,rgba(6,8,12,0.65) 45%,rgba(6,8,12,0.45) 100%),linear-gradient(180deg,rgba(6,8,12,0.5) 0%,transparent 30%,rgba(6,8,12,0.55) 100%)}.feature-spread-inner{position:relative;max-width:720px;margin:0}.feature-spread-tag{display:inline-block;font-size:0.66rem;font-weight:800;letter-spacing:0.24em;text-transform:uppercase;color:var(--fl-green);margin-bottom:18px;padding:6px 14px;border:1px solid var(--border-strong);border-radius:999px;background:rgba(68,182,73,0.08);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.feature-spread h2{font-size:clamp(1.8rem,4.4vw,3.2rem);font-weight:900;line-height:1.05;letter-spacing:-0.025em;margin-bottom:22px;text-shadow:0 4px 30px rgba(0,0,0,0.55)}.feature-spread h2 .accent{color:var(--fl-green)}.feature-spread p{font-size:clamp(1rem,1.6vw,1.18rem);color:rgba(244,246,248,0.92);line-height:1.65;max-width:56ch;text-shadow:0 2px 20px rgba(0,0,0,0.5);margin-bottom:28px}.cta-modal{position:fixed;inset:0;z-index:5500;display:none;align-items:flex-start;justify-content:center;padding:clamp(16px,4vh,56px) clamp(12px,4vw,32px);overflow-y:auto;opacity:0;transition:opacity 0.25s var(--ease-out)}.cta-modal.is-open{display:flex;opacity:1}.cta-modal-backdrop{position:fixed;inset:0;background:rgba(6,8,12,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:0;cursor:pointer}.cta-modal-panel{position:relative;z-index:1;width:100%;max-width:560px;margin:auto 0;background:linear-gradient(160deg,var(--bg-card) 0%,var(--bg-elevated) 100%);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:clamp(28px,4vw,44px);box-shadow:0 32px 80px rgba(0,0,0,0.6),0 0 0 1px rgba(68,182,73,0.18),0 0 60px rgba(68,182,73,0.12);transform:translateY(20px) scale(0.97);transition:transform 0.35s var(--ease-out)}.cta-modal.is-open .cta-modal-panel{transform:translateY(0) scale(1)}.cta-modal-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:rgba(6,8,12,0.55);border:1px solid var(--border-quiet);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:1.4rem;font-weight:900;line-height:1;transition:color 0.2s,border-color 0.2s,background 0.2s}.cta-modal-close:hover{color:var(--fl-green);border-color:var(--fl-green);background:rgba(68,182,73,0.08)}.cta-modal-head{text-align:center;margin-bottom:24px}.cta-modal-head .section-label{margin-bottom:14px}.cta-modal-head h3{font-size:clamp(1.5rem,3vw,1.9rem);font-weight:900;line-height:1.15;letter-spacing:-0.02em;margin-bottom:8px}.cta-modal-head h3 .accent{color:var(--fl-green)}.cta-modal-head p{color:var(--text-muted);font-size:0.92rem;line-height:1.6;max-width:36ch;margin:0 auto}.cta-modal-form .field{margin-bottom:14px}.cta-modal-form .form-row-2{display:grid;gap:14px;margin-bottom:14px}@media (min-width:520px){.cta-modal-form .form-row-2{grid-template-columns:1fr 1fr}.cta-modal-form .form-row-2 .field{margin-bottom:0}}.cta-modal-form button[type="submit"]{margin-top:8px;width:100%;justify-content:center}.cta-modal-foot{margin-top:14px;text-align:center;font-size:0.74rem;color:var(--text-muted);line-height:1.5}.cta-modal-foot a{color:var(--fl-green);font-weight:700}body.cta-modal-open{overflow:hidden}@media (prefers-reduced-motion:reduce){.cta-modal,.cta-modal-panel{transition:none}}.lightbox{position:fixed;inset:0;z-index:5000;background:rgba(6,8,12,0.96);display:none;align-items:center;justify-content:center;padding:clamp(20px,4vw,60px);cursor:zoom-out;opacity:0;transition:opacity 0.3s var(--ease-out)}.lightbox.is-open{display:flex;opacity:1}.lightbox-img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,0.6),0 0 0 1px rgba(68,182,73,0.25);cursor:default}.lightbox-caption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:0.86rem;font-weight:700;letter-spacing:0.04em;color:var(--text);background:rgba(6,8,12,0.7);border:1px solid var(--border-quiet);padding:10px 18px;border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.lightbox-close{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:rgba(6,8,12,0.6);border:1px solid var(--border-quiet);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:1.5rem;font-weight:900;line-height:1}.lightbox-close:hover{color:var(--fl-green);border-color:var(--fl-green)}.gallery-tile{cursor:zoom-in}.reveal.from-left{transform:translate(-40px,0)}.reveal.from-left.is-visible{transform:translate(0,0)}.reveal.from-right{transform:translate(40px,0)}.reveal.from-right.is-visible{transform:translate(0,0)}.reveal.scale-in{transform:scale(0.94)}.reveal.scale-in.is-visible{transform:scale(1)}.callout{position:relative;padding:clamp(36px,6vw,56px);background:linear-gradient(135deg,rgba(68,182,73,0.08),rgba(32,66,145,0.04));border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:880px;margin:0 auto;text-align:center}.callout::before{content:"“";position:absolute;top:-24px;left:32px;font-size:5rem;font-weight:900;color:var(--fl-green);line-height:1;opacity:0.5}.callout p{font-size:clamp(1.1rem,2vw,1.35rem);font-weight:600;line-height:1.55;color:var(--text);margin-bottom:14px}.callout cite{display:block;font-size:0.78rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--fl-green);font-style:normal}.container{max-width:var(--content-max);margin:0 auto;padding:0 clamp(20px,4vw,48px)}.container-narrow{max-width:var(--content-narrow);margin:0 auto;padding:0 clamp(20px,4vw,48px)}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:1000;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,48px);background:rgba(6,8,12,0.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-quiet);transition:background 0.3s var(--ease-out),border-color 0.3s}.site-header.is-scrolled{background:rgba(6,8,12,0.96);border-bottom-color:var(--border)}.logo-lockup{display:inline-flex;align-items:center;gap:10px;justify-self:start}.logo-img{height:40px;width:auto;display:block}@media (min-width:960px){.logo-img{height:44px}}@media (min-width:960px){}.hero h1 .branch-tag{position:relative;display:inline-block;padding-bottom:2px}.hero h1 .branch-tag::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;background:linear-gradient(90deg,transparent,var(--fl-green),transparent);border-radius:4px;opacity:0.9}.nav-desktop{display:none;align-items:center;gap:36px;justify-self:center}.nav-desktop a{position:relative;font-size:0.78rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-muted);padding:6px 0;transition:color 0.2s}.nav-desktop a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--fl-green);transform:scaleX(0);transform-origin:center;transition:transform 0.25s var(--ease-out)}.nav-desktop a:hover{color:var(--text)}.nav-desktop a:hover::after,.nav-desktop a.is-current::after{transform:scaleX(1)}.nav-desktop a.is-current{color:var(--text)}.header-cta{display:flex;align-items:center;gap:12px;justify-self:end}.btn-phone{font-weight:800;font-size:0.82rem;letter-spacing:0.06em;padding:12px 22px;border-radius:999px;background:var(--fl-green);color:#06120a;transition:transform 0.2s var(--ease-out),background 0.2s,box-shadow 0.2s;box-shadow:var(--shadow-glow);white-space:nowrap}.btn-phone:hover{background:var(--fl-green-bright);transform:translateY(-1px)}.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:10px;margin-right:-10px}.nav-toggle span{display:block;height:2px;background:var(--text);border-radius:2px;transition:transform 0.25s,opacity 0.25s}.nav-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;background:rgba(6,8,12,0.98);padding:32px clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:8px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.3s,visibility 0.3s;z-index:999;text-align:center}.mobile-nav.is-open{opacity:1;visibility:visible;pointer-events:auto}.mobile-nav a{font-size:1.1rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-muted);padding:18px 0;border-bottom:1px solid var(--border-quiet)}.mobile-nav a.is-current{color:var(--fl-green)}@media (min-width:1024px){.nav-desktop{display:inline-flex}.nav-toggle,.mobile-nav{display:none}}.btn-primary{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;padding:17px 32px;border-radius:999px;background:var(--fl-green);color:#06120a;cursor:pointer;transition:transform 0.2s var(--ease-out),box-shadow 0.2s,background 0.2s;box-shadow:var(--shadow-glow)}.btn-primary:hover{background:var(--fl-green-bright);transform:translateY(-2px);box-shadow:0 0 0 1px rgba(68,182,73,0.55),0 24px 56px rgba(68,182,73,0.28)}.btn-primary svg{width:14px;height:14px}.btn-ghost{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:0.85rem;letter-spacing:0.08em;text-transform:uppercase;padding:17px 28px;border-radius:999px;border:1px solid rgba(255,255,255,0.18);color:var(--text);background:transparent;cursor:pointer;transition:border-color 0.2s,background 0.2s,color 0.2s}.btn-ghost:hover{border-color:var(--fl-green);background:rgba(68,182,73,0.08);color:var(--text)}.section{position:relative;padding:clamp(80px,12vw,132px) clamp(20px,4vw,48px);isolation:isolate}.section.alt{background:var(--bg-elevated);border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet)}.section.alt::before{content:"";position:absolute;inset:-10%;z-index:-1;background:radial-gradient(ellipse 50% 40% at 30% 30%,rgba(68,182,73,0.06),transparent 60%),radial-gradient(ellipse 40% 50% at 70% 70%,rgba(68,182,73,0.05),transparent 55%);animation:ambient-drift 22s ease-in-out infinite alternate;pointer-events:none}@keyframes ambient-drift{0%{transform:translate(0,0);opacity:0.7}100%{transform:translate(-3%,4%);opacity:1}}@media (prefers-reduced-motion:reduce){.section.alt::before{animation:none}}.section-head{max-width:760px;margin:0 auto clamp(48px,7vw,72px);text-align:center}.section-label{display:inline-block;font-size:0.72rem;font-weight:800;letter-spacing:0.28em;text-transform:uppercase;color:var(--fl-green);margin-bottom:20px;padding:6px 14px;border:1px solid var(--border-strong);border-radius:999px;background:rgba(68,182,73,0.06)}.section-title{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:900;line-height:1.08;letter-spacing:-0.02em;margin-bottom:18px}.section-title .accent{color:var(--fl-green)}.section-desc{color:var(--text-muted);font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.75;max-width:60ch;margin:0 auto}.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.45s var(--ease-out),transform 0.45s var(--ease-out);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:translateY(0);will-change:auto}.reveal.delay-1{transition-delay:60ms}.reveal.delay-2{transition-delay:120ms}.reveal.delay-3{transition-delay:180ms}.reveal.delay-4{transition-delay:240ms}.reveal.delay-5{transition-delay:300ms}.reveal.delay-6{transition-delay:360ms}.hero{position:relative;min-height:clamp(540px,78vh,760px);display:grid;place-items:center;text-align:center;padding:calc(var(--header-h) + clamp(56px,7vh,112px)) clamp(20px,4vw,48px) 56px;overflow:hidden;isolation:isolate;--mouse-x:50%;--mouse-y:50%}.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle 420px at var(--mouse-x) var(--mouse-y),rgba(68,182,73,0.18) 0%,rgba(68,182,73,0.06) 35%,transparent 70%);opacity:0.9;transition:opacity 0.4s var(--ease-out);mix-blend-mode:screen}.hero:not(:hover)::before{opacity:0.4}@media (hover:none),(prefers-reduced-motion:reduce){.hero::before{display:none}}.hero-media{position:absolute;inset:0;z-index:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;transform:translateY(var(--parallax-y,0)) scale(1.05);will-change:transform}@media (prefers-reduced-motion:reduce){.hero-media img{transform:none}}.hero-media::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 100%,rgba(6,8,12,0.92) 0%,rgba(6,8,12,0.55) 45%,rgba(6,8,12,0.25) 100%),linear-gradient(to bottom,rgba(6,8,12,0.82) 0%,rgba(6,8,12,0.35) 30%,rgba(6,8,12,0.55) 70%,rgba(6,8,12,0.92) 100%);pointer-events:none}.hero-fallback{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 30%,rgba(68,182,73,0.14),transparent 55%),linear-gradient(160deg,#0a0e16 0%,#06080c 100%);z-index:0}.hero-inner{position:relative;z-index:1;max-width:1180px;width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,36px);padding:0 clamp(8px,2vw,24px)}.hero-inner>*{margin:0}.hero-eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:0.74rem;font-weight:800;letter-spacing:0.32em;text-transform:uppercase;color:var(--fl-green);margin-bottom:28px}.hero-eyebrow::before,.hero-eyebrow::after{content:"";width:36px;height:1px;background:var(--fl-green)}.hero h1{font-size:clamp(2.4rem,7vw,5rem);font-weight:900;line-height:1.05;letter-spacing:-0.025em;max-width:22ch}.hero h1 .accent{color:var(--fl-green)}.hero h1 .h1-seo{display:block;font-size:clamp(0.85rem,1.6vw,1.05rem);font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--fl-green);margin-bottom:22px;max-width:36rem}.hero-lede{font-size:clamp(1.05rem,1.6vw,1.22rem);color:rgba(244,246,248,0.82);max-width:64ch;margin:0 auto;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;margin-top:8px}.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:clamp(16px,4vw,32px);width:100%;max-width:700px;margin:0 auto}.stat{padding:16px 0 0;border-top:2px solid var(--fl-green);text-align:center}.stat strong{display:block;font-size:1.4rem;font-weight:900;margin-bottom:4px}.stat span{font-size:0.74rem;font-weight:600;color:var(--text-muted);letter-spacing:0.06em}.hero.compact{min-height:clamp(380px,52vh,540px);padding:calc(var(--header-h) + clamp(96px,11vh,168px)) clamp(20px,4vw,48px) clamp(56px,7vw,88px)}.hero-branch-pill{display:inline-flex;align-items:stretch;gap:4px;padding:5px;background:rgba(6,8,12,0.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(244,246,248,0.12);border-radius:999px;box-shadow:0 12px 32px rgba(0,0,0,0.4)}.hero-branch-pill>*{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;font-size:0.74rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;border-radius:999px;color:rgba(244,246,248,0.75);text-decoration:none;transition:all 0.25s var(--ease-out);white-space:nowrap}.hero-branch-pill a:hover{color:var(--text);background:rgba(244,246,248,0.06)}.hero-branch-pill a::after{content:"→";margin-left:2px;opacity:0.5;transition:transform 0.25s,opacity 0.25s}.hero-branch-pill a:hover::after{transform:translateX(3px);opacity:1}.hero-branch-pill .is-current{background:var(--fl-green);color:#06120a;cursor:default;box-shadow:0 0 24px rgba(68,182,73,0.4)}.hero-branch-pill .is-current::before{content:"";width:8px;height:8px;border-radius:50%;background:#06120a;box-shadow:0 0 0 3px rgba(6,18,10,0.18)}@media (max-width:600px){.hero-branch-pill{flex-direction:column;padding:6px}.hero-branch-pill>*{padding:12px 22px;justify-content:center}.hero-branch-pill a::after{display:none}}.branch-strip{padding:clamp(40px,6vw,64px) clamp(20px,4vw,48px);background:var(--bg-elevated);border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet)}.branch-strip-head{text-align:center;margin-bottom:clamp(24px,3vw,36px)}.branch-strip-eyebrow{display:inline-block;font-size:0.66rem;font-weight:800;letter-spacing:0.24em;text-transform:uppercase;color:var(--fl-green);margin-bottom:10px}.branch-strip-title{font-size:clamp(1.2rem,2.2vw,1.6rem);font-weight:900;letter-spacing:-0.015em;line-height:1.2}.branch-strip-grid{display:grid;gap:14px;grid-template-columns:1fr;max-width:920px;margin:0 auto}@media (min-width:700px){.branch-strip-grid{grid-template-columns:repeat(3,1fr)}}.branch-strip-tile{display:flex;flex-direction:column;padding:22px 24px;border-radius:var(--radius);border:1px solid var(--border-quiet);background:var(--bg-card);text-decoration:none;color:var(--text);transition:border-color 0.3s,transform 0.3s var(--ease-out),background 0.3s;position:relative}.branch-strip-tile:hover{border-color:var(--border-strong);transform:translateY(-2px);background:var(--bg-card-hover)}.branch-strip-tile.is-current{border-color:var(--fl-green);background:linear-gradient(180deg,rgba(68,182,73,0.1),rgba(68,182,73,0.02));cursor:default}.branch-strip-tile.is-current:hover{transform:none}.branch-strip-tile-name{font-size:1.1rem;font-weight:900;letter-spacing:-0.01em;margin-bottom:4px}.branch-strip-tile-meta{font-size:0.82rem;font-weight:600;color:var(--text-muted)}.branch-strip-tile-cta{margin-top:14px;font-size:0.7rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green)}.branch-strip-tile.is-current .branch-strip-tile-cta{color:var(--text-muted)}.branch-strip-tile-cta::after{content:" →"}.branch-strip-tile.is-current .branch-strip-tile-cta::after{content:""}.hero.branch-picker{min-height:calc(100vh - var(--header-h));padding:calc(var(--header-h) + 28px) clamp(20px,4vw,48px) clamp(32px,4vh,56px);display:flex;flex-direction:column;justify-content:center;gap:clamp(24px,4vh,48px)}.branch-picker-intro{max-width:760px;margin:0 auto;text-align:center;position:relative;z-index:1}.branch-picker-eyebrow{display:inline-block;font-size:0.7rem;font-weight:800;letter-spacing:0.32em;text-transform:uppercase;color:var(--fl-green);margin-bottom:16px}.branch-picker-title{font-size:clamp(1.8rem,4.4vw,3.2rem);font-weight:900;line-height:1.05;letter-spacing:-0.025em;margin-bottom:14px}.branch-picker-title .accent{color:var(--fl-green)}.branch-picker-sub{font-size:clamp(0.95rem,1.4vw,1.1rem);color:var(--text-muted);line-height:1.65;max-width:56ch;margin:0 auto}.branch-grid{display:grid;gap:clamp(14px,1.8vw,22px);grid-template-columns:1fr;max-width:1200px;width:100%;margin:0 auto;position:relative;z-index:1}@media (min-width:760px){.branch-grid{grid-template-columns:repeat(3,1fr)}}.branch-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,2.8vw,40px);min-height:clamp(220px,36vh,380px);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);overflow:hidden;cursor:pointer;text-decoration:none;color:var(--text);isolation:isolate;transition:transform 0.5s var(--ease-out),border-color 0.4s,box-shadow 0.5s}.branch-tile-bg{position:absolute;inset:0;z-index:-1}.branch-tile-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(0.85) brightness(0.75);transition:transform 0.8s var(--ease-out),filter 0.5s}.branch-tile-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,8,12,0.32) 0%,rgba(6,8,12,0.88) 100%);transition:background 0.5s}.branch-tile:hover{transform:translateY(-8px);border-color:var(--border-strong);box-shadow:0 30px 60px rgba(0,0,0,0.5),0 0 36px rgba(68,182,73,0.2)}.branch-tile:hover .branch-tile-bg img{transform:scale(1.06);filter:saturate(1) brightness(0.85)}.branch-tile:hover .branch-tile-bg::after{background:linear-gradient(180deg,rgba(6,8,12,0.18) 0%,rgba(6,8,12,0.85) 100%)}.branch-tile h2{font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:900;letter-spacing:-0.025em;line-height:1.05;margin-bottom:6px}.branch-tile small{display:block;font-size:0.74rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(244,246,248,0.7);margin-bottom:18px}.branch-tile-cta{display:inline-flex;align-items:center;gap:8px;font-size:0.74rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green);padding:10px 18px;border:1px solid var(--border-strong);border-radius:999px;background:rgba(68,182,73,0.08);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-self:flex-start;transition:background 0.3s,color 0.3s,transform 0.3s,border-color 0.3s}.branch-tile-cta::after{content:"→";transition:transform 0.3s}.branch-tile:hover .branch-tile-cta{background:var(--fl-green);color:#06120a;border-color:var(--fl-green);transform:translateY(-2px)}.branch-tile:hover .branch-tile-cta::after{transform:translateX(4px)}.branch-tile.is-current{border-color:var(--fl-green)}.branch-tile.is-current::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px rgba(68,182,73,0.4),0 0 24px rgba(68,182,73,0.12);pointer-events:none}.branch-tile-pip{position:absolute;top:18px;right:18px;z-index:2;display:inline-flex;align-items:center;gap:6px;font-size:0.6rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:#06120a;background:var(--fl-green);padding:6px 10px;border-radius:999px}.branch-tile-pip::before{content:"";width:8px;height:8px;border-radius:50%;background:#06120a;box-shadow:0 0 0 3px rgba(6,18,10,0.25)}.branch-picker-footnote{text-align:center;font-size:0.82rem;color:var(--text-muted);line-height:1.65;max-width:60ch;margin:0 auto;position:relative;z-index:1}.hero.compact h1{font-size:clamp(2rem,5vw,3.2rem);max-width:26ch}.hero.compact .hero-lede{margin-bottom:0;max-width:60ch}.hero.compact .scroll-cue{display:none}.scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-muted);font-size:0.65rem;font-weight:800;letter-spacing:0.3em;text-transform:uppercase}.scroll-cue::after{content:"";width:1px;height:36px;background:linear-gradient(to bottom,var(--fl-green),transparent);animation:cue 1.8s ease-in-out infinite}@keyframes cue{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:0.3;transform:scaleY(0.6)}}.trust-band{border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet);background:var(--bg-elevated);padding:28px clamp(20px,4vw,48px)}.trust-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;max-width:var(--content-max);margin:0 auto;align-items:center}.trust-item{display:flex;align-items:center;gap:14px;justify-content:center}.trust-item svg{width:26px;height:26px;color:var(--fl-green);flex-shrink:0}.trust-item span{font-size:0.85rem;font-weight:700;letter-spacing:0.04em;color:var(--text)}.trust-item small{display:block;font-size:0.72rem;font-weight:600;color:var(--text-muted);letter-spacing:0.04em;margin-top:2px}.featured{position:relative;padding:clamp(80px,12vw,132px) clamp(20px,4vw,48px)}.featured-grid{display:grid;gap:clamp(32px,5vw,64px);max-width:var(--content-max);margin:0 auto;align-items:center}@media (min-width:900px){.featured-grid{grid-template-columns:1.15fr 1fr}}.featured-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4 / 3;box-shadow:var(--shadow-card);border:1px solid var(--border)}.featured-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;transition:transform 0.8s var(--ease-out)}.featured-photo:hover img{transform:scale(1.04)}.featured-photo .tag{position:absolute;top:18px;left:18px;font-size:0.7rem;font-weight:800;letter-spacing:0.2em;text-transform:uppercase;color:#06120a;background:var(--fl-green);padding:8px 14px;border-radius:999px}.featured-copy h2{font-size:clamp(1.7rem,3.8vw,2.6rem);font-weight:900;line-height:1.12;letter-spacing:-0.02em;margin-bottom:18px}.featured-copy h2 .accent{color:var(--fl-green)}.featured-copy p{color:var(--text-muted);font-size:1.05rem;line-height:1.75;margin-bottom:24px}.featured-copy ul{list-style:none;margin-bottom:28px}.featured-copy li{position:relative;padding-left:28px;margin-bottom:12px;font-size:0.96rem;color:var(--text)}.featured-copy li::before{content:"";position:absolute;left:0;top:8px;width:14px;height:14px;border-radius:4px;background:var(--fl-green);box-shadow:0 0 0 4px rgba(68,182,73,0.14)}.sector-grid{display:grid;gap:22px;max-width:var(--content-max);margin:0 auto}@media (min-width:700px){.sector-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.sector-grid{grid-template-columns:repeat(4,1fr)}}.sector-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);padding:0 24px 32px;min-height:380px;overflow:hidden;transition:transform 0.4s var(--ease-out),border-color 0.3s,box-shadow 0.4s}.sector-card:hover{transform:translateY(-6px);border-color:var(--border-strong);box-shadow:var(--shadow-card)}.sector-card-photo{position:relative;width:calc(100% + 48px);margin:0 -24px 24px;height:200px;overflow:hidden}.sector-card-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform 0.7s var(--ease-out)}.sector-card:hover .sector-card-photo img{transform:scale(1.06)}.sector-card-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(6,8,12,0) 40%,var(--bg-card) 100%)}.sector-card h3{font-size:1.18rem;font-weight:900;letter-spacing:0.01em;margin-bottom:10px}.sector-card p{font-size:0.92rem;color:var(--text-muted);line-height:1.6;margin-bottom:18px;max-width:32ch}.sector-card .link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:0.74rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green)}.sector-card .link::after{content:"→";transition:transform 0.25s var(--ease-out)}.sector-card:hover .link::after{transform:translateX(4px)}.product-grid{display:grid;gap:22px;max-width:var(--content-max);margin:0 auto}@media (min-width:700px){.product-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1100px){.product-grid{grid-template-columns:repeat(3,1fr)}}.product-card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);overflow:hidden;transition:transform 0.45s var(--ease-out),border-color 0.35s,box-shadow 0.45s;min-height:360px;isolation:isolate}.product-card::after{content:"";position:absolute;inset:-1px;border-radius:var(--radius-lg);padding:1px;background:linear-gradient(135deg,transparent 30%,rgba(68,182,73,0.6),transparent 70%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;transition:opacity 0.4s;pointer-events:none;z-index:1}.product-card:hover{transform:translateY(-8px);border-color:var(--border-strong);box-shadow:0 30px 60px rgba(0,0,0,0.45),0 0 32px rgba(68,182,73,0.12)}.product-card:hover::after{opacity:1}.product-card-media{position:relative;height:220px;overflow:hidden}.product-card-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%;transition:transform 0.7s var(--ease-out)}.product-card:hover .product-card-media img{transform:scale(1.05)}.product-card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,var(--bg-card))}.product-card-fallback{position:relative;height:220px;background:radial-gradient(ellipse at 30% 30%,rgba(68,182,73,0.32),transparent 55%),linear-gradient(160deg,#15291a,#0a1410);display:flex;align-items:center;justify-content:center}.product-card-fallback svg{width:64px;height:64px;color:var(--fl-green);opacity:0.7}.product-card-body{padding:24px;display:flex;flex-direction:column;flex:1;text-align:center;align-items:center}.product-card-logo{height:28px;width:auto;margin-bottom:14px}.product-card-body p{font-size:0.92rem;color:var(--text-muted);line-height:1.65;margin-bottom:18px;max-width:36ch}.product-card .link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:0.72rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;color:var(--fl-green)}.product-card .link::after{content:"→";transition:transform 0.25s var(--ease-out)}.product-card:hover .link::after{transform:translateX(4px)}.locations{position:relative;padding:clamp(80px,12vw,132px) clamp(20px,4vw,48px);background:linear-gradient(180deg,var(--bg) 0%,var(--bg-elevated) 100%);border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet)}.locations-grid{display:grid;gap:22px;max-width:1080px;margin:0 auto}@media (min-width:800px){.locations-grid{grid-template-columns:repeat(3,1fr)}}.location-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);padding:56px 28px 36px;min-height:320px;overflow:hidden;cursor:pointer;transition:transform 0.45s var(--ease-out),border-color 0.3s,box-shadow 0.45s}.location-tile::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(68,182,73,0.1),transparent 60%),linear-gradient(180deg,transparent 40%,rgba(6,8,12,0.6) 100%);z-index:0;transition:opacity 0.4s}.location-tile-bg{position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity 0.5s var(--ease-out),transform 0.7s var(--ease-out)}.location-tile-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(0.9)}.location-tile-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,8,12,0.7) 0%,rgba(6,8,12,0.92) 100%)}.location-tile:hover{transform:translateY(-6px);border-color:var(--border-strong);box-shadow:0 30px 70px rgba(0,0,0,0.5),0 0 0 1px rgba(68,182,73,0.4)}.location-tile:hover .location-tile-bg{opacity:1;transform:scale(1.04)}.location-tile h3{position:relative;z-index:2;font-size:clamp(1.7rem,3vw,2.2rem);font-weight:900;letter-spacing:-0.02em;margin-bottom:10px}.location-tile small{position:relative;z-index:2;display:block;font-size:0.72rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-muted);margin-bottom:22px}.location-tile .loc-cta{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;font-size:0.72rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green);padding:10px 18px;border:1px solid var(--border-strong);border-radius:999px;background:rgba(68,182,73,0.06);transition:background 0.25s,color 0.25s,transform 0.25s}.location-tile:hover .loc-cta{background:var(--fl-green);color:#06120a;transform:translateY(-1px)}.location-tile .loc-cta::after{content:"→";transition:transform 0.25s}.location-tile:hover .loc-cta::after{transform:translateX(4px)}.location-tile.is-current{border-color:var(--fl-green);background:linear-gradient(180deg,rgba(68,182,73,0.08),rgba(68,182,73,0.02))}.location-tile.is-current .here-pip{position:absolute;top:18px;right:18px;z-index:2;display:inline-flex;align-items:center;gap:6px;font-size:0.62rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:#06120a;background:var(--fl-green);padding:6px 10px;border-radius:999px}.location-tile.is-current .here-pip::before{content:"";width:8px;height:8px;border-radius:50%;background:#06120a;box-shadow:0 0 0 3px rgba(6,18,10,0.25)}.brand-rail-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(28px,5vw,56px);max-width:1100px;margin:0 auto}.brand-rail-logos a{display:inline-flex;align-items:center}.brand-rail-logos img{height:28px;width:auto;opacity:0.55;filter:grayscale(1) brightness(1.4);transition:opacity 0.3s ease,filter 0.3s ease,transform 0.3s var(--ease-out)}.brand-rail-logos a:hover img,.brand-rail-logos img:hover{opacity:1;filter:none;transform:translateY(-2px)}@media (min-width:768px){.brand-rail-logos img{height:32px}}.brand-rail-marquee{position:relative;overflow:hidden;max-width:100%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)}.brand-rail-marquee .brand-rail-logos{width:max-content;max-width:none;flex-wrap:nowrap;animation:marquee-scroll 42s linear infinite;gap:clamp(40px,5vw,72px)}.brand-rail-marquee:hover .brand-rail-logos{animation-play-state:paused}@keyframes marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.brand-rail-marquee .brand-rail-logos{animation:none}}.benefits-grid{display:grid;gap:18px;max-width:var(--content-max);margin:0 auto}@media (min-width:640px){.benefits-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:980px){.benefits-grid{grid-template-columns:repeat(3,1fr)}}.benefit{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 24px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border-quiet);transition:border-color 0.3s,transform 0.3s var(--ease-out)}.benefit:hover{border-color:var(--border-strong);transform:translateY(-3px)}.benefit-icon{width:52px;height:52px;border-radius:14px;background:rgba(68,182,73,0.12);display:flex;align-items:center;justify-content:center;color:var(--fl-green);margin-bottom:18px}.benefit-icon svg{width:26px;height:26px}.benefit h3{font-size:1.02rem;font-weight:900;margin-bottom:8px;letter-spacing:0.01em}.benefit p{font-size:0.88rem;color:var(--text-muted);line-height:1.6;max-width:32ch}.gallery-grid{display:grid;gap:18px;max-width:var(--content-max);margin:0 auto}@media (min-width:700px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.gallery-tile{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4 / 5;background:var(--bg-card);border:1px solid var(--border-quiet)}.gallery-tile.wide{aspect-ratio:4 / 3}@media (min-width:1024px){.gallery-tile.span-2{grid-column:span 2;aspect-ratio:16 / 10}}.gallery-tile img{width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform 0.8s var(--ease-out)}.gallery-tile:hover img{transform:scale(1.05)}.gallery-tile figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 22px 22px;font-size:0.85rem;font-weight:800;letter-spacing:0.04em;background:linear-gradient(to top,rgba(6,8,12,0.95) 0%,rgba(6,8,12,0.6) 60%,transparent)}.gallery-tile figcaption small{display:block;font-size:0.68rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green);margin-bottom:4px}.gallery-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:36px}.gallery-filter button{font-size:0.74rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;padding:11px 20px;border-radius:999px;border:1px solid var(--border-quiet);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all 0.2s}.gallery-filter button:hover{color:var(--text);border-color:var(--border-strong)}.gallery-filter button.is-active{background:var(--fl-green);color:#06120a;border-color:var(--fl-green)}.cta-band{position:relative;padding:clamp(72px,11vw,116px) clamp(20px,4vw,48px);text-align:center;overflow:hidden}.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(68,182,73,0.18),transparent 55%),linear-gradient(180deg,var(--bg-elevated),var(--bg));z-index:0}.cta-inner{position:relative;z-index:1;max-width:720px;margin:0 auto}.cta-band h2{font-size:clamp(1.7rem,4vw,2.4rem);font-weight:900;margin-bottom:16px;line-height:1.15}.cta-band h2 .accent{color:var(--fl-green)}.cta-band p{color:var(--text-muted);margin-bottom:32px;font-size:1.05rem;line-height:1.7}.hours{margin-top:32px;font-size:0.88rem;color:var(--text-muted)}.hours strong{color:var(--text);font-weight:800}.form-grid{display:grid;gap:16px;max-width:720px;margin:0 auto}@media (min-width:640px){.form-row-2{grid-template-columns:repeat(2,1fr);display:grid;gap:16px}}.field{display:flex;flex-direction:column;text-align:left}.field label{font-size:0.72rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.field input,.field select,.field textarea{font:inherit;background:var(--bg-card-hover);color:var(--text);border:1.5px solid rgba(255,255,255,0.08);border-radius:10px;padding:16px 18px;font-size:1rem;transition:border-color 0.2s,background 0.2s,box-shadow 0.2s}.field textarea{resize:vertical;min-height:130px;line-height:1.55}.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%2344B649' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:12px;padding-right:44px}.field input::placeholder,.field textarea::placeholder{color:rgba(244,246,248,0.45)}.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(68,182,73,0.25)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--fl-green);background:var(--bg-card);box-shadow:0 0 0 4px rgba(68,182,73,0.12)}.contact-grid{display:grid;gap:clamp(40px,6vw,72px);max-width:var(--content-max);margin:0 auto;align-items:start}@media (min-width:900px){.contact-grid{grid-template-columns:1fr 1.2fr}}.contact-info-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px}.contact-info-card h3{font-size:1.1rem;font-weight:900;margin-bottom:18px}.contact-info-card dl{margin-bottom:22px}.contact-info-card dt{font-size:0.7rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;color:var(--fl-green);margin-bottom:4px}.contact-info-card dd{font-size:1rem;font-weight:700;margin-bottom:18px;color:var(--text)}.contact-info-card dd a:hover{color:var(--fl-green)}footer{padding:56px clamp(20px,4vw,48px) 36px;border-top:1px solid var(--border-quiet);background:var(--bg)}.footer-grid{max-width:var(--content-max);margin:0 auto;display:grid;gap:44px}@media (min-width:640px){.footer-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}.footer-brand .logo-img{opacity:0.94}.footer-brand p{margin-top:18px;font-size:0.9rem;color:var(--text-muted);line-height:1.7;max-width:32ch}.footer-col h3{font-size:0.7rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:18px}.footer-col ul{list-style:none}.footer-col li+li{margin-top:12px}.footer-col a{font-size:0.92rem;font-weight:600;color:var(--text);opacity:0.85;transition:color 0.2s,opacity 0.2s}.footer-col a:hover{color:var(--fl-green);opacity:1}.slogan-strip{margin-top:56px;padding-top:32px;border-top:1px solid var(--border-quiet);text-align:center}.slogan-mark{display:block;max-width:min(280px,88vw);height:auto;margin:0 auto 16px;opacity:0.92}.slogan-strip p{font-size:clamp(1.15rem,3vw,1.6rem);font-weight:900;letter-spacing:0.04em;color:var(--fl-green)}.slogan-strip .sub{margin-top:8px;font-size:0.74rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-muted)}.legal{margin-top:22px;text-align:center;font-size:0.74rem;color:var(--text-quiet);line-height:1.6}
.nav-desktop a.nav-build{background:transparent;color:var(--fl-green);border:1px solid var(--fl-green);padding:6px 14px;border-radius:999px;font-weight:800;font-size:0.84rem;letter-spacing:0.02em;margin-left:8px;transition:background 0.2s,color 0.2s,transform 0.2s var(--ease-out)}
.nav-desktop a.nav-build:hover{background:rgba(68,182,73,0.12);color:var(--fl-green-bright);transform:translateY(-1px)}
.nav-desktop a.nav-build.is-current{background:rgba(68,182,73,0.08);color:var(--fl-green);border:1px solid var(--fl-green)}
.mobile-nav a.nav-build{color:var(--fl-green);font-weight:900;letter-spacing:0.02em}
.build-promo{position:relative;padding:clamp(72px,10vw,120px) clamp(20px,4vw,48px);background:radial-gradient(ellipse 60% 60% at 30% 50%,rgba(68,182,73,0.12),transparent 70%),linear-gradient(180deg,var(--bg) 0%,var(--bg-elevated) 100%);overflow:hidden;border-top:1px solid var(--border-quiet);border-bottom:1px solid var(--border-quiet)}
.build-promo::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 60 0 L 0 0 0 60' fill='none' stroke='rgba(68,182,73,0.07)' stroke-width='0.5'/%3E%3C/svg%3E");opacity:0.6;pointer-events:none}
.build-promo-grid{position:relative;max-width:var(--content-max);margin:0 auto;display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:900px){.build-promo-grid{grid-template-columns:1.05fr 1fr;gap:64px}}
.build-promo-tag{display:inline-flex;align-items:center;gap:10px;font-size:0.66rem;font-weight:800;letter-spacing:0.28em;text-transform:uppercase;color:var(--fl-green);background:rgba(68,182,73,0.08);padding:7px 14px;border-radius:999px;border:1px solid rgba(68,182,73,0.22);margin-bottom:18px}
.build-promo-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fl-green);box-shadow:0 0 8px var(--fl-green)}
.build-promo h2{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:900;letter-spacing:-0.025em;line-height:1.05;margin-bottom:18px}
.build-promo h2 .accent{color:var(--fl-green)}
.build-promo p{color:var(--text-muted);font-size:1.02rem;line-height:1.65;margin-bottom:28px;max-width:48ch}
.build-promo-stats{display:flex;gap:36px;margin-bottom:32px;flex-wrap:wrap}
.build-promo-stat strong{display:block;color:var(--fl-green);font-weight:900;font-size:1.4rem;letter-spacing:-0.02em}
.build-promo-stat span{display:block;font-size:0.7rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-muted);margin-top:4px}
.build-promo-visual{position:relative;aspect-ratio:5/4;border-radius:var(--radius-lg);background:#0a1119;border:1px solid rgba(68,182,73,0.22);box-shadow:0 32px 64px rgba(0,0,0,0.5),inset 0 0 60px rgba(0,0,0,0.6);overflow:hidden}
.build-promo-visual::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M 20 0 L 0 0 0 20' fill='none' stroke='rgba(68,182,73,0.08)' stroke-width='0.5'/%3E%3C/svg%3E");opacity:0.7;pointer-events:none}
.build-promo-visual svg{position:relative;width:100%;height:100%;display:block}

.service-area-grid{display:grid;gap:32px;max-width:var(--content-max);margin:0 auto;grid-template-columns:1fr}
@media (min-width:720px){.service-area-grid{grid-template-columns:repeat(3,1fr)}}
.service-area-col{padding:24px;background:var(--bg-card);border:1px solid var(--border-quiet);border-radius:var(--radius);transition:border-color 0.25s,transform 0.25s var(--ease-out)}
.service-area-col:hover{border-color:var(--border-strong);transform:translateY(-2px)}
.service-area-col-h{font-size:0.78rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--fl-green);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border-quiet)}
.service-area-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.service-area-col li{font-size:0.95rem;font-weight:600;color:var(--text);padding:6px 0;border-bottom:1px dashed rgba(255,255,255,0.04)}
.service-area-col li:last-child{border-bottom:none}
.service-area-call{font-size:0.86rem !important;color:var(--text-muted) !important;font-weight:500 !important;line-height:1.55;padding-top:12px !important;margin-top:6px;border-top:1px solid var(--border-quiet) !important;border-bottom:none !important}
.service-area-call strong{color:var(--text);display:block;margin-bottom:4px}
.service-area-call a{color:var(--fl-green);font-weight:800}
.service-area-call a:hover{color:var(--fl-green-bright);text-decoration:underline}

/* ============================================================
   CONTACT HERO — form-as-hero layout
   Form is visible above the fold and is the page's primary action.
   ============================================================ */
.contact-hero{position:relative;min-height:calc(100vh - var(--header-h));padding:calc(var(--header-h) + 24px) clamp(20px,4vw,48px) clamp(36px,5vw,64px);overflow:hidden;isolation:isolate}
.contact-hero-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 60% 70% at 80% 50%,rgba(68,182,73,0.14),transparent 65%),radial-gradient(ellipse 50% 60% at 0% 100%,rgba(32,66,145,0.1),transparent 70%),linear-gradient(180deg,var(--bg) 0%,var(--bg-elevated) 100%)}
.contact-hero-bg::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M80 0L0 0 0 80' fill='none' stroke='rgba(68,182,73,0.05)' stroke-width='0.6'/%3E%3C/svg%3E");opacity:0.7}
.contact-hero-grid{position:relative;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:36px;align-items:center}
@media (min-width:980px){.contact-hero-grid{grid-template-columns:1fr 1.05fr;gap:64px}}

/* LEFT: copy / trust / phone CTA */
.contact-hero-copy{display:flex;flex-direction:column;gap:24px}
.contact-hero-eyebrow{display:inline-block;font-size:0.66rem;font-weight:800;letter-spacing:0.28em;text-transform:uppercase;color:var(--fl-green);background:rgba(68,182,73,0.1);padding:6px 14px;border-radius:999px;border:1px solid rgba(68,182,73,0.22);width:fit-content;margin-bottom:4px}
.contact-hero h1{font-size:clamp(1.9rem,4.2vw,3rem);font-weight:900;letter-spacing:-0.025em;line-height:1.05;margin:0}
.contact-hero h1 .accent{color:var(--fl-green)}
.contact-hero-lede{font-size:clamp(0.98rem,1.2vw,1.1rem);color:var(--text-muted);line-height:1.6;max-width:50ch;margin:0}
.contact-hero-trust{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.contact-trust-row{display:flex;align-items:center;gap:14px}
.contact-trust-row svg{flex-shrink:0;width:36px;height:36px;padding:7px;border-radius:10px;background:rgba(68,182,73,0.1);color:var(--fl-green)}
.contact-trust-row strong{display:block;font-size:0.94rem;font-weight:800;color:var(--text);letter-spacing:-0.005em}
.contact-trust-row span{display:block;font-size:0.82rem;color:var(--text-muted);font-weight:600;margin-top:2px}
.contact-hero-direct{padding-top:24px;border-top:1px solid var(--border-quiet);display:flex;flex-direction:column;gap:6px}
.contact-hero-direct-eyebrow{font-size:0.66rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-muted)}
.contact-hero-phone{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:900;letter-spacing:-0.02em;color:var(--fl-green);transition:color 0.2s}
.contact-hero-phone:hover{color:var(--fl-green-bright)}
.contact-hero-hours{font-size:0.84rem;color:var(--text-muted);font-weight:600}

/* RIGHT: the form card */
.contact-hero-form-wrap{position:relative;z-index:1}
.contact-card{position:relative;background:linear-gradient(160deg,var(--bg-card) 0%,var(--bg-card-hover) 100%);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:clamp(24px,3vw,40px);box-shadow:0 32px 80px rgba(0,0,0,0.5),0 0 0 1px rgba(68,182,73,0.18),0 0 80px rgba(68,182,73,0.08)}

.contact-card-head{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border-quiet);display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.contact-card-tag{font-size:0.74rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--fl-green)}
.contact-card-help{font-size:0.86rem;color:var(--text-muted);font-weight:600;margin:0}

.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
.contact-form-grid .field-wide{grid-column:1/-1}
@media (max-width:560px){.contact-form-grid{grid-template-columns:1fr}.contact-form-grid .field-wide{grid-column:auto}}
.contact-card .field{display:flex;flex-direction:column;gap:6px}
.contact-card .field label{font-size:0.74rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-muted)}
.contact-card .field-opt{font-size:0.68rem;font-weight:600;letter-spacing:0.04em;text-transform:none;color:var(--text-quiet);margin-left:6px}
.contact-card .field input,.contact-card .field select,.contact-card .field textarea{background:rgba(6,8,12,0.6);border:1px solid var(--border-quiet);border-radius:10px;color:var(--text);padding:13px 14px;font:inherit;font-weight:600;font-size:0.96rem;transition:border-color 0.2s,background 0.2s,box-shadow 0.2s}
.contact-card .field input::placeholder,.contact-card .field textarea::placeholder{color:var(--text-quiet);font-weight:500}
.contact-card .field input:hover,.contact-card .field select:hover,.contact-card .field textarea:hover{border-color:rgba(68,182,73,0.3)}
.contact-card .field input:focus,.contact-card .field select:focus,.contact-card .field textarea:focus{outline:none;border-color:var(--fl-green);background:rgba(6,8,12,0.85);box-shadow:0 0 0 3px rgba(68,182,73,0.18)}
.contact-card .field textarea{resize:vertical;min-height:96px}

.contact-card-submit{width:100%;padding:16px 22px;background:linear-gradient(180deg,var(--fl-green) 0%,var(--fl-green-dim) 100%);color:#001a02;font:inherit;font-weight:900;font-size:1rem;letter-spacing:-0.005em;border:none;border-radius:12px;cursor:pointer;box-shadow:0 12px 32px rgba(68,182,73,0.35),0 0 0 1px rgba(95,207,101,0.5);transition:transform 0.2s var(--ease-out),box-shadow 0.2s,background 0.2s}
.contact-card-submit:hover:not([disabled]){transform:translateY(-2px);box-shadow:0 18px 44px rgba(68,182,73,0.5),0 0 0 1px rgba(95,207,101,0.7)}
.contact-card-submit:active:not([disabled]){transform:translateY(0)}
.contact-card-submit[disabled]{opacity:0.6;cursor:not-allowed}
.contact-card-foot{margin-top:14px;font-size:0.82rem;color:var(--text-muted);text-align:center;line-height:1.55}
.contact-card-foot a{color:var(--fl-green);font-weight:800}
.contact-card-foot a:hover{color:var(--fl-green-bright);text-decoration:underline}

/* Mobile layout — stack copy ABOVE form, keep form prominent */
@media (max-width:979px){
  .contact-hero{min-height:0;padding-top:calc(var(--header-h) + 18px);padding-bottom:36px}
  .contact-hero-grid{gap:28px}
  .contact-hero-copy{order:1}
  .contact-hero-form-wrap{order:2}
  .contact-hero-trust{display:none}
  .contact-hero-direct{padding-top:14px}
}

/* Skip-to-content — visible only when focused via keyboard */
.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;background:var(--fl-green);color:#001a02;padding:12px 20px;border-radius:0 0 12px 0;font-weight:900;font-size:0.92rem;letter-spacing:0.02em;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,0.4)}
.skip-link:focus{left:0;outline:3px solid var(--fl-green-bright);outline-offset:2px}

/* ============================================================
   BACKING SYSTEM SECTION — blueprint cross-section visual
   ============================================================ */
.backing-section{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:36px;align-items:start}
@media (min-width:1024px){.backing-section{grid-template-columns:1.15fr 1fr;gap:48px}}
.backing-diagram{position:relative;background:#0a1119;border:1px solid rgba(68,182,73,0.22);border-radius:var(--radius-lg);padding:14px;box-shadow:0 32px 80px rgba(0,0,0,0.45),inset 0 0 0 1px rgba(68,182,73,0.06),inset 0 0 60px rgba(0,0,0,0.5);overflow:hidden}
.backing-diagram svg{display:block;width:100%;height:auto;border-radius:8px}
.backing-diagram-tag{position:absolute;top:24px;right:24px;z-index:2;font-size:0.62rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--fl-green);display:flex;align-items:center;gap:8px;padding:6px 10px;background:rgba(6,8,12,0.85);border:1px solid rgba(68,182,73,0.22);border-radius:999px}
.backing-diagram-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fl-green);box-shadow:0 0 8px var(--fl-green)}
.backing-cards{display:flex;flex-direction:column;gap:14px}
.backing-card{position:relative;padding:24px 26px 22px;background:linear-gradient(160deg,var(--bg-card) 0%,var(--bg-card-hover) 100%);border:1px solid var(--border-quiet);border-left:3px solid var(--fl-green);border-radius:var(--radius);transition:border-color 0.25s,transform 0.25s var(--ease-out),box-shadow 0.25s}
.backing-card:hover{border-color:var(--border-strong);border-left-color:var(--fl-green-bright);transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,0.35)}
.backing-card-num{display:inline-block;font-size:0.72rem;font-weight:900;letter-spacing:0.28em;color:var(--fl-green);padding:3px 9px;border:1px solid var(--border-strong);border-radius:4px;background:rgba(68,182,73,0.06);margin-bottom:12px}
.backing-card h3{font-size:1.12rem;font-weight:900;letter-spacing:-0.005em;margin-bottom:8px;color:var(--text)}
.backing-card p{font-size:0.94rem;color:var(--text-muted);line-height:1.6;margin-bottom:14px}
.backing-card strong{color:var(--text)}
.backing-card-spec{font-size:0.7rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-quiet);padding-top:10px;border-top:1px solid var(--border-quiet)}
.backing-testing{max-width:760px;margin:48px auto 0;text-align:center;padding-top:32px;border-top:1px solid var(--border-quiet)}
.backing-testing-eyebrow{display:block;font-size:0.66rem;font-weight:800;letter-spacing:0.24em;text-transform:uppercase;color:var(--fl-green);margin-bottom:14px}
.backing-testing p{font-size:0.92rem;color:var(--text-muted);line-height:1.7;margin:0}
.backing-testing strong{color:var(--text);font-weight:700}

/* Mobile: stack diagram above cards */
@media (max-width:1023px){
  .backing-section{gap:24px}
  .backing-diagram{padding:8px}
  .backing-diagram-tag{top:16px;right:16px;font-size:0.56rem;padding:5px 9px}
  .backing-cards{gap:12px}
  .backing-card{padding:20px 22px 18px}
}

/* Google reviews band - between client-band and service-area */
.reviews-band{padding:clamp(40px,6vw,64px) clamp(20px,4vw,48px);max-width:1180px;margin:0 auto}
.reviews-band-link{display:flex;align-items:center;gap:clamp(20px,3vw,32px);padding:clamp(22px,3vw,32px) clamp(24px,4vw,40px);background:linear-gradient(135deg,rgba(68,182,73,0.05),rgba(68,182,73,0.02));border:1px solid var(--border-quiet);border-radius:18px;text-decoration:none;color:var(--text);transition:border-color 0.2s ease,transform 0.2s ease,background 0.2s ease}
.reviews-band-link:hover{border-color:var(--fl-green);transform:translateY(-2px);background:linear-gradient(135deg,rgba(68,182,73,0.09),rgba(68,182,73,0.03))}
.reviews-band-g{flex-shrink:0;width:clamp(48px,6vw,64px);height:clamp(48px,6vw,64px);background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.25)}
.reviews-band-g svg{width:60%;height:60%}
.reviews-band-copy{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.reviews-band-eyebrow{font-size:0.62rem;font-weight:800;letter-spacing:0.22em;text-transform:uppercase;color:var(--fl-green)}
.reviews-band-h{font-size:clamp(1.05rem,2.2vw,1.4rem);font-weight:900;letter-spacing:-0.015em;color:var(--text);line-height:1.2}
.reviews-band-sub{font-size:0.86rem;color:var(--text-muted);line-height:1.5;font-weight:500}
.reviews-band-arrow{flex-shrink:0;font-size:1.4rem;font-weight:800;color:var(--fl-green);transition:transform 0.2s ease}
.reviews-band-link:hover .reviews-band-arrow{transform:translate(3px,-3px)}
@media (max-width:639px){
  .reviews-band-link{flex-wrap:wrap;gap:16px}
  .reviews-band-copy{flex-basis:calc(100% - 80px)}
  .reviews-band-arrow{order:2}
}

/* ============================================================
 * DESIGN SYSTEM — Elevation Pass
 * Added: token scale, focus-visible system, active states,
 * section seams, install-card component, animation utilities.
 * Additive — overrides earlier ad-hoc rules where they collide.
 * ============================================================ */

:root {
  /* Type scale (rem) — replaces 33 ad-hoc font-sizes */
  --fs-micro: 0.62rem;
  --fs-eyebrow: 0.7rem;
  --fs-small: 0.85rem;
  --fs-body: 1rem;
  --fs-lede: 1.08rem;
  --fs-h4: clamp(1.15rem, 2vw, 1.45rem);
  --fs-h3: clamp(1.4rem, 2.8vw, 1.9rem);
  --fs-h2: clamp(1.8rem, 3.6vw, 2.6rem);
  --fs-h1: clamp(2.4rem, 5vw, 4rem);
  --fs-display: clamp(3rem, 6vw, 5rem);

  /* Weight ladder — 4 stops */
  --fw-body: 400;
  --fw-emph: 600;
  --fw-strong: 800;
  --fw-display: 900;

  /* Letter-spacing scale — 3 stops */
  --ls-display: -0.025em;
  --ls-body: -0.005em;
  --ls-eyebrow: 0.18em;

  /* Section rhythm */
  --space-section: clamp(96px, 12vw, 140px);
  --space-section-tight: clamp(64px, 8vw, 96px);
  --space-section-loose: clamp(120px, 16vw, 180px);

  /* Motion */
  --dur-fast: 0.18s;
  --dur-base: 0.32s;
  --dur-slow: 0.48s;
  --ease-snap: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ── Focus-visible system — single rule for keyboard users ── */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--fl-green-bright);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Remove only when not keyboard-focused */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
summary:focus:not(:focus-visible) {
  outline: none;
}

/* ── Active states — clicks feel weighted ── */
.btn-primary:active,
.btn-ghost:active,
.btn-phone:active,
.contact-card-submit:active {
  transform: translateY(1px);
  transition: transform 0.06s ease-out;
}
.btn-primary:active { box-shadow: 0 2px 8px rgba(68,182,73,0.18); }
.btn-ghost:active { box-shadow: 0 1px 4px rgba(0,0,0,0.2); }

/* ── Section seam system — every boundary gets a hairline ── */
.section + .section,
.stat-band + .section,
.section + .stat-band,
.trust-band + .section,
.process-section + .section,
.section + .process-section {
  position: relative;
}
.section + .section::before,
.section + .stat-band::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(720px, 80%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(68,182,73,0.4), transparent);
  pointer-events: none;
}

/* ── FAQ accordion polish — smooth disclosure + plus/minus toggle ── */
.faq-item {
  border-bottom: 1px solid var(--border-quiet);
  overflow: hidden;
}
.faq-item summary {
  list-style: none;
  position: relative;
  padding-right: 56px;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: color 0.2s ease;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after,
.faq-item summary::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 18px;
  height: 2px;
  background: var(--fl-green);
  transition: transform 0.32s var(--ease-out), opacity 0.32s ease;
}
.faq-item summary::after { transform: translateY(-50%); }
.faq-item summary::before { transform: translateY(-50%) rotate(90deg); }
.faq-item[open] summary::before { transform: translateY(-50%) rotate(0deg); opacity: 0; }
.faq-item[open] summary { color: var(--fl-green-bright); font-weight: 800; }
.faq-item summary:hover { color: var(--fl-green); }

/* Animated FAQ disclosure */
.faq-item .faq-body {
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out), opacity 0.32s ease 0.05s, padding 0.32s ease;
}
.faq-item:not([open]) .faq-body {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
}

/* ── Gallery tile button state ── */
.gallery-tile {
  cursor: pointer;
  transition: transform 0.32s var(--ease-out), box-shadow 0.32s var(--ease-out);
}
.gallery-tile:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(0,0,0,0.5); }
.gallery-tile:focus-visible {
  outline: 2px solid var(--fl-green-bright);
  outline-offset: 4px;
}

/* ── Lightbox upgrade — counter, controls, arrows ── */
.lightbox {
  position: fixed; inset: 0;
  background: rgba(6, 8, 12, 0.94);
  display: none; align-items: center; justify-content: center;
  z-index: 10000;
  opacity: 0;
  transition: opacity 0.32s ease;
  padding: 64px 20px 20px;
}
.lightbox.is-open { display: flex; opacity: 1; }
.lightbox-img {
  max-width: min(94vw, 1200px);
  max-height: 80vh;
  border-radius: 6px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
  display: block;
}
.lightbox-caption {
  position: absolute;
  bottom: 32px; left: 50%; transform: translateX(-50%);
  color: var(--text);
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: -0.005em;
  padding: 8px 16px;
  background: rgba(0,0,0,0.6);
  border-radius: 999px;
  max-width: 90vw;
  text-align: center;
}
.lightbox-counter {
  position: absolute;
  top: 18px; left: 50%; transform: translateX(-50%);
  color: var(--fl-green-bright);
  font-size: var(--fs-eyebrow);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  padding: 6px 14px;
  background: rgba(0,0,0,0.55);
  border: 1px solid rgba(68,182,73,0.3);
  border-radius: 999px;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  color: var(--text);
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  cursor: pointer;
  transition: background 0.18s, transform 0.18s;
  z-index: 2;
}
.lightbox-close { top: 18px; right: 18px; }
.lightbox-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 18px; top: 50%; transform: translateY(-50%); }
.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover {
  background: rgba(68,182,73,0.18);
  border-color: rgba(68,182,73,0.5);
}
.lightbox-prev:hover { transform: translateY(-50%) translateX(-3px); }
.lightbox-next:hover { transform: translateY(-50%) translateX(3px); }
@media (max-width: 639px) {
  .lightbox-prev { left: 8px; width: 40px; height: 40px; }
  .lightbox-next { right: 8px; width: 40px; height: 40px; }
}

/* ── Process timeline scroll-fill rail ── */
.process-timeline {
  position: relative;
}
.process-timeline::before {
  content: "";
  position: absolute;
  left: 30px;
  top: 12px;
  bottom: 12px;
  width: 3px;
  background: rgba(68,182,73,0.22);
  z-index: 0;
}
.process-timeline::after {
  content: "";
  position: absolute;
  left: 30px;
  top: 12px;
  width: 3px;
  height: var(--timeline-fill, 0%);
  background: linear-gradient(180deg, var(--fl-green), var(--fl-green-bright));
  z-index: 1;
  transition: height 0.1s linear;
  box-shadow: 0 0 44px rgba(68,182,73,0.30), 0 0 18px rgba(68,182,73,0.6), 0 0 4px rgba(68,182,73,0.9);
}
.process-step { position: relative; z-index: 2; }
.process-step-num {
  position: relative;
  background: var(--bg);
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 60px !important;
  height: 60px !important;
  border-radius: 50%;
  border: 2px solid var(--border-strong);
  color: var(--fl-green) !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
  flex-shrink: 0;
  transition: border-color 0.4s, box-shadow 0.4s, color 0.4s;
}
.process-step.is-visible .process-step-num {
  border-color: var(--fl-green);
  color: var(--fl-green-bright) !important;
  box-shadow: 0 0 0 4px rgba(68,182,73,0.15);
}
@media (min-width: 760px) {
  .process-timeline::before,
  .process-timeline::after { left: 50%; transform: translateX(-1.5px); }
}
@media (max-width: 767px) {
  .process-timeline::before,
  .process-timeline::after { left: 22px; }
  .process-step-num { width: 46px !important; height: 46px !important; font-size: 0.86rem !important; }
}

/* ── Install-card component (project tiles, FLKC-installs blocks) ── */
.install-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 24px 20px;
  background: linear-gradient(160deg, rgba(255,255,255,0.025), rgba(255,255,255,0.005));
  border: 1px solid var(--border-quiet);
  border-radius: var(--radius);
  text-align: left;
  align-items: flex-start;
  transition: border-color 0.32s var(--ease-out), transform 0.32s var(--ease-out), box-shadow 0.32s var(--ease-out);
}
.install-card:hover {
  border-color: rgba(68,182,73,0.45);
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.35), 0 0 0 1px rgba(68,182,73,0.1);
}
.install-card-tag {
  display: inline-block;
  padding: 4px 10px;
  background: rgba(68,182,73,0.12);
  border: 1px solid rgba(68,182,73,0.35);
  border-radius: 999px;
  color: var(--fl-green-bright);
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
}
.install-card h3 {
  font-size: var(--fs-h4);
  font-weight: 800;
  letter-spacing: var(--ls-body);
  line-height: 1.25;
  color: var(--text);
  margin: 4px 0 2px;
}
.install-card p {
  font-size: var(--fs-small);
  color: var(--text-muted);
  line-height: 1.55;
  margin: 0;
}

/* ── Stat count-up entry shine ── */
.stat-big strong {
  display: inline-block;
  position: relative;
}
.stat-big.is-visible strong {
  animation: stat-pop 0.6s var(--ease-snap) both;
}
@keyframes stat-pop {
  0% { transform: scale(0.92); opacity: 0; filter: blur(2px); }
  60% { transform: scale(1.04); opacity: 1; filter: blur(0); }
  100% { transform: scale(1); }
}

/* ── Animated checkmark for contact success ── */
.contact-success-mark {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--fl-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  position: relative;
  animation: success-pulse 0.7s var(--ease-snap) both;
}
.contact-success-mark svg { width: 28px; height: 28px; color: #001a02; }
.contact-success-mark svg path {
  stroke-dasharray: 28;
  stroke-dashoffset: 28;
  animation: check-draw 0.6s 0.2s var(--ease-out) forwards;
}
@keyframes success-pulse {
  0% { transform: scale(0.5); opacity: 0; }
  70% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
@keyframes check-draw {
  to { stroke-dashoffset: 0; }
}

/* ── Mobile: keep trust rows visible on contact page ── */
@media (max-width: 767px) {
  .contact-hero-trust { display: flex !important; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
  .contact-trust-row {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    padding: 10px 12px;
    font-size: var(--fs-micro);
    border-radius: 10px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border-quiet);
  }
  .contact-trust-row strong { font-size: var(--fs-small); }
  .contact-trust-row span { font-size: 0.62rem; }
  .contact-trust-row svg { width: 16px; height: 16px; flex-shrink: 0; }
}

/* ── Mobile: hero-branch-pill keeps city names whole ── */
.hero-branch-pill a,
.hero-branch-pill span { white-space: nowrap; }

/* ── Backing diagram staged reveal ── */
.backing-diagram svg [data-layer] {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}
.backing-diagram.is-revealed svg [data-layer="grass"] { transition-delay: 0.05s; opacity: 1; transform: translateY(0); }
.backing-diagram.is-revealed svg [data-layer="1"] { transition-delay: 0.25s; opacity: 1; transform: translateY(0); }
.backing-diagram.is-revealed svg [data-layer="2"] { transition-delay: 0.45s; opacity: 1; transform: translateY(0); }
.backing-diagram.is-revealed svg [data-layer="3"] { transition-delay: 0.65s; opacity: 1; transform: translateY(0); }
.backing-diagram.is-revealed svg [data-layer="base"] { transition-delay: 0.85s; opacity: 1; transform: translateY(0); }

/* ── Tighter, more deliberate body weight ── */
body { font-weight: var(--fw-body); }
.section-desc, .hero-lede, .faq-body, p { letter-spacing: var(--ls-body); }
.section-label, .hero-eyebrow, .contact-hero-eyebrow, .build-eyebrow { letter-spacing: var(--ls-eyebrow); font-weight: 800; }

/* ── Subtle button arrow animation ── */
.btn-primary, .btn-ghost {
  transition: background 0.22s var(--ease-out), color 0.22s var(--ease-out),
              border-color 0.22s var(--ease-out), box-shadow 0.22s var(--ease-out),
              transform 0.22s var(--ease-out);
}
.btn-primary:hover, .btn-ghost:hover {
  transform: translateY(-1px);
}

/* ── Reduce-motion respect ── */
@media (prefers-reduced-motion: reduce) {
  .stat-big.is-visible strong,
  .contact-success-mark,
  .contact-success-mark svg path,
  .backing-diagram svg [data-layer] { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
  .lightbox { transition: none !important; }
}

/* ── SplashGrass text-lockup (consistent across surfaces) ── */
.product-card-textmark {
  display: flex;
  flex-direction: column;
  margin-bottom: 14px;
  line-height: 1.1;
}
.product-card-textmark-name {
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: var(--ls-display);
  color: var(--text);
}
.product-card-textmark-name sup { font-size: 0.55em; font-weight: 700; }
.product-card-textmark-by {
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--fl-green);
  margin-top: 4px;
}

.brand-rail-textmark {
  display: inline-flex;
  align-items: center;
  font-size: 0.95rem;
  font-weight: 900;
  letter-spacing: -0.005em;
  color: var(--text-muted);
  padding: 6px 14px;
  border: 1px solid var(--border-quiet);
  border-radius: 8px;
  white-space: nowrap;
  height: 32px;
  text-decoration: none;
  transition: color 0.22s, border-color 0.22s;
}
.brand-rail-textmark:hover { color: var(--fl-green-bright); border-color: var(--border-strong); }
.brand-rail-textmark sup { font-size: 0.55em; font-weight: 700; }

/* ── Service area footer CTA — full-width row below grid ── */
.service-area-footer {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid var(--border-quiet);
  text-align: center;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.service-area-footer p {
  font-size: var(--fs-small);
  color: var(--text-muted);
  letter-spacing: var(--ls-body);
  line-height: 1.6;
}
.service-area-footer p strong { color: var(--text); font-weight: 800; }
.service-area-footer p a {
  color: var(--fl-green);
  font-weight: 800;
  margin-left: 6px;
  transition: color 0.18s;
}
.service-area-footer p a:hover { color: var(--fl-green-bright); }

/* ── Tech grid hero — 3-up oversized cards for primary claims ── */
.tech-grid-hero {
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
  max-width: var(--content-max);
  margin: 0 auto 28px;
}
@media (min-width: 800px) {
  .tech-grid-hero { grid-template-columns: repeat(3, 1fr); }
}
.tech-card-hero {
  padding: 32px 28px 28px;
  background: linear-gradient(180deg, rgba(68,182,73,0.07), rgba(68,182,73,0.02) 60%);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  overflow: hidden;
  transition: transform 0.32s var(--ease-out), border-color 0.32s, box-shadow 0.32s;
}
.tech-card-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--fl-green), var(--fl-green-bright));
}
.tech-card-hero:hover {
  transform: translateY(-3px);
  border-color: var(--border-strong);
  box-shadow: 0 24px 50px rgba(0,0,0,0.35), 0 0 0 1px rgba(68,182,73,0.18);
}
.tech-card-hero .tech-tag {
  display: inline-block;
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--fl-green);
  margin-bottom: 4px;
}
.tech-card-hero-stat {
  font-size: clamp(2.8rem, 5.5vw, 4.4rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--fl-green);
  text-shadow: 0 0 40px rgba(68,182,73,0.25);
  display: inline-flex;
  align-items: baseline;
}
.tech-card-hero-unit {
  font-size: 0.5em;
  font-weight: 800;
  margin-left: 2px;
  letter-spacing: -0.02em;
}
.tech-card-hero p {
  font-size: var(--fs-small);
  color: var(--text-muted);
  line-height: 1.6;
  margin-top: 8px;
}
.tech-card-hero p strong { color: var(--text); }

/* ── Install sequence — numbered chronological step list with connecting rail ── */
.install-sequence {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 880px;
  position: relative;
  counter-reset: install;
}
.install-sequence::before {
  content: "";
  position: absolute;
  left: 30px;
  top: 30px;
  bottom: 30px;
  width: 2px;
  background: linear-gradient(180deg, transparent 0%, var(--border-quiet) 8%, var(--border-quiet) 92%, transparent 100%);
  z-index: 0;
}
.install-step {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: clamp(18px, 3vw, 32px);
  padding: clamp(20px, 3vw, 32px) 0;
  position: relative;
  z-index: 1;
  align-items: start;
}
.install-step + .install-step { border-top: 1px solid var(--border-quiet); }
.install-step-num {
  background: var(--bg);
  border: 2px solid var(--fl-green);
  color: var(--fl-green);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: -0.01em;
  flex-shrink: 0;
  box-shadow: 0 0 0 4px rgba(68,182,73,0.08);
  transition: background 0.3s, color 0.3s, box-shadow 0.3s;
}
.install-step:hover .install-step-num {
  background: var(--fl-green);
  color: #001a02;
  box-shadow: 0 0 0 6px rgba(68,182,73,0.18);
}
.install-step-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.install-step-tag {
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--fl-green);
}
.install-step-body h3 {
  font-size: var(--fs-h4);
  font-weight: 800;
  letter-spacing: var(--ls-body);
  line-height: 1.25;
  color: var(--text);
  margin: 0;
}
.install-step-body p {
  font-size: var(--fs-small);
  color: var(--text-muted);
  line-height: 1.65;
  margin: 0;
}
.install-step-body p strong { color: var(--text); font-weight: 700; }
@media (max-width: 639px) {
  .install-step { grid-template-columns: 46px 1fr; gap: 16px; }
  .install-step-num { width: 46px; height: 46px; font-size: 0.86rem; }
  .install-sequence::before { left: 23px; }
}

/* ── Subtle ambient drift on every dark section — adds depth without weight ── */
.section,
.featured,
.cta-band,
.hero,
.process-section {
  position: relative;
}
.section:not(.alt):not(.bright)::before,
.featured::before,
.cta-band::before {
  content: "";
  position: absolute;
  top: -1px; left: 50%;
  transform: translateX(-50%);
  width: min(800px, 90%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(68,182,73,0.35), transparent);
  pointer-events: none;
  z-index: 1;
}

/* Soft radial glow at top-center of dark sections */
.section:not(.alt):not(.bright)::after {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: min(800px, 90%);
  height: 220px;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, rgba(68,182,73,0.05) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.section > * { position: relative; z-index: 1; }

/* CTA band gets a brighter glow */
.cta-band {
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-elevated) 100%);
  position: relative;
  overflow: hidden;
}
.cta-band::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 100%; height: 100%;
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(68,182,73,0.1) 0%, transparent 70%);
  pointer-events: none;
}
.cta-band > * { position: relative; z-index: 1; }

/* ── Section header eyebrows get a deliberate accent line ── */
.section-head .section-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.section-head .section-label::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--fl-green);
}

/* ── Card hover refinement — consistent green-glow border treatment ── */
.tech-card,
.benefit,
.product-card,
.client-tile {
  transition: border-color 0.32s var(--ease-out), transform 0.32s var(--ease-out), box-shadow 0.32s var(--ease-out);
}
.tech-card:hover,
.benefit:hover {
  border-color: rgba(68,182,73,0.4);
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.3), 0 0 0 1px rgba(68,182,73,0.1);
}

/* ── Hero bottom seam — fade-out for clean transition into next section ── */
.hero::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 120px;
  background: linear-gradient(180deg, transparent 0%, var(--bg) 100%);
  pointer-events: none;
  z-index: 2;
}
.hero > * { z-index: 3; }

/* ── Editorial display treatment — H2 weight + tracking refinement ── */
.section-title {
  letter-spacing: var(--ls-display);
  line-height: 1.08;
}
.feature-spread h2 {
  letter-spacing: var(--ls-display);
  line-height: 1.08;
}
.hero h1 {
  letter-spacing: var(--ls-display);
  line-height: 1.02;
}

/* ── Smooth scroll cue button ── */
.scroll-cue {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-quiet);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  animation: scroll-cue-bob 2.6s ease-in-out infinite;
}
.scroll-cue::after {
  content: "";
  width: 1px;
  height: 32px;
  background: linear-gradient(180deg, var(--fl-green), transparent);
}
@keyframes scroll-cue-bob {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.65; }
  50% { transform: translateX(-50%) translateY(6px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-cue { animation: none; }
}

/* ── Tier flagship card — oversized featured product treatment ── */
.tier-flagship {
  max-width: var(--content-max);
  margin: 0 auto 36px;
  padding: clamp(28px, 4vw, 44px);
  background:
    radial-gradient(ellipse 100% 80% at 0% 0%, rgba(68,182,73,0.12), transparent 50%),
    linear-gradient(160deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  display: grid;
  gap: clamp(20px, 3vw, 36px);
  grid-template-columns: 1fr;
  position: relative;
  overflow: hidden;
}
.tier-flagship::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: linear-gradient(180deg, var(--fl-green) 0%, var(--fl-green-bright) 100%);
}
@media (min-width: 800px) {
  .tier-flagship { grid-template-columns: 240px 1fr; align-items: center; }
}
.tier-flagship-mark {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tier-flagship-mark-name {
  font-size: clamp(2.6rem, 5vw, 3.8rem);
  font-weight: 900;
  letter-spacing: var(--ls-display);
  line-height: 1;
  color: var(--fl-green);
  text-shadow: 0 0 50px rgba(68,182,73,0.3);
}
.tier-flagship-mark-flag {
  display: inline-block;
  font-size: var(--fs-micro);
  font-weight: 800;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 4px 10px;
  background: rgba(68,182,73,0.1);
  border: 1px solid rgba(68,182,73,0.25);
  border-radius: 999px;
  width: fit-content;
}
.tier-flagship-body h3 {
  font-size: clamp(1.4rem, 2.6vw, 1.8rem);
  font-weight: 900;
  letter-spacing: var(--ls-display);
  line-height: 1.18;
  color: var(--text);
  margin-bottom: 14px;
}
.tier-flagship-body p {
  font-size: var(--fs-lede);
  line-height: 1.65;
  color: var(--text-muted);
  margin-bottom: 18px;
}
.tier-flagship-bullets {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tier-flagship-bullets li {
  position: relative;
  padding-left: 26px;
  font-size: var(--fs-small);
  color: var(--text-muted);
  line-height: 1.6;
}
.tier-flagship-bullets li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.7em;
  width: 16px; height: 1px;
  background: var(--fl-green);
}

/* ── Featured-projects grid (gallery + product subpages) ── */
.fp-grid {
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  gap: 18px;
}
@media (min-width: 760px) {
  .fp-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1080px) {
  .fp-grid { grid-template-columns: repeat(3, 1fr); }
}

.install-card-meta {
  font-size: var(--fs-small);
  color: var(--text-muted);
  margin-bottom: 8px;
  font-weight: 500;
  letter-spacing: var(--ls-body);
}

/* ── Contact form success state ── */
.contact-success {
  max-width: 540px;
  margin: 0 auto;
  padding: 48px 32px 36px;
  background: linear-gradient(160deg, rgba(68,182,73,0.1), rgba(68,182,73,0.02));
  border: 1px solid var(--fl-green);
  border-radius: var(--radius-lg);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.contact-success::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--fl-green), var(--fl-green-bright), var(--fl-green));
}
.contact-success-h {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  letter-spacing: var(--ls-display);
  color: var(--fl-green-bright);
  margin-bottom: 12px;
  line-height: 1.15;
}
.contact-success-p {
  color: var(--text-muted);
  font-size: var(--fs-lede);
  line-height: 1.65;
  margin-bottom: 22px;
}
.contact-success-foot {
  font-size: var(--fs-small);
  color: var(--text-quiet);
  font-weight: 600;
}
.contact-success-foot a {
  color: var(--fl-green);
  font-weight: 800;
  text-decoration: none;
  transition: color 0.18s;
}
.contact-success-foot a:hover { color: var(--fl-green-bright); }

/* About "Four things" — 4-card grid: never 3+1. 1 col mobile, 2x2 on laptops, 4-across on wide screens. Scoped so shared 6-card grids are unaffected. */
.benefits-grid.benefits-grid--four{grid-template-columns:1fr}
@media (min-width:640px){.benefits-grid.benefits-grid--four{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1200px){.benefits-grid.benefits-grid--four{grid-template-columns:repeat(4,1fr)}}

/* Lenis smooth-scroll (required runtime CSS) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}


/* Persistent mobile contact bar (conversion) */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:850;display:none;gap:10px;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:rgba(6,8,12,0.93);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-quiet)}
@media (max-width:768px){.sticky-cta{display:flex}body.has-sticky-cta{padding-bottom:74px}}
.sticky-cta a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 12px;border-radius:12px;font-weight:800;font-size:0.95rem;letter-spacing:-0.005em;text-decoration:none;transition:transform 0.15s}
.sticky-cta a:active{transform:scale(0.97)}
.sticky-cta-call{background:var(--bg-elevated);border:1px solid var(--border-strong);color:var(--text)}
.sticky-cta-quote{background:linear-gradient(180deg,var(--fl-green),var(--fl-green-dim));color:#06120a;box-shadow:0 6px 20px rgba(68,182,73,0.32)}
body.cta-modal-open .sticky-cta{display:none}
.mobile-nav.is-open ~ .sticky-cta{display:none}
@media (prefers-reduced-motion:reduce){.sticky-cta a{transition:none}}


/* ——— Install film band: ambient, scroll-gated background loop ——— */
.work-film{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(520px,82vh,860px);padding:clamp(56px,8vw,110px) clamp(20px,4vw,48px);background:#06080c;border-top:1px solid rgba(68,182,73,0.18);border-bottom:1px solid rgba(68,182,73,0.18)}
.work-film-media{position:absolute;inset:0;z-index:0}
.work-film-video{width:100%;height:100%;object-fit:cover;object-position:50% 0%;display:block}
.work-film-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,12,0.86) 0%,rgba(6,8,12,0.72) 22%,rgba(6,8,12,0.42) 42%,rgba(6,8,12,0.12) 60%,rgba(6,8,12,0) 74%),linear-gradient(180deg,rgba(6,8,12,0.3) 0%,rgba(6,8,12,0) 28%,rgba(6,8,12,0) 62%,rgba(6,8,12,0.5) 100%)}
.work-film-inner{position:relative;z-index:1;max-width:620px;width:100%;text-align:left}
.work-film-inner .section-title{color:#fff;margin-bottom:16px;text-align:left}
.work-film-inner .section-desc{color:rgba(255,255,255,0.78);margin:0 0 30px;max-width:52ch;text-align:left}
.work-film-inner .btn-ghost{border-color:rgba(255,255,255,0.32);color:#fff;background:rgba(6,8,12,0.35)}
.work-film-inner .btn-ghost:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.5)}
@media (max-width:768px){.work-film{min-height:460px;padding-top:64px;padding-bottom:56px}.work-film-inner{max-width:none}.work-film-scrim{background:linear-gradient(180deg,rgba(6,8,12,0.34) 0%,rgba(6,8,12,0.1) 26%,rgba(6,8,12,0.82) 100%)}}
