/* =====================================================================
   Greenhouse Solar Control — v4 "Sunlit" design system
   Playful, light, pastel-block aesthetic (ReelUp-inspired) layered over
   the forest-green brand. Warm-white base, butter / lilac / coral / mint
   pastel blocks, big rounded Baloo headlines, dark pill buttons, soft
   shadows, colorful floating stat cards.
   ===================================================================== */

:root{
  --font-display:"Baloo 2", ui-rounded, system-ui, sans-serif;
  --font-body:"Nunito Sans", ui-sans-serif, system-ui, sans-serif;

  /* base */
  --paper:oklch(0.984 0.006 95);          /* warm white page */
  --paper-2:oklch(0.965 0.009 95);        /* slightly deeper */
  --white:#ffffff;

  /* ink (dark green-black, reads almost black) */
  --ink:#000000;
  --ink-2:oklch(0.205 0.024 162);         /* darker pill / footer */
  --ink-soft:#000000;
  --ink-faint:oklch(0.56 0.018 158);

  /* brand greens */
  --forest:oklch(0.285 0.045 158);
  --accent:oklch(0.72 0.158 152);         /* spring green */
  --accent-deep:oklch(0.55 0.13 153);

  /* pastel block palette */
  --butter:oklch(0.915 0.085 96);         /* warm yellow */
  --butter-2:oklch(0.95 0.05 96);
  --butter-ink:oklch(0.42 0.09 80);
  --lilac:oklch(0.885 0.055 300);         /* lavender */
  --lilac-2:oklch(0.945 0.03 300);
  --lilac-ink:oklch(0.42 0.09 300);
  --coral:oklch(0.79 0.115 38);           /* warm coral */
  --coral-2:oklch(0.9 0.06 40);
  --coral-ink:oklch(0.46 0.12 36);
  --mint:oklch(0.9 0.07 158);             /* soft brand mint */
  --mint-2:oklch(0.95 0.04 158);
  --mint-ink:oklch(0.42 0.1 156);
  --sky:oklch(0.89 0.05 230);

  /* on dark */
  --on-dark:oklch(0.97 0.01 100);
  --on-dark-soft:oklch(0.82 0.025 130);
  --on-dark-faint:oklch(0.66 0.025 140);
  --line-dark:oklch(1 0 0 / 0.13);

  --line:oklch(0.27 0.03 160 / 0.1);
  --line-strong:oklch(0.27 0.03 160 / 0.18);

  --space-1:0.5rem; --space-2:0.75rem; --space-3:1rem; --space-4:1.5rem;
  --space-5:2rem; --space-6:3rem; --space-7:4.5rem; --space-8:6rem; --space-9:8rem;

  --r-sm:12px; --r:18px; --r-lg:26px; --r-xl:34px; --r-2xl:44px; --r-pill:999px;

  --shadow-sm:0 2px 6px oklch(0.3 0.03 160 / 0.05), 0 8px 22px oklch(0.3 0.03 160 / 0.06);
  --shadow:0 8px 24px oklch(0.3 0.03 160 / 0.08), 0 24px 60px oklch(0.3 0.03 160 / 0.09);
  --shadow-lg:0 16px 40px oklch(0.25 0.03 160 / 0.12), 0 44px 90px oklch(0.25 0.03 160 / 0.14);
  --shadow-pop:0 10px 30px oklch(0.25 0.03 160 / 0.16);

  --container:80rem;
  --header-h:78px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--font-body);font-size:17px;line-height:1.6;
  color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;line-height:1.02;letter-spacing:-0.015em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
em{font-style:normal;color:var(--accent-deep);}
::selection{background:var(--butter);color:var(--ink);}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1.75rem;}
.container--narrow{max-width:820px;}

/* ---------- Utilities ---------- */
.u-text-center{text-align:center;}
.u-text-right{text-align:right;}
.u-mt-sm{margin-top:1rem;}
.u-mt-md{margin-top:1.25rem;}
.u-mt-6{margin-top:var(--space-6);}
.u-fs-sm{font-size:0.875rem;}
.u-pt-0{padding-top:0!important;padding-block-start:0!important;}
.u-pb-sm{padding-bottom:1.25rem!important;padding-block-end:1.25rem!important;}

/* ---------- Background utilities (every token used site-wide) ---------- */
.u-bg-paper{background:var(--paper);}
.u-bg-paper-2{background:var(--paper-2);}
.u-bg-white{background:var(--white);}
.u-bg-forest{background:var(--forest);color:var(--on-dark);}
.u-bg-butter{background:var(--butter);}
.u-bg-butter-2{background:var(--butter-2);}
.u-bg-lilac{background:var(--lilac);}
.u-bg-lilac-2{background:var(--lilac-2);}
.u-bg-mint{background:var(--mint);}
.u-bg-mint-2{background:var(--mint-2);}
.u-bg-coral{background:var(--coral);}
.u-bg-coral-2{background:var(--coral-2);}
.u-bg-sky{background:var(--sky);}
.u-bg-ink{background:var(--ink);color:var(--on-dark);}

/* ---------- Section system ---------- */
.section{padding-block:var(--space-8);}
.section--sage{background:var(--mint-2);}
.section--white{background:var(--white);}
.section--lilac{background:var(--lilac-2);}
.section--butter{background:var(--butter-2);}
.section--forest{background:var(--forest);color:var(--on-dark);}
.section--forest .section-head__title{color:var(--on-dark);}
.section--forest .section-head__lead{color:var(--on-dark-soft);}
.section--forest .prose,.section--forest .prose p,.section--forest .prose li{color:var(--on-dark-soft);}
.section--forest .prose strong,.section--forest .prose h2,.section--forest .prose h3{color:var(--on-dark);}
.section--forest .prose a{color:var(--accent);}

.section-head{display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--space-5);align-items:end;margin-bottom:var(--space-6);}
.section-head__title{font-size:clamp(2.2rem,3.8vw,3.5rem);letter-spacing:-0.02em;text-wrap:balance;}
.section-head__lead{color:var(--ink-soft);font-size:1.08rem;line-height:1.55;max-width:46ch;}
.section-head--center{display:flex;flex-direction:column;align-items:center;text-align:center;width:75%;margin-inline:auto;}
.section-head--center .section-head__lead{max-width:100%;margin-top:0.45rem;}
.section-head--center .section-head__title{max-width:100%;}

/* ---------- Interior page hero ---------- */
.page-hero{padding-top:var(--space-7);padding-bottom:var(--space-6);}
.page-hero__title{font-size:clamp(2.4rem,4.4vw,4rem);letter-spacing:-0.025em;text-wrap:balance;margin-top:1.1rem;}
.page-hero__lead{color:var(--ink-soft);font-size:1.12rem;line-height:1.6;max-width:60ch;margin-top:1.1rem;}
.page-hero__lead a{color:var(--accent-deep);font-weight:700;}
.page-hero__actions{display:flex;flex-wrap:wrap;gap:0.8rem;margin-top:1.75rem;}
@media (max-width:680px){.page-hero__actions .btn{flex:1;justify-content:center;}}

/* small rounded pill label */
.eyebrow{
  display:inline-flex;align-items:center;gap:0.5rem;
  font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink);background:var(--butter);
  padding:0.45rem 0.9rem;border-radius:var(--r-pill);
}
.eyebrow--dot::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink);}
.eyebrow--on-dark{color:var(--ink);background:var(--accent);}

.link{color:var(--accent-deep);font-weight:800;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);transition:box-shadow .2s,color .2s;}
.link:hover{box-shadow:inset 0 -3px 0 0 currentColor;}
.section--forest .link{color:var(--accent);box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.5);}

.section-divider{height:0;}

/* ---------- Buttons (pill) ---------- */
.btn{
  display:inline-flex;align-items:center;gap:0.55rem;
  font-family:var(--font-display);font-weight:600;font-size:1rem;
  padding:0.9rem 1.6rem;border-radius:var(--r-pill);border:2px solid transparent;
  transition:transform .15s, background .2s, color .2s, border-color .2s, box-shadow .2s;
  white-space:nowrap;line-height:1.1;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn__icon{display:inline-flex;}
/* stacked: forces a long label onto two centered lines */
.btn--stack{white-space:normal;text-align:center;line-height:1.25;max-width:17rem;padding-top:0.85rem;padding-bottom:0.85rem;}
.btn__icon svg{width:17px;height:17px;transition:transform .2s;}
.btn:hover .btn__icon svg{transform:translateX(3px);}

/* primary = green pill */
.btn--primary,.btn--green{background:var(--accent);color:var(--forest);}
.btn--primary:hover,.btn--green:hover{background:oklch(0.77 0.17 150);box-shadow:var(--shadow-pop);}
/* secondary = black pill */
.btn--secondary,.btn--dark,.btn--accent,.btn--brand{background:var(--ink);color:var(--on-dark);}
.btn--secondary:hover,.btn--dark:hover,.btn--accent:hover,.btn--brand:hover{background:var(--ink-2);box-shadow:var(--shadow-pop);}
/* white pill with border (secondary on light) */
.btn--white{background:var(--white);color:var(--ink);border-color:var(--line-strong);}
.btn--white:hover{border-color:var(--ink);box-shadow:var(--shadow-sm);}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn--outline:hover{background:var(--ink);color:var(--on-dark);border-color:var(--ink);box-shadow:var(--shadow-sm);}
/* ghost on dark */
.btn--ghost-dark,.btn--ghost-light{background:oklch(1 0 0 / 0.08);color:var(--on-dark);border-color:var(--line-dark);}
.btn--ghost-dark:hover,.btn--ghost-light:hover{background:oklch(1 0 0 / 0.16);border-color:oklch(1 0 0 / 0.4);}

/* =====================================================================
   HEADER (light, clean — ReelUp style)
   ===================================================================== */
.header{position:sticky;top:0;z-index:60;background:var(--paper);color:var(--ink);}
.header__topbar{background:var(--ink-2);color:var(--on-dark-soft);font-size:0.8rem;}
.header__topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:1rem;}
.header__topbar-list{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;}
.header__topbar-list li{display:inline-flex;align-items:center;gap:0.5rem;}
.header__topbar-list svg{width:14px;height:14px;color:var(--accent);flex:none;}
.header__topbar-list a:hover{color:var(--on-dark);}
.header__topbar-cta{display:inline-flex;align-items:center;gap:0.4rem;color:var(--butter);font-weight:800;}
.header__topbar-cta:hover{color:var(--white);}

.header__main{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--header-h);}
.js-header.is-stuck{box-shadow:0 8px 30px oklch(0.2 0.03 160 / 0.1);border-bottom:1px solid var(--line);}
.js-header.is-stuck .header__main{height:66px;}

.header__logo{display:inline-flex;align-items:center;gap:0.65rem;}
.header__logo-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;background:var(--accent);box-shadow:0 6px 16px oklch(0.72 0.158 152 / 0.35);}
.header__logo-mark svg{width:30px;height:30px;}
.header__logo-text{display:flex;flex-direction:column;line-height:1;}
.header__logo-text strong{font-family:var(--font-display);font-weight:800;font-size:1.32rem;letter-spacing:-0.02em;color:var(--ink);}
.header__logo-text small{font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px;}
.header__logo-img{height:50px;width:auto;display:block;mix-blend-mode:multiply;}

.nav{display:flex;align-items:center;gap:0.1rem;}
.nav__item{position:relative;}
.nav__link{display:inline-flex;align-items:center;gap:0.3rem;padding:0.55rem 0.85rem;border-radius:var(--r-pill);font-family:var(--font-display);font-weight:600;font-size:0.98rem;color:var(--ink-soft);transition:background .2s,color .2s;}
.nav__link svg{width:14px;height:14px;opacity:0.6;transition:transform .2s;}
.nav__item:hover .nav__link{background:var(--butter);color:var(--ink);}
.nav__item:hover .nav__link svg{transform:rotate(180deg);opacity:1;}
.nav__link.is-active{background:var(--butter);color:var(--accent-deep);}
.nav__dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(8px);min-width:290px;background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:0.5rem;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;z-index:70;}
.nav__dropdown::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;}
.nav__item:hover .nav__dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav__dropdown-link{display:block;padding:0.6rem 0.85rem;border-radius:var(--r-sm);font-size:0.92rem;font-weight:700;color:var(--ink-soft);transition:background .15s,color .15s;}
.nav__dropdown-link:first-child{color:var(--accent-deep);}
.nav__dropdown-link:hover{background:var(--butter-2);color:var(--ink);}
.nav__dropdown-link.is-active{background:var(--butter-2);color:var(--accent-deep);}

.header__cta{display:flex;align-items:center;gap:1rem;}
.header__phone{display:flex;flex-direction:column;line-height:1.15;text-align:right;}
.header__phone span{font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint);}
.header__phone strong{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);}
.header__phone strong a:hover{color:var(--accent-deep);}
.header__menu-toggle{display:none;background:var(--white);border:1px solid var(--line-strong);border-radius:12px;width:44px;height:44px;align-items:center;justify-content:center;color:var(--ink);}
.header__menu-toggle svg{width:22px;height:22px;}

/* ---------- Mobile nav ---------- */
.mobile-nav__overlay{position:fixed;inset:0;background:oklch(0.2 0.03 160 / 0.5);opacity:0;visibility:hidden;transition:.25s;z-index:90;backdrop-filter:blur(2px);}
.mobile-nav__overlay.is-open{opacity:1;visibility:visible;}
.mobile-nav{position:fixed;top:0;right:0;height:100%;width:min(92vw,380px);background:var(--paper);z-index:100;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);}
.mobile-nav.is-open{transform:translateX(0);}
.mobile-nav__head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white);}
.mobile-nav__close{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;width:42px;height:42px;display:grid;place-items:center;color:var(--ink);}
.mobile-nav__close svg{width:20px;height:20px;}
.mobile-nav__list{flex:1;overflow-y:auto;padding:0.5rem 0.75rem;}
.mobile-nav__item{border-bottom:1px solid var(--line);}
.mobile-nav__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:0.5rem;background:none;border:none;padding:0.95rem 0.5rem;font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);text-align:left;}
.mobile-nav__trigger-icon{transition:transform .25s;color:var(--accent-deep);}
.mobile-nav__trigger-icon svg{width:18px;height:18px;display:block;}
.mobile-nav__item.is-open .mobile-nav__trigger-icon{transform:rotate(180deg);}
.mobile-nav__sub{max-height:0;overflow:hidden;transition:max-height .28s ease;}
.mobile-nav__item.is-open .mobile-nav__sub{max-height:760px;}
.mobile-nav__sub-inner{padding:0 0.5rem 0.75rem;display:flex;flex-direction:column;gap:0.1rem;}
.mobile-nav__sublink{padding:0.55rem 0.75rem;border-radius:var(--r-sm);font-size:0.92rem;color:var(--ink-soft);font-weight:700;}
.mobile-nav__sublink:hover{background:var(--butter-2);color:var(--ink);}
.mobile-nav__sublink.is-active{background:var(--butter-2);color:var(--accent-deep);}
.mobile-nav__trigger.is-active{color:var(--accent-deep);}
.mobile-nav__footer{padding:1.25rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:0.75rem;background:var(--paper-2);}
.mobile-nav__footer .btn{width:100%;justify-content:center;}
.mobile-nav__footer-meta{display:flex;justify-content:space-between;font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-faint);}

/* =====================================================================
   HERO (light, big rounded headline, floating pastel cards)
   ===================================================================== */
.hero{background:var(--paper);color:var(--ink);padding-block:var(--space-6) var(--space-7);position:relative;overflow:hidden;}
.hero--compact{padding-bottom:var(--space-5);}
.hero::before{content:"";position:absolute;top:-12%;right:-6%;width:46%;height:80%;background:radial-gradient(closest-side, var(--lilac-2), transparent 72%);pointer-events:none;z-index:0;}
.hero::after{content:"";position:absolute;bottom:-18%;left:-8%;width:40%;height:70%;background:radial-gradient(closest-side, var(--butter-2), transparent 72%);pointer-events:none;z-index:0;}
.hero .container{position:relative;z-index:1;}
.hero__head{width:90%;max-width:1040px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;}
.hero__trustbar{display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem 1.5rem;margin-bottom:1.6rem;}
.hero__trustbar li{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);}
.hero__trustbar li::before{content:"";width:15px;height:15px;flex:none;border-radius:50%;background:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315321d' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:11px;background-position:center;background-repeat:no-repeat;}
.hero__eyebrow{display:inline-flex;align-items:center;gap:0.55rem;padding:0.45rem 1rem;border-radius:var(--r-pill);background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-sm);font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);}
.hero__eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px oklch(0.72 0.158 152 / 0.22);}
.hero__title{margin-top:0;font-size:clamp(1.5rem,3.3vw,2.7rem);line-height:1.1;letter-spacing:-0.025em;color:var(--ink);text-wrap:balance;}
.hero__title em{color:var(--accent-deep);position:relative;white-space:nowrap;}
.hero__title em::after{content:"";position:absolute;left:0;right:0;bottom:13px;height:5px;background:var(--butter);border-radius:var(--r-pill);z-index:-1;}
.hero__lead{margin-top:1.3rem;font-size:1.04rem;line-height:1.65;color:var(--ink-soft);max-width:100%;}
.hero__lead-link{color:var(--accent-deep);font-weight:800;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);transition:box-shadow .2s;}
.hero__lead-link:hover{box-shadow:inset 0 -3px 0 0 currentColor;}
.hero__actions{margin-top:1.9rem;display:flex;flex-direction:column;align-items:center;gap:0.9rem;}
.hero__actions-label{font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-faint);}
.hero__actions-btns{display:flex;align-items:center;justify-content:center;gap:0.9rem;flex-wrap:wrap;}
#residential,#commercial{scroll-margin-top:calc(var(--header-h) + 24px);}

/* full-width hero photo */
.hero__media{width:100%;margin-top:2.4rem;}
.hero__media-img{display:block;width:100%;height:auto;aspect-ratio:2.4/1;border-radius:var(--r-2xl);overflow:hidden;box-shadow:var(--shadow-lg);background:linear-gradient(160deg,var(--lilac-2),var(--mint-2));object-fit:cover;object-position:center;}
.hero__media-img--top{object-position:top center;}
.hero__lead{margin:1.5rem auto 0;max-width:880px;text-align:center;}

/* centered stage: phone mockup + floating cards */
.hero__stage{position:relative;margin-top:2.6rem;min-height:560px;display:flex;justify-content:center;align-items:flex-start;}
.hero__device{position:relative;z-index:2;width:300px;max-width:74vw;aspect-ratio:300/600;background:#121212;border-radius:44px;padding:11px;box-shadow:0 34px 80px oklch(0.2 0.03 160 / 0.4), inset 0 0 0 2px oklch(1 0 0 / 0.08);}
.hero__device-notch{position:absolute;top:21px;left:50%;transform:translateX(-50%);width:118px;height:25px;background:#121212;border-radius:0 0 16px 16px;z-index:3;}
.hero__device-screen{display:block;width:100%;height:100%;border-radius:33px;overflow:hidden;background:linear-gradient(165deg, var(--accent), var(--accent-deep) 55%, var(--forest));}

.hero-opts{position:absolute;z-index:3;top:46%;left:calc(50% + 86px);transform:translateY(-50%);display:flex;flex-direction:column;gap:0.7rem;}
.hero-opt{display:flex;align-items:center;gap:0.6rem;}
.hero-opt__chip{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--forest);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:0.85rem;flex:none;box-shadow:var(--shadow-sm);}
.hero-opt__bar{background:var(--white);box-shadow:var(--shadow);border-radius:var(--r-pill);padding:0.5rem 1.05rem;font-family:var(--font-display);font-weight:700;font-size:0.8rem;color:var(--ink);white-space:nowrap;}

.hero-float{position:absolute;z-index:4;background:var(--white);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:1.1rem 1.2rem;animation:heroFloat 6s ease-in-out infinite;}
.hero-float__icon{display:inline-grid;place-items:center;margin-bottom:0.7rem;}
.hero-float__icon svg{width:26px;height:26px;}
.hero-float__num{font-family:var(--font-display);font-weight:800;font-size:1.75rem;color:var(--ink);line-height:1;letter-spacing:-0.02em;}
.hero-float__cap{font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-faint);margin-top:0.4rem;}

