
  :root{
    --navy:#024F7B; --navy-deep:#063A58; --ink:#0d1b26; --ink-2:#3b4a57; --muted:#6b7a87;
    --line:#e6eaee; --bg:#f5f7f9; --white:#fff; --gold:#d6a74a;
    --radius:14px; --shadow:0 20px 50px -20px rgba(6,58,88,.35);
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
  body{color:var(--ink);background:var(--white);line-height:1.5;letter-spacing:0;overflow-x:hidden;text-rendering:optimizeLegibility}
  h1,h2,h3,p{color:inherit;font-family:inherit}
  img{display:block;max-width:100%}
  #top,#services,#areas,#why{scroll-margin-top:76px}
  a{color:inherit;text-decoration:none}
  .wrap{width:min(1200px,calc(100% - 48px));margin:0 auto}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;padding:.9375rem 1.5rem;border-radius:999px;font-weight:600;font-size:.9375rem;letter-spacing:0;transition:transform .1s ease-out,box-shadow .15s,background .15s;white-space:nowrap;border:0;cursor:pointer;font-family:inherit}
  .btn:hover{transform:translateY(-1px)}
  .btn:active{transform:scale(.97);transition-duration:.1s}
  .btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #7fb8e0;outline-offset:2px}
  .btn-primary{background:var(--navy);color:#fff;box-shadow:0 10px 24px -10px rgba(2,79,123,.7)}
  .btn-primary:hover{background:#03609a}
  .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px)}
  .btn-ghost:hover{background:rgba(255,255,255,.2)}
  .btn-light{background:#fff;color:var(--navy)}
  .eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

  
  .topbar{background:var(--ink);color:#cfd8df;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
  .topbar .wrap{display:flex;gap:28px;justify-content:center;align-items:center;height:36px;overflow:hidden;white-space:nowrap}
  .topbar span{display:inline-flex;align-items:center;gap:8px}
  .topbar .dot{width:4px;height:4px;border-radius:50%;background:#55697a}

  
  header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 1px 0 rgba(13,27,38,.06)}
  header .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
  .brand{display:flex;align-items:center;gap:12px}
  .brand img{width:46px;height:46px;border-radius:10px;object-fit:cover}
  .brand b{display:block;font-size:15px;letter-spacing:.08em;text-transform:uppercase;line-height:1.1}
  .brand small{display:block;font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;font-weight:600;margin-top:3px}
  nav ul{display:flex;gap:28px;list-style:none}
  nav a{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
  nav a:hover{color:var(--navy)}
  .hdr-cta{display:flex;align-items:center;gap:18px}
  .hdr-cta .phone{font-weight:700;font-size:15px;letter-spacing:-.01em}
  .hdr-cta .btn{padding:12px 20px;font-size:14px}
  .hdr-cta .short{display:none}
  .burger{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px}
  .burger i{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px}

  
  .hero{position:relative;color:#fff;background:#0b2436;isolation:isolate}
  .hero .bg{position:absolute;inset:0;z-index:-2;background:url(/img/gen-hero.jpg) 70% 50%/cover no-repeat}
  .hero .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,22,34,.92) 0%,rgba(6,22,34,.78) 38%,rgba(6,22,34,.3) 70%,rgba(6,22,34,.18) 100%),linear-gradient(180deg,rgba(6,22,34,.15) 0%,rgba(6,22,34,0) 30%,rgba(6,22,34,.55) 100%)}
  .hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;padding:88px 0 72px}
  .hero .eyebrow{color:#9fd0f3;display:flex;align-items:center;gap:12px;margin-bottom:22px}
  .hero .eyebrow::before{content:"";width:28px;height:2px;background:var(--gold)}
  .hero h1{font-size:clamp(2.5rem,5.2vw,4.25rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;max-width:13ch}
  .hero h1 em{font-style:normal;color:#9fd0f3;display:block}
  .hero p.lead{margin-top:22px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.86);max-width:52ch}
  .hero .ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap}
  .hero .rating{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:14px;color:rgba(255,255,255,.85)}
  .stars{color:var(--gold);letter-spacing:2px;font-size:15px}
  .rating b{font-size:18px;color:#fff}


  
  .proof{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-size:14px;font-weight:600;color:rgba(255,255,255,.88);list-style:none}
  .proof li{display:flex;align-items:center;gap:8px}
  .proof li::before{content:"";width:18px;height:18px;border-radius:50%;flex:none;background:var(--gold) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'><path d='M1 4l3 3 5-6' fill='none' stroke='%230d1b26' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/10px no-repeat}
  #quote,#ghl-form-slot{scroll-margin-top:92px}
  @media (max-width:1024px){
    header.open nav{display:block;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 18px 30px -18px rgba(6,58,88,.35)}
    header.open nav ul{flex-direction:column;gap:0;width:min(1200px,calc(100% - 40px));margin:0 auto;padding:4px 0 12px}
    header.open nav li+li{border-top:1px solid var(--line)}
    header.open nav a{display:block;padding:15px 0;font-size:15px}
  }
  .nw{white-space:nowrap}
  .callfab{display:none}
  .mbar{display:none}

  .quote{background:#fff;color:var(--ink);border-radius:20px;padding:28px;box-shadow:var(--shadow)}
  .quote h2{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);display:flex;align-items:center;gap:10px}
  .quote h2::after{content:"";flex:1;height:1px;background:var(--line)}
  .quote p.sub{font-size:14px;color:var(--muted);margin:8px 0 18px}
  .field{display:grid;gap:6px;margin-bottom:12px}
  .field label{font-size:12px;font-weight:600;color:var(--ink-2);letter-spacing:.02em}
  .field input,.field textarea,.field select{width:100%;font:inherit;font-size:15px;padding:13px 14px;border:1px solid #d7dee5;border-radius:10px;background:#fbfcfd;color:var(--ink)}
  .field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%233b4a57' stroke-width='1.8'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .quote .btn{width:100%;margin-top:6px}
  .quote .alt{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}
  .quote .alt a{color:var(--navy);font-weight:600}

  
  .serving{background:var(--navy-deep);color:#fff}
  .serving .wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 0;text-align:center}
  .serving .eyebrow{color:#9fd0f3}
  .chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
  .chip{padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);font-size:13px;font-weight:600}

  
  .trust{background:var(--bg);border-bottom:1px solid var(--line)}
  .trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:34px 0}
  .trust .item{display:flex;gap:14px;align-items:flex-start}
  .trust .ico{flex:none;width:44px;height:44px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy)}
  .trust b{display:block;font-size:15px;letter-spacing:-.01em}
  .trust span{font-size:13px;color:var(--muted)}

  
  .services{padding:88px 0 96px}
  .sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px}
  .sec-head .eyebrow{color:var(--navy);margin-bottom:12px}
  .sec-head h2{font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;max-width:20ch}
  .sec-head p{color:var(--muted);max-width:44ch;font-size:16px}
  .grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px}
  .card{position:relative;border-radius:var(--radius);overflow:hidden;color:#fff;background:#0b2436;display:flex;align-items:flex-end;isolation:isolate}
  .card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform .5s}
  .card:hover img{transform:scale(1.04)}
  .card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,24,38,0) 30%,rgba(5,24,38,.9) 100%)}
  .card .txt{padding:22px}
  .card h3{font-size:18px;font-weight:700;letter-spacing:-.01em}
  .card p{font-size:13.5px;color:rgba(255,255,255,.8);margin-top:4px}
  .card.big{grid-column:span 2;grid-row:span 2}
  .card.big .txt{padding:28px}
  .card.big h3{font-size:30px;letter-spacing:-.02em}
  .card.big p{font-size:15px;max-width:38ch;margin-top:8px}
  .card .tag{position:absolute;top:16px;left:16px;padding:6px 10px;border-radius:999px;background:var(--gold);color:var(--ink);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
  .card .arrow{position:absolute;right:18px;bottom:18px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;font-size:18px}
  .services .more{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
  .services .more b{font-size:16px}
  .services .more span{color:var(--muted);font-size:14px}

  
  .band{background:var(--navy);color:#fff}
  .band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;flex-wrap:wrap}
  .band h2{font-size:22px;font-weight:800;letter-spacing:-.02em;text-transform:uppercase}
  .band p{color:rgba(255,255,255,.8);font-size:14px;margin-top:4px}
  .band .acts{display:flex;gap:12px;flex-wrap:wrap}

  footer{padding:28px 0;color:var(--muted);font-size:13px;text-align:center}

  @media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}.card:hover img{transform:none}}
  @media (prefers-reduced-transparency:reduce){header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}.btn-ghost{background:rgba(255,255,255,.25);backdrop-filter:none}}
  @media (max-width:1024px){
    nav{display:none}.burger{display:flex}
    .hero .wrap{grid-template-columns:1fr;gap:36px;padding:64px 0 56px}
    .trust .wrap{grid-template-columns:repeat(2,1fr)}
    .grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}
  }
  @media (max-width:640px){
    .wrap{width:calc(100% - 40px)}
    .topbar{display:none}
    header{background:rgba(255,255,255,.82)}
    header .wrap{height:60px;gap:12px}
    .brand{gap:10px;min-width:0}
    .brand img{width:36px;height:36px;border-radius:9px}
    .brand b{font-size:13px;letter-spacing:.06em;white-space:nowrap}
    .brand small{display:block;font-size:10px;letter-spacing:.12em;margin-top:2px}
    .hdr-cta{gap:8px}
    .hdr-cta .phone,.hdr-cta .btn{display:none}
    .callfab{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff}
    .callfab:active{transform:scale(.94)}
    .burger{width:40px;height:40px;border-radius:50%}

    
    .hero{background:var(--bg)}
    .hero .bg,.hero .shade{display:none}
    .hero .wrap{display:block;width:100%;padding:0}
    .hero-copy{position:relative;isolation:isolate;padding:44px 20px 40px;overflow:hidden}
    .hero-copy::before{content:"";position:absolute;inset:0;z-index:-2;background:url(/img/gen-hero.jpg) 78% 50%/cover no-repeat}
    .hero-copy::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,22,34,.62) 0%,rgba(6,22,34,.78) 45%,rgba(6,22,34,.94) 100%)}
    .hero .eyebrow{font-size:11px;letter-spacing:.12em;margin-bottom:16px;gap:10px}
    .hero .eyebrow::before{width:20px}
    .hero h1{font-size:clamp(2.125rem,10vw,2.5rem);line-height:1.04;max-width:none}
    .hero p.lead{font-size:16px;line-height:1.55;margin-top:14px}
    .hero .ctas{flex-direction:column;gap:10px;margin-top:26px}
    .hero .ctas .btn{width:100%;min-height:54px;font-size:16px}
    .proof{flex-direction:column;gap:9px;margin-top:22px;font-size:14px}
    #ghl-form-slot{padding:0 20px 28px;margin-top:-16px;position:relative}
    #quote,#ghl-form-slot{scroll-margin-top:72px}
    .quote{padding:22px 20px;border-radius:18px;box-shadow:0 18px 40px -22px rgba(6,58,88,.45)}
    .quote h2{font-size:13px}
    .row2{grid-template-columns:1fr;gap:0}
    .field input,.field select{font-size:16px;min-height:50px}
    .quote .btn{min-height:54px;font-size:16px}

    .serving .wrap{padding:22px 0}
    .chips{gap:7px}
    .chip{font-size:12.5px;padding:6px 11px}
    .trust .wrap{grid-template-columns:1fr;gap:0;padding:10px 0}
    .trust .item{align-items:center;gap:14px;padding:14px 0}
    .trust .item+.item{border-top:1px solid var(--line)}
    .trust .ico{width:40px;height:40px;border-radius:11px}
    .trust b{font-size:15px;line-height:1.3}
    .trust span{font-size:13px;line-height:1.4;display:block;margin-top:2px}
    .services{padding:52px 0 56px}
    .sec-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:24px}
    .sec-head h2{font-size:28px}
    .sec-head p{font-size:15px}
    .grid{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:12px}
    .card{min-height:172px}
    .card.big{grid-column:span 2;grid-row:span 1;min-height:260px}
    .card.big h3{font-size:24px}
    .card.big .txt{padding:20px;padding-right:64px}
    .card .txt{padding:14px}
    .card h3{font-size:15px}
    .card p{font-size:12px}
    .card .tag{top:16px;left:16px;font-size:10px}
    .card.big .tag{top:20px;left:20px}
    .card .arrow{right:20px;bottom:20px}
    .services .more{flex-direction:column;align-items:stretch;padding:19px}
    .services .more .btn{width:100%;min-height:52px}
    .band .wrap{padding:32px 0}
    .band .acts{width:100%;flex-direction:column}
    .band .acts .btn{width:100%;min-height:52px}
    footer{padding:28px 0 calc(98px + env(safe-area-inset-bottom))}
    .hero h1,.sec-head h2,.band h2,.card h3{text-wrap:balance}
    footer .wrap span{display:block;text-wrap:balance}
    footer .wrap .sep{display:none}
    footer .wrap span+span{margin-top:4px}
    .hero p.lead,.sec-head p,.band p,.services .more span{text-wrap:pretty}

    
    .mbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px max(20px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));transition:transform .25s ease-out;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -1px 0 rgba(13,27,38,.08)}
    .mbar .btn{min-height:50px;font-size:15px;padding:0 12px}
    .mbar.away{transform:translateY(110%)}
    .mbar .btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
  }
  @media (max-width:640px){
    .serving .wrap{gap:14px;padding:26px 0}
    .chips{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
    .chip{display:flex;align-items:center;justify-content:center;text-align:center;font-size:13.5px;padding:10px 8px;border-radius:12px;white-space:nowrap}
  }

  /* nav dropdown */
  nav li{position:relative}
  nav .has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-3px) rotate(45deg);margin-left:8px}
  nav .sub{position:absolute;top:calc(100% + 14px);left:-18px;min-width:250px;list-style:none;display:block;padding:8px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 50px -24px rgba(6,58,88,.45);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s}
  nav .sub::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
  nav .has-sub:hover .sub,nav .has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
  nav .sub a{display:block;padding:10px 12px;border-radius:9px;text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:600;color:var(--ink)}
  nav .sub a:hover{background:var(--bg);color:var(--navy)}
  nav a[aria-current="page"]{color:var(--navy)}

  /* page hero (service pages) */
  .phero{position:relative;color:#fff;background:#0b2436;isolation:isolate;overflow:hidden}
  .phero .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;background-repeat:no-repeat}
  .phero .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,22,34,.92) 0%,rgba(6,22,34,.74) 45%,rgba(6,22,34,.25) 100%),linear-gradient(180deg,rgba(6,22,34,0) 50%,rgba(6,22,34,.5) 100%)}
  .phero .wrap{padding:84px 0 80px}
  .crumbs{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:600;color:rgba(255,255,255,.7);margin-bottom:22px;list-style:none}
  .crumbs a:hover{color:#fff}
  .crumbs li+li::before{content:"/";margin-right:8px;color:rgba(255,255,255,.4)}
  .phero h1{font-size:clamp(2.375rem,4.8vw,3.75rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;max-width:16ch}
  .phero h1 em{font-style:normal;color:#9fd0f3;display:block}
  .phero p.lead{margin-top:20px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.86);max-width:54ch}
  .phero .ctas{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}

  /* generic sections */
  .sec{padding:88px 0}
  .sec.alt{background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .sec .sec-head{margin-bottom:36px}

  /* included */
  .incl{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center}
  .incl figure{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3.4;background:#0b2436;box-shadow:var(--shadow)}
  .incl figure img{width:100%;height:100%;object-fit:cover}
  .incl figure figcaption{position:absolute;left:16px;bottom:16px;padding:7px 12px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}
  .incl .eyebrow{color:var(--navy);margin-bottom:12px}
  .incl h2{font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .incl .intro{color:var(--ink-2);font-size:16.5px;margin-top:16px;max-width:52ch}
  .checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin-top:28px}
  .checks li{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}
  .checks li::before{content:"";width:24px;height:24px;border-radius:50%;background:var(--navy) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 10 8'><path d='M1 4l3 3 5-6' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/11px no-repeat;margin-top:1px}
  .checks b{display:block;font-size:15.5px;letter-spacing:-.01em;line-height:1.35}
  .checks span{display:block;font-size:14px;color:var(--muted);margin-top:3px;line-height:1.45}

  /* gallery pair */
  .pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px}
  .pair figure{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/2;background:#0b2436}
  .pair img{width:100%;height:100%;object-fit:cover}
  .pair figcaption{position:absolute;left:14px;bottom:14px;padding:6px 11px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}

  /* steps */
  .steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}
  .steps li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px 26px;counter-increment:s}
  .steps li::before{content:counter(s,decimal-leading-zero);display:block;font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--gold);margin-bottom:14px}
  .steps b{display:block;font-size:17px;letter-spacing:-.01em;line-height:1.3}
  .steps span{display:block;font-size:14.5px;color:var(--ink-2);margin-top:8px;line-height:1.55}

  /* faq */
  .faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
  .faq-wrap .eyebrow{color:var(--navy);margin-bottom:12px}
  .faq-wrap h2{font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .faq-wrap .side p{color:var(--muted);margin-top:14px;font-size:16px;max-width:36ch}
  .faq-wrap .side a.tel{display:inline-block;margin-top:18px;font-weight:700;color:var(--navy);font-size:17px}
  .faq{border-top:1px solid var(--line)}
  .faq details{border-bottom:1px solid var(--line)}
  .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-weight:700;font-size:17px;letter-spacing:-.01em;line-height:1.35}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M6 1v10M1 6h10' fill='none' stroke='%23024F7B' stroke-width='1.8' stroke-linecap='round'/></svg>") center/12px no-repeat;transition:transform .2s ease-out}
  .faq details[open] summary::after{transform:rotate(45deg)}
  .faq summary:active{opacity:.7}
  .faq details p{padding:0 46px 22px 0;color:var(--ink-2);font-size:15.5px;line-height:1.65}

  /* other services */
  .others{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .others a{position:relative;display:flex;align-items:flex-end;min-height:170px;border-radius:var(--radius);overflow:hidden;color:#fff;background:#0b2436;isolation:isolate}
  .others img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform .5s}
  .others a:hover img{transform:scale(1.04)}
  .others a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,24,38,0) 35%,rgba(5,24,38,.88) 100%)}
  .others b{padding:16px 18px;font-size:16px;letter-spacing:-.01em}
  .others a:active{transform:scale(.98)}

  /* estimate section */
  .est{background:var(--navy-deep);color:#fff;padding:88px 0}
  .est .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .est .eyebrow{color:#9fd0f3;margin-bottom:14px}
  .est .pitch h2{font-size:clamp(2rem,3.6vw,2.875rem);font-weight:800;letter-spacing:-.02em;line-height:1.04;text-transform:uppercase}
  .est .pitch p{color:rgba(255,255,255,.82);font-size:17px;margin-top:16px;max-width:44ch}
  .est .proof{margin-top:24px}
  .est .callrow{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}

  /* areas page */
  .cities{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
  .cities li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 18px}
  .cities b{display:flex;align-items:center;gap:8px;font-size:16px;letter-spacing:-.01em}
  .cities b::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);flex:none}
  .cities span{display:block;font-size:13.5px;color:var(--muted);margin-top:6px;line-height:1.45}
  .note{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  .note b{font-size:16px}
  .note span{color:var(--muted);font-size:14px}
  .svc-links{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
  .svc-links a{display:inline-flex;padding:11px 18px;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:600;font-size:14.5px}
  .svc-links a:hover{border-color:var(--navy);color:var(--navy)}
  .svc-links a:active{transform:scale(.97)}

  /* footer */
  footer.big{background:var(--ink);color:#aebbc6;padding:56px 0 28px;text-align:left}
  footer.big .cols{display:grid;grid-template-columns:1.3fr 1fr 1.4fr;gap:32px}
  footer.big .areas ul{grid-template-columns:1fr 1fr;column-gap:24px}
  footer.big h4{color:#fff;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
  footer.big ul{list-style:none;display:grid;gap:9px;font-size:14px}
  footer.big a:hover{color:#fff}
  footer.big .fbrand{display:flex;gap:12px;align-items:center;color:#fff}
  footer.big .fbrand img{width:42px;height:42px;border-radius:10px}
  footer.big .fbrand b{display:block;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
  footer.big .fbrand small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8899a6;margin-top:2px}
  footer.big p{font-size:14px;margin-top:14px;max-width:34ch;line-height:1.55}
  footer.big .tel{display:inline-block;margin-top:14px;color:#fff;font-weight:700;font-size:16px}
  footer.big .legal{border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:20px;font-size:13px;color:#7d8d99}

  @media (max-width:1024px){
    header.open nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;padding:0 0 10px 14px;min-width:0;-webkit-backdrop-filter:none;backdrop-filter:none}
    header.open nav .sub::before{display:none}
    header.open nav .sub li{border:0}
    header.open nav .sub a{padding:9px 0;font-size:15px;color:var(--ink-2);font-weight:600}
    header.open nav .has-sub>a::after{display:none}
    header.open nav{max-height:calc(100vh - 76px);overflow-y:auto}
    .incl,.faq-wrap,.est .wrap{grid-template-columns:1fr;gap:36px}
    .steps{grid-template-columns:repeat(2,1fr)}
    .others{grid-template-columns:repeat(2,1fr)}
    .cities{grid-template-columns:repeat(3,1fr)}
    footer.big .cols{grid-template-columns:1fr 1fr}
  }
  @media (max-width:640px){
    header.open nav{max-height:calc(100vh - 60px)}
    .phero .bg{background-position:var(--mpos,60% 50%)}
    .phero .shade{background:linear-gradient(180deg,rgba(6,22,34,.6) 0%,rgba(6,22,34,.78) 50%,rgba(6,22,34,.94) 100%)}
    .phero .wrap{padding:36px 0 40px}
    .crumbs{font-size:12.5px;margin-bottom:16px}
    .phero h1{font-size:clamp(2.125rem,10vw,2.5rem);line-height:1.04;max-width:none;text-wrap:balance}
    .phero p.lead{font-size:16px;line-height:1.55;margin-top:14px;text-wrap:pretty}
    .phero .ctas{flex-direction:column;gap:10px;margin-top:26px}
    .phero .ctas .btn{width:100%;min-height:54px;font-size:16px}
    .sec{padding:56px 0}
    .sec .sec-head{margin-bottom:24px}
    .incl figure{aspect-ratio:4/3;border-radius:16px}
    .incl h2,.faq-wrap h2{font-size:28px;text-wrap:balance}
    .incl .intro{font-size:15.5px}
    .checks{grid-template-columns:1fr;gap:16px;margin-top:24px}
    .pair{grid-template-columns:1fr;gap:12px;margin-top:36px}
    .steps{grid-template-columns:1fr;gap:10px}
    .steps li{padding:18px 18px 20px;display:grid;grid-template-columns:34px 1fr;column-gap:12px}
    .steps li::before{margin:2px 0 0;grid-row:span 2}
    .steps span{margin-top:4px;font-size:14.5px}
    .faq-wrap{gap:20px}
    .faq summary{font-size:16px;padding:19px 0}
    .faq details p{padding:0 0 20px 0;font-size:15px}
    .others{gap:10px}
    .others a{min-height:128px}
    .others b{padding:12px 14px;font-size:14.5px;line-height:1.25}
    .est{padding:52px 0 56px}
    .est .wrap{gap:28px}
    .est .pitch h2{font-size:30px;text-wrap:balance}
    .est #ghl-form-slot{padding:0;margin:0}
    .est .pitch p{font-size:16px}
    .est .proof{flex-direction:column;gap:9px}
    .est .callrow .btn{width:100%;min-height:52px}
    .est .quote{padding:22px 20px;border-radius:18px}
    .cities{grid-template-columns:1fr 1fr;gap:10px}
    .cities li{padding:16px 14px}
    .cities b{font-size:15px}
    .cities span{font-size:13px}
    .note{flex-direction:column;align-items:stretch;padding:19px}
    .note .btn{width:100%;min-height:52px}
    .svc-links a{font-size:14px;padding:10px 15px}
    footer.big{padding:44px 0 calc(100px + env(safe-area-inset-bottom))}
    footer.big .cols{grid-template-columns:1fr 1fr;gap:28px 20px}
    footer.big .cols>div:first-child{grid-column:span 2}
    footer.big .areas ul{grid-template-columns:1fr}
    footer.big .legal{margin-top:32px}
  }


  /* ===================== v4: diversified page components ===================== */
  nav .sub.wide{min-width:400px;columns:2;column-gap:0}
  nav .sub.wide li{break-inside:avoid}
  .serving-lead{color:rgba(255,255,255,.8);font-size:15px;margin:0 0 6px;max-width:60ch}
  .serving .wrap{padding:30px 0 34px}
  .serving .lnk{color:#9fd0f3}
  .chips a.chip{transition:border-color .15s,color .15s}
  .chips a.chip:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5)}
  .chips a.chip:active{transform:scale(.97)}
  .lead-p{color:var(--ink-2);font-size:17px;line-height:1.65;max-width:68ch}
  .lead-p+.lead-p{margin-top:14px}
  .gen{font-size:13px;color:var(--muted);margin-top:16px;line-height:1.5}
  .sec-head.center{text-align:center;display:block}
  .sec-head.center p{margin:14px auto 0}

  /* quick answer (AEO) */
  .answer{padding:44px 0 0}
  .answer+.sec{padding-top:56px}
  .abox{border-left:4px solid var(--gold);background:var(--bg);padding:26px 30px;border-radius:0 18px 18px 0}
  .abox .eyebrow{color:var(--navy);margin-bottom:10px}
  .abox h2{font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.25}
  .abox p{margin-top:10px;color:var(--ink-2);font-size:16.5px;line-height:1.6;max-width:72ch}

  /* stats strip */
  .stats{background:var(--navy);color:#fff}
  .stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
  .stats div{padding:22px 24px;border-left:1px solid rgba(255,255,255,.14)}
  .stats div:first-child{border-left:0;padding-left:0}
  .stats b{display:block;font-size:21px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
  .stats span{display:block;font-size:13px;color:rgba(255,255,255,.75);margin-top:4px}

  /* hero variants */
  .phero .hgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:end}
  .hcard{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:18px;padding:24px 26px}
  .hcard b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9fd0f3;display:block;margin-bottom:12px;font-weight:800}
  .hcard ul{list-style:none;display:grid;gap:10px;font-size:14.5px;line-height:1.45}
  .hcard li{padding-left:22px;position:relative}
  .hcard li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
  .phero.tall .wrap{padding:150px 0 72px}
  .phero.tall .shade{background:linear-gradient(180deg,rgba(6,22,34,.25) 0%,rgba(6,22,34,.35) 40%,rgba(6,22,34,.92) 100%)}
  .phero.tall h1{max-width:20ch}

  .lhero{background:var(--bg);border-bottom:1px solid var(--line);padding:64px 0 56px}
  .lhero .crumbs{color:var(--muted)}
  .lhero .crumbs a:hover{color:var(--navy)}
  .lhero .crumbs li+li::before{color:#b9c3cc}
  .lhero h1{font-size:clamp(2.25rem,4.6vw,3.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;max-width:18ch}
  .lhero h1 em{font-style:normal;color:var(--navy)}
  .lhero p.lead{margin-top:18px;font-size:18px;color:var(--ink-2);max-width:60ch;line-height:1.6}
  .lhero .ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
  .btn-outline-dark{background:#fff;color:var(--navy);border:1px solid #c9d6e0}
  .btn-outline-dark:hover{border-color:var(--navy)}

  .shero{background:#fff;padding:48px 0 64px}
  .shero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .shero .crumbs{color:var(--muted)}
  .shero .crumbs a:hover{color:var(--navy)}
  .shero .crumbs li+li::before{color:#b9c3cc}
  .shero h1{font-size:clamp(2.25rem,4.6vw,3.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .shero h1 em{font-style:normal;color:var(--navy);display:block}
  .shero p.lead{margin-top:18px;font-size:18px;color:var(--ink-2);max-width:52ch;line-height:1.6}
  .shero .ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
  .shero figure{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3.3;box-shadow:var(--shadow);background:#0b2436}
  .shero figure img{width:100%;height:100%;object-fit:cover}
  .shero figcaption{position:absolute;left:16px;bottom:16px;padding:7px 12px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}

  .ghero{padding:28px 0 0}
  .ghero .ggrid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:12px}
  .ghero figure{position:relative;border-radius:16px;overflow:hidden;background:#0b2436}
  .ghero figure img{width:100%;height:100%;object-fit:cover}
  .ghero figure:first-child{grid-column:span 2;grid-row:span 2}
  .ghero figcaption{position:absolute;left:14px;bottom:14px;padding:6px 11px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}
  .ghero .ghead{padding:44px 0 8px}
  .ghero .crumbs{color:var(--muted)}
  .ghero .crumbs a:hover{color:var(--navy)}
  .ghero .crumbs li+li::before{color:#b9c3cc}
  .ghero h1{font-size:clamp(2.25rem,4.6vw,3.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;max-width:20ch}
  .ghero h1 em{font-style:normal;color:var(--navy)}
  .ghero .ghead p.lead{margin-top:16px;font-size:18px;color:var(--ink-2);max-width:60ch;line-height:1.6}
  .ghero .ghead .ctas{display:flex;gap:14px;margin-top:24px;flex-wrap:wrap}

  /* project types */
  .types{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .types article{border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;background:#fff}
  .types .k{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .types h3{font-size:18px;letter-spacing:-.01em;margin-top:8px;line-height:1.25}
  .types p{color:var(--ink-2);font-size:14.5px;margin-top:8px;line-height:1.55}
  .types ul{margin-top:12px;padding-left:18px;color:var(--muted);font-size:13.5px;line-height:1.65}

  /* story (before / during / after) */
  .story{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
  .story figure{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow);background:#0b2436}
  .story figure img{width:100%;height:100%;object-fit:cover}
  .story figcaption{position:absolute;left:16px;bottom:16px;padding:7px 12px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}
  .story ol{list-style:none;display:grid;gap:18px;margin-top:24px}
  .story ol li{display:grid;grid-template-columns:64px 1fr;gap:14px}
  .story .tag{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding-top:4px}
  .story b{display:block;font-size:16.5px;letter-spacing:-.01em}
  .story span{display:block;color:var(--ink-2);font-size:14.5px;margin-top:4px;line-height:1.55}

  /* timeline */
  .tl{list-style:none;position:relative;margin-top:8px;max-width:720px}
  .tl li{position:relative;padding:0 0 30px 42px}
  .tl li::before{content:"";position:absolute;left:9px;top:10px;bottom:-6px;width:2px;background:var(--line)}
  .tl li:last-child::before{display:none}
  .tl li::after{content:"";position:absolute;left:3px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px var(--bg)}
  .sec:not(.alt) .tl li::after{box-shadow:0 0 0 4px #fff}
  .tl .when{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
  .tl b{display:block;font-size:17.5px;margin-top:4px;letter-spacing:-.01em}
  .tl p{color:var(--ink-2);font-size:15px;margin-top:6px;line-height:1.6;max-width:62ch}
  .two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
  .two .sec-head{margin-bottom:20px}

  /* comparison table */
  .cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  table.cmp{width:100%;border-collapse:collapse;font-size:14.5px;min-width:760px}
  .cmp th,.cmp td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
  .cmp th{background:var(--bg);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:800}
  .cmp td:first-child{font-weight:700;white-space:nowrap}
  .cmp tbody tr:last-child td{border-bottom:0}
  .cmp .pick{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--navy);color:#fff;font-size:11px;font-weight:700;margin-left:6px;vertical-align:middle;letter-spacing:.03em}

  /* best by room */
  .rooms{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
  .rooms li{display:flex;gap:14px;justify-content:space-between;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  .rooms b{display:block;font-size:15.5px;letter-spacing:-.01em}
  .rooms span{display:block;color:var(--ink-2);font-size:14px;margin-top:3px;line-height:1.5}
  .rooms .pick{flex:none;padding:5px 10px;border-radius:999px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;align-self:flex-start;white-space:nowrap}

  /* tiers */
  .tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
  .tier{border:1px solid var(--line);border-radius:20px;padding:30px 28px;background:#fff;display:flex;flex-direction:column}
  .tier.mid{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:var(--shadow)}
  .tier .lvl{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .tier h3{font-size:24px;letter-spacing:-.02em;margin-top:10px;line-height:1.1}
  .tier .for{margin-top:10px;font-size:14.5px;color:var(--ink-2);line-height:1.5}
  .tier.mid .for{color:rgba(255,255,255,.82)}
  .tier ul{list-style:none;margin-top:20px;display:grid;gap:10px;font-size:14.5px;line-height:1.45}
  .tier li{padding-left:22px;position:relative}
  .tier li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
  .tier .time{margin-top:auto;padding-top:22px;font-size:13.5px;color:var(--muted);line-height:1.5}
  .tier.mid .time{color:rgba(255,255,255,.72)}

  /* option cards */
  .opts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .opts article{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff}
  .opts img{aspect-ratio:4/3;width:100%;object-fit:cover}
  .opts div{padding:16px 18px 18px}
  .opts h3{font-size:16px;letter-spacing:-.01em}
  .opts p{font-size:13.5px;color:var(--ink-2);margin-top:6px;line-height:1.5}

  /* ideas by room */
  .ideas{display:grid;gap:14px}
  .idea{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff}
  .idea figure{border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#0b2436}
  .idea figure img{width:100%;height:100%;object-fit:cover}
  .idea h3{font-size:19px;letter-spacing:-.01em}
  .idea p{color:var(--ink-2);font-size:14.5px;margin-top:6px;line-height:1.55;max-width:62ch}
  .idea ul{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;list-style:none}
  .idea li{font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--bg);color:var(--ink-2)}
  .idea.flip{grid-template-columns:1fr 220px}
  .idea.flip figure{order:2}

  /* seasons */
  .seasons{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .season{border-radius:var(--radius);padding:24px 22px;background:#fff;border:1px solid var(--line)}
  .season .mo{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
  .season h3{font-size:18px;margin-top:8px;letter-spacing:-.01em;line-height:1.25}
  .season p{font-size:14px;color:var(--ink-2);margin-top:8px;line-height:1.55}

  /* materials */
  .mats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .mat{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fff}
  .mat h3{font-size:18px;letter-spacing:-.01em;line-height:1.25}
  .mat .use{font-size:13.5px;color:var(--muted);margin-top:4px}
  .mat .good,.mat .watch{margin-top:14px;font-size:14px;line-height:1.55;color:var(--ink-2)}
  .mat .good b,.mat .watch b{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
  .mat .good b{color:#1f7a4d}
  .mat .watch b{color:#b3541e}

  /* care tips */
  .care{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .care div{padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  .care h3{font-size:16px;letter-spacing:-.01em}
  .care ul{margin-top:10px;padding-left:18px;color:var(--ink-2);font-size:14.5px;line-height:1.65}

  /* definitions */
  .defs{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
  .defs div{padding:18px 0;border-top:1px solid var(--line)}
  .defs dt{font-weight:700;font-size:16px;letter-spacing:-.01em}
  .defs dd{color:var(--ink-2);font-size:14.5px;margin-top:5px;line-height:1.55}

  /* plain feature list */
  .flist{list-style:none;display:grid;gap:14px}
  .flist li{padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  .flist b{display:block;font-size:16px;letter-spacing:-.01em}
  .flist span{display:block;color:var(--ink-2);font-size:14.5px;margin-top:4px;line-height:1.55}

  /* CTA variants */
  .quote textarea{resize:vertical;min-height:84px}
  .cta-split{background:var(--bg);border-top:1px solid var(--line);padding:88px 0}
  .cta-split .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
  .cta-split .eyebrow{color:var(--navy);margin-bottom:12px}
  .cta-split h2{font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .cta-split p{color:var(--ink-2);font-size:16.5px;margin-top:14px;max-width:46ch;line-height:1.6}
  .cta-split .bring{list-style:none;margin-top:22px;display:grid;gap:10px}
  .cta-split .bring li{display:grid;grid-template-columns:24px 1fr;gap:12px;font-size:15px;line-height:1.45;color:var(--ink)}
  .cta-split .bring li::before{content:"";width:24px;height:24px;border-radius:50%;background:var(--navy) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 10 8'><path d='M1 4l3 3 5-6' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/11px no-repeat;margin-top:1px}
  .cta-split .callrow{margin-top:26px}
  .cta-split #ghl-form-slot{padding:0}

  .cta-side{padding:88px 0;background:#fff}
  .cta-side .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
  .cta-side .pitch .eyebrow{color:var(--navy);margin-bottom:12px}
  .cta-side .pitch h2{font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .cta-side .pitch>p{color:var(--ink-2);font-size:16.5px;margin-top:14px;max-width:46ch;line-height:1.6}
  .cta-side .bring{list-style:none;margin-top:22px;display:grid;gap:12px}
  .cta-side .bring li{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
  .cta-side .bring b{display:block;font-size:15px}
  .cta-side .bring span{display:block;font-size:13.5px;color:var(--ink-2);margin-top:3px;line-height:1.5}
  .cta-side #ghl-form-slot{padding:0}
  .cta-side .quote{box-shadow:var(--shadow);border:1px solid var(--line)}

  .cta-band{background:#0b2436;color:#fff;padding:80px 0 88px;position:relative;isolation:isolate;overflow:hidden}
  .cta-band .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
  .cta-band .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,22,34,.88),rgba(6,22,34,.96))}
  .cta-band .wrap{max-width:780px;text-align:center}
  .cta-band .eyebrow{color:#9fd0f3;margin-bottom:14px}
  .cta-band h2{font-size:clamp(2rem,3.8vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.04;text-transform:uppercase}
  .cta-band>.wrap>p{color:rgba(255,255,255,.82);font-size:17px;margin:16px auto 0;max-width:52ch;line-height:1.6}
  .cta-band .callrow{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
  .cta-band #ghl-form-slot{margin-top:36px;padding:0;text-align:left}
  .cta-band .quote{max-width:640px;margin:0 auto}

  .cta-photo{position:relative;isolation:isolate;color:#fff;padding:96px 0;background:#0b2436;overflow:hidden}
  .cta-photo .bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
  .cta-photo .shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,22,34,.94) 0%,rgba(6,22,34,.8) 50%,rgba(6,22,34,.45) 100%)}
  .cta-photo .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .cta-photo .eyebrow{color:#9fd0f3;margin-bottom:14px}
  .cta-photo h2{font-size:clamp(2rem,3.6vw,2.875rem);font-weight:800;letter-spacing:-.02em;line-height:1.04;text-transform:uppercase}
  .cta-photo .pitch p{color:rgba(255,255,255,.84);font-size:17px;margin-top:16px;max-width:46ch;line-height:1.6}
  .cta-photo .callrow{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
  .cta-photo #ghl-form-slot{padding:0}

  .cta-zip{background:var(--navy);color:#fff;padding:72px 0}
  .cta-zip .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .cta-zip .eyebrow{color:#9fd0f3;margin-bottom:12px}
  .cta-zip h2{font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase}
  .cta-zip p{color:rgba(255,255,255,.84);font-size:16.5px;margin-top:14px;max-width:46ch;line-height:1.6}
  .cta-zip #ghl-form-slot{padding:0}

  .cta-inline{margin-top:40px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:18px;background:var(--navy);color:#fff}
  .cta-inline b{font-size:18px;letter-spacing:-.01em;display:block}
  .cta-inline span{display:block;color:rgba(255,255,255,.78);font-size:14px;margin-top:4px}
  .cta-inline .acts{display:flex;gap:10px;flex:none}

  /* city pages */
  .local{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
  .local-notes{list-style:none;display:grid;gap:12px}
  .local-notes li{padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
  .local-notes b{display:block;font-size:16px;letter-spacing:-.01em}
  .local-notes span{color:var(--ink-2);font-size:14.5px;line-height:1.55;margin-top:4px;display:block}
  .hoods{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-top:16px}
  .hoods li{padding:7px 12px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:13.5px;font-weight:600}
  .svcc{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .svcc a{border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;background:#fff;display:block;transition:border-color .15s}
  .svcc a:hover{border-color:var(--navy)}
  .svcc a:active{transform:scale(.98)}
  .svcc b{display:block;font-size:16.5px;letter-spacing:-.01em}
  .svcc span{display:block;font-size:14px;color:var(--ink-2);margin-top:5px;line-height:1.5}
  .svcc i{display:block;margin-top:12px;font-style:normal;color:var(--navy);font-weight:700;font-size:13.5px}
  .citygrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
  .citygrid a{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:#fff;transition:border-color .15s}
  .citygrid a:hover{border-color:var(--navy)}
  .citygrid a:active{transform:scale(.99)}
  .citygrid figure{aspect-ratio:1;border-radius:12px;overflow:hidden;background:#0b2436}
  .citygrid figure img{width:100%;height:100%;object-fit:cover}
  .citygrid b{font-size:17px;display:block;letter-spacing:-.01em}
  .citygrid span{font-size:14px;color:var(--ink-2);display:block;margin-top:4px;line-height:1.5}
  .citygrid i{font-style:normal;color:var(--navy);font-weight:700;font-size:13.5px;display:block;margin-top:8px}
  .region{margin-top:36px}
  .region h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-weight:800}
  .fig{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:#0b2436;box-shadow:var(--shadow)}
  .fig img{width:100%;height:100%;object-fit:cover}
  .fig figcaption{position:absolute;left:16px;bottom:16px;padding:7px 12px;border-radius:999px;background:rgba(13,27,38,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;font-weight:600}
  .fig.tallish{aspect-ratio:4/4.4}
  .sticky{position:sticky;top:96px}

  @media (max-width:1024px){
    .stats .wrap{grid-template-columns:repeat(2,1fr)}
    .stats div:nth-child(3){border-left:0;padding-left:0}
    .phero .hgrid,.shero .wrap,.story,.two,.local,.cta-split .wrap,.cta-side .wrap,.cta-photo .wrap,.cta-zip .wrap{grid-template-columns:1fr;gap:36px}
    .types,.mats,.care,.svcc{grid-template-columns:repeat(2,1fr)}
    .tiers{grid-template-columns:1fr;max-width:560px;margin:0 auto}
    .opts,.seasons{grid-template-columns:repeat(2,1fr)}
    .ghero .ggrid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
    .ghero figure:first-child{grid-column:span 2;grid-row:span 1}
    .sticky{position:static}
    nav .sub.wide{min-width:0;columns:1}
  }
  @media (max-width:640px){
    .answer{padding:28px 0 0}
    .abox{padding:20px 18px;border-radius:0 14px 14px 0}
    .abox h2{font-size:19px}
    .abox p{font-size:15.5px}
    .stats .wrap{grid-template-columns:1fr 1fr}
    .stats div{padding:16px 0 16px 16px}
    .stats div:nth-child(odd){border-left:0;padding-left:0}
    .stats b{font-size:17px}
    .stats span{font-size:12.5px}
    .hcard{padding:18px 18px}
    .phero.tall .wrap{padding:96px 0 40px}
    .lhero{padding:36px 0 40px}
    .lhero h1,.shero h1,.ghero h1{font-size:clamp(2rem,9.6vw,2.4rem);max-width:none;text-wrap:balance}
    .lhero p.lead,.shero p.lead,.ghero .ghead p.lead{font-size:16px;margin-top:14px;text-wrap:pretty}
    .lhero .ctas,.shero .ctas,.ghero .ghead .ctas{flex-direction:column;gap:10px}
    .lhero .ctas .btn,.shero .ctas .btn,.ghero .ghead .ctas .btn{width:100%;min-height:54px;font-size:16px}
    .shero{padding:32px 0 44px}
    .shero figure{aspect-ratio:4/3;border-radius:18px}
    .ghero{padding:16px 0 0}
    .ghero .ggrid{grid-template-columns:1fr 1fr;grid-auto-rows:120px;gap:8px}
    .ghero figure:first-child{grid-column:span 2;grid-row:span 1;height:200px}
    .ghero .ghead{padding:28px 0 0}
    .lead-p{font-size:15.5px}
    .types,.mats,.care,.svcc,.opts,.seasons,.rooms,.defs,.citygrid{grid-template-columns:1fr}
    .types article{padding:20px 18px}
    .story figure{aspect-ratio:4/3;border-radius:16px}
    .story ol li{grid-template-columns:56px 1fr}
    .tl li{padding:0 0 24px 36px}
    .tl b{font-size:16.5px}
    .tl p{font-size:14.5px}
    table.cmp{min-width:0}
    .cmp thead{display:none}
    .cmp tbody tr{display:block;padding:14px 16px;border-bottom:1px solid var(--line)}
    .cmp tbody tr:last-child{border-bottom:0}
    .cmp td{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:5px 0;border:0;font-size:14px}
    .cmp td::before{content:attr(data-l);font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
    .cmp td:first-child{display:block;font-size:17px;margin-bottom:6px;white-space:normal}
    .cmp td:first-child::before{display:none}
    .tier{padding:24px 20px}
    .tier h3{font-size:22px}
    .idea,.idea.flip{grid-template-columns:1fr;gap:14px;padding:12px}
    .idea.flip figure{order:0}
    .idea h3{font-size:17.5px}
    .idea>div{padding:0 6px 6px}
    .citygrid a{grid-template-columns:84px 1fr;gap:14px;padding:12px}
    .citygrid b{font-size:16px}
    .cta-split,.cta-side{padding:52px 0 56px}
    .cta-split h2,.cta-side .pitch h2{font-size:28px;text-wrap:balance}
    .cta-split .callrow .btn,.cta-photo .callrow .btn,.cta-band .callrow .btn{width:100%;min-height:52px}
    .cta-band{padding:52px 0 56px}
    .cta-band h2{font-size:30px}
    .cta-band>.wrap>p{font-size:16px}
    .cta-band #ghl-form-slot{margin-top:28px}
    .cta-photo{padding:56px 0}
    .cta-photo h2,.cta-zip h2{font-size:30px;text-wrap:balance}
    .cta-zip{padding:52px 0}
    .cta-inline{flex-direction:column;align-items:stretch;padding:20px}
    .cta-inline .acts{flex-direction:column}
    .cta-inline .acts .btn{width:100%;min-height:50px}
    .quote.compact{padding:22px 20px;border-radius:18px}
    .cta-split .quote,.cta-side .quote,.cta-photo .quote,.cta-zip .quote,.cta-band .quote{padding:22px 20px;border-radius:18px}
    .hoods li{font-size:13px}
    .fig,.fig.tallish{aspect-ratio:4/3;border-radius:16px}
  }

  .flist.cols2{grid-template-columns:repeat(2,1fr)}
  .sec-head.center h2{margin:0 auto}
  .h2x{font-size:clamp(1.875rem,3.2vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.05;text-transform:uppercase;margin-top:12px}
  .eyebrow.navy{color:var(--navy)}
  .defs.one{grid-template-columns:1fr}
  @media (max-width:640px){.flist.cols2{grid-template-columns:1fr}.h2x{font-size:28px;text-wrap:balance}}

  .mt14{margin-top:14px}.mt22{margin-top:22px}.mt24{margin-top:24px}
  .svcc.one{grid-template-columns:1fr}
  .lnk{color:var(--navy);font-weight:700}
  .lnk:hover{text-decoration:underline}