.hero-float--tl{top:16%;left:0;width:198px;background:var(--butter);}
.hero-float--tl .hero-float__icon{color:var(--butter-ink);}
.hero-float--tl .hero-float__num{color:var(--ink);}
.hero-float--tl .hero-float__cap{color:var(--butter-ink);opacity:0.85;}
.hero-float--br{bottom:9%;right:0;width:198px;background:var(--coral);animation-delay:-3s;}
.hero-float--br .hero-float__icon{color:var(--coral-ink);}
.hero-float--br .hero-float__cap{color:var(--coral-ink);opacity:0.9;}

.hero-float--tr{top:4%;right:2%;width:188px;display:flex;flex-direction:column;gap:0.7rem;padding:0.8rem;animation-delay:-1.5s;}
.hero-float__thumb{display:block;width:100%;height:118px;border-radius:14px;background:linear-gradient(150deg,var(--lilac),var(--sky));}
.hero-float__meta strong{display:block;font-family:var(--font-display);font-weight:700;font-size:0.94rem;color:var(--ink);}
.hero-float__meta span{font-family:var(--font-display);font-weight:800;font-size:0.92rem;color:var(--accent-deep);}

.hero-float--bl{bottom:18%;left:1%;width:240px;display:flex;align-items:center;gap:0.85rem;padding:0.75rem;animation-delay:-4.5s;}
.hero-float__avatar{display:block;width:62px;height:62px;border-radius:12px;flex:none;background:linear-gradient(150deg,var(--mint),var(--accent));}
.hero-float__share{min-width:0;}
.hero-float__share strong{display:block;font-family:var(--font-display);font-weight:700;font-size:0.9rem;color:var(--ink);line-height:1.2;margin-bottom:0.55rem;}
.hero-float__btn{display:inline-flex;font-family:var(--font-display);font-weight:700;font-size:0.78rem;background:var(--ink);color:var(--on-dark);padding:0.36rem 0.9rem;border-radius:var(--r-pill);}
.hero-float__btn:hover{background:var(--ink-2);}

@keyframes heroFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@media (prefers-reduced-motion: reduce){.hero-float{animation:none;}}

/* ---------- Image placeholder ---------- */
.ph{position:relative;background:linear-gradient(150deg, var(--lilac), var(--sky) 120%);display:grid;place-items:center;overflow:hidden;}
.ph--dark{background:linear-gradient(150deg, var(--forest), var(--ink-2) 220%);}
.ph__label{position:relative;z-index:1;font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.02em;color:var(--ink);background:oklch(1 0 0 / 0.85);padding:0.4rem 0.8rem;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:0.45rem;backdrop-filter:blur(4px);}
.ph__label::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--accent-deep);flex:none;}

/* =====================================================================
   BRAND / LOGO STRIP
   ===================================================================== */
.logo-strip{background:var(--white);border-block:1px solid var(--line);}
.logo-strip .container{padding-block:var(--space-5);}
.logo-strip__inner{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;justify-content:space-between;}
.logo-strip__label{font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint);max-width:14ch;line-height:1.4;}
.logo-strip__logos{display:flex;align-items:center;gap:2.2rem;flex-wrap:wrap;flex:1;justify-content:space-around;}
.logo-strip__logo{display:inline-flex;align-items:baseline;gap:0.3rem;font-family:var(--font-display);font-weight:800;font-size:1.5rem;letter-spacing:-0.01em;color:var(--ink);opacity:0.85;transition:opacity .2s,transform .2s;}
.logo-strip__logo small{font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);}
.logo-strip__logo:hover{opacity:1;transform:translateY(-2px);}

/* =====================================================================
   METRIC BAR — colorful pastel stat cards (ReelUp benchmark grid)
   ===================================================================== */
.metric-bar{background:var(--paper);}
.metric-bar__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;padding-block:var(--space-6);}
.metric-bar__item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0.4rem;padding:1.6rem 1.2rem;border-radius:var(--r-lg);box-shadow:var(--shadow-sm);}
.metric-bar__item:nth-child(1){background:var(--butter);}
.metric-bar__item:nth-child(2){background:var(--lilac);}
.metric-bar__item:nth-child(3){background:var(--mint);}
.metric-bar__item:nth-child(4){background:var(--coral);}
.metric-bar__value{font-family:var(--font-display);font-weight:800;font-size:clamp(2.1rem,3.3vw,2.9rem);letter-spacing:-0.02em;color:var(--ink);line-height:1;}
.metric-bar__value em{color:var(--ink);opacity:0.55;}
.metric-bar__label{font-family:var(--font-body);font-weight:800;font-size:0.74rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink);opacity:0.62;}

/* =====================================================================
   DEFINITION
   ===================================================================== */
.definition{padding-block:var(--space-8);background:var(--paper);}
.definition__card{display:grid;grid-template-columns:1.5fr 0.85fr;grid-template-areas:"head aside" "content aside";align-items:start;gap:0 var(--space-6);background:var(--white);border:1px solid var(--line);border-radius:var(--r-2xl);padding:clamp(2rem,4vw,3.5rem);box-shadow:var(--shadow-sm);}
.definition__heading{grid-area:head;font-size:clamp(2rem,3.6vw,3rem);}
.definition__content{grid-area:content;}
.definition__aside{grid-area:aside;}
.definition__heading{font-size:clamp(2rem,3.6vw,3rem);}
.definition__lead{margin-top:1.4rem;font-size:1.28rem;line-height:1.5;color:var(--ink);font-weight:700;font-family:var(--font-display);letter-spacing:-0.01em;}
.definition__lead strong{color:var(--accent-deep);}
.definition__body{margin-top:1.2rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.7;}
.definition__aside{background:var(--lilac-2);border-radius:var(--r-xl);padding:2rem 1.75rem;align-self:stretch;display:flex;flex-direction:column;}
.definition__aside h4{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--lilac-ink);text-align:center;margin-bottom:0.5rem;}
/* mobile: stretch the benefit panel to the card edges, no radius (stays inside the card) */
@media (max-width:680px){
  .definition__aside{margin-left:calc(-1 * clamp(2rem,4vw,3.5rem));margin-right:calc(-1 * clamp(2rem,4vw,3.5rem));border-radius:0;padding-left:1.5rem;padding-right:1.5rem;}
}

/* ---- What film does (benefit list) ---- */
.film-does{display:flex;flex-direction:column;gap:0.7rem;margin-top:1.1rem;}
.film-does__item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0.9rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:0.9rem 1.05rem;box-shadow:var(--shadow-sm);}
.film-does__icon{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;}
.film-does__icon svg{width:20px;height:20px;}
.film-does__item:nth-child(1) .film-does__icon{background:var(--coral-2);color:var(--coral-ink);}
.film-does__item:nth-child(2) .film-does__icon{background:var(--butter-2);color:var(--butter-ink);}
.film-does__item:nth-child(3) .film-does__icon{background:var(--lilac-2);color:var(--lilac-ink);}
.film-does__item:nth-child(4) .film-does__icon{background:var(--mint-2);color:var(--mint-ink);}
.film-does__text{display:flex;flex-direction:column;line-height:1.2;font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink);}
.film-does__text small{font-family:var(--font-body);font-weight:700;font-size:0.78rem;color:var(--ink-faint);margin-top:2px;}
.film-does__stat{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--accent-deep);letter-spacing:-0.01em;white-space:nowrap;}

/* ---- Data-viz cards (climate) ---- */
.viz-stack{display:flex;flex-direction:column;gap:0.85rem;}
.viz-card{position:relative;border-radius:var(--r-lg);padding:1.6rem;overflow:hidden;}
.viz-card__arrow{position:absolute;top:1.3rem;right:1.3rem;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;}
.viz-card__arrow svg{width:15px;height:15px;}
.viz-card--score{background:var(--accent);color:var(--forest);}
.viz-card--score .viz-card__arrow{background:oklch(0.27 0.045 158 / 0.18);color:var(--forest);}
.viz-card__label{font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;}
.viz-card--score .viz-card__label{color:var(--forest);opacity:0.82;}
.viz-card__val{font-family:var(--font-display);font-weight:800;font-size:2.8rem;line-height:1;letter-spacing:-0.02em;margin-top:0.5rem;}
.viz-card__sub{font-size:0.82rem;margin-top:0.35rem;}
.viz-card--score .viz-card__sub{color:var(--forest);opacity:0.8;}
.viz-card--chart{background:var(--white);border:1px solid var(--line);}
.viz-card--chart .viz-card__label{color:var(--ink-faint);}
.viz-card--chart .viz-card__arrow{background:var(--coral);color:var(--coral-ink);}
.viz-card__chart{margin-top:1rem;width:100%;height:64px;display:block;}
.viz-card__foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:0.6rem;}
.viz-card__peak{font-family:var(--font-display);font-weight:800;font-size:1.45rem;color:var(--ink);}
.viz-card__peak small{font-family:var(--font-body);font-weight:800;font-size:0.7rem;color:var(--coral-ink);margin-left:0.35rem;}
.viz-card__note{font-family:var(--font-body);font-weight:800;font-size:0.7rem;color:var(--ink-faint);}

/* =====================================================================
   CLIMATE / WHY HOUSTON
   ===================================================================== */
.climate__grid{display:grid;grid-template-columns:1fr 0.85fr;gap:var(--space-6);align-items:start;}
.climate__body{margin-top:0;}
.climate__topics{display:block;}
.climate__topic{display:none;}
.climate__topic.is-active{display:block;}
.climate__topic-body{display:grid;grid-template-columns:1fr 0.9fr;gap:var(--space-5);align-items:stretch;}
.climate__topic-body>.climate__panel,.climate__topic-body>.climate__viz-state{height:100%;}
.climate__acc-head{display:none;}

/* interactive topic explorer */
.climate__tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:0.7rem;margin-bottom:1.4rem;}
.climate__tab{display:flex;align-items:center;gap:0.85rem;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:0.85rem 1.1rem;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;}
.climate__tab:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.climate__tab-icon{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--paper-2);color:var(--accent-deep);transition:background .18s,color .18s;}
.climate__tab-icon svg{width:21px;height:21px;}
.climate__tab-text{display:flex;flex-direction:column;line-height:1.15;}
.climate__tab-text strong{font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);}
.climate__tab-text small{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;}
.climate__tab.is-active{background:var(--ink);border-color:var(--ink);box-shadow:var(--shadow);}
.climate__tab.is-active .climate__tab-text strong{color:var(--on-dark);}
.climate__tab.is-active .climate__tab-text small{color:var(--on-dark-faint);}
.climate__tab.is-active .climate__tab-icon{background:var(--accent);color:var(--forest);}

.climate__panel{animation:climFade .35s ease;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.7rem 1.85rem;box-shadow:var(--shadow-sm);}
.climate__panel[hidden]{display:none;}
.climate__panel p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7;}
.climate__panel p + p{margin-top:1rem;}
@keyframes climFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

.climate__viz-state{animation:climFade .35s ease;display:flex;flex-direction:column;}
.climate__viz-state[hidden]{display:none;}

/* merged stat + graphic + text card */
.viz-merged{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.7rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1.2rem;flex:1;}
.viz-merged__head{display:flex;flex-direction:column;gap:0.25rem;}
.viz-merged__num{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,3.4vw,2.9rem);line-height:1;letter-spacing:-0.02em;color:var(--accent-deep);}
.viz-merged__cap{font-family:var(--font-body);font-weight:800;font-size:0.74rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);}
.viz-merged__graphic{background:var(--paper-2);border-radius:var(--r);padding:1.1rem 1.25rem;}
.viz-merged__glabel{display:block;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.7rem;}
.viz-merged__text{font-size:0.96rem;line-height:1.6;color:var(--ink-soft);}

/* fade / resistance comparison bars */
.fade-test{display:flex;flex-direction:column;gap:0.7rem;margin-top:1rem;}
.fade-test__row{display:grid;grid-template-columns:84px 1fr 44px;align-items:center;gap:0.7rem;}
.fade-test__name{font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.02em;text-transform:uppercase;color:var(--ink-faint);}
.fade-test__bar{height:12px;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden;}
.fade-test__fill{display:block;height:100%;border-radius:var(--r-pill);}
.fade-test__fill--bad{background:var(--coral);}
.fade-test__fill--good{background:linear-gradient(90deg,var(--accent-deep),var(--accent));}
.fade-test__pct{font-family:var(--font-display);font-weight:800;font-size:0.95rem;color:var(--ink);text-align:right;}

.snippet{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--r);padding:1.3rem 1.45rem;margin:1.5rem 0;color:var(--ink);font-size:1rem;line-height:1.6;box-shadow:var(--shadow-sm);}
.snippet--center{max-width:60rem;margin:var(--space-4) auto 0;}

/* commercial savings estimator */
.savings{max-width:64rem;margin:var(--space-5) auto 0;display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--space-5);align-items:center;background:var(--ink);border-radius:var(--r-2xl);padding:clamp(1.75rem,3.5vw,2.75rem);}
.savings__intro .snippet__label{color:var(--accent);}
.savings__title{margin-top:0.7rem;font-size:1.7rem;color:var(--on-dark);letter-spacing:-0.01em;}
.savings__title em{color:var(--accent);}
.savings__note{margin-top:0.85rem;color:var(--on-dark-soft);font-size:0.96rem;line-height:1.6;}
.savings__control-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:0.85rem;}
.savings__control-head label{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--on-dark-faint);}
.savings__val{font-family:var(--font-display);font-weight:700;color:var(--on-dark);font-size:1.15rem;white-space:nowrap;}
.savings__val b{font-weight:800;font-size:1.6rem;color:var(--accent);margin-right:0.15rem;}
.savings__slider{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:var(--r-pill);outline:none;cursor:pointer;background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--sav-fill,9%), oklch(1 0 0 / 0.12) var(--sav-fill,9%), oklch(1 0 0 / 0.12) 100%);}
.savings__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--white);border:5px solid var(--accent);box-shadow:0 4px 12px oklch(0 0 0 / 0.4);cursor:pointer;transition:transform .15s;}
.savings__slider::-webkit-slider-thumb:hover{transform:scale(1.12);}
.savings__slider::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--white);border:5px solid var(--accent);box-shadow:0 4px 12px oklch(0 0 0 / 0.4);cursor:pointer;}
.savings__scale{display:flex;justify-content:space-between;margin-top:0.5rem;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.04em;color:var(--on-dark-faint);}
.savings__results{display:grid;grid-template-columns:1fr 1fr;gap:0.85rem;margin-top:1.4rem;}
.savings__result{background:oklch(1 0 0 / 0.06);border:1px solid var(--line-dark);border-radius:var(--r);padding:1rem 1.1rem;}
.savings__result--primary{grid-column:1 / -1;background:var(--accent);border-color:var(--accent);}
.savings__result small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:0.3rem;}
.savings__result--primary small{color:var(--forest);opacity:0.75;}
.savings__result strong{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--on-dark);letter-spacing:-0.01em;}
.savings__result--primary strong{font-size:1.7rem;color:var(--forest);}
.snippet__label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:0.5rem;}
.snippet strong{color:var(--accent-deep);}
.climate__viz{align-self:stretch;}
.climate__facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:var(--space-5);}
.climate__fact{border-radius:var(--r);padding:1.35rem 1.4rem;text-align:center;}
.climate__fact:nth-child(1){background:var(--butter);}
.climate__fact:nth-child(2){background:var(--lilac);}
.climate__fact:nth-child(3){background:var(--coral);}
.climate__fact:nth-child(4){background:var(--mint);}
.climate__fact strong{display:block;font-family:var(--font-display);font-weight:800;font-size:1.85rem;letter-spacing:-0.02em;color:var(--ink);}
.climate__fact small{font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink);opacity:0.6;}

/* mobile: tabs -> accordion of topics */
@media (max-width:780px){
  .climate__tabs{display:none;}
  .climate__topics{display:flex;flex-direction:column;gap:0.85rem;}
  .climate__topic{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
  .climate__acc-head{display:flex;align-items:center;gap:0.85rem;width:100%;padding:1.05rem 1.15rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;}
  .climate__acc-icon{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--paper-2);color:var(--accent-deep);}
  .climate__acc-icon svg{width:21px;height:21px;}
  .climate__acc-text{flex:1;display:flex;flex-direction:column;line-height:1.15;min-width:0;}
  .climate__acc-text strong{font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);}
  .climate__acc-text small{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;}
  .climate__acc-chevron{flex:none;color:var(--ink-faint);display:grid;place-items:center;transition:transform .25s ease;}
  .climate__acc-chevron svg{width:20px;height:20px;}
  .climate__topic.is-active{box-shadow:var(--shadow);}
  .climate__topic.is-active .climate__acc-icon{background:var(--accent);color:var(--forest);}
  .climate__topic.is-active .climate__acc-chevron{transform:rotate(180deg);}
  .climate__topic-body{display:none;}
  .climate__topic.is-active .climate__topic-body{display:flex;flex-direction:column;gap:1rem;padding:0 1.15rem 1.2rem;}
  .climate__topic-body>.climate__panel,.climate__topic-body>.climate__viz-state{height:auto;}
  .climate__topic-body .climate__panel{background:transparent;border:none;box-shadow:none;padding:0;animation:none;}
  .climate__topic-body .viz-merged{background:var(--paper-2);border:none;box-shadow:none;}
}

/* =====================================================================
   CTA BAR — pastel block
   ===================================================================== */
.cta-bar{position:relative;overflow:hidden;background:var(--paper);}
.cta-bar .container{padding-block:var(--space-6) var(--space-7);}
.cta-bar__inner{background:var(--butter);border-radius:var(--r-2xl);padding:clamp(2rem,4vw,3.4rem);display:grid;grid-template-columns:1.4fr auto;gap:var(--space-5);align-items:center;position:relative;overflow:hidden;}
.cta-bar__inner::before{content:"";position:absolute;right:-6%;top:-50%;width:46%;height:200%;background:radial-gradient(closest-side, oklch(0.96 0.08 96 / 0.7), transparent 70%);pointer-events:none;}
.cta-bar__title{position:relative;font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:1.08;color:var(--ink);max-width:26ch;letter-spacing:-0.02em;}
.cta-bar__title em{color:var(--accent-deep);}
.cta-bar__actions{position:relative;display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;}
.cta-bar--accent .cta-bar__inner{background:var(--mint);}
.cta-bar--accent .cta-bar__inner::before{background:radial-gradient(closest-side, oklch(0.95 0.06 158 / 0.8), transparent 70%);}
.cta-bar--accent .cta-bar__title{color:var(--ink);}
.cta-bar--accent .cta-bar__title em{color:var(--accent-deep);}

/* =====================================================================
   SERVICES — bento cards
   ===================================================================== */
.services__intro{font-family:var(--font-display);font-weight:700;font-size:1.3rem;line-height:1.45;max-width:62ch;color:var(--ink);margin-bottom:var(--space-5);letter-spacing:-0.01em;}
.services__intro--after{margin:var(--space-6) auto 0;text-align:center;margin-bottom:0;}
.services__grid{display:flex;gap:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:1.5rem 1.25rem 2rem;margin-inline:0;scrollbar-width:none;cursor:grab;}
.services__grid.is-dragging{cursor:grabbing;user-select:none;}
.services__grid::-webkit-scrollbar{display:none;}
.service-card{position:relative;flex:0 0 calc((100% - 2.5rem) / 3);display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;transition:transform .2s,box-shadow .2s;}
.service-card:hover{transform:translateY(-6px);box-shadow:0 12px 26px oklch(0.3 0.03 160 / 0.15);}
.service-card__media{aspect-ratio:16/11;position:relative;overflow:hidden;}
.service-card:nth-child(4n+1) .service-card__media{background:linear-gradient(150deg,var(--butter),var(--coral-2) 130%);}
.service-card:nth-child(4n+2) .service-card__media{background:linear-gradient(150deg,var(--lilac),var(--sky) 130%);}
.service-card:nth-child(4n+3) .service-card__media{background:linear-gradient(150deg,var(--mint),var(--accent) 150%);}
.service-card:nth-child(4n+4) .service-card__media{background:linear-gradient(150deg,var(--coral),var(--butter) 140%);}
.service-card__body{padding:1.5rem;display:flex;flex-direction:column;flex:1;}
.service-card__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;flex:none;background:var(--butter);color:var(--butter-ink);}
.service-card:nth-child(4n+2) .service-card__icon{background:var(--lilac);color:var(--lilac-ink);}
.service-card:nth-child(4n+3) .service-card__icon{background:var(--mint);color:var(--mint-ink);}
.service-card:nth-child(4n+4) .service-card__icon{background:var(--coral);color:var(--coral-ink);}
.service-card__icon svg{width:23px;height:23px;}
.service-card__title{font-size:1.18rem;line-height:1.18;letter-spacing:-0.01em;}
.service-card__title a{color:var(--ink);transition:color .2s;}
.service-card__title a::after{content:"";position:absolute;inset:0;z-index:1;}
.service-card:hover .service-card__title a{color:var(--accent-deep);}
.service-card__desc{margin-top:0.7rem;font-size:0.93rem;line-height:1.55;color:var(--ink-soft);flex:1;}
.service-card__link{margin-top:1.1rem;display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.9rem;color:var(--accent-deep);}
.service-card__link svg{width:15px;height:15px;transition:transform .2s;}
.service-card:hover .service-card__link svg{transform:translateX(4px);}
.services__footer{margin-top:var(--space-6);text-align:center;}
.services__nav{display:flex;justify-content:flex-end;gap:0.5rem;margin-bottom:1.1rem;}
.carousel-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:background .2s,color .2s,border-color .2s,opacity .2s;}
.carousel-btn:hover{background:var(--ink);color:var(--on-dark);border-color:var(--ink);}
.carousel-btn svg{width:20px;height:20px;}
.carousel-btn:disabled{opacity:0.35;cursor:not-allowed;}
.carousel-btn:disabled:hover{background:var(--white);color:var(--ink);border-color:var(--line-strong);}

/* =====================================================================
   FILM TYPES TABLE + CALCULATOR
   ===================================================================== */
.film-types{background:var(--paper);}
.film-types__table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--white);box-shadow:var(--shadow-sm);}
.film-types__table{width:100%;border-collapse:collapse;min-width:760px;}
.film-types__table th{text-align:left;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);padding:1.1rem 1.25rem;background:var(--paper-2);border-bottom:1px solid var(--line);}
.film-types__table td{padding:1.1rem 1.25rem;border-bottom:1px solid var(--line);font-size:0.92rem;color:var(--ink-soft);vertical-align:middle;}
.film-types__table tbody tr:last-child td{border-bottom:none;}
.film-types__table tbody tr:hover{background:var(--butter-2);}
.film-types__type{display:flex;flex-direction:column;gap:0.2rem;}
.film-types__type-name{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink);}
.film-types__type-name a{color:var(--accent-deep);}
.film-types__type-name a:hover{text-decoration:underline;}
.film-types__type-use{font-size:0.78rem;color:var(--ink-faint);}
.film-types__bar{height:8px;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden;margin-bottom:0.35rem;max-width:130px;}
.film-types__bar-fill{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--accent-deep),var(--accent));}
.film-types__bar-val{font-family:var(--font-body);font-weight:800;font-size:0.78rem;color:var(--ink);}
.film-types__price{font-family:var(--font-display);font-weight:700;color:var(--accent-deep)!important;white-space:nowrap;}
.film-types__footnote{margin-top:1.1rem;font-size:0.86rem;color:var(--ink-faint);}

/* interactive film finder */
.filmfinder{display:grid;grid-template-columns:0.8fr 1.2fr;gap:1.25rem;align-items:stretch;margin-top:var(--space-4);}
.filmfinder__tabs{display:flex;flex-direction:column;gap:0.5rem;}
.filmfinder__tab{display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:0.85rem 1.05rem;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;}
.filmfinder__tab:hover{transform:translateX(3px);box-shadow:var(--shadow-sm);}
.filmfinder__tab strong{font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);}
.filmfinder__tab small{font-family:var(--font-body);font-weight:700;font-size:0.74rem;color:var(--ink-faint);}
.filmfinder__tab.is-active{background:var(--ink);border-color:var(--ink);box-shadow:var(--shadow);}
.filmfinder__tab.is-active strong{color:var(--on-dark);}
.filmfinder__tab.is-active small{color:var(--on-dark-faint);}
.filmfinder__panels{position:relative;}
.filmfinder__item{display:none;height:100%;}
.filmfinder__item.is-active{display:block;}
.filmfinder__acc-head{display:none;}
.filmfinder__panel{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:1.7rem 1.85rem;height:100%;display:flex;flex-direction:column;animation:climFade .35s ease;}
.filmfinder__panel[hidden]{display:none;}
.filmfinder__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;border-bottom:1px solid var(--line);padding-bottom:1.1rem;margin-bottom:1.25rem;}
.filmfinder__name{font-size:1.6rem;letter-spacing:-0.01em;color:var(--ink);}
.filmfinder__use{margin-top:0.45rem;font-size:0.95rem;line-height:1.55;color:var(--ink-soft);max-width:42ch;}
.filmfinder__price{flex:none;text-align:right;font-family:var(--font-display);font-weight:800;font-size:1.65rem;letter-spacing:-0.01em;color:var(--accent-deep);line-height:1;white-space:nowrap;}
.filmfinder__price small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);margin-top:4px;}
.filmfinder__specs{display:flex;flex-direction:column;gap:0.9rem;}
.spec{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:0.9rem;}
.spec__label{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);}
.spec__bar{height:10px;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden;}
.spec__fill{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--accent-deep),var(--accent));}
.spec__val{font-family:var(--font-display);font-weight:800;font-size:0.9rem;color:var(--ink);white-space:nowrap;text-align:right;}
.spec--chip{grid-template-columns:120px 1fr;}
.spec__chip{justify-self:start;font-family:var(--font-display);font-weight:700;font-size:0.9rem;color:var(--ink);background:var(--paper-2);border-radius:var(--r-pill);padding:0.3rem 0.85rem;}
.filmfinder__link{margin-top:auto;padding-top:1.3rem;display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--accent-deep);}
.filmfinder__link svg{width:16px;height:16px;transition:transform .2s;}
.filmfinder__link:hover svg{transform:translateX(4px);}

/* mobile: film finder tabs -> accordion */
@media (max-width:780px){
  .filmfinder{grid-template-columns:1fr;gap:0.85rem;}
  .filmfinder__tabs{display:none;}
  .filmfinder__panels{display:flex;flex-direction:column;gap:0.85rem;}
  .filmfinder__item{display:block;height:auto;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
  .filmfinder__acc-head{display:flex;align-items:center;gap:0.85rem;width:100%;padding:1.05rem 1.15rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;}
  .filmfinder__acc-text{flex:1;display:flex;flex-direction:column;line-height:1.15;min-width:0;}
  .filmfinder__acc-text strong{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);}
  .filmfinder__acc-text small{font-family:var(--font-body);font-weight:700;font-size:0.76rem;color:var(--ink-faint);margin-top:2px;}
  .filmfinder__acc-chevron{flex:none;color:var(--ink-faint);display:grid;place-items:center;transition:transform .25s ease;}
  .filmfinder__acc-chevron svg{width:20px;height:20px;}
  .filmfinder__item.is-active{box-shadow:var(--shadow);}
  .filmfinder__item.is-active .filmfinder__acc-chevron{transform:rotate(180deg);}
  .filmfinder__item .filmfinder__panel{display:none;}
  .filmfinder__item.is-active .filmfinder__panel{display:flex;background:transparent;border:none;box-shadow:none;border-radius:0;padding:0 1.15rem 1.25rem;height:auto;}
}

.calc{margin-top:var(--space-6);display:grid;grid-template-columns:0.9fr 1.1fr;gap:var(--space-5);align-items:center;background:var(--ink);border-radius:var(--r-2xl);padding:clamp(1.75rem,3.5vw,2.85rem);color:var(--on-dark);}
.calc__intro h3{font-size:1.8rem;color:var(--on-dark);letter-spacing:-0.01em;}
.calc__intro h3 em{color:var(--accent);}
.calc__intro p{margin-top:0.85rem;color:var(--on-dark-soft);font-size:0.96rem;line-height:1.6;max-width:42ch;}
.calc__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.calc__field{display:flex;flex-direction:column;gap:0.45rem;}
.calc__field label{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--on-dark-faint);}

/* slider field */
.calc__field--slider{gap:0.85rem;margin-bottom:0.4rem;}
.calc__slider-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;}
.calc__slider-value{font-family:var(--font-display);font-weight:700;color:var(--on-dark);font-size:1.15rem;line-height:1;white-space:nowrap;}
.calc__slider-value b{font-weight:800;font-size:1.9rem;color:var(--accent);margin-right:0.15rem;}
.calc__slider{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:var(--r-pill);outline:none;cursor:pointer;background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--calc-fill,30%), oklch(1 0 0 / 0.12) var(--calc-fill,30%), oklch(1 0 0 / 0.12) 100%);}
.calc__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--white);border:5px solid var(--accent);box-shadow:0 4px 12px oklch(0 0 0 / 0.4);cursor:pointer;transition:transform .15s;}
.calc__slider::-webkit-slider-thumb:hover{transform:scale(1.12);}
.calc__slider::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--white);border:5px solid var(--accent);box-shadow:0 4px 12px oklch(0 0 0 / 0.4);cursor:pointer;}
.calc__slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px oklch(0.72 0.158 152 / 0.4);}
.calc__slider-scale{display:flex;justify-content:space-between;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.04em;color:var(--on-dark-faint);}

/* segmented film control */
.calc__segmented{display:flex;flex-wrap:wrap;gap:0.4rem;margin-top:0.15rem;}
.calc__seg{font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--on-dark-soft);background:oklch(1 0 0 / 0.08);border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:0.5rem 0.95rem;cursor:pointer;transition:background .18s,color .18s,border-color .18s;}
.calc__seg:hover{background:oklch(1 0 0 / 0.14);color:var(--on-dark);}
.calc__seg.is-active{background:var(--accent);border-color:var(--accent);color:var(--forest);}

.calc__input,.calc__select{background:oklch(1 0 0 / 0.08);border:1px solid var(--line-dark);border-radius:var(--r-sm);padding:0.8rem 0.9rem;color:var(--on-dark);font-family:var(--font-display);font-size:1.05rem;font-weight:600;}
.calc__input:focus,.calc__select:focus{outline:none;border-color:var(--accent);background:oklch(1 0 0 / 0.12);}
.calc__select option{color:var(--ink);background:var(--white);}
.calc__result{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line-dark);}
.calc__result small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:0.3rem;}
.calc__result .js-calc-result{font-family:var(--font-display);font-weight:800;font-size:2rem;letter-spacing:-0.01em;color:var(--accent);}
.calc__result-val{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--on-dark);}

@media (max-width:560px){
  .calc__result{flex-direction:column;align-items:stretch;gap:1rem;}
  .calc__result>div{text-align:left!important;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;}
  .calc__result>div small{margin-bottom:0;}
  .calc__result .js-calc-result{font-size:1.6rem;}
}

/* =====================================================================
   LOCATIONS
   ===================================================================== */
.locations__grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:var(--space-6);align-items:start;}
.locations__cards{display:grid;gap:1rem;}
.location-card{display:grid;grid-template-columns:auto 1fr auto;gap:1.1rem;align-items:start;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--shadow-sm);}
.location-card__num{font-family:var(--font-display);font-weight:800;font-size:0.95rem;color:var(--ink);background:var(--butter);width:36px;height:36px;border-radius:11px;display:grid;place-items:center;}
.location-card:nth-child(2) .location-card__num{background:var(--lilac);}
.location-card__name{font-size:1.4rem;}
.location-card__addr{margin-top:0.4rem;font-size:0.88rem;color:var(--ink-soft);line-height:1.5;}
.location-card__addr strong{color:var(--ink);}
.location-card__cta{align-self:center;font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--accent-deep);white-space:nowrap;}
@media (max-width:560px){
  .location-card{grid-template-columns:1fr;grid-template-areas:"num" "content" "cta";gap:0.7rem;}
  .location-card__num{grid-area:num;}
  .location-card>div{grid-area:content;}
  .location-card__cta{grid-area:cta;align-self:start;justify-self:start;}
}
.cities{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line);}
.cities__label{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.85rem;}
.cities__list{display:flex;flex-wrap:wrap;gap:0.5rem;}
.cities__list a,.cities__list span{display:inline-flex;padding:0.4rem 0.95rem;border-radius:var(--r-pill);background:var(--white);border:1px solid var(--line);font-size:0.84rem;font-weight:800;color:var(--ink-soft);transition:.18s;}
.cities__list a:hover{background:var(--butter);border-color:transparent;color:var(--ink);}
.map{position:relative;background:var(--ink);border-radius:var(--r-2xl);padding:1.4rem;overflow:hidden;display:flex;flex-direction:column;gap:1.1rem;}
.map__head{display:flex;align-items:center;justify-content:space-between;gap:0.8rem;flex-wrap:wrap;}
.map__title{display:inline-flex;align-items:center;gap:0.55rem;font-family:var(--font-display);font-weight:800;font-size:0.98rem;color:var(--on-dark);}
.map__title::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);}
.map__filters{display:flex;gap:0.25rem;background:oklch(1 0 0 / 0.06);border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:0.25rem;}
.map__filter{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.78rem;color:var(--on-dark-soft);background:transparent;border:none;border-radius:var(--r-pill);padding:0.38rem 0.85rem;cursor:pointer;transition:background .18s,color .18s;}
.map__filter:hover{color:var(--on-dark);}
.map__filter.is-active{background:var(--on-dark);color:var(--ink);}
.map__filter-dot{width:8px;height:8px;border-radius:50%;flex:none;}
.map__filter-dot--h{background:#e2b257;}
.map__filter-dot--k{background:var(--accent);}

.map__plot{position:relative;width:100%;aspect-ratio:1/1;}
.map__rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.map__grid{stroke:oklch(1 0 0 / 0.06);stroke-width:0.25;}
.map__ring{fill:none;stroke:oklch(1 0 0 / 0.12);stroke-width:0.3;stroke-dasharray:1 1.5;}
.map__ring-label{fill:var(--on-dark-faint);font-family:var(--font-body);font-weight:800;font-size:2.3px;letter-spacing:0.18em;}
.map__coverage{fill:none;stroke-width:0.7;opacity:0;transition:opacity .45s ease;}
.map__coverage--h{stroke:#e2b257;fill:oklch(0.78 0.12 80 / 0.06);}
.map__coverage--k{stroke:var(--accent);fill:oklch(0.72 0.158 152 / 0.06);}
.map__link{stroke:oklch(1 0 0 / 0.09);stroke-width:0.3;transition:stroke .25s,opacity .35s;}
.map__link.is-hot{stroke-width:0.6;}
.map__link--h.is-hot{stroke:oklch(0.78 0.12 80 / 0.65);}
.map__link--k.is-hot{stroke:oklch(0.72 0.158 152 / 0.65);}

.map[data-filter="houston"] .map__coverage--h{opacity:1;}
.map[data-filter="katy"] .map__coverage--k{opacity:1;}
.map[data-filter="houston"] .map__pin[data-branch="katy"],
.map[data-filter="katy"] .map__pin[data-branch="houston"]{opacity:0.26;filter:saturate(0.35);}
.map[data-filter="houston"] .map__link--k,
.map[data-filter="katy"] .map__link--h{opacity:0.18;}

.map__pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:0.28rem;background:none;border:none;padding:0;cursor:pointer;z-index:2;transition:opacity .3s,filter .3s;}
.map__pin-dot{width:11px;height:11px;border-radius:50%;background:var(--on-dark-soft);border:2px solid var(--ink);transition:transform .2s ease,box-shadow .2s ease,background .2s ease;}
.map__pin-name{font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.01em;color:var(--on-dark-soft);white-space:nowrap;opacity:0;transform:translateY(-3px);pointer-events:none;transition:opacity .2s,transform .2s;}
.map__pin:hover{z-index:6;}
.map__pin:hover .map__pin-dot,.map__pin:focus-visible .map__pin-dot,.map__pin.is-linked .map__pin-dot{transform:scale(1.45);background:var(--on-dark);box-shadow:0 0 0 4px oklch(1 0 0 / 0.14);}
.map__pin:hover .map__pin-name,.map__pin:focus-visible .map__pin-name,.map__pin.is-linked .map__pin-name{opacity:1;transform:translateY(0);}
.map__pin:focus-visible{outline:none;}
.map__pin:focus-visible .map__pin-dot{box-shadow:0 0 0 3px var(--accent);}

.map__pin--branch{z-index:4;}
.map__pin--branch .map__pin-dot{width:18px;height:18px;border-width:3px;}
.map__pin--branch .map__pin-name{opacity:1;transform:none;font-size:0.7rem;color:var(--on-dark);}
.map__pin--houston .map__pin-dot{background:#e2b257;border-color:oklch(0.3 0.05 80);}
.map__pin--katy .map__pin-dot{background:var(--accent);border-color:var(--forest);}

.map__tip{position:absolute;z-index:8;min-width:128px;max-width:190px;background:var(--white);color:var(--ink);border-radius:var(--r);padding:0.7rem 0.85rem;box-shadow:0 12px 34px oklch(0 0 0 / 0.5);transform:translate(-50%,calc(-100% - 16px));opacity:0;pointer-events:none;transition:opacity .14s ease;}
.map__tip.is-on{opacity:1;}
.map__tip.is-below{transform:translate(-50%,16px);}
.map__tip::after{content:"";position:absolute;left:50%;bottom:-5px;width:11px;height:11px;background:var(--white);transform:translateX(-50%) rotate(45deg);}
.map__tip.is-below::after{bottom:auto;top:-5px;}
.map__tip-name{display:block;font-family:var(--font-display);font-weight:800;font-size:0.98rem;letter-spacing:-0.01em;line-height:1.1;}
.map__tip-branch{display:inline-flex;align-items:center;gap:0.4rem;margin-top:0.4rem;font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);}
.map__tip-branch-dot{width:7px;height:7px;border-radius:50%;flex:none;}
.map__tip-meta{display:block;margin-top:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.82rem;color:var(--accent-deep);}

.map__foot{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;flex-wrap:wrap;}
.map__legend{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.03em;color:var(--on-dark-soft);}
.map__hint{font-family:var(--font-body);font-weight:700;font-size:0.66rem;letter-spacing:0.02em;color:var(--on-dark-faint);}

@media (prefers-reduced-motion: no-preference){
  .map__pin--houston .map__pin-dot{animation:mapPulseGold 2.8s ease-out infinite;}
  .map__pin--katy .map__pin-dot{animation:mapPulseGreen 2.8s ease-out infinite;}
}
@keyframes mapPulseGold{0%{box-shadow:0 0 0 0 oklch(0.78 0.12 80 / 0.5);}70%,100%{box-shadow:0 0 0 13px oklch(0.78 0.12 80 / 0);}}
@keyframes mapPulseGreen{0%{box-shadow:0 0 0 0 oklch(0.72 0.158 152 / 0.5);}70%,100%{box-shadow:0 0 0 13px oklch(0.72 0.158 152 / 0);}}

/* =====================================================================
   PROCESS  (dark ink block)
   ===================================================================== */
.process{background:var(--ink);}
.process .eyebrow{background:var(--accent);color:var(--forest);}
.process .eyebrow--dot::before{background:var(--forest);}
.process__timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;position:relative;}
.process-step{position:relative;padding-top:2.5rem;}
.process-step::before{content:"";position:absolute;top:21px;left:0;right:-1.25rem;height:2px;background:var(--line-dark);}
.process-step:last-child::before{display:none;}
.process-step__num{position:absolute;top:0;left:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;z-index:1;background:var(--accent);color:var(--forest);font-family:var(--font-display);font-weight:800;font-size:1.1rem;box-shadow:0 0 0 6px var(--ink);}
.process-step__time{display:inline-block;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink);background:var(--butter);padding:0.28rem 0.7rem;border-radius:var(--r-pill);margin-bottom:0.75rem;}
.process-step__title{font-size:1.22rem;color:var(--on-dark);}
.process-step__desc{margin-top:0.6rem;font-size:0.9rem;line-height:1.6;color:var(--on-dark-soft);}

/* interactive stepper */
.stepper__rail{position:relative;display:flex;justify-content:space-between;gap:1rem;margin-bottom:2.2rem;}
.stepper__track{position:absolute;left:23px;right:23px;top:23px;height:3px;background:var(--line-dark);border-radius:var(--r-pill);z-index:0;overflow:hidden;}
.stepper__progress{display:block;height:100%;width:0;background:var(--accent);border-radius:var(--r-pill);transition:width .4s ease;}
.stepper__node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0.6rem;background:none;border:none;cursor:pointer;flex:1;padding:0;}
.stepper__dot{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);border:2px solid var(--line-dark);color:var(--on-dark-soft);font-family:var(--font-display);font-weight:800;font-size:1.15rem;transition:transform .25s,background .25s,border-color .25s,color .25s,box-shadow .25s;}
.stepper__label{font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--on-dark-faint);transition:color .25s;text-align:center;}
.stepper__node:hover .stepper__dot{border-color:var(--accent);color:var(--on-dark);}
.stepper__node.is-done .stepper__dot{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--on-dark);}
.stepper__node.is-active .stepper__dot{background:var(--accent);border-color:var(--accent);color:var(--forest);transform:scale(1.1);box-shadow:0 8px 22px oklch(0.72 0.158 152 / 0.4);}
.stepper__node.is-active .stepper__label,.stepper__node.is-done .stepper__label{color:var(--on-dark);}

.stepper__stage{position:relative;background:oklch(1 0 0 / 0.05);border:1px solid var(--line-dark);border-radius:var(--r-xl);padding:clamp(1.6rem,3vw,2.6rem);}
.stepper__panel{animation:climFade .35s ease;}
.stepper__panel[hidden]{display:none;}
.stepper__panel-head{display:flex;align-items:center;gap:1.1rem;margin-bottom:0.7rem;}
.stepper__panel-time{display:inline-block;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--forest);background:var(--accent);padding:0.25rem 0.7rem;border-radius:var(--r-pill);margin-bottom:0.5rem;}
.stepper__panel-num{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;color:var(--accent);letter-spacing:-0.02em;}
.stepper__panel-title{font-size:clamp(1.5rem,2.4vw,2rem);color:var(--on-dark);letter-spacing:-0.01em;}
.stepper__panel-desc{margin-top:0.9rem;font-size:1.05rem;line-height:1.7;color:var(--on-dark-soft);max-width:62ch;}

.stepper__nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.6rem;}
.stepper__btn{display:inline-flex;align-items:center;gap:0.5rem;background:oklch(1 0 0 / 0.08);border:1px solid var(--line-dark);color:var(--on-dark);font-family:var(--font-display);font-weight:700;font-size:0.95rem;padding:0.7rem 1.3rem;border-radius:var(--r-pill);cursor:pointer;transition:background .2s,border-color .2s,opacity .2s;}
.stepper__btn svg{width:17px;height:17px;}
.stepper__btn:hover:not(:disabled){background:oklch(1 0 0 / 0.16);border-color:oklch(1 0 0 / 0.4);}
.stepper__btn:disabled{opacity:0.32;cursor:not-allowed;}
.stepper__counter{font-family:var(--font-display);font-weight:700;color:var(--on-dark-faint);font-size:1rem;}
.stepper__counter b{color:var(--accent);font-size:1.35rem;}

/* =====================================================================
   TRUST
   ===================================================================== */
.trust{background:var(--mint-2);}
.trust .section-head__title em{color:var(--accent-deep);}
.credentials{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;padding-block:var(--space-5);border-block:1px solid var(--line);margin-bottom:var(--space-6);}
.credentials__item{display:flex;align-items:center;gap:0.8rem;}
.credentials__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:none;background:var(--white);color:var(--accent-deep);box-shadow:var(--shadow-sm);}
.credentials__item:nth-child(1) .credentials__icon{background:var(--butter);color:var(--butter-ink);}
.credentials__item:nth-child(2) .credentials__icon{background:var(--lilac);color:var(--lilac-ink);}
.credentials__item:nth-child(3) .credentials__icon{background:var(--coral);color:var(--coral-ink);}
.credentials__item:nth-child(4) .credentials__icon{background:var(--mint);color:var(--mint-ink);}
.credentials__item:nth-child(5) .credentials__icon{background:var(--sky);color:oklch(0.4 0.1 235);}
.credentials__icon svg{width:22px;height:22px;}
.credentials__text{display:flex;flex-direction:column;line-height:1.2;}
.credentials__text strong{font-family:var(--font-display);font-weight:800;font-size:1rem;color:var(--ink);}
.credentials__text small{font-size:0.78rem;color:var(--ink-faint);}
.reviews__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;}
.reviews__bar-meta{display:flex;align-items:center;gap:0.8rem;}
.reviews__stars-lg{color:oklch(0.78 0.16 75);letter-spacing:0.1em;font-size:1.1rem;white-space:nowrap;flex:none;}
.reviews__bar-text{font-family:var(--font-display);font-weight:700;font-size:0.98rem;color:var(--ink);}
.reviews__nav{display:flex;gap:0.5rem;}
.reviews{display:flex;gap:1.25rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:1.25rem 0.5rem 1.75rem;scrollbar-width:none;cursor:grab;}
.reviews.is-dragging{cursor:grabbing;user-select:none;}
.reviews::-webkit-scrollbar{display:none;}
.review{flex:0 0 calc((100% - 2.5rem) / 3);display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.8rem;box-shadow:var(--shadow-sm);}
.review__avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;flex:none;background:var(--butter);color:var(--butter-ink);}
.review:nth-child(3n+2) .review__avatar{background:var(--lilac);color:var(--lilac-ink);}
.review:nth-child(3n) .review__avatar{background:var(--mint);color:var(--mint-ink);}
.review__text{flex:1;}
.review__stars{color:oklch(0.78 0.16 75);letter-spacing:0.12em;font-size:0.95rem;margin-bottom:0.9rem;}
.review__text{font-size:1rem;line-height:1.6;color:var(--ink);font-family:var(--font-display);font-weight:600;}
.review__author{display:flex;align-items:center;gap:0.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line);}
.review__avatar-placeholder-removed{}
.review__name{font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--ink);}
.review__city{font-size:0.78rem;color:var(--ink-faint);}
.brands{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem;margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--line);}
.brands__label{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
.brands__list{display:flex;flex-wrap:wrap;gap:1rem;flex:1;}
.brand-logo{display:inline-flex;align-items:baseline;gap:0.35rem;font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--ink);padding:0.5rem 1.1rem;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--white);}
.brand-logo small{font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);}
.brand-logo:hover{border-color:transparent;background:var(--butter);}

/* =====================================================================
   FAQ
   ===================================================================== */
.faq{background:var(--paper);}
.faq__grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:var(--space-6);align-items:start;}
.faq__intro{position:sticky;top:100px;}
.faq__intro-text{color:var(--ink-soft);margin-top:1rem;max-width:36ch;}
.faq__list{display:flex;flex-direction:column;gap:0.75rem;}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.faq-item.is-open{border-color:transparent;box-shadow:var(--shadow);}
.faq-item.is-open .faq-item__trigger{background:var(--butter-2);}
.faq-item__trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:none;border:none;padding:1.3rem 1.45rem;text-align:left;font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);transition:background .2s;}
.faq-item__icon{width:34px;height:34px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--butter);color:var(--butter-ink);transition:transform .25s,background .2s,color .2s;}
.faq-item__icon svg{width:17px;height:17px;}
.faq-item.is-open .faq-item__icon{transform:rotate(45deg);background:var(--ink);color:var(--on-dark);}
.faq-item__panel{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-item.is-open .faq-item__panel{max-height:680px;}
.faq-item__panel-inner{padding:0 1.45rem 1.45rem;color:var(--ink-soft);font-size:0.96rem;line-height:1.7;}
.faq-item__panel-inner strong{color:var(--ink);}

/* =====================================================================
   FINAL CTA — big butter block
   ===================================================================== */
.final-cta{background:var(--butter);position:relative;}
.final-cta .container{position:relative;z-index:1;padding-block:var(--space-7);}
.final-cta__inner{text-align:center;width:80%;margin-inline:auto;}
.final-cta__inner>*{max-width:100%;}
.final-cta .eyebrow{background:var(--ink);color:var(--on-dark);justify-content:center;margin-inline:auto;}
.final-cta__title{font-size:clamp(2.3rem,4.6vw,3.8rem);color:var(--ink);letter-spacing:-0.025em;margin-top:1.25rem;}
.final-cta__title em{color:var(--accent-deep);}
.final-cta__lead{margin-top:1.25rem;font-size:1.1rem;line-height:1.6;color:var(--ink-soft);max-width:100%;margin-inline:auto;}
.final-cta__phone{display:inline-block;margin-top:1.75rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2.3rem,5vw,3.3rem);letter-spacing:-0.02em;color:var(--ink);}
.final-cta__phone:hover{color:var(--accent-deep);}
.final-cta__actions{margin-top:1.75rem;display:flex;gap:0.85rem;justify-content:center;flex-wrap:wrap;}

/* =====================================================================
   FOOTER  (dark ink)
   ===================================================================== */
.footer{background:var(--ink-2);color:var(--on-dark-soft);padding-top:var(--space-7);}
.footer .header__logo-text strong{color:var(--on-dark);}
.footer .header__logo-text small{color:var(--on-dark-faint);}
.footer .header__logo-img{mix-blend-mode:normal;background:#fff;padding:10px 14px;border-radius:14px;height:68px;}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--space-5);padding-bottom:var(--space-6);}
.footer__brand>p{margin-top:1.1rem;font-size:0.92rem;line-height:1.6;max-width:34ch;color:var(--on-dark-faint);}
.footer__socials{display:flex;gap:0.6rem;margin-top:1.25rem;}
.footer__socials a{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:oklch(1 0 0 / 0.06);border:1px solid var(--line-dark);color:var(--on-dark-soft);transition:.2s;}
.footer__socials a svg{width:18px;height:18px;}
.footer__socials a:hover{background:var(--accent);border-color:var(--accent);color:var(--forest);transform:translateY(-2px);}
.footer__col-head{width:100%;background:none;border:none;padding:0;color:var(--on-dark);font-family:var(--font-display);font-weight:700;font-size:1.05rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;cursor:default;}
.footer__col-icon{display:none;}
.footer__col-list{display:flex;flex-direction:column;gap:0.6rem;}
.footer__col-list a,.footer__contact-item a{font-size:0.9rem;color:var(--on-dark-faint);transition:color .2s;}
.footer__col-list a:hover,.footer__contact-item a:hover{color:var(--accent);}
.footer__col-content{display:flex;flex-direction:column;gap:1rem;}
.footer__contact-item{display:flex;align-items:flex-start;gap:0.7rem;font-size:0.9rem;line-height:1.45;color:var(--on-dark-faint);}
.footer__contact-item svg{width:17px;height:17px;color:var(--accent);flex:none;margin-top:2px;}
.footer__contact-item strong{color:var(--on-dark);}
.footer__trust{display:flex;flex-wrap:wrap;gap:1.5rem;padding-block:1.5rem;border-top:1px solid var(--line-dark);}
.footer__trust-item{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.85rem;font-weight:800;color:var(--on-dark-soft);}
.footer__trust-item svg{width:15px;height:15px;color:var(--accent);flex:none;}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.5rem;border-top:1px solid var(--line-dark);font-size:0.82rem;color:var(--on-dark-faint);}
.footer__bottom-links{display:flex;gap:1.25rem;}
.footer__attribution{display:flex;justify-content:center;align-items:center;padding-block:1.15rem;border-top:1px solid var(--line-dark);}
.footer__attribution-link{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.8rem;color:var(--on-dark-faint);transition:color .2s;}
.footer__attribution-logo{width:18px;height:18px;border-radius:4px;flex:none;}
.footer__attribution-link strong{color:var(--on-dark);font-weight:800;letter-spacing:-0.01em;}
.footer__attribution-link:hover,.footer__attribution-link:hover strong{color:var(--accent);}
.footer__bottom-links a:hover{color:var(--accent);}

/* =====================================================================
   ARTICLE / HUB-PAGE COMPONENTS
   Reusable building blocks for interior service & hub pages.
   (Future Astro components: TrustBar, Prose, Callout, Split, StatGrid,
    QaCard, Tile, Steps, DataTable, GeoCard, FactList)
   ===================================================================== */

/* hero trust strip */
.trust-bar{border-top:1px solid var(--line);margin-top:var(--space-5);padding-top:1.5rem;}
.trust-bar__list{display:flex;flex-wrap:wrap;justify-content:center;gap:0.85rem 1.9rem;}
.trust-bar__item{display:inline-flex;align-items:center;gap:0.55rem;font-family:var(--font-display);font-weight:600;font-size:0.95rem;color:var(--ink);}
.trust-bar__item svg{width:20px;height:20px;color:var(--accent-deep);flex:none;}

/* marquee variant — single continuous line on every screen */
.trust-bar--marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.trust-bar--marquee .trust-bar__list{display:flex;flex-wrap:nowrap;width:max-content;gap:0;justify-content:flex-start;animation:trustMarquee 32s linear infinite;}
.trust-bar--marquee .trust-bar__item{flex:none;white-space:nowrap;padding:0 1.75rem;position:relative;}
.trust-bar--marquee .trust-bar__item::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:0.5;}
.trust-bar--marquee:hover .trust-bar__list{animation-play-state:paused;}
@keyframes trustMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.trust-bar__item--brand{color:var(--ink-faint);}
.trust-bar__brand{display:inline-flex;align-items:baseline;gap:0.35rem;font-family:var(--font-display);font-weight:800;font-size:1.08rem;letter-spacing:-0.01em;color:var(--ink);}
.trust-bar__brand small{font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint);}
/* standalone marquee band (interior service / home pages, where the logo strip was) */
.marquee-band{padding-block:1.5rem;border-block:1px solid var(--line);background:var(--paper);}
.marquee-band .trust-bar{border-top:none;margin-top:0;padding-top:0;}
@media (prefers-reduced-motion:reduce){
  .trust-bar--marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;}
  .trust-bar--marquee .trust-bar__list{animation:none;}
}

/* article prose */
.prose{max-width:66ch;}
.prose>*+*{margin-top:1.15rem;}
.prose p{color:var(--ink-soft);font-size:1.06rem;line-height:1.7;}
.prose a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);transition:box-shadow .2s;}
.prose a:hover{box-shadow:inset 0 -3px 0 0 currentColor;}
.prose strong{color:var(--ink);font-weight:800;}
.prose--wide{max-width:82ch;}
.prose__kicker{font-family:var(--font-display);font-weight:600;font-size:1.18rem;line-height:1.45;color:var(--ink);}

/* highlight callout / definition box */
.callout{background:var(--lilac-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.5rem);}
.callout__label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--lilac-ink);margin-bottom:0.75rem;}
.callout p{color:var(--ink-soft);font-size:1.08rem;line-height:1.7;}
.callout p+p{margin-top:1rem;}
.callout p strong{color:var(--ink);font-weight:800;}
.callout a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.callout__lead{font-family:var(--font-display);font-weight:600;font-size:1.22rem;line-height:1.4;color:var(--ink);}
.callout--caution{background:var(--butter-2);}
.callout--caution .callout__label{color:var(--butter-ink);}

/* two-column split (body + sticky aside) */
.split{display:grid;grid-template-columns:1.15fr 0.85fr;gap:var(--space-6);align-items:start;}
.split__aside{position:sticky;top:100px;}

/* stat card grid (e.g. "Houston by the numbers") */
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:0.85rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;box-shadow:var(--shadow-sm);}
.statgrid__title{grid-column:1 / -1;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-deep);}
.stat{background:var(--paper-2);border-radius:var(--r-sm);padding:1rem 1.1rem;}
.stat strong{display:block;font-family:var(--font-display);font-weight:800;font-size:1.65rem;letter-spacing:-0.02em;color:var(--ink);}
.stat small{display:block;margin-top:0.25rem;font-weight:700;font-size:0.8rem;color:var(--ink-faint);}

/* Q&A answer cards (snippet blocks) */
.qa-list{display:flex;flex-direction:column;gap:1.25rem;}
.qa-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.3rem);box-shadow:var(--shadow-sm);}
.qa-card__q{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-0.01em;color:var(--ink);}
.qa-card__answer{margin-top:0.9rem;font-family:var(--font-display);font-weight:600;font-size:1.12rem;line-height:1.42;color:var(--accent-deep);}
.qa-card p{margin-top:0.8rem;color:var(--ink-soft);line-height:1.7;font-size:0.99rem;}
.qa-card a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}

/* tile grid (film types) */
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.tile-grid--3{grid-template-columns:repeat(3,1fr);}
.tile--plain{cursor:default;}
.tile--plain:hover{transform:none;box-shadow:var(--shadow-sm);}
.tile--plain p a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}

/* breadcrumb */
.breadcrumb{display:flex;align-items:center;gap:0.5rem;font-family:var(--font-body);font-weight:700;font-size:0.82rem;color:var(--ink-faint);margin-bottom:1.2rem;}
.breadcrumb a{color:var(--accent-deep);}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb span[aria-current]{color:var(--ink);}

/* ROI highlight card */
.roi-card{background:var(--mint-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.3rem);}

/* ---------- City / location page components ---------- */
/* NAP block: details + map */
.nap{display:grid;grid-template-columns:1fr 1.05fr;gap:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);}
.nap__details{padding:clamp(1.6rem,3vw,2.4rem);}
.nap__name{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--ink);}
.nap__lines{margin-top:0.75rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.75;}
.nap__lines strong{color:var(--ink);}
.nap__lines a{color:var(--accent-deep);font-weight:700;}
.nap__cta{margin-top:1.3rem;}
.nap__map{position:relative;min-height:320px;background:var(--paper-2);}
.nap__map-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.nap__map-link{position:absolute;left:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:0.45rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.5rem 0.95rem;font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--accent-deep);box-shadow:var(--shadow-sm);}
.nap__map-link svg{width:16px;height:16px;}
.nap__map-link:hover{background:var(--mint-2);}

/* feature grid (why-choose) */
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
.feature{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--shadow-sm);}
.feature__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:var(--forest);margin-bottom:1.1rem;}
.feature__icon svg{width:24px;height:24px;}
.feature__title{font-family:var(--font-display);font-weight:700;font-size:1.1rem;line-height:1.25;color:var(--ink);}
.feature p{margin-top:0.6rem;color:var(--ink-soft);line-height:1.6;font-size:0.95rem;}
.feature p a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}

/* stat inset callout */
.stat-inset{display:inline-flex;flex-direction:column;gap:0.2rem;background:var(--mint-2);border-radius:var(--r);padding:1rem 1.4rem;margin:0.5rem 0;}
.stat-inset strong{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--accent-deep);letter-spacing:-0.01em;}
.stat-inset span{font-weight:700;font-size:0.85rem;color:var(--ink-faint);}

/* =====================================================================
   TOPIC EXPLORER — reusable interactive: desktop tabs / mobile accordion
   ===================================================================== */
.explorer{display:grid;grid-template-columns:0.82fr 1.18fr;gap:var(--space-5);align-items:start;}
.explorer__tabs{display:flex;flex-direction:column;gap:0.6rem;}
.explorer__tab{display:flex;align-items:center;gap:0.9rem;width:100%;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:0.95rem 1.1rem;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;}
.explorer__tab:hover{transform:translateX(3px);box-shadow:var(--shadow-sm);}
.explorer__tab-icon{width:44px;height:44px;border-radius:13px;flex:none;display:grid;place-items:center;background:var(--paper-2);color:var(--accent-deep);transition:background .18s,color .18s;}
.explorer__tab-icon svg{width:22px;height:22px;}
.explorer__tab-text{display:flex;flex-direction:column;line-height:1.18;min-width:0;}
.explorer__tab-text strong{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);}
.explorer__tab-text small{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px;}
.explorer__tab.is-active{background:var(--ink);border-color:var(--ink);box-shadow:var(--shadow);}
.explorer__tab.is-active .explorer__tab-text strong{color:var(--on-dark);}
.explorer__tab.is-active .explorer__tab-text small{color:var(--on-dark-faint);}
.explorer__tab.is-active .explorer__tab-icon{background:var(--accent);color:var(--forest);}

.explorer__topic{display:none;}
.explorer__topic.is-active{display:block;}
.explorer__acc-head{display:none;}
.explorer__panel{animation:climFade .35s ease;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.85rem 2rem;box-shadow:var(--shadow-sm);}
.explorer__panel.prose{max-width:none;}
.explorer__panel-num{display:block;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:1rem;}
.explorer__panel .stat-inset{margin-top:1.2rem;}

/* mobile: explorer tabs -> accordion */
@media (max-width:780px){
  .explorer{grid-template-columns:1fr;gap:0.85rem;}
  .explorer__tabs{display:none;}
  .explorer__topics{display:flex;flex-direction:column;gap:0.85rem;}
  .explorer__topic{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);overflow:hidden;}
  .explorer__acc-head{display:flex;align-items:center;gap:0.85rem;width:100%;padding:1.05rem 1.15rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;}
  .explorer__acc-icon{width:42px;height:42px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--paper-2);color:var(--accent-deep);}
  .explorer__acc-icon svg{width:21px;height:21px;}
  .explorer__acc-text{flex:1;display:flex;flex-direction:column;line-height:1.15;min-width:0;}
  .explorer__acc-text strong{font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);}
  .explorer__acc-text small{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:2px;}
  .explorer__acc-chevron{flex:none;color:var(--ink-faint);display:grid;place-items:center;transition:transform .25s ease;}
  .explorer__acc-chevron svg{width:20px;height:20px;}
  .explorer__topic.is-active{box-shadow:var(--shadow);}
  .explorer__topic.is-active .explorer__acc-icon{background:var(--accent);color:var(--forest);}
  .explorer__topic.is-active .explorer__acc-chevron{transform:rotate(180deg);}
  .explorer__panel{display:none;}
  .explorer__topic.is-active .explorer__panel{display:block;background:transparent;border:none;box-shadow:none;padding:0 1.15rem 1.3rem;animation:none;}
  .explorer__panel-num{margin-top:0.2rem;}
}

/* =====================================================================
   AREA FINDER — reusable searchable / filterable drive-time list
   ===================================================================== */
.area-finder{display:flex;flex-direction:column;gap:1.1rem;}
.area-finder__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.area-finder__search{display:inline-flex;align-items:center;gap:0.6rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.7rem 1.1rem;flex:1;min-width:240px;box-shadow:var(--shadow-sm);transition:border-color .18s,box-shadow .18s;}
.area-finder__search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px oklch(0.72 0.158 152 / 0.18);}
.area-finder__search svg{width:19px;height:19px;color:var(--ink-faint);flex:none;}
.area-finder__input{border:none;outline:none;background:none;font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--ink);width:100%;}
.area-finder__input::placeholder{color:var(--ink-faint);font-weight:600;}
.area-finder__chips{display:flex;flex-wrap:wrap;gap:0.4rem;}
.area-finder__chip{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--ink-soft);background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.5rem 0.95rem;cursor:pointer;transition:background .16s,color .16s,border-color .16s;}
.area-finder__chip span{font-family:var(--font-body);font-weight:800;font-size:0.7rem;color:var(--ink-faint);}
.area-finder__chip:hover{border-color:var(--ink);color:var(--ink);}
.area-finder__chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--on-dark);}
.area-finder__chip.is-active span{color:var(--on-dark-faint);}
.area-finder__head{display:grid;grid-template-columns:minmax(150px,1.1fr) 1.4fr auto;align-items:center;gap:1.2rem;padding:0 1.3rem;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
.area-finder__head span:last-child{text-align:right;}
.area-finder__list{display:flex;flex-direction:column;gap:0.55rem;}
.area-finder__row{display:grid;grid-template-columns:minmax(150px,1.1fr) 1.4fr auto;align-items:center;gap:1.2rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:0.95rem 1.3rem;box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .16s;}
.area-finder__row:hover{transform:translateX(3px);box-shadow:var(--shadow);}
.area-finder__row[hidden]{display:none;}
.area-finder__name{font-family:var(--font-display);font-weight:700;font-size:1.08rem;color:var(--ink);letter-spacing:-0.01em;}
.area-finder__meter{height:9px;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden;}
.area-finder__fill{display:block;height:100%;border-radius:var(--r-pill);transition:width .5s cubic-bezier(.4,0,.2,1);}
.area-finder__fill--close{background:var(--accent);}
.area-finder__fill--near{background:oklch(0.8 0.12 85);}
.area-finder__fill--outer{background:oklch(0.72 0.14 40);}
.area-finder__time{font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--ink-soft);white-space:nowrap;text-align:right;}
.area-finder__empty{font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--ink-faint);text-align:center;padding:1.5rem;background:var(--white);border:1px dashed var(--line-strong);border-radius:var(--r-lg);}
.area-finder__empty[hidden]{display:none;}
.area-finder__count{font-family:var(--font-body);font-weight:800;font-size:0.72rem;letter-spacing:0.04em;color:var(--ink-faint);}
.area-finder__count .js-area-count{color:var(--accent-deep);}
@media (max-width:680px){
  .area-finder__head{display:none;}
  .area-finder__row{grid-template-columns:1fr auto;grid-template-areas:"name time" "meter meter";gap:0.5rem 1rem;}
  .area-finder__name{grid-area:name;}
  .area-finder__time{grid-area:time;}
  .area-finder__meter{grid-area:meter;}
  .area-finder__search{min-width:0;width:100%;}
}

/* cta-bar optional lead paragraph */
.cta-bar__text{position:relative;}
.cta-bar__lead{position:relative;margin-top:0.85rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.6;max-width:48ch;}

/* =====================================================================
   WINDOW AREA CALCULATOR
   ===================================================================== */
.wac{display:grid;grid-template-columns:1.35fr 0.65fr;gap:var(--space-5);align-items:start;}
.wac__hint{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-display);font-weight:700;font-size:0.95rem;color:var(--accent-deep);margin-bottom:1rem;}
.wac__hint svg{width:18px;height:18px;flex:none;}
.wac__presets{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin-bottom:1.4rem;}
.wac__presets-label{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);margin-right:0.2rem;}
.wac__preset{font-family:var(--font-display);font-weight:700;font-size:0.84rem;color:var(--ink-soft);background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.45rem 0.95rem;cursor:pointer;transition:background .16s,color .16s,border-color .16s,transform .16s;}
.wac__preset:hover{background:var(--ink);border-color:var(--ink);color:var(--on-dark);transform:translateY(-1px);}
.wac__head{display:grid;grid-template-columns:1.5fr 78px 78px 58px 86px 34px;gap:0.6rem;align-items:center;padding:0 1rem 0.55rem;font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);}
.wac__head span:nth-child(n+2):nth-child(-n+5){text-align:center;}
.wac__rows{display:flex;flex-direction:column;gap:0.55rem;}
.wac__row{display:grid;grid-template-columns:1.5fr 78px 78px 58px 86px 34px;gap:0.6rem;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:0.6rem 1rem;box-shadow:var(--shadow-sm);}
.wac__input{font-family:var(--font-display);font-weight:600;font-size:0.98rem;color:var(--ink);background:var(--paper-2);border:1px solid transparent;border-radius:var(--r-sm);padding:0.55rem 0.55rem;width:100%;text-align:center;transition:border-color .15s,background .15s;}
.wac__input--label{text-align:left;font-weight:700;}
.wac__field{width:100%;}
.wac__field-cap{display:none;font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.3rem;}
.wac__input:focus{outline:none;border-color:var(--accent);background:var(--white);}
.wac__input::-webkit-outer-spin-button,.wac__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.wac__input[type=number]{-moz-appearance:textfield;}
.wac__area{text-align:center;font-family:var(--font-display);font-weight:700;font-size:0.78rem;color:var(--ink-faint);white-space:nowrap;}
.wac__area strong{display:block;font-size:1.05rem;color:var(--ink);font-weight:800;}
.wac__remove{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--ink-faint);cursor:pointer;transition:background .16s,color .16s,border-color .16s;}
.wac__remove svg{width:16px;height:16px;}
.wac__remove:hover{background:var(--coral);border-color:transparent;color:var(--coral-ink);}
.wac__remove:disabled{opacity:0.35;cursor:not-allowed;}
.wac__add{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;margin-top:1rem;font-family:var(--font-display);font-weight:700;font-size:0.95rem;color:var(--accent-deep);background:none;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);padding:0.75rem 1.2rem;cursor:pointer;transition:border-color .16s,color .16s,background .16s;}
.wac__add svg{width:18px;height:18px;}
.wac__add:hover{border-color:var(--accent-deep);background:var(--mint-2);}

.wac__panel{position:sticky;top:100px;background:var(--ink);border-radius:var(--r-xl);padding:1.8rem;box-shadow:var(--shadow);}
.wac__panel-label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--on-dark-faint);}
.wac__total{display:block;margin-top:0.55rem;font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--on-dark-soft);letter-spacing:-0.01em;}
.wac__total strong{font-size:3.1rem;color:var(--accent);letter-spacing:-0.02em;margin-right:0.25rem;line-height:1;}
.wac__stats{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;margin-top:1.4rem;}
.wac__stat{background:oklch(1 0 0 / 0.06);border:1px solid var(--line-dark);border-radius:var(--r);padding:0.85rem 0.95rem;}
.wac__stat span{display:block;font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:0.35rem;}
.wac__stat strong{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--on-dark);letter-spacing:-0.01em;}
.wac__est{display:flex;align-items:center;justify-content:space-between;gap:0.8rem;margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--line-dark);}
.wac__est-label{font-family:var(--font-body);font-weight:700;font-size:0.78rem;color:var(--on-dark-faint);max-width:15ch;line-height:1.35;}
.wac__est-label a{color:var(--accent);font-weight:800;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.wac__est-val{font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--on-dark);white-space:nowrap;letter-spacing:-0.01em;}
.wac__cta{width:100%;justify-content:center;margin-top:1.5rem;}
.wac__phone{display:block;text-align:center;margin-top:0.9rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--on-dark-soft);}
.wac__phone:hover{color:var(--on-dark);}
.wac__note{margin-top:1.1rem;font-size:0.76rem;line-height:1.5;color:var(--on-dark-faint);}
.wac__sticky{display:none;}
@media (max-width:980px){
  .wac{grid-template-columns:1fr;}
  .wac__panel{position:static;}
  .wac__sticky{display:flex;align-items:center;justify-content:space-between;gap:0.9rem;position:sticky;bottom:14px;z-index:30;margin-top:1.3rem;background:var(--ink);border-radius:var(--r-pill);padding:0.6rem 0.65rem 0.6rem 1.3rem;box-shadow:0 12px 32px oklch(0 0 0 / 0.4);}
  .wac__sticky-info{display:flex;flex-direction:column;line-height:1.15;min-width:0;}
  .wac__sticky-num{font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--on-dark-soft);white-space:nowrap;}
  .wac__sticky-num strong{color:var(--accent);font-weight:800;font-size:1.5rem;margin-right:0.25rem;letter-spacing:-0.01em;}
  .wac__sticky-sub{font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.02em;color:var(--on-dark-faint);white-space:nowrap;margin-top:0.1rem;}
  .wac__sticky-sub span{color:var(--on-dark-soft);}
  .wac__sticky-cta{flex:none;padding:0.72rem 1.15rem;}
}
@media (max-width:620px){
  .wac__head{display:none;}
  .wac__field-cap{display:block;}
  .wac__row{grid-template-columns:1fr 1fr 1fr;grid-template-areas:"label label remove" "w h q" "area area area";gap:0.7rem 0.6rem;padding:0.95rem 1rem;align-items:start;}
  .wac__row>:nth-child(1){grid-area:label;}
  .wac__row>:nth-child(2){grid-area:w;}
  .wac__row>:nth-child(3){grid-area:h;}
  .wac__row>:nth-child(4){grid-area:q;}
  .wac__row>:nth-child(5){grid-area:area;text-align:left;padding-top:0.4rem;border-top:1px solid var(--line);}
  .wac__row>:nth-child(6){grid-area:remove;justify-self:end;}
  .wac__area strong{display:inline;margin-right:0.3rem;}
}

/* local project highlight (case study) */
.project-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--shadow-sm);}
.project-card__media{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}
.project-card__slot{display:flex;flex-direction:column;gap:0.5rem;}
.project-card__slot image-slot{width:100%;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;}
.project-card__slot span{font-weight:700;font-size:0.8rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.06em;}
.project-card__quote{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--line);font-family:var(--font-display);font-weight:600;font-size:1.15rem;line-height:1.5;color:var(--ink);}
.project-card__quote cite{display:block;margin-top:0.6rem;font-style:normal;font-weight:700;font-size:0.9rem;color:var(--ink-faint);}
.roi-card__label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:0.7rem;}
.roi-card p{color:var(--ink-soft);font-size:1.05rem;line-height:1.7;}
.roi-card p strong{color:var(--ink);font-weight:800;}
.roi-card a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.tile{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,2.5vw,2rem);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.tile__title{font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:-0.01em;color:var(--ink);}
.tile p{margin-top:0.7rem;color:var(--ink-soft);line-height:1.65;font-size:0.98rem;}
.tile__link{margin-top:auto;padding-top:1.1rem;display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--accent-deep);}
.tile__link svg{width:17px;height:17px;transition:transform .2s;}
.tile:hover .tile__link svg{transform:translateX(4px);}

/* numbered process steps */
.steps{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.step{display:flex;gap:1.1rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--shadow-sm);}
.step__num{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:var(--forest);font-family:var(--font-display);font-weight:800;font-size:1.15rem;}
.step__title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink);}
.step p{margin-top:0.5rem;color:var(--ink-soft);line-height:1.65;font-size:0.96rem;}

/* data tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:var(--white);-webkit-overflow-scrolling:touch;}
.data-table{width:100%;border-collapse:collapse;min-width:560px;}
.data-table th,.data-table td{padding:0.95rem 1.25rem;text-align:left;font-size:0.97rem;border-bottom:1px solid var(--line);}
.data-table thead th{background:var(--forest);color:var(--on-dark);font-family:var(--font-display);font-weight:600;font-size:0.9rem;}
.data-table tbody tr:last-child td{border-bottom:none;}
.data-table tbody tr:nth-child(even){background:var(--paper-2);}
.data-table td:first-child{font-weight:700;color:var(--ink);}
.data-table strong{color:var(--accent-deep);}
.data-table .data-table__row--hl td{background:var(--mint-2);}

/* inline emphasis badge (e.g. "Most popular") */
.tag{display:inline-flex;align-items:center;gap:0.3rem;font-family:var(--font-body);font-weight:800;font-size:0.56rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--forest);background:var(--accent);border-radius:var(--r-pill);padding:0.18rem 0.6rem;margin-left:0.5rem;white-space:nowrap;vertical-align:middle;}

/* worth-it verdict two-column */
.verdict{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start;}
.verdict-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,2.5vw,2rem);box-shadow:var(--shadow-sm);}
.verdict-card--yes{background:var(--mint-2);}
.verdict-card--no{background:var(--paper-2);}
.verdict-card__head{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.2rem;}
.verdict-card__icon{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;}
.verdict-card--yes .verdict-card__icon{background:var(--accent);color:var(--forest);}
.verdict-card--no .verdict-card__icon{background:var(--coral);color:var(--coral-ink);}
.verdict-card__icon svg{width:20px;height:20px;}
.verdict-card__title{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--ink);letter-spacing:-0.01em;}
.verdict-list{display:flex;flex-direction:column;}
.verdict-list li{position:relative;padding-left:1.4rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.55;list-style:none;padding-block:0.8rem;border-bottom:1px solid var(--line);}
.verdict-list li:first-child{padding-top:0;}
.verdict-list li:last-child{border-bottom:none;padding-bottom:0;}
.verdict-list li::before{content:"";position:absolute;left:0;top:1.35rem;width:8px;height:8px;border-radius:50%;}
.verdict-list li:first-child::before{top:0.5rem;}
.verdict-card--yes .verdict-list li::before{background:var(--accent-deep);}
.verdict-card--no .verdict-list li::before{background:var(--ink-faint);}
@media (max-width:780px){ .verdict{grid-template-columns:1fr;} }

/* =====================================================================
   FILM EXPLORER spec panels (used inside .explorer panels)
   ===================================================================== */
.filmspec__bars{display:flex;flex-direction:column;gap:0.7rem;margin-bottom:1.25rem;}
.filmspec__bar{display:grid;grid-template-columns:104px 1fr 48px;align-items:center;gap:0.7rem;}
.filmspec__bar-label{font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--ink-faint);}
.filmspec__bar .spec__bar{height:10px;}
.filmspec__bar-val{font-family:var(--font-display);font-weight:800;font-size:0.85rem;color:var(--ink);text-align:right;}
.filmspec__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.6rem;margin-bottom:1.3rem;}
.filmspec__cell{background:var(--paper-2);border-radius:var(--r);padding:0.75rem 0.85rem;}
.filmspec__cell small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.55rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.3rem;}
.filmspec__cell strong{font-family:var(--font-display);font-weight:800;font-size:0.98rem;color:var(--ink);letter-spacing:-0.01em;line-height:1.1;}
.filmspec__cell--warn{background:var(--coral-2);}
.filmspec__cell--warn strong{color:var(--coral-ink);}
.filmspec__best{display:block;background:var(--mint-2);border-radius:var(--r);padding:0.85rem 1rem;font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--ink);margin-bottom:1.2rem;}
.filmspec__best b{font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent-deep);display:block;margin-bottom:0.3rem;}
@media (max-width:560px){
  .filmspec__grid{grid-template-columns:1fr 1fr;}
  .filmspec__bar{grid-template-columns:88px 1fr 44px;}
}

/* =====================================================================
   GOAL PICKER — interactive "which film is right for you"
   ===================================================================== */
.goalpicker{display:grid;grid-template-columns:1.05fr 0.95fr;gap:var(--space-5);align-items:start;}
.goalpicker__tiles{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;}
.goalpicker__tile{display:flex;align-items:center;gap:0.8rem;text-align:left;width:100%;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:0.95rem 1.05rem;cursor:pointer;transition:transform .16s,box-shadow .16s,background .16s,border-color .16s;}
.goalpicker__tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.goalpicker__tile-icon{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--paper-2);color:var(--accent-deep);transition:background .16s,color .16s;}
.goalpicker__tile-icon svg{width:20px;height:20px;}
.goalpicker__tile-text{font-family:var(--font-display);font-weight:700;font-size:0.96rem;color:var(--ink);line-height:1.2;}
.goalpicker__tile.is-active{background:var(--ink);border-color:var(--ink);box-shadow:var(--shadow);}
.goalpicker__tile.is-active .goalpicker__tile-text{color:var(--on-dark);}
.goalpicker__tile.is-active .goalpicker__tile-icon{background:var(--accent);color:var(--forest);}
.goalpicker__result{position:sticky;top:100px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.5rem,2.5vw,2rem);box-shadow:var(--shadow-sm);}
.goalpicker__rec{display:none;}
.goalpicker__rec.is-active{display:block;animation:climFade .35s ease;}
.goalpicker__rec-label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:0.6rem;}
.goalpicker__rec-film{font-family:var(--font-display);font-weight:800;font-size:clamp(1.4rem,2.4vw,1.85rem);color:var(--ink);letter-spacing:-0.02em;line-height:1.1;}
.goalpicker__rec p{margin-top:0.85rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.6;}
.goalpicker__rec a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.goalpicker__rec-cta{margin-top:1.3rem;}
@media (max-width:860px){
  .goalpicker{grid-template-columns:1fr;}
  .goalpicker__result{position:static;}
}
@media (max-width:560px){ .goalpicker__tiles{grid-template-columns:1fr;} }

/* =====================================================================
   BREAK-IN DELAY TIMELINE — 3-step impact flow
   ===================================================================== */
.delayflow{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;}
.delayflow__step{position:relative;display:flex;flex-direction:column;background:var(--ink);border-radius:var(--r-xl);padding:1.9rem 1.7rem;box-shadow:var(--shadow);}
.delayflow__step::before{content:"";position:absolute;left:0;top:1.9rem;width:4px;height:2.6rem;border-radius:0 4px 4px 0;background:var(--accent);}
.delayflow__step:not(:last-child)::after{content:"";position:absolute;right:-1.55rem;top:50%;width:1.5rem;height:1.5rem;transform:translateY(-50%);background:var(--accent);clip-path:polygon(0 18%,42% 18%,42% 0,100% 50%,42% 100%,42% 82%,0 82%);z-index:3;}
.delayflow__num{display:flex;align-items:center;gap:0.7rem;margin-bottom:1.3rem;}
.delayflow__num b{width:2.4rem;height:2.4rem;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent);color:var(--forest);font-family:var(--font-display);font-weight:800;font-size:1.15rem;}
.delayflow__num span{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);}
.delayflow__icon{display:block;width:36px;height:36px;color:var(--on-dark-faint);margin-bottom:0.9rem;}
.delayflow__icon svg{display:block;width:36px;height:36px;}
.delayflow__title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--on-dark);letter-spacing:-0.01em;margin-bottom:0.55rem;}
.delayflow__step p{color:var(--on-dark);font-size:0.95rem;line-height:1.6;margin:0;}
.delayflow__step p strong{color:var(--accent);font-weight:700;}
@media (max-width:780px){
  .delayflow{grid-template-columns:1fr;gap:2.4rem;}
  .delayflow__step:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-1.55rem;transform:translateX(-50%) rotate(90deg);}
}

/* forced-entry resistance simulator */
.breach{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.4rem,3vw,2.1rem);box-shadow:var(--shadow-sm);margin-bottom:2.2rem;
  --breach-accent:var(--accent);--breach-soft:var(--mint-2);--breach-ink:var(--forest);}
.breach[data-tone="danger"]{--breach-accent:#e0614f;--breach-soft:oklch(0.93 0.05 28);--breach-ink:#7a2418;}
.breach[data-tone="warn"]{--breach-accent:#e0a23a;--breach-soft:oklch(0.94 0.05 80);--breach-ink:#6e4a12;}
.breach[data-tone="good"]{--breach-accent:var(--accent);--breach-soft:var(--mint-2);--breach-ink:var(--forest);}
.breach[data-tone="best"]{--breach-accent:var(--accent-deep);--breach-soft:var(--mint-2);--breach-ink:var(--forest);}
.breach__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.3rem;margin-bottom:1.6rem;}
.breach__eyebrow{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);}
.breach__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.6rem);color:var(--ink);letter-spacing:-0.01em;margin-top:0.3rem;}
.breach__chips{display:flex;flex-wrap:wrap;gap:0.45rem;}
.breach__chip{font-family:var(--font-display);font-weight:700;font-size:0.86rem;color:var(--ink-soft);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.5rem 1.05rem;cursor:pointer;transition:background .16s,color .16s,border-color .16s,transform .16s;}
.breach__chip:hover{transform:translateY(-1px);border-color:var(--line-strong);}
.breach__chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--on-dark);}
.breach__readout{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0.6rem 1rem;margin-bottom:1rem;}
.breach__time{display:inline-flex;align-items:baseline;gap:0.35rem;}
.breach__time b{font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,7vw,4.2rem);line-height:1;color:var(--breach-ink);letter-spacing:-0.03em;font-variant-numeric:tabular-nums;}
.breach__time sup{font-family:var(--font-display);font-weight:800;font-size:1.6rem;color:var(--breach-accent);line-height:1;top:-0.9em;}
.breach__time small{font-family:var(--font-body);font-weight:800;font-size:0.8rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.04em;margin-left:0.5rem;}
.breach__verdict{font-family:var(--font-display);font-weight:800;font-size:0.92rem;color:var(--breach-ink);background:var(--breach-soft);border-radius:var(--r-pill);padding:0.5rem 1.1rem;white-space:nowrap;transition:background .25s,color .25s;}
.breach__meter{height:16px;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden;box-shadow:inset 0 1px 3px oklch(0 0 0 / 0.08);}
.breach__meter-fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--breach-accent);transition:width .9s cubic-bezier(.22,1,.36,1),background .25s;}
.breach__scale{display:flex;justify-content:space-between;margin-top:0.5rem;font-family:var(--font-body);font-weight:700;font-size:0.72rem;color:var(--ink-faint);}
.breach__stats{display:grid;grid-template-columns:1fr 1fr;gap:0.8rem;margin-top:1.5rem;padding-top:1.4rem;border-top:1px solid var(--line);}
.breach__stat small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.35rem;}
.breach__stat strong{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);}
@media (max-width:560px){
  .breach__head{flex-direction:column;}
  .breach__chips{width:100%;}
  .breach__chip{flex:1;text-align:center;padding:0.5rem 0.4rem;}
  .breach__stats{grid-template-columns:1fr;}
}

/* "what is security film" — interactive layer explorer */
.filmstack{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:2.4rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:var(--shadow-sm);}
.filmstack__diagram{display:flex;flex-direction:column;gap:0.45rem;}
.filmstack__side{display:flex;align-items:center;justify-content:center;gap:0.4rem;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-faint);padding:0.15rem 0;}
.filmstack__side svg{width:14px;height:14px;}
.filmstack__layer{display:flex;align-items:center;justify-content:space-between;gap:0.8rem;width:100%;min-height:52px;border:1.5px solid var(--line);border-radius:12px;padding:0.7rem 1.1rem;background:var(--paper-2);cursor:pointer;text-align:left;transition:border-color .18s,transform .18s,box-shadow .18s,background .18s;}
.filmstack__layer--core{min-height:80px;background:var(--mint-2);}
.filmstack__layer--glass{min-height:66px;background:linear-gradient(120deg,oklch(0.92 0.035 230),oklch(0.97 0.012 230));}
.filmstack__layer-name{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink);line-height:1.25;}
.filmstack__layer-tag{font-family:var(--font-display);font-weight:800;font-size:0.72rem;color:var(--ink-faint);background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.2rem 0.65rem;flex:none;}
.filmstack__layer:hover{border-color:var(--line-strong);transform:translateX(3px);}
.filmstack__layer.is-active{border-color:var(--accent);box-shadow:0 0 0 3px var(--mint-2);transform:translateX(5px);}
.filmstack__detail{align-self:center;}
.filmstack__detail-num{display:inline-block;font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);background:var(--mint-2);border-radius:var(--r-pill);padding:0.3rem 0.8rem;margin-bottom:0.9rem;}
.filmstack__detail-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.65rem);color:var(--ink);letter-spacing:-0.01em;margin-bottom:0.7rem;}
.filmstack__detail-desc{color:var(--ink-soft);font-size:1.05rem;line-height:1.65;margin-bottom:1.2rem;}
.filmstack__detail-spec{display:flex;flex-direction:column;gap:0.25rem;border-top:1px solid var(--line);padding-top:1rem;}
.filmstack__detail-spec small{font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);}
.filmstack__detail-spec strong{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);}
@media (max-width:780px){ .filmstack{grid-template-columns:1fr;gap:1.5rem;} }

/* spectrally-selective film toggle (commercial sun control) */
.spectrum{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.5rem,3vw,2.2rem);box-shadow:var(--shadow-sm);margin-bottom:2.4rem;}
.spectrum__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:1.8rem;}
.spectrum__eyebrow{display:inline-block;font-family:var(--font-body);font-weight:800;font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);}
.spectrum__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.6rem);color:var(--ink);letter-spacing:-0.01em;margin-top:0.3rem;}
.spectrum__toggle{display:inline-flex;align-items:center;gap:0.6rem;background:none;border:none;cursor:pointer;padding:0;flex:none;}
.spectrum__toggle-track{width:52px;height:30px;border-radius:var(--r-pill);background:var(--line-strong);position:relative;transition:background .25s;flex:none;}
.spectrum__toggle-dot{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--white);box-shadow:0 1px 4px oklch(0 0 0 / 0.25);transition:transform .25s;}
.spectrum[data-on="true"] .spectrum__toggle-track{background:var(--accent);}
.spectrum[data-on="true"] .spectrum__toggle-dot{transform:translateX(22px);}
.spectrum__toggle-label{font-family:var(--font-display);font-weight:800;font-size:0.95rem;color:var(--ink);min-width:4.6em;text-align:left;}
.spectrum__bands{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.spectrum__band{background:var(--paper-2);border-radius:var(--r-lg);padding:1.2rem 1.3rem;--sp-c:var(--accent);}
.spectrum__band--vis{--sp-c:#e0a23a;}
.spectrum__band--heat{--sp-c:#e0614f;}
.spectrum__band--uv{--sp-c:#8a6fd0;}
.spectrum__band-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.6rem;margin-bottom:0.7rem;}
.spectrum__band-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);}
.spectrum__band-stat{font-family:var(--font-display);font-weight:800;font-size:0.82rem;color:var(--sp-c);white-space:nowrap;}
.spectrum__bar{height:10px;border-radius:var(--r-pill);background:oklch(0 0 0 / 0.06);overflow:hidden;}
.spectrum__bar-fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--sp-c);transition:width .8s cubic-bezier(.22,1,.36,1);}
.spectrum__band-note{margin-top:0.7rem;font-size:0.88rem;line-height:1.5;color:var(--ink-soft);}
.spectrum__summary{margin-top:1.5rem;padding:1rem 1.3rem;background:var(--mint-2);border-radius:var(--r-lg);font-family:var(--font-display);font-weight:600;font-size:1.02rem;line-height:1.5;color:var(--forest);}
.spectrum[data-on="false"] .spectrum__summary{background:oklch(0.94 0.04 60);color:#6e4a12;}
@media (max-width:780px){ .spectrum__bands{grid-template-columns:1fr;} }

/* =====================================================================
   BOOKING / CONTACT / REVIEWS / BLOG — shared new components
   ===================================================================== */

/* embed slot — where the user pastes an iframe (form or review widget) */
.embed-slot{position:relative;background:var(--white);border:1.5px dashed var(--line-strong);border-radius:var(--r-xl);padding:clamp(1.4rem,3vw,2rem);min-height:200px;box-shadow:var(--shadow-sm);}
.embed-slot__hint{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0.5rem;min-height:160px;color:var(--ink-faint);}
.embed-slot__hint svg{width:34px;height:34px;color:var(--accent);}
.embed-slot__hint strong{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink-soft);}
.embed-slot__hint span{font-size:0.9rem;max-width:42ch;line-height:1.5;}

/* Lead form (styled placeholder — mirrors the fields to build in GoHighLevel) */
.gform{display:grid;gap:1.1rem;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.4rem,3.5vw,2.4rem);box-shadow:var(--shadow-sm);}
.gform__row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.gform__field{display:flex;flex-direction:column;gap:0.4rem;min-width:0;}
.gform__field--full{grid-column:1/-1;}
.gform__field label{font-family:var(--font-display);font-weight:700;font-size:0.9rem;color:var(--ink);}
.gform__field label .req{color:var(--accent-deep);margin-left:1px;}
.gform input,.gform select,.gform textarea{font:inherit;font-size:0.98rem;color:var(--ink);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--r-lg);padding:0.7rem 0.9rem;width:100%;transition:border-color .15s,box-shadow .15s;}
.gform input::placeholder,.gform textarea::placeholder{color:var(--ink-faint);}
.gform input:focus,.gform select:focus,.gform textarea:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px oklch(0.72 0.158 152 / 0.18);}
.gform textarea{min-height:120px;resize:vertical;}
.gform__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;}
.gform__note{font-size:0.82rem;color:var(--ink-faint);margin:0;}
@media(max-width:640px){.gform__row{grid-template-columns:1fr;}}
.embed-slot__hint code{font-family:ui-monospace,monospace;font-size:0.82rem;background:var(--paper-2);padding:0.1rem 0.4rem;border-radius:6px;color:var(--accent-deep);}
.embed-slot iframe{width:100%;border:0;display:block;}

/* trust strip (badges row) */
.trust-strip{display:flex;flex-wrap:wrap;gap:0.6rem;}
.trust-strip li{display:inline-flex;align-items:center;gap:0.45rem;list-style:none;font-family:var(--font-display);font-weight:700;font-size:0.88rem;color:var(--ink-soft);background:var(--mint-2);border-radius:var(--r-pill);padding:0.5rem 1.05rem;}
.trust-strip li svg{width:15px;height:15px;color:var(--accent-deep);flex:none;}

/* two-location NAP cards */
.napgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.napcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);}
.napcard__media{aspect-ratio:16/9;background:var(--paper-2);}
.napcard__media image-slot,.napcard__media iframe{width:100%;height:100%;display:block;border:0;}
.napcard__body{padding:1.5rem 1.6rem;display:flex;flex-direction:column;gap:0.55rem;flex:1;}
.napcard__name{font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:var(--ink);letter-spacing:-0.01em;}
.napcard__badge{display:inline-flex;align-items:center;gap:0.35rem;align-self:flex-start;font-family:var(--font-display);font-weight:800;font-size:0.78rem;color:var(--forest);background:var(--mint-2);border-radius:var(--r-pill);padding:0.25rem 0.7rem;}
.napcard address{font-style:normal;color:var(--ink-soft);font-size:1rem;line-height:1.55;}
.napcard__row{display:flex;flex-wrap:wrap;gap:0.4rem 1.1rem;font-family:var(--font-display);font-weight:700;font-size:0.96rem;}
.napcard__row a{color:var(--accent-deep);}
.napcard__hours{font-size:0.92rem;color:var(--ink-faint);}
.napcard__links{display:flex;flex-wrap:wrap;gap:0.4rem 1.3rem;margin-top:auto;padding-top:0.9rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;}
.napcard__links a{color:var(--accent-deep);display:inline-flex;align-items:center;gap:0.3rem;}
@media (max-width:780px){ .napgrid{grid-template-columns:1fr;} }

/* rating summary cards (reviews) */
.ratingcards{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;}
.ratingcard{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.8rem;box-shadow:var(--shadow-sm);text-align:center;}
.ratingcard__city{font-family:var(--font-body);font-weight:800;font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
.ratingcard__score{font-family:var(--font-display);font-weight:800;font-size:3.2rem;line-height:1;color:var(--ink);letter-spacing:-0.02em;margin:0.4rem 0 0.3rem;}
.ratingcard__stars{color:#e8a82e;font-size:1.15rem;letter-spacing:0.1em;}
.ratingcard__count{display:block;margin-top:0.5rem;color:var(--ink-soft);font-size:0.95rem;}
.ratingcard__addr{display:block;margin-top:0.2rem;color:var(--ink-faint);font-size:0.86rem;}
.ratingcard__link{display:inline-flex;align-items:center;gap:0.35rem;margin-top:1rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--accent-deep);}
@media (max-width:620px){ .ratingcards{grid-template-columns:1fr;} }

/* review proof grid (masonry-ish columns) */
.review-grid{columns:3;column-gap:1.3rem;}
.review-grid .review-card{break-inside:avoid;margin-bottom:1.3rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem 1.6rem;box-shadow:var(--shadow-sm);}
.review-card__stars{color:#e8a82e;font-size:0.95rem;letter-spacing:0.08em;margin-bottom:0.7rem;}
.review-card__text{color:var(--ink-soft);font-size:1rem;line-height:1.6;}
.review-card__foot{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-top:1.1rem;padding-top:0.9rem;border-top:1px solid var(--line);}
.review-card__name{font-family:var(--font-display);font-weight:700;font-size:0.98rem;color:var(--ink);}
.review-card__city{font-size:0.8rem;color:var(--ink-faint);font-weight:600;}
.review-card__src{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.78rem;color:var(--ink-faint);font-weight:700;}
.review-card__src svg{width:14px;height:14px;}
@media (max-width:980px){ .review-grid{columns:2;} }
@media (max-width:640px){ .review-grid{columns:1;} }

/* review platform buttons */
.platforms{display:flex;flex-wrap:wrap;gap:0.6rem;}
.platforms--center{justify-content:center;}
.platforms a{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:0.55rem 1.15rem;transition:border-color .16s,transform .16s;}
.platforms a:hover{border-color:var(--accent);transform:translateY(-1px);}

/* blog archive cards */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.blog-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.blog-card__media{aspect-ratio:16/10;background:var(--paper-2);overflow:hidden;}
.blog-card__media image-slot{width:100%;height:100%;display:block;}
.blog-card__media a,.blog-card__media img{display:block;width:100%;height:100%;object-fit:cover;}
.blog-card__body{display:flex;flex-direction:column;gap:0.6rem;padding:1.4rem 1.5rem;flex:1;}
.blog-card__tag{align-self:flex-start;font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent-deep);background:var(--mint-2);border-radius:var(--r-pill);padding:0.25rem 0.7rem;}
.blog-card__title{font-family:var(--font-display);font-weight:700;font-size:1.18rem;line-height:1.25;letter-spacing:-0.01em;}
.blog-card__title a{color:var(--ink);}
.blog-card__title a:hover{color:var(--accent-deep);}
.blog-card__excerpt{color:var(--ink-soft);font-size:0.95rem;line-height:1.55;}
.blog-card__more{margin-top:auto;padding-top:0.6rem;display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.9rem;color:var(--accent-deep);}
.blog-card__more svg{width:16px;height:16px;transition:transform .2s;}
.blog-card:hover .blog-card__more svg{transform:translateX(4px);}
@media (max-width:980px){ .blog-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .blog-grid{grid-template-columns:1fr;} }

/* tools row (blog) */
.toolrow{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.toolrow__item{display:flex;flex-direction:column;gap:0.4rem;background:var(--lilac-2);border-radius:var(--r-lg);padding:1.3rem 1.4rem;}
.toolrow__item h3{font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);}
.toolrow__item h3 a{color:var(--ink);}
.toolrow__item h3 a:hover{color:var(--accent-deep);}
.toolrow__item p{font-size:0.88rem;color:var(--ink-soft);line-height:1.5;margin:0;}
@media (max-width:880px){ .toolrow{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .toolrow{grid-template-columns:1fr;} }

/* simple booking-step list (numbered, on light) */
.nextsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;counter-reset:ns;}
.nextstep{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem 1.6rem;box-shadow:var(--shadow-sm);}
.nextstep__num{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--accent);color:var(--forest);font-family:var(--font-display);font-weight:800;font-size:1.1rem;margin-bottom:0.9rem;}
.nextstep h3{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--ink);margin-bottom:0.4rem;}
.nextstep p{color:var(--ink-soft);font-size:0.96rem;line-height:1.55;margin:0;}
@media (max-width:780px){ .nextsteps{grid-template-columns:1fr;} }

/* 3M product line cards (inside explorer panels reuse, plus standalone) */
.trustline{display:flex;align-items:center;gap:0.9rem;flex-wrap:wrap;background:var(--mint-2);border-radius:var(--r-lg);padding:1.1rem 1.3rem;margin-top:1.4rem;}
.trustline__badge{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-display);font-weight:800;font-size:0.82rem;color:var(--forest);background:var(--accent);border-radius:var(--r-pill);padding:0.4rem 0.9rem;}
.trustline__badge svg{width:15px;height:15px;}
.trustline p{font-size:0.95rem;color:var(--ink-soft);line-height:1.55;flex:1;min-width:220px;margin:0;}

/* security-page helper classes */
.u-mb-md{margin-bottom:1.25rem;}
.prose__lead-line{display:block;font-family:var(--font-display);font-weight:600;font-size:1.3rem;line-height:1.45;color:var(--ink);margin-bottom:1rem;}
.feature-grid--3{grid-template-columns:repeat(3,1fr);}
.feature__spec{display:inline-block;font-family:var(--font-display);font-weight:800;font-size:0.72rem;letter-spacing:0.04em;color:var(--accent-deep);background:var(--mint-2);border-radius:var(--r-pill);padding:0.25rem 0.7rem;margin-bottom:0.7rem;width:fit-content;}
.feature--hl{outline:2px solid var(--accent);outline-offset:-2px;}
.verdict-card__foot{margin-top:1.3rem;padding-top:1.1rem;border-top:1px solid var(--line);font-family:var(--font-display);font-weight:700;font-size:0.92rem;line-height:1.9;}
.verdict-card__foot a{color:var(--accent-deep);box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.verdict-card--neutral{background:var(--lilac-2);}
.verdict-card--neutral .verdict-card__icon{background:var(--lilac);color:var(--lilac-ink);}
.verdict-card--neutral .verdict-list li::before{background:var(--lilac-ink);}
.final-cta__badges{display:flex;flex-wrap:wrap;justify-content:center;gap:0.6rem;margin-top:1.8rem;list-style:none;padding:0;}
.final-cta__badges li{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-display);font-weight:700;font-size:0.84rem;color:var(--on-dark-soft);background:oklch(1 0 0 / 0.08);border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:0.45rem 1rem;}
.final-cta__badges li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);}
@media (max-width:780px){ .feature-grid--3{grid-template-columns:1fr;} }

/* =====================================================================
   PASSAGE-EXTRACTION SNIPPET BOX + condition list (tint permit page)
   ===================================================================== */
.snippet{background:var(--mint-2);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2.2rem);}
.snippet__label{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-body);font-weight:800;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:0.85rem;}
.snippet__label svg{width:15px;height:15px;}
.snippet p{font-family:var(--font-display);font-weight:500;font-size:clamp(1.08rem,1.7vw,1.28rem);line-height:1.55;color:var(--ink);}
.snippet p a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.snippet p+p{margin-top:0.9rem;}

.condlist{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;}
.condlist__item{display:flex;gap:0.85rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem 1.25rem;box-shadow:var(--shadow-sm);}
.condlist__icon{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--lilac-2);color:var(--lilac-ink);}
.condlist__icon svg{width:18px;height:18px;}
.condlist__item strong{display:block;font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);margin-bottom:0.2rem;}
.condlist__item p{color:var(--ink-soft);font-size:0.92rem;line-height:1.5;margin:0;}
@media (max-width:780px){ .condlist{grid-template-columns:1fr;} }
.condlist__item--note{grid-column:1/-1;background:var(--lilac-2);border-color:transparent;}
.condlist__item--note .condlist__icon{background:var(--lilac);}

/* =====================================================================
   DIY vs PRO blog — quick-answer grid + advantage table
   ===================================================================== */
.qa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.9rem;}
.qa-cell{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.25rem 1.35rem;box-shadow:var(--shadow-sm);}
.qa-cell small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.6rem;letter-spacing:0.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.45rem;}
.qa-cell strong{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);line-height:1.25;letter-spacing:-0.01em;}
.qa-cell--diy{background:var(--coral-2);border-color:transparent;}
.qa-cell--pro{background:var(--mint-2);border-color:transparent;}
.qa-cell--diy small{color:var(--coral-ink);}
.qa-cell--pro small{color:var(--accent-deep);}
@media (max-width:780px){ .qa-grid{grid-template-columns:1fr;} }

/* advantage comparison table: highlight the Pro column */
.data-table--vs th:last-child,.data-table--vs td:last-child{background:var(--mint-2);}
.data-table--vs thead th:last-child{background:var(--accent);color:var(--forest);}
.data-table--vs td:first-child{font-family:var(--font-display);font-weight:700;color:var(--ink);}
.data-table--vs a{color:var(--accent-deep);font-weight:700;box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}

/* =====================================================================
   COMMERCIAL SUN CONTROL — payback calc result row + quick answers
   ===================================================================== */
.calc--payback{grid-template-columns:0.85fr 1.15fr;}
.calc__result--3{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;margin-top:1.5rem;padding-top:1.4rem;border-top:1px solid var(--line-dark);}
.calc__result--3 .calc__result-cell small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.58rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:0.35rem;}
.calc__result--3 .calc__result-cell strong{font-family:var(--font-display);font-weight:800;font-size:1.55rem;color:var(--accent);letter-spacing:-0.02em;line-height:1;}
.calc__result--3 .calc__result-cell span{display:block;font-family:var(--font-body);font-weight:700;font-size:0.72rem;color:var(--on-dark-soft);margin-top:0.25rem;}
@media (max-width:860px){ .calc--payback{grid-template-columns:1fr;} }
@media (max-width:560px){ .calc__result--3{grid-template-columns:1fr;gap:0.9rem;} }

.quicka{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.quicka__item{background:var(--mint-2);border-radius:var(--r-lg);padding:1.2rem 1.35rem;}
.quicka__item strong{display:block;font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--ink);margin-bottom:0.4rem;}
.quicka__item p{color:var(--ink-soft);font-size:0.95rem;line-height:1.55;margin:0;}
@media (max-width:780px){ .quicka{grid-template-columns:1fr;} }

/* county selector reuses .explorer — small panel helpers */
.county-card__contact{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;margin:1.2rem 0;}
.county-card__fact{background:var(--paper-2);border-radius:var(--r);padding:0.85rem 1rem;}
.county-card__fact small{display:block;font-family:var(--font-body);font-weight:800;font-size:0.56rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:0.3rem;}
.county-card__fact strong{font-family:var(--font-display);font-weight:700;font-size:0.98rem;color:var(--ink);line-height:1.2;}
@media (max-width:560px){ .county-card__contact{grid-template-columns:1fr;} }

/* interactive cost estimator */
.cost-calc{display:grid;grid-template-columns:1.3fr 0.7fr;gap:var(--space-5);align-items:start;}
.cost-calc__hint{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--accent-deep);margin-bottom:0.85rem;}
.cost-calc__hint svg{width:18px;height:18px;flex:none;}
.data-table--select{min-width:520px;}
.data-table--select tbody tr{cursor:pointer;transition:background .15s;}
.data-table--select tbody tr:hover td{background:var(--mint-2);}
.data-table--select tbody tr.is-selected td{background:var(--mint-2);}
.data-table--select tbody tr.is-selected td:first-child{box-shadow:inset 4px 0 0 0 var(--accent-deep);}
.cost-calc__panel{position:sticky;top:100px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.75rem;box-shadow:var(--shadow-sm);}
.cost-calc__label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent-deep);}
.cost-calc__field{margin-top:1.3rem;}
.cost-calc__field-top{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-display);font-weight:700;font-size:0.98rem;color:var(--ink);}
.cost-calc__field-top strong{font-size:1.5rem;color:var(--accent-deep);letter-spacing:-0.02em;}
.cost-calc__slider{width:100%;margin-top:0.85rem;-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:var(--line);outline:none;}
.cost-calc__slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--accent-deep);cursor:pointer;border:4px solid var(--white);box-shadow:var(--shadow-sm);}
.cost-calc__slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--accent-deep);cursor:pointer;border:4px solid var(--white);box-shadow:var(--shadow-sm);}
.cost-calc__scale{display:flex;justify-content:space-between;margin-top:0.4rem;font-size:0.75rem;font-weight:700;color:var(--ink-faint);}
.cost-calc__readout{margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid var(--line);}
.cost-calc__readout-label{display:block;font-weight:700;font-size:0.82rem;color:var(--ink-faint);}
.cost-calc__readout-label .js-cc-film{color:var(--ink);}
.cost-calc__total{display:block;margin-top:0.4rem;font-family:var(--font-display);font-weight:800;font-size:2.2rem;letter-spacing:-0.02em;color:var(--accent-deep);}
.cost-calc__cta{width:100%;justify-content:center;margin-top:1.3rem;}
.cost-calc__note{margin-top:1rem;font-size:0.8rem;color:var(--ink-faint);line-height:1.55;}

/* comparison "vs" panel (reuses .cost-calc layout) */
.spec__fill--alt{background:linear-gradient(90deg,var(--ink-faint),oklch(0.7 0.03 158));}
.data-table--select tbody tr.data-table__row--hl{cursor:default;}
.compare__metric{margin-top:1.3rem;}
.compare__metric-label{display:block;font-family:var(--font-body);font-weight:800;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:0.6rem;}
.compare__bar{display:grid;grid-template-columns:1fr;gap:0.3rem;margin-bottom:0.7rem;}
.compare__bar .spec__bar{height:12px;}
.compare__bar-name{font-family:var(--font-display);font-weight:700;font-size:0.85rem;color:var(--ink);}
.compare__bar-val{font-family:var(--font-display);font-weight:800;font-size:0.82rem;color:var(--ink-faint);}
.compare__bar:first-of-type .compare__bar-val{color:var(--accent-deep);}
.compare__facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.6rem;margin-top:1.4rem;padding-top:1.3rem;border-top:1px solid var(--line);}
.compare__fact{display:flex;flex-direction:column;gap:0.2rem;}
.compare__fact small{font-weight:700;font-size:0.7rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.04em;}
.compare__fact strong{font-family:var(--font-display);font-weight:700;font-size:0.92rem;color:var(--ink);line-height:1.2;}

/* geo / service-area grid */
.geo-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.geo-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem 1.5rem;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;}
.geo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.geo-card__name{display:inline-flex;align-items:center;gap:0.45rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--accent-deep);box-shadow:inset 0 -2px 0 0 oklch(0.72 0.158 152 / 0.4);}
.geo-card__areas{margin-top:0.6rem;color:var(--ink-soft);font-size:0.95rem;line-height:1.6;}

/* results fact list */
.factlist{display:grid;grid-template-columns:1fr 1fr;gap:0.85rem;}
.factlist__item{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.3rem;box-shadow:var(--shadow-sm);}
.factlist__item strong{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--ink);letter-spacing:-0.01em;}
.factlist__item span{margin-top:0.3rem;color:var(--ink-faint);font-weight:700;font-size:0.85rem;}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1080px){
  .credentials{grid-template-columns:repeat(3,1fr);row-gap:1.5rem;}
  .footer__top{grid-template-columns:1fr 1fr;}
  .hero__reviews{grid-template-columns:1fr;}
  .logo-strip__inner{justify-content:center;text-align:center;}
}
@media (max-width:980px){
  .nav,.header__phone{display:none;}
  .header__menu-toggle{display:flex;}
  .trust-bar__list{display:grid;grid-template-columns:auto auto;justify-content:center;column-gap:1.8rem;row-gap:0.85rem;}
  .section-head{grid-template-columns:1fr;gap:1rem;}
  .definition__card{grid-template-columns:1fr;grid-template-areas:"head" "aside" "content";gap:1.5rem;}
  .cta-bar__inner,.calc,.locations__grid,.faq__grid,.savings,.filmfinder{grid-template-columns:1fr;}
  .tile-grid--3{grid-template-columns:1fr 1fr;}
  .feature-grid{grid-template-columns:1fr 1fr;}
  .nap{grid-template-columns:1fr;}
  .nap__map{min-height:260px;}
  .climate__viz,.faq__intro{position:static;}
  .process__timeline{grid-template-columns:repeat(2,1fr);gap:2rem;}
  .process-step::before{display:none;}
  .stepper__label{font-size:0.72rem;}
  .metric-bar__grid{gap:0.7rem;}
  .metric-bar__item{padding:1.3rem 0.8rem;}
  .split{grid-template-columns:1fr;gap:var(--space-5);}
  .split__aside{position:static;}
  .steps{grid-template-columns:1fr;}
  .cost-calc{grid-template-columns:1fr;gap:var(--space-5);}
  .cost-calc__panel{position:static;order:-1;}
}
@media (max-width:840px){
  .hero-float,.hero-opts{display:none;}
  .hero__stage{min-height:0;margin-top:2rem;}
}
@media (max-width:860px){
  .service-card{flex-basis:calc((100% - 1.25rem) / 2);}
  .review{flex-basis:calc((100% - 1.25rem) / 2);}
}
@media (max-width:680px){
  body{font-size:16px;}
  .metric-bar__grid{gap:0.5rem;}
  .metric-bar__item{padding:1rem 0.45rem;border-radius:var(--r-sm);}
  .metric-bar__value{font-size:clamp(1.4rem,6.2vw,2.1rem);}
  .metric-bar__label{font-size:0.6rem;letter-spacing:0.02em;}
  .header__topbar-list li:nth-child(2),.header__topbar-list li:nth-child(3){display:none;}
  .service-card{flex-basis:90%;}
  .review{flex-basis:84%;}
  .services__grid{padding:1rem 0.5rem 1.5rem;gap:0.9rem;}
  .hero__media-img{aspect-ratio:3/2.4;}
  .film-does__item{grid-template-columns:1fr;grid-template-areas:"icon" "text" "stat";gap:0.5rem;align-items:start;}
  .film-does__icon{grid-area:icon;align-self:start;}
  .film-does__text{grid-area:text;min-width:0;}
  .film-does__stat{grid-area:stat;font-size:1.3rem;}
  .logo-strip__inner{flex-direction:column;gap:1rem;}
  .logo-strip__label{max-width:none;text-align:center;}
  .logo-strip__logos{gap:1.1rem 1.6rem;justify-content:center;}
  .logo-strip__logo{font-size:1.2rem;}
  .climate__facts{grid-template-columns:1fr 1fr;}
  .climate__tabs{grid-template-columns:1fr;}
  .climate__body{grid-template-columns:1fr;}
  .credentials{grid-template-columns:1fr 1fr;}
  .process__timeline{grid-template-columns:1fr;}
  .hero__badge--br{display:none;}
  .hero__chip{left:0.6rem;bottom:1rem;}
  .footer__top{grid-template-columns:1fr;gap:0;}
  .footer__col{border-top:1px solid var(--line-dark);padding-block:0.5rem;}
  .footer__col-head{cursor:pointer;padding-block:1rem;margin-bottom:0;}
  .footer__col-icon{display:grid;place-items:center;transition:transform .25s;color:var(--accent);}
  .footer__col-icon svg{width:18px;height:18px;}
  .footer__col.is-open .footer__col-icon{transform:rotate(180deg);}
  .footer__col-list,.footer__col-content{display:none;padding-bottom:1rem;}
  .footer__col.is-open .footer__col-list,.footer__col.is-open .footer__col-content{display:flex;}
  .footer__brand{border-top:none;}
  .footer__socials{padding-bottom:1.75rem;}
  .cta-bar__actions .btn,.final-cta__actions .btn,.hero__actions .btn{flex:1;justify-content:center;}
  .brands{flex-direction:column;align-items:center;text-align:center;gap:1.1rem;}
  .brands__list{width:100%;flex:none;justify-content:center;}
  .final-cta__inner{width:100%;}
  .tile-grid,.geo-grid,.factlist,.tile-grid--3{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:1fr;}
  .project-card__media{grid-template-columns:1fr;}
  .qa-card__q{font-size:1.2rem;}
  .data-table{min-width:480px;}

  /* cost estimator: reflow the selectable table into tap-friendly cards (no h-scroll) */
  .cost-calc__table .table-wrap{border:none;box-shadow:none;background:transparent;overflow:visible;border-radius:0;}
  .data-table--select{min-width:0;}
  .data-table--select thead{display:none;}
  .data-table--select tbody{display:flex;flex-direction:column;gap:0.7rem;}
  .data-table--select tbody tr{display:flex;flex-direction:column;gap:0.35rem;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:0.95rem 1.1rem;box-shadow:var(--shadow-sm);}
  .data-table--select tbody tr:nth-child(even){background:var(--white);}
  .data-table--select tbody tr td{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:0;border:none;font-size:0.95rem;background:transparent;}
  .data-table--select tbody tr td:first-child{font-family:var(--font-display);font-weight:700;font-size:1.06rem;color:var(--ink);padding-bottom:0.5rem;margin-bottom:0.2rem;border-bottom:1px solid var(--line);box-shadow:none;}
  .data-table--select tbody tr td:not(:first-child)::before{content:attr(data-label);color:var(--ink-faint);font-weight:700;font-size:0.82rem;}
  .data-table--select tbody tr.is-selected{background:var(--mint-2);border-color:var(--accent-deep);box-shadow:inset 0 0 0 1px var(--accent-deep),var(--shadow-sm);}
  .data-table--select tbody tr.data-table__row--hl{border-color:var(--accent-deep);background:var(--mint-2);}
  .data-table--select tbody tr.data-table__row--hl td,.data-table--select tbody tr.data-table__row--hl td:first-child{background:transparent;}
  .data-table--select tbody tr.is-selected td:first-child{border-bottom-color:oklch(0.55 0.13 153 / 0.3);}
  /* pin the estimator panel above the cards so the live total stays visible while tapping */
  .cost-calc{gap:1rem;}
  .cost-calc__panel{order:-1;position:sticky;top:64px;z-index:5;padding:1.25rem;}
  .cost-calc__note{display:none;}
  .cost-calc__cta{margin-top:1rem;}
  /* 6-node stepper: shrink rail so it never overflows a phone */
  .stepper__rail{gap:0.3rem;}
  .stepper__dot{width:34px;height:34px;font-size:0.85rem;border-width:2px;}
  .stepper__track{left:17px;right:17px;top:17px;}
  .stepper__label{font-size:0.58rem;line-height:1.1;}
  .stepper__node{gap:0.4rem;}
  /* tighten film-card spec rows */
  .tile .spec{grid-template-columns:74px 1fr auto;gap:0.55rem;}
  .tile .spec--chip{grid-template-columns:74px 1fr;}
  .tile .spec__label{font-size:0.62rem;}
}

@media (max-width:460px){
  .trust-bar__list{grid-template-columns:auto;justify-items:center;}
}


/* =========================================================================
   v3 -> v4 COMPATIBILITY LAYER
   Appended so legacy (v3-authored) service/location/info pages render under
   the v4 "Sunlit" stylesheet. Part A: token aliases + ported component rules.
========================================================================= */

/* ===== v3→v4 token aliases (for ported legacy components) ===== */
:root{
  --color-bg:var(--paper); --color-bg-alt:var(--paper-2); --color-surface:var(--white);
  --color-ink:var(--ink); --color-ink-soft:var(--ink-soft); --color-muted:var(--ink-faint);
  --color-line:var(--line); --color-line-strong:var(--line-strong);
  --color-brand:var(--accent); --color-brand-dark:var(--accent-deep);
  --color-primary:var(--ink); --color-primary-dark:#000; --color-primary-soft:var(--ink-2);
  --color-primary-tint:var(--mint-2);
  --color-accent:var(--butter); --color-accent-dark:var(--butter-ink); --color-accent-soft:var(--butter-2);
  --color-on-dark:var(--on-dark);
  --font-mono:var(--font-body);
  --fs-hero:clamp(2.3rem,4.4vw + 1rem,3.8rem); --fs-xl:clamp(1.45rem,1.8vw + .6rem,2.1rem);
  --fs-lg:clamp(1.25rem,1vw + 1rem,1.6rem); --fs-md:1.0625rem; --fs-sm:.9375rem; --fs-xs:.8125rem;
  --lh-tight:1.08; --lh-snug:1.2; --lh-body:1.6;
  --space-10:8rem;
  --container-max:var(--container); --container-pad:clamp(1.25rem,3vw,2.5rem);
  --radius-sm:var(--r-sm); --radius-md:var(--r); --radius-lg:var(--r-lg); --radius-pill:var(--r-pill);
  --shadow-md:var(--shadow);
  --ease:cubic-bezier(.2,.7,.2,1); --transition:280ms var(--ease);
}

/* ===== SERVICE/LOCATION HERO (ported from v3 .hero, namespaced .svc-hero) ===== */
.svc-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(2.5rem, 5vw, 5rem) clamp(3rem, 5vw, 4.5rem);
  background:
    radial-gradient(circle at 92% -5%, rgba(255, 189, 89, 0.32) 0%, transparent 42%),
    radial-gradient(circle at -5% 105%, rgba(5, 134, 72, 0.22) 0%, transparent 55%),
    linear-gradient(180deg, #ffffff 0%, #e4f2ea 100%);
}
.svc-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(5, 134, 72, 0.18) 1px, transparent 1px),
    linear-gradient(0deg,  rgba(5, 134, 72, 0.10) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.6) 55%, transparent 95%);
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.6) 55%, transparent 95%);
  pointer-events: none;
  z-index: 0;
}
.svc-hero > * { position: relative; z-index: 1; }
.svc-hero__headline {
  text-align: center;
  max-width: 100%;
  margin-inline: auto;
  padding-bottom: clamp(2rem, 4vw, 3rem);
}
.svc-hero__headline .svc-hero__title {
  font-size: clamp(1.75rem, 2.4vw + 0.5rem, 2.75rem);
  line-height: 1.1;
  margin-bottom: 0;
}
.svc-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.svc-hero__copy { max-width: 640px; }
.svc-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.75rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-brand);
  margin-bottom: 1.5rem;
  font-weight: 500;
}
.svc-hero__eyebrow-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-accent);
  box-shadow: 0 0 0 4px var(--color-accent-soft);
}
.svc-hero__title {
  font-size: var(--fs-hero);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: var(--color-primary-dark);
  margin-bottom: 1rem;
}
.svc-hero__title em {
  font-style: italic;
  color: var(--color-brand);
  font-weight: 500;
}
.svc-hero__lead {
  font-size: 1.0625rem;
  color: var(--color-ink-soft);
  max-width: 52ch;
  margin-bottom: var(--space-6);
  line-height: 1.6;
}
.svc-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  margin-bottom: var(--space-6);
}
.svc-hero__phone-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-weight: 500;
  color: var(--color-primary);
}
.svc-hero__phone-icon {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--color-accent-soft);
  border: 1px solid var(--color-accent);
  display: grid; place-items: center;
  flex-shrink: 0;
}
.svc-hero__phone-icon svg { width: 16px; height: 16px; color: var(--color-accent-dark); }
.svc-hero__phone-meta { display: flex; flex-direction: column; line-height: 1.15; }
.svc-hero__phone-meta small {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-muted);
}
.svc-hero__phone-meta strong {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-primary);
}
.svc-hero__trust {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  flex-wrap: wrap;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-line);
}
.svc-hero__trust-item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8125rem;
  color: var(--color-ink-soft);
}
.svc-hero__trust-item svg {
  width: 16px; height: 16px;
  color: var(--color-brand);
}
.svc-hero__trust--row {
  margin-top: clamp(2rem, 4vw, 3rem);
  justify-content: center;
}
.svc-hero__visual {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--color-primary-dark);
}
.svc-hero__visual-image {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  background:
    linear-gradient(135deg, rgba(14, 58, 31, 0.4) 0%, transparent 60%),
    linear-gradient(180deg, rgba(7, 33, 15, 0) 50%, rgba(7, 33, 15, 0.7) 100%),
    repeating-linear-gradient(115deg, rgba(246, 239, 217, 0.04) 0 16px, transparent 16px 32px),
    radial-gradient(ellipse at 30% 30%, #2d6e44 0%, #14411f 50%, #07210f 100%);
}
.svc-hero__visual-label {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  color: rgba(246, 239, 217, 0.7);
  background: rgba(7, 33, 15, 0.5);
  padding: 0.4rem 0.7rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(246, 239, 217, 0.15);
  z-index: 4;
}
.svc-hero__badge {
  position: absolute;
  left: 1.5rem;
  bottom: 1.5rem;
  right: 1.5rem;
  color: var(--color-on-dark);
  z-index: 3;
}
.svc-hero__badge-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 0.5rem;
}
.svc-hero__badge-title {
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2vw, 1.9rem);
  color: var(--color-on-dark);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 0.4rem;
}
.svc-hero__badge-sub {
  font-size: 0.85rem;
  color: rgba(246, 239, 217, 0.7);
}

/* ===== DEFINITION (BEM children only — base .definition stays v4) ===== */
.definition__label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-brand);
  margin-bottom: 1rem;
}
.definition__aside-icon {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--color-accent);
}
.definition__aside-icon svg { width: 15px; height: 15px; }

/* ===== CLIMATE ===== */
.climate:has(.climate__grid) { background: var(--color-surface); }
.climate__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
}
.climate__copy p { margin-bottom: var(--space-4); color: var(--color-ink-soft); }
.climate__viz {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--color-primary-dark);
  box-shadow: var(--shadow-md);
}
.climate__viz-image {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  background:
    linear-gradient(180deg, rgba(7, 33, 15, 0) 50%, rgba(7, 33, 15, 0.85) 100%),
    radial-gradient(ellipse at 50% 30%, #f4b659 0%, #d4853a 30%, #6e4a2a 70%, #07210f 100%);
}
.climate__viz-label {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  color: rgba(246, 239, 217, 0.7);
  background: rgba(7, 33, 15, 0.5);
  padding: 0.4rem 0.7rem;
  border-radius: var(--radius-sm);
}
.climate__viz .climate__facts {
  position: absolute;
  inset: auto 1.25rem 1.25rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
.climate__viz .climate__fact {
  background: rgba(7, 33, 15, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(246, 239, 217, 0.15);
  padding: 0.95rem 1.1rem;
  border-radius: var(--radius-md);
  color: var(--color-on-dark);
}
.climate__viz .climate__fact strong {
  font-family: var(--font-display);
  font-size: 1.7rem;
  display: block;
  color: var(--color-accent);
  line-height: 1;
  font-weight: 600;
}
.climate__viz .climate__fact small {
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  opacity: 0.85;
  display: block;
  margin-top: 6px;
  text-transform: uppercase;
}

/* ===== SERVICE CARD MEDIA (img + label only; base .service-card stays v4) ===== */
.service-card__media-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.service-card__media-label {
  position: absolute;
  bottom: 0.6rem;
  left: 0.6rem;
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.02em;
  color: var(--color-primary);
  background: rgba(255, 255, 255, 0.85);
  padding: 0.25rem 0.5rem;
  border-radius: var(--radius-sm);
}

/* ===== FAQ HEADING WRAPPER (h3 around the trigger) ===== */
.faq-item__heading {
  margin: 0;
  font: inherit;
  font-weight: inherit;
  letter-spacing: 0;
}

/* ===== INLINE CTA ===== */
.inline-cta {
  background: var(--color-bg-alt);
  border: 1px solid var(--color-line-strong);
  border-left: 4px solid var(--color-brand);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2.5rem);
  margin-block: clamp(2rem, 4vw, 3rem);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5rem;
  align-items: center;
}
.inline-cta__copy {
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--color-primary-dark);
}
.inline-cta__copy strong { color: var(--color-brand); font-weight: 700; }
.inline-cta__copy a { color: var(--color-brand); text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: 3px; font-weight: 600; }
.inline-cta__copy a:hover { color: var(--color-brand-dark); }
.inline-cta__actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }

/* ===== SNIPPET CARDS ===== */
.snippet-cards {
  display: grid;
  gap: var(--space-4);
}
.snippet-card {
  background: #eef5ff;
  border: 1px solid #cfe0f5;
  border-left: 4px solid var(--color-brand);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2.25rem);
}
.snippet-card__q {
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 1.4vw + 0.5rem, 1.4rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-primary-dark);
  margin-bottom: 0.85rem;
  line-height: 1.25;
}
.snippet-card__a {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  margin-bottom: 0.85rem;
  line-height: 1.45;
}
.snippet-card__body {
  font-size: 0.95rem;
  color: var(--color-ink-soft);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.snippet-card__link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-brand);
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
  text-underline-offset: 3px;
}
.snippet-card__link:hover { color: var(--color-brand-dark); }

/* ===== CAUTION CALLOUT ===== */
.caution-callout {
  background: #fff8e6;
  border: 1px solid #f3d792;
  border-left: 4px solid var(--color-accent-dark);
  border-radius: var(--radius-md);
  padding: clamp(1.75rem, 3vw, 2.5rem);
}
.caution-callout__lead {
  font-size: 1.0625rem;
  color: var(--color-primary-dark);
  margin-bottom: 1.5rem;
  line-height: 1.6;
}
.caution-callout__list { display: grid; gap: 1.25rem; }
.caution-callout__item {
  padding-left: 1.5rem;
  position: relative;
  font-size: 0.95rem;
  color: var(--color-ink-soft);
  line-height: 1.6;
}
.caution-callout__item::before {
  content: "!";
  position: absolute;
  left: 0; top: 2px;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--color-accent-dark);
  color: var(--color-primary-dark);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.75rem;
  display: grid; place-items: center;
  line-height: 1;
}
.caution-callout__item strong { color: var(--color-primary-dark); font-weight: 700; display: block; margin-bottom: 0.25rem; }
.caution-callout__close {
  margin-top: 1.5rem;
  font-size: 0.95rem;
  font-style: italic;
  color: var(--color-primary-dark);
  padding-top: 1.25rem;
  border-top: 1px solid #f3d792;
}

/* ===== INSTALL STEPS ===== */
.install-steps {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-6);
  list-style: none;
  padding: 0;
}
.install-step {
  display: grid;
  grid-template-columns: 72px 1fr;
  column-gap: 1.5rem;
  row-gap: 0;
  align-items: start;
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 3vw, 2rem);
  position: relative;
  transition: var(--transition);
}
.install-step:hover { border-color: var(--color-brand); box-shadow: var(--shadow-sm); }
.install-step__num {
  width: 56px; height: 56px;
  background: var(--color-brand);
  color: var(--color-on-dark);
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  border-radius: 50%;
  display: grid; place-items: center;
  flex-shrink: 0;
  letter-spacing: -0.02em;
}
.install-step__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-primary-dark);
  margin-bottom: 0.65rem;
}
.install-step__body {
  font-size: 0.95rem;
  color: var(--color-ink-soft);
  line-height: 1.65;
}
.install-step > .install-step__title,
.install-step > .install-step__body {
  grid-column: 2;
}

/* ===== BREADCRUMB (BEM children only — base .breadcrumb stays v4) ===== */
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--color-ink-soft);
}
.breadcrumb__item { display: inline-flex; align-items: center; }
.breadcrumb__item a {
  color: var(--color-brand);
  text-decoration: underline;
  text-decoration-color: rgba(5, 134, 72, 0.3);
  text-underline-offset: 3px;
  transition: color 200ms var(--ease);
}
.breadcrumb__item a:hover { color: var(--color-brand-dark); }
.breadcrumb__item--current { color: var(--color-ink); font-weight: 500; }
.breadcrumb__sep {
  color: var(--color-line-strong);
  font-size: 0.7rem;
  user-select: none;
}

/* ===== BRAND CARD ===== */
.brand-card {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: clamp(1.5rem, 2.5vw, 2rem);
  transition: var(--transition);
}
.brand-card:hover { border-color: var(--color-brand); box-shadow: var(--shadow-sm); }
.brand-card__name {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--color-primary-dark);
  margin-bottom: 0.75rem;
}
.brand-card__body { font-size: 0.95rem; line-height: 1.6; color: var(--color-ink-soft); }
.brand-card__body ul { margin: 0.75rem 0; padding-left: 1rem; list-style: disc; color: var(--color-ink); }
.brand-card__body ul li { margin-bottom: 0.35rem; }
.brand-card__body strong { color: var(--color-primary-dark); font-weight: 600; }

/* ===== BRAND GRID ===== */
.brand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-4);
}

/* ===== CASE STUDY ===== */
.case-study {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 4vw, 3rem);
}
.case-study__lead {
  font-size: 1.0625rem;
  color: var(--color-ink-soft);
  line-height: 1.6;
  margin-bottom: 1.5rem;
}
.case-study__list {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1.75rem;
  padding-block: 1.5rem;
  border-block: 1px solid var(--color-line);
}
.case-study__list li {
  display: flex;
  gap: 0.85rem;
  font-size: 0.95rem;
  color: var(--color-ink);
  line-height: 1.55;
}
.case-study__list li::before {
  content: "";
  flex-shrink: 0;
  width: 22px; height: 22px;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-brand);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23058648' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-size: 12px;
  background-repeat: no-repeat;
  background-position: center;
  margin-top: 2px;
}
.case-study__list li strong { color: var(--color-primary-dark); font-weight: 700; }

/* ===== COMPARISON TABLE ===== */
.compare-table-wrap {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: var(--space-5);
}
.compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.compare-table thead { background: var(--color-brand); color: var(--color-on-dark); }
.compare-table th {
  text-align: left;
  padding: 1.1rem 1.25rem;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(246, 239, 217, 0.85);
}
.compare-table th:first-child { color: var(--color-accent); }
.compare-table td {
  padding: 1.1rem 1.25rem;
  border-top: 1px solid var(--color-line);
  vertical-align: middle;
}
.compare-table tbody tr.is-featured { background: var(--color-bg-alt); }
.compare-table tbody tr.is-featured td:first-child { color: var(--color-brand); font-weight: 700; }
.compare-table tbody tr:hover { background: var(--color-bg); }
.compare-table td:first-child { font-family: var(--font-display); font-weight: 600; color: var(--color-primary-dark); }

/* ===== HOUSTON BY THE NUMBERS ===== */
.houston-numbers {
  background: var(--color-primary-dark);
  color: var(--color-on-dark);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.75rem;
  margin-block: var(--space-5);
  font-size: 0.95rem;
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.houston-numbers strong {
  font-family: var(--font-display);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  font-weight: 700;
  margin-right: 0.5rem;
}

/* ===== CITY GRID ===== */
.city-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4);
  margin-block: var(--space-5);
}
.city-card {
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: 1.5rem 1.75rem;
  transition: var(--transition);
}
.city-card:hover { border-color: var(--color-brand); box-shadow: var(--shadow-sm); }
.city-card__name {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--color-primary-dark);
  text-decoration: underline;
  text-decoration-color: var(--color-accent);
  text-underline-offset: 4px;
  margin-bottom: 0.5rem;
}
.city-card__name:hover { color: var(--color-brand); }
.city-card__name svg { width: 14px; height: 14px; color: var(--color-brand); }
.city-card__nb {
  font-size: 0.875rem;
  color: var(--color-ink-soft);
  line-height: 1.55;
}

/* ===== LEGACY BUTTON VARIANTS (mostly remapped away by transform; harmless) ===== */
.btn--call {
  background: var(--color-accent);
  color: var(--color-primary-dark);
  border-color: transparent;
  font-weight: 700;
}
.btn--call .btn__icon { background: var(--color-primary-dark); color: var(--color-accent); }
.btn--call:hover { background: var(--color-accent-dark); }
.btn--contact-dark {
  background: transparent;
  color: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  font-weight: 600;
}
.btn--contact-dark .btn__icon { background: var(--color-primary-dark); color: var(--color-accent); }
.btn--contact-dark:hover { background: var(--color-primary-dark); color: var(--color-on-dark); }
.btn--contact-dark:hover .btn__icon { background: var(--color-accent); color: var(--color-primary-dark); }

/* ===== RESPONSIVE — ported component breakpoints ===== */
@media (max-width: 1100px) {
  .inline-cta { grid-template-columns: 1fr; }
  .city-grid { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .svc-hero__inner {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }
  .svc-hero__copy { display: contents; }
  .svc-hero__visual { order: 1; aspect-ratio: 5/4; max-width: 560px; margin-inline: auto; width: 100%; }
  .svc-hero__copy-body { order: 2; }
  .climate__grid { grid-template-columns: 1fr; }
  .snippet-cards { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 768px) {
  .svc-hero__actions,
  .inline-cta__actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
  }
  .svc-hero__actions .btn,
  .inline-cta__actions .btn { flex: 1; justify-content: center; }
}
@media (max-width: 560px) {
  .svc-hero__title { font-size: clamp(2.2rem, 9vw, 3rem); }
  .install-step { grid-template-columns: 1fr; text-align: left; gap: 1rem; }
  .compare-table-wrap { overflow-x: auto; }
  .compare-table { min-width: 640px; }
  .snippet-cards { grid-template-columns: 1fr !important; }
}

/* ===== VLT (tint percentage) calculator — ported from v3, themed via aliases ===== */
/* Interactive VLT (tint percentage) calculator */
.vlt{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2rem);background:var(--white);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.3rem,3vw,2.2rem);box-shadow:var(--shadow-sm);}
.vlt__controls{display:flex;flex-direction:column;gap:1.6rem;align-content:start;}
.vlt__field{display:flex;flex-direction:column;gap:0.55rem;}
.vlt__field-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;}
.vlt__field-head label{font-family:var(--font-display);font-weight:700;font-size:0.98rem;color:var(--ink);}
.vlt__val{font-family:var(--font-display);font-weight:800;font-size:1.05rem;color:var(--ink-faint);}
.vlt__val b{font-size:1.5rem;color:var(--accent-deep);}
.vlt__hint{margin:0;font-size:0.82rem;color:var(--ink-faint);}
.vlt__slider{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:var(--r-pill);outline:none;cursor:pointer;background:linear-gradient(to right,var(--accent-deep) 0%,var(--accent-deep) var(--vlt-fill,35%),var(--line-strong) var(--vlt-fill,35%),var(--line-strong) 100%);}
.vlt__slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--white);border:5px solid var(--accent-deep);box-shadow:0 3px 9px oklch(0 0 0 / 0.22);cursor:pointer;transition:transform .15s;}
.vlt__slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--white);border:5px solid var(--accent-deep);box-shadow:0 3px 9px oklch(0 0 0 / 0.22);cursor:pointer;}
.vlt__slider:hover::-webkit-slider-thumb{transform:scale(1.1);}
.vlt__slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px oklch(0.72 0.158 152 / 0.35);}
.vlt__presets{display:flex;flex-wrap:wrap;gap:0.45rem;margin-top:0.2rem;}
.vlt__preset{font-family:var(--font-display);font-weight:700;font-size:0.8rem;color:var(--ink-soft);background:var(--paper);border:1.5px solid var(--line-strong);border-radius:var(--r-pill);padding:0.35rem 0.7rem;cursor:pointer;transition:all .15s;}
.vlt__preset:hover{border-color:var(--accent-deep);color:var(--ink);}
.vlt__preset.is-active{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--white);}
/* Live preview window */
.vlt__preview{display:flex;flex-direction:column;align-items:center;gap:0.6rem;justify-content:center;}
.vlt__window{position:relative;width:100%;min-height:230px;border-radius:var(--r-lg);overflow:hidden;border:3px solid var(--ink);box-shadow:inset 0 0 0 1px oklch(1 0 0 / 0.3);}
.vlt__scene{position:absolute;inset:0;background:linear-gradient(180deg,#7ec8f0 0%,#bfe3f5 38%,#eaf6e6 60%,#cdebc0 78%,#9bcf86 100%);}
.vlt__scene::after{content:"";position:absolute;left:12%;bottom:0;width:30%;height:46%;background:#84b86a;clip-path:polygon(0 100%,40% 18%,55% 40%,75% 8%,100% 100%);opacity:0.85;}
.vlt__tint{position:absolute;inset:0;background:#0a0f0a;opacity:0.73;transition:opacity .12s ease;}
.vlt__readout{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.1rem;z-index:2;color:#fff;text-shadow:0 1px 6px oklch(0 0 0 / 0.6);}
.vlt__readout-num{font-family:var(--font-display);font-weight:800;font-size:clamp(2.4rem,6vw,3.4rem);line-height:1;}
.vlt__readout-cap{font-family:var(--font-body);font-weight:800;font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;opacity:0.9;}
.vlt__preview-note{font-size:0.8rem;color:var(--ink-faint);font-weight:700;}
/* Result row */
.vlt__result{grid-column:1 / -1;display:grid;gap:1.1rem;padding-top:1.3rem;border-top:1px solid var(--line);}
.vlt__result-main{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0.5rem 1.2rem;}
.vlt__result-label{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--ink);}
.vlt__result-sub{font-size:0.95rem;color:var(--ink-soft);}
.vlt__result-sub b{color:var(--accent-deep);}
.vlt__scale{display:flex;flex-direction:column;gap:0.4rem;}
.vlt__scale-bar{position:relative;height:12px;border-radius:var(--r-pill);background:linear-gradient(to right,#0a0f0a 0%,#2c2c2c 20%,#6b6b6b 45%,#b9b9b9 70%,#eef3ee 100%);}
.vlt__scale-marker{position:absolute;top:50%;width:18px;height:18px;border-radius:50%;background:var(--white);border:4px solid var(--accent-deep);transform:translate(-50%,-50%);transition:left .12s ease;box-shadow:0 2px 6px oklch(0 0 0 / 0.3);}
.vlt__scale-labels{display:flex;justify-content:space-between;font-size:0.72rem;font-weight:700;color:var(--ink-faint);}
/* Texas legal badge */
.vlt__legal{display:flex;align-items:center;gap:0.7rem;padding:0.8rem 1rem;border-radius:var(--r-lg);font-size:0.92rem;font-weight:600;line-height:1.4;}
.vlt__legal-icon{flex:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:900;}
.vlt__legal[data-ok="true"]{background:oklch(0.72 0.158 152 / 0.14);color:var(--accent-deep);}
.vlt__legal[data-ok="true"] .vlt__legal-icon{background:var(--accent-deep);}
.vlt__legal[data-ok="true"] .vlt__legal-icon::before{content:"\2713";}
.vlt__legal[data-ok="false"]{background:oklch(0.62 0.18 25 / 0.12);color:oklch(0.5 0.18 25);}
.vlt__legal[data-ok="false"] .vlt__legal-icon{background:oklch(0.58 0.19 25);}
.vlt__legal[data-ok="false"] .vlt__legal-icon::before{content:"\0021";}
@media (max-width:640px){.vlt{grid-template-columns:1fr;}}
