/* Duct Daddy shared stylesheet.
   Single source of truth for every page. Edit here, not in a page.
   Generated by build/make_foundation.py -- see DESIGN-SYSTEM.md. */

/* ===== base ===== */
@font-face{
  font-family:'Bolton';
  src:url('/assets/bolton.woff2') format('woff2');
  size-adjust:138%;
  font-weight:400 900;
  font-display:swap;
}
:root{
  --navy:#0E2C4E; --navy-deep:#041525; --orange:#FF6A00; --orange-hot:#F16B1F;
  --sky:#00A9E9; --gold:#FFAB00; --off:#E3E1E1; --grey:#5F666F; --greyblue:#BAC5CC;
  --white:#FFFFFF; --ink:#22303E; --tint:#F2F5F8; --line:#E2E7EC;
  --r:14px; --shadow-s:0 2px 10px rgba(14,44,78,.06); --shadow-m:0 12px 32px rgba(14,44,78,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--orange);color:#fff;padding:12px 20px;z-index:100;font-weight:700;border-radius:0 0 10px 0}
.skip-link:focus{left:0}
html{scroll-behavior:smooth}
section[id]{scroll-margin-top:96px}
a:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:4px}
body{font-family:'Bai Jamjuree',sans-serif;color:var(--ink);background:var(--white);line-height:1.65;font-size:19px;-webkit-font-smoothing:antialiased}
::selection{background:var(--orange);color:#fff}
/* scroll reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
/* hero entrance */
@keyframes heroUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes heroPop{from{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:none}}
.hero .eyebrow{animation:heroUp .7s .05s cubic-bezier(.2,.6,.2,1) both}
.hero h1{animation:heroUp .7s .15s cubic-bezier(.2,.6,.2,1) both}
.hero .lead{animation:heroUp .7s .28s cubic-bezier(.2,.6,.2,1) both}
.hero .cta-row{animation:heroUp .7s .4s cubic-bezier(.2,.6,.2,1) both}
.hero .hero-proof{animation:heroUp .7s .5s cubic-bezier(.2,.6,.2,1) both}
.hero .chips{animation:heroUp .7s .6s cubic-bezier(.2,.6,.2,1) both}
.hero-mascot img{animation:heroPop .9s .35s cubic-bezier(.2,.6,.2,1) both}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}
h1,h2,h3,.display{font-family:'Bolton','Bai Jamjuree',serif;font-weight:400;letter-spacing:.015em;text-transform:uppercase;line-height:1.05;color:var(--navy)}
img{max-width:100%;height:auto}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}

/* buttons — one height, orange = booking only */
.btn{display:inline-flex;align-items:center;justify-content:center;height:58px;padding:0 32px;font-family:'Bai Jamjuree',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;border-radius:12px;font-size:16px;line-height:1;transition:transform .15s ease,box-shadow .15s ease;text-align:center;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn-orange{background:linear-gradient(180deg,#FF7A1A 0%,#F16B1F 100%);color:#fff;box-shadow:0 8px 20px rgba(255,106,0,.30),inset 0 1px 0 rgba(255,255,255,.25)}
.btn-orange:hover{box-shadow:0 12px 26px rgba(255,106,0,.42)}
.btn-ghost{border:2px solid rgba(186,197,204,.55);color:#fff}
.btn-ghost:hover{border-color:var(--sky);color:var(--sky)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 6px 16px rgba(14,44,78,.25)}
.btn-navy:hover{box-shadow:0 10px 22px rgba(14,44,78,.35)}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(14,44,78,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:3px solid var(--orange);transition:box-shadow .25s}
header.scrolled{box-shadow:0 10px 30px rgba(4,21,37,.45)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 26px;max-width:1290px;margin:0 auto}
.nav img{height:64px;width:auto;display:block}
.nav-links{display:flex;gap:22px;font-weight:600;font-size:15.5px}
.nav-links a{color:var(--greyblue);text-decoration:none;transition:color .15s;white-space:nowrap}
.nav-links a:hover{color:#fff}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-login{display:inline-flex;align-items:center;gap:7px;color:#C7D2DA;font-weight:600;font-size:15px;text-decoration:none;padding:9px 14px;border:1.5px solid rgba(186,197,204,.35);border-radius:12px;transition:border-color .15s ease,color .15s ease;white-space:nowrap}
.nav-login:hover{color:#fff;border-color:var(--sky)}
.nav-login svg{flex-shrink:0}
@media (max-width:1120px){.nav-login span{display:none}.nav-login{padding:9px 11px}}
@media (max-width:640px){.nav-login{display:none}}

.nav-phone{font-family:'Bolton',serif;color:#fff;text-decoration:none;font-size:31px;letter-spacing:.03em;white-space:nowrap;line-height:1}
.nav-phone:hover{color:var(--sky)}
.nav-phone-mob{display:none;width:46px;height:46px;border-radius:50%;background:var(--orange);align-items:center;justify-content:center;flex-shrink:0}
.nav .btn{height:48px;padding:0 22px;font-size:15px}

/* hero */
.hero{background:var(--navy);color:#fff;overflow:hidden;position:relative}
.skyline-band{line-height:0;margin-top:-60px;position:relative;z-index:0}
.skyline-band img{width:100%;height:auto;display:block}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;padding-top:80px;padding-bottom:36px}
.eyebrow{font-weight:700;letter-spacing:.24em;font-size:14px;color:var(--sky);text-transform:uppercase;margin-bottom:22px}
.hero h1{font-size:clamp(52px,7vw,94px);color:#fff;margin-bottom:12px;line-height:.98}
.hero h1 .pop{color:var(--orange)}
.hero p.lead{font-size:23px;color:var(--greyblue);max-width:28em;margin:24px 0 36px;line-height:1.6}
.cta-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:26px}
.hero-proof{display:flex;align-items:center;gap:12px;margin-bottom:34px;font-size:16.5px;color:var(--greyblue)}
.hero-proof .hp-stars{color:var(--gold);font-size:19px;letter-spacing:3px}
.hero-proof a{color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.hero-proof a:hover{color:var(--sky);border-color:var(--sky)}
.chips{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(186,197,204,.22);padding-top:22px}
.chip{color:#fff;font-size:16px;font-weight:600;padding:0 26px 0 0;margin-right:26px;border-right:1px solid rgba(186,197,204,.22);white-space:nowrap}
.chip:last-child{border-right:none}
.chip b{color:var(--gold);font-weight:700}
.hero-mascot{text-align:center}
.hero-mascot img{width:min(380px,82%);filter:drop-shadow(0 20px 44px rgba(0,0,0,.5))}

/* sections */
.section{padding:112px 0}
.section-head{max-width:660px;margin-bottom:56px}
.kicker{font-weight:700;letter-spacing:.22em;font-size:13.5px;color:var(--orange);text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.kicker::before{content:'';width:30px;height:3px;background:var(--orange);border-radius:2px;flex-shrink:0}
.section h2{font-size:clamp(38px,4.6vw,58px)}
.section-head p{color:var(--grey);margin-top:16px;font-size:20px;line-height:1.6}

/* services */
.services{background:var(--tint)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 30px 30px;display:flex;flex-direction:column;box-shadow:var(--shadow-s);transition:transform .18s ease,box-shadow .18s ease}
.svc:hover{transform:translateY(-5px);box-shadow:var(--shadow-m)}
.svc-icon{width:58px;height:58px;border-radius:12px;background:linear-gradient(135deg,var(--navy) 0%,#146799 100%);display:flex;align-items:center;justify-content:center;margin-bottom:20px;box-shadow:0 4px 12px rgba(14,44,78,.18)}
.svc-icon svg{width:30px;height:30px}
.svc h3{font-size:24px;margin-bottom:2px}
.svc .price{font-family:'Bolton',serif;color:var(--navy);font-size:32px;margin:10px 0 12px}
.svc .price small{font-family:'Bai Jamjuree',sans-serif;color:var(--grey);font-size:14px;font-weight:600;text-transform:none;letter-spacing:0}
.svc p{color:#46525F;font-size:17.5px;flex:1;line-height:1.65}
.svc a{margin-top:20px;font-weight:700;color:var(--navy);text-decoration:none;font-size:16px}
.svc a:hover{color:var(--orange)}

/* included / before-after */
.included-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:56px;align-items:center}
.check{list-style:none;margin-top:10px}
.check li{padding:13px 0 13px 40px;position:relative;font-size:18.5px;border-bottom:1px solid var(--line)}
.check li:last-child{border-bottom:none}
.check li::before{content:'';position:absolute;left:4px;top:19px;width:16px;height:9px;border-left:3px solid var(--orange);border-bottom:3px solid var(--orange);transform:rotate(-45deg)}
.photo-promise{background:var(--navy);color:#fff;border-radius:18px;padding:24px 26px;margin-top:28px;box-shadow:var(--shadow-m)}
.promise-wide{margin-top:52px;display:block;text-align:center;padding:38px 48px;max-width:960px;margin-left:auto;margin-right:auto;border-top:4px solid var(--orange)}
.promise-wide .pp-title{margin-bottom:10px;font-size:24px;justify-content:center}
.promise-wide p{font-size:18.5px;max-width:44em;margin:0 auto}
.photo-promise .pp-title{font-family:'Bolton',serif;text-transform:uppercase;font-size:19px;letter-spacing:.05em;color:var(--gold);display:flex;align-items:center;gap:10px;margin-bottom:8px}
.photo-promise p{font-size:16.5px;color:#D9E2EA;line-height:1.6}
.ba-grid{display:grid;gap:26px}
.ba{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-m)}
.ba img{display:block;width:100%;height:auto}
.ba .tag,.ba .tag2{position:absolute;bottom:16px;font-family:'Bolton',serif;text-transform:uppercase;font-size:15px;letter-spacing:.08em;color:#fff;padding:7px 16px;border-radius:12px}
.ba .tag{left:16px;background:rgba(4,21,37,.85)}
.ba .tag2{left:calc(50% + 16px);background:var(--orange)}
.ba-note{color:var(--grey);font-size:14.5px;margin-top:14px;text-align:center}
.ba-carousel{position:relative}
.ba-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:18px}
.ba-track::-webkit-scrollbar{display:none}
.ba-track .ba{flex:0 0 100%;scroll-snap-align:center}
.ba-btn{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:none;background:rgba(14,44,78,.88);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:2}
.ba-btn:hover{background:var(--orange)}
.ba-prev{left:14px}
.ba-next{right:14px}

/* ladder */
.ladder{background:var(--navy);color:#fff}
.ladder h2{color:#fff}
.ladder .section-head p{color:var(--greyblue)}
.ladder-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:52px}
.rung{background:#fff;border-radius:18px;text-align:center;padding:30px 10px 26px;position:relative;box-shadow:0 8px 22px rgba(0,0,0,.22)}
.rung .sq{font-weight:600;color:var(--grey);font-size:14.5px}
.rung .amt{font-family:'Bolton',serif;font-size:36px;color:var(--navy);margin-top:8px}
.rung.hot{background:linear-gradient(180deg,#FF7A1A,#F16B1F)}
.rung.hot .sq{color:#FFE9D6}
.rung.hot .amt{color:#fff}
.rung.hot::before{content:'Most Popular';position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--navy-deep);color:var(--gold);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-radius:99px;padding:5px 14px;white-space:nowrap}
.ladder .fine{color:var(--greyblue);font-size:16px;margin-top:28px}
.ladder .fine a{color:var(--sky)}

/* calculator */
.calc{background:#fff;border-radius:18px;padding:38px 40px;margin-top:52px;box-shadow:0 16px 40px rgba(0,0,0,.25)}
.calc-head h3{font-size:26px}
.calc-head p{color:var(--grey);margin:8px 0 24px;font-size:17px}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.calc-field span{display:block;font-size:13.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);margin-bottom:8px}
.calc-field select{width:100%;height:54px;border:2px solid var(--line);border-radius:12px;padding:0 14px;font-family:'Bai Jamjuree',sans-serif;font-size:16.5px;font-weight:600;color:var(--navy);background:#fff;cursor:pointer}
.calc-field select:focus{outline:none;border-color:var(--sky)}
.calc-result{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:26px;border-top:1px solid var(--line);padding-top:24px}
.calc-label{font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--grey)}
.calc-price{font-family:'Bolton',serif;font-size:52px;color:var(--navy);line-height:1.05}
.calc-note{color:var(--grey);font-size:15px}

/* plans */
.plans{background:var(--tint)}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}
.plan{background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px 30px;display:flex;flex-direction:column;position:relative;box-shadow:var(--shadow-s)}
.plan.hot{border:2px solid var(--orange);box-shadow:0 16px 38px rgba(255,106,0,.16)}
.plan.hot::before{content:'Best Value · Save $49';position:absolute;top:-15px;left:50%;transform:translateX(-50%);background:linear-gradient(180deg,#FF7A1A,#F16B1F);color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:99px;padding:7px 18px;white-space:nowrap}
.plan h3{font-size:23px}
.plan .p-price{font-family:'Bolton',serif;font-size:44px;color:var(--navy);margin:12px 0 2px}
.plan .p-price small{font-family:'Bai Jamjuree',sans-serif;font-size:16px;color:var(--grey);font-weight:600}
.plan .p-mo{color:var(--grey);font-size:15px;margin-bottom:18px}
.plan ul{list-style:none;flex:1}
.plan li{padding:10px 0 10px 30px;position:relative;font-size:17px;color:#46525F;border-bottom:1px dashed var(--line)}
.plan li:last-child{border-bottom:none}
.plan li::before{content:'';position:absolute;left:2px;top:17px;width:12px;height:7px;border-left:2.5px solid var(--sky);border-bottom:2.5px solid var(--sky);transform:rotate(-45deg)}
.plan .btn{margin-top:24px;width:100%}

/* why */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.why .num{font-family:'Bolton',serif;font-size:30px;color:var(--sky);line-height:1;width:72px;height:72px;border:3px solid var(--sky);border-radius:50%;display:flex;align-items:center;justify-content:center;padding-bottom:7px}
.why h3{font-size:22px;margin:18px 0 10px}
.why p{color:#46525F;font-size:17.5px;line-height:1.65}

/* reviews */
.reviews{background:linear-gradient(135deg,#FF7A1A 0%,#E9501D 100%);color:#fff;text-align:center;padding:112px 0}
.reviews h2{font-size:clamp(32px,4.2vw,50px);margin-bottom:12px;color:#fff}
.reviews > .wrap > p{font-size:19px;margin-bottom:14px;color:#FFEDDE}
.stars{font-size:28px;letter-spacing:7px;color:var(--gold);text-shadow:0 1px 3px rgba(0,0,0,.25);margin-bottom:16px}
.t-rotator{max-width:720px;margin:44px auto 40px}
.t-viewport{position:relative;min-height:320px}
.t-card{background:#fff;border-radius:18px;padding:34px 36px;color:var(--ink);box-shadow:0 14px 32px rgba(0,0,0,.2);display:flex;flex-direction:column;text-align:left;position:absolute;inset:0;opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.t-card.is-active{opacity:1;transform:translateY(0);pointer-events:auto;position:relative}
.t-more{color:var(--orange);font-weight:600;text-decoration:none;font-size:15px}
.t-dots{display:flex;justify-content:center;gap:10px;margin-top:22px}
.t-dot{width:11px;height:11px;border-radius:50%;border:none;background:rgba(255,255,255,.45);cursor:pointer;padding:0;transition:transform .15s,background .15s}
.t-dot.is-active{background:#fff;transform:scale(1.35)}
.t-card .t-stars{color:var(--gold);font-size:17px;letter-spacing:3px;margin-bottom:12px}
.t-card p{font-size:17px;color:#46525F;margin-bottom:18px;line-height:1.65;flex:1}
.t-card .t-name{font-weight:700;font-size:15.5px;color:var(--navy)}
.t-card .t-src{color:var(--grey);font-size:13.5px}
.reviews .btn{background:#fff;color:var(--navy);box-shadow:0 10px 24px rgba(0,0,0,.22)}

/* about */
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
.about-grid .lead2{font-size:18.5px;color:#46525F;margin-bottom:18px;line-height:1.7}
.founder-sig{margin-top:26px;font-size:17px;color:var(--navy)}
.founder-sig .sig-name{font-family:'Bolton',serif;text-transform:uppercase;font-size:21px;letter-spacing:.04em;display:block}
.founder-sig .sig-role{color:var(--grey);font-size:15px}
.cred-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.cred{background:var(--navy);color:#fff;font-weight:600;font-size:14.5px;border-radius:99px;padding:10px 20px}
.cred.o{background:var(--navy)}
.about-mascot{text-align:center}
.about-mascot img{width:min(320px,90%);filter:drop-shadow(0 16px 34px rgba(14,44,78,.25))}

/* area */
.area{background:var(--navy);color:#fff;position:relative}
.area h2{color:#fff}
.area .section-head p{color:var(--greyblue)}
.area-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.city-cloud{display:flex;flex-wrap:wrap;gap:12px}
.kc-map{max-width:500px;margin:0 auto;width:100%}
.kc-map img{width:100%;height:auto}
.map-caption{color:var(--greyblue);font-size:15px;margin-top:14px;text-align:center}
.city{border:1px solid rgba(186,197,204,.3);border-radius:99px;padding:9px 20px;font-size:15.5px;font-weight:600;color:var(--greyblue)}
.city.big{background:var(--sky);border-color:var(--sky);color:var(--navy-deep)}

/* faq */
.faq-list{max-width:860px}
details{border-bottom:1px solid var(--line);padding:24px 4px}
summary{font-weight:700;font-size:19px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:18px;color:var(--navy)}
summary::after{content:'';width:10px;height:10px;border-right:3px solid var(--orange);border-bottom:3px solid var(--orange);transform:rotate(45deg);transition:transform .18s ease;flex-shrink:0;margin-right:4px}
details[open] summary::after{transform:rotate(-135deg)}
summary:hover{color:var(--orange)}
details p{color:#46525F;margin-top:14px;max-width:62em;font-size:18px;line-height:1.65}
details a{color:var(--orange);font-weight:600}

/* final */
.final{background:var(--navy);color:#fff;text-align:center;padding:112px 0}
.final h2{font-size:clamp(38px,5vw,64px);color:#fff}
.final h2 .pop{color:var(--orange)}
.final p{color:var(--greyblue);font-size:20px;margin:20px auto 40px;max-width:32em}

/* brand band */
.brand-band{background:var(--navy);padding:0;line-height:0}
.brand-band img{width:100%;height:auto;display:block}

/* footer */
footer{background:#fff;color:var(--grey);padding:76px 0 120px;font-size:17px}
.foot-grid{display:grid;grid-template-columns:1.4fr .8fr 1fr .9fr;gap:44px;align-items:start}
.foot-grid img{width:230px}
.socials{display:flex;gap:14px;margin-top:22px}
.socials a{width:44px;height:44px;border-radius:50%;background:var(--tint);display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s}
.socials a:hover{background:var(--orange);transform:translateY(-2px)}
.socials a:hover svg{stroke:#fff;fill:#fff}
.foot-tag{margin-top:18px;font-family:'Bolton',serif;text-transform:uppercase;color:var(--navy);font-size:19px;letter-spacing:.04em}
footer h4{font-family:'Bolton',serif;text-transform:uppercase;color:var(--navy);font-size:18px;letter-spacing:.06em;margin-bottom:16px}
footer a{color:var(--grey);text-decoration:none}
footer a:hover{color:var(--orange)}
.foot-list li{list-style:none;margin-bottom:11px}
.legal{border-top:1px solid var(--line);margin-top:56px;padding-top:26px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:15px;color:#7A828C}

/* sticky mobile bar */
.sticky-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:rgba(14,44,78,.98);backdrop-filter:blur(8px);border-top:3px solid var(--orange);padding:9px 12px;gap:10px;transform:translateY(110%);transition:transform .3s cubic-bezier(.2,.6,.2,1)}
.sticky-bar.sb-in{transform:none}
.sticky-bar a{min-width:0;box-sizing:border-box;height:58px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
/* padding-bottom pulls the two-line stack up so the PHONE NUMBER optically
   lines up with BOOK NOW instead of sitting below it */
.sb-call{flex-direction:row;gap:9px;background:transparent;border:1px solid rgba(255,255,255,.5);padding:0 0 8.5px}
.sb-ico{flex:0 0 auto;color:var(--sky);transform:translateY(4.5px)}
.sb-call:active{background:rgba(255,255,255,.09)}
.sb-n{font-family:'Bolton','Bai Jamjuree',serif;font-weight:400;font-size:28px;color:#fff;letter-spacing:.02em;line-height:1;white-space:nowrap}
.sb-book{font-family:'Bolton','Bai Jamjuree',serif;font-weight:400;font-size:27px;letter-spacing:.03em;padding:0 0 7.0px}

@media (max-width:1200px) and (min-width:1025px){.nav-phone{display:none}.nav-login span{display:none}.nav-login{padding:9px 11px}.nav-links{gap:18px}}
@media (max-width:1024px) and (min-width:981px){.nav-links{display:none}.nav-phone{display:none}.nav-login{display:none}.nav-phone-mob{display:flex}}
@media (max-width:980px){
  .nav-links{display:none}
  .hero .wrap{grid-template-columns:1fr;padding-top:56px;padding-bottom:44px}
  .hero-mascot{display:none}
  .svc-grid{grid-template-columns:1fr 1fr}
  .ladder-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .why-grid{grid-template-columns:1fr 1fr}
  .included-grid,.about-grid,.area-grid{grid-template-columns:1fr;gap:44px}
  .plan-grid,.t-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:36px}
}
@media print{
  header,.sticky-bar,.ba-btn,.t-dots,.brand-band,.hero-mascot,.skyline-band{display:none !important}
  body{font-size:12pt;color:#000}
  .hero,.ladder,.area,.final{background:#fff !important;color:#000}
  .hero h1,.ladder h2,.area h2,.final h2{color:#000}
  .btn{display:none}
}
@media (max-width:640px){
  body{font-size:17.5px}
  .section{padding:72px 0}
  .svc-grid,.why-grid{grid-template-columns:1fr}
  .nav-phone{display:none}
  .nav .btn{display:none}
  .nav-phone-mob{display:flex}
  .nav img{height:52px}
  .sticky-bar{display:grid;grid-template-columns:1fr 1fr;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .cta-row .btn{width:100%}
  .chips{flex-direction:column;gap:12px}
  .chip{border-right:none;padding:0;margin:0}
  .hero p.lead{font-size:19.5px}
  .promise-wide{grid-template-columns:1fr;gap:10px;padding:26px 24px}
  .promise-wide .pp-title{white-space:normal}
  .calc{padding:28px 22px}
  .calc-grid{grid-template-columns:1fr}
  .calc-result{flex-direction:column;align-items:stretch;text-align:center}
  .calc-price{font-size:44px}
  .ba-btn{width:44px;height:44px;font-size:24px}
  .rung .amt{font-size:30px}
  footer{padding-bottom:140px}
}
@media (max-width:980px){
  .calc-grid{grid-template-columns:1fr 1fr}
}

/* ===== page hero (service + city subpages) ===== */
.page-hero{background:var(--navy);color:#fff;padding:72px 0 64px}
.page-hero h1{font-size:clamp(38px,5vw,64px);color:#fff}
.page-hero .crumb{color:var(--greyblue);font-size:15px;margin-bottom:18px}
.page-hero .crumb a{color:var(--sky);text-decoration:none}
.page-hero p.lead{font-size:20px;color:var(--greyblue);max-width:38em;margin-top:16px}
.page-hero .cta-row{margin-top:28px;margin-bottom:0}
.ptable{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-s)}
.ptable th{background:var(--navy);color:#fff;text-align:left;padding:16px 22px;font-family:'Bai Jamjuree',sans-serif;font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.ptable td{padding:15px 22px;border-bottom:1px solid var(--line);font-size:17px}
.ptable tr:last-child td{border-bottom:none}
.ptable .amt{font-family:'Bolton',serif;color:var(--navy);font-size:24px;white-space:nowrap}
.ptable .note{font-family:'Bai Jamjuree',sans-serif;color:var(--grey);font-size:15px;font-weight:500;white-space:normal;display:block;margin-top:3px}
.content-block{max-width:820px}
.content-block h2{margin-top:56px}
.content-block h3{font-size:23px;margin:34px 0 10px}
.content-block p{color:#46525F;margin:14px 0;font-size:18px}
.content-block ul.plain{margin:14px 0 14px 24px;color:#46525F;font-size:18px}
.content-block ul.plain li{margin-bottom:8px}
.steps{counter-reset:step;list-style:none;margin-top:26px}
.steps li{position:relative;padding:0 0 26px 72px;counter-increment:step}
.steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:-2px;font-family:'Bolton',serif;color:var(--sky);font-size:22px;width:52px;height:52px;border:2.5px solid var(--sky);border-radius:50%;display:flex;align-items:center;justify-content:center;padding-bottom:5px}
.steps h3{margin:0 0 6px;font-size:21px}
.steps p{margin:0;color:#46525F;font-size:17px}
.cta-band{background:var(--navy);border-radius:18px;padding:44px 48px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-top:72px}
.cta-band h2{color:#fff;font-size:clamp(26px,3vw,36px)}
.cta-band p{color:var(--greyblue);margin-top:6px}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:26px;color:var(--greyblue);font-size:15.5px;font-weight:600}
.hero-trust .g{color:var(--gold)}
.section.tight{padding-top:40px}
.pull-review{background:var(--tint);border-radius:18px;padding:44px 48px;margin-top:80px;text-align:center}
.pull-review .stars{color:var(--gold);font-size:22px;letter-spacing:3px}
.pull-review p{font-size:21px;line-height:1.6;color:var(--ink);max-width:44em;margin:14px auto 0}
.pull-review .who{color:var(--grey);font-size:15.5px;font-weight:600;margin-top:12px}
.pull-review a{color:var(--sky);font-weight:700;text-decoration:none}
@media (max-width:640px){.pull-review{padding:30px 22px}}
@media (max-width:640px){.cta-band{padding:30px 24px}.page-hero{padding:52px 0 48px}}

/* ===== city service grid ===== */
.city-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:8px}
.city-svc-grid .svc{padding:28px 26px 24px}
.city-svc-grid .svc h3{font-size:21px;margin-bottom:2px}
.city-svc-grid .svc .price{font-family:'Bolton',serif;color:var(--orange);font-size:26px;margin:8px 0 10px}
.city-svc-grid .svc p{font-size:16.5px;color:#46525F;flex:1;line-height:1.6}
.city-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.city-chips a{background:var(--tint);border:1px solid var(--line);border-radius:99px;padding:10px 20px;font-size:16px;font-weight:600;color:var(--navy);text-decoration:none;transition:border-color .15s,color .15s}
.city-chips a:hover{border-color:var(--sky);color:var(--sky)}
.city-chips a.hub{background:var(--navy);color:#fff;border-color:var(--navy)}
@media (max-width:640px){.city-svc-grid{grid-template-columns:1fr}}

/* ===== dropdown nav ===== */
/* ===== dropdown nav (added) ===== */
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links>a,.nav-item>a{display:inline-flex;align-items:center;gap:6px;color:var(--greyblue);text-decoration:none;font-weight:600;font-size:15px;padding:9px 12px;border-radius:10px;white-space:nowrap;transition:color .15s,background .15s}
.nav-links>a:hover,.nav-item>a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav-item{position:relative}
.caret{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.75;transition:transform .18s}
.nav-item:hover .caret{opacity:1}
.nav-item::after{content:'';position:absolute;left:0;right:-20px;top:100%;height:16px}
.dropdown{position:absolute;top:calc(100% + 12px);left:-6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 48px rgba(4,21,37,.30);padding:10px;min-width:252px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s;z-index:70}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:block;padding:11px 14px;color:var(--navy);font-weight:600;font-size:14.5px;border-radius:9px;text-decoration:none;white-space:nowrap;transition:background .12s,color .12s}
.dropdown a:hover{background:var(--tint);color:var(--orange)}
.dropdown.mega{left:50%;transform:translateX(-50%) translateY(8px);width:min(660px,92vw);min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;padding:16px}
.mega-col{display:grid;grid-template-columns:1fr 1fr;gap:1px 4px;align-content:start}
.mega-h{grid-column:1/-1;font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);padding:4px 14px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.mm-state{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);padding:12px 4px 4px 8px}
.nav-item:hover .dropdown.mega,.nav-item:focus-within .dropdown.mega{transform:translateX(-50%)}
.dropdown.mega .mega-all{grid-column:1/-1;margin-top:6px;padding-top:12px;border-top:1px solid var(--line);color:var(--orange);font-weight:700}
.nav-toggle{display:none;width:48px;height:44px;border:1.5px solid rgba(186,197,204,.4);border-radius:12px;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:.2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;background:var(--navy-deep);border-top:1px solid rgba(255,255,255,.08);padding:10px 22px 28px;max-height:calc(100vh - 78px);overflow-y:auto}
.mobile-menu.open{display:block}
.mobile-menu>a{display:block;color:#DDE6EE;text-decoration:none;font-weight:600;font-size:17px;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.07)}
.mobile-menu>a:hover{color:#fff}
.mobile-menu details{border-bottom:1px solid rgba(255,255,255,.07)}
.mobile-menu summary{list-style:none;color:#fff;font-weight:700;font-size:17px;padding:14px 4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary::after{content:'';width:9px;height:9px;border-right:2px solid var(--sky);border-bottom:2px solid var(--sky);transform:rotate(45deg);transition:transform .2s;flex-shrink:0;margin-right:4px}
.mobile-menu details[open] summary::after{transform:rotate(-135deg)}
.mobile-menu details a{display:block;padding:11px 4px 11px 16px;font-size:15.5px;font-weight:600;color:var(--greyblue);text-decoration:none}
.mobile-menu details a:hover{color:#fff}
.mobile-menu .mm-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.mobile-menu .mm-actions .btn{width:100%;height:54px}
.mobile-menu .mm-call{border-color:var(--sky);color:var(--sky)}
@media (max-width:1024px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .nav-phone{display:none}
}
@media (min-width:1025px){ .mobile-menu{display:none!important} }

/* ===== header polish ===== */
/* ===== official header polish ===== */
.topbar{background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,.07);font-size:12.5px}
.topbar-in{max-width:1290px;margin:0 auto;padding:7px 26px;display:flex;align-items:center;gap:20px;color:#93A6B6}
.tb-item{display:inline-flex;align-items:center;gap:7px;color:#93A6B6;text-decoration:none;font-weight:600;letter-spacing:.03em;white-space:nowrap}
a.tb-item:hover{color:#fff}
.tb-spacer{flex:1}
.tb-stars{color:var(--gold);letter-spacing:1px;font-size:11.5px}
@media (max-width:1180px){.tb-hide-md{display:none}}
@media (max-width:640px){.topbar-in{padding:6px 16px;gap:12px;justify-content:space-between}.tb-spacer{display:none}}
.nav-links>a,.nav-item>a{font-size:13px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#C2CFDA;padding:10px 13px}
.nav-links>a:hover,.nav-item>a:hover{color:#fff;background:rgba(255,255,255,.07)}
.dropdown{border-top:3px solid var(--orange)}
.nav-phone2{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;gap:0;padding:2px 6px}
.np-label{font-size:12px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--sky);line-height:1}
.np-num{font-family:'Bolton',serif;font-size:40px;color:#fff;letter-spacing:.02em;line-height:1;margin-top:-1px;white-space:nowrap}
@media (max-width:1230px) and (min-width:1025px){.nav-links>a,.nav-item>a{padding:10px 9px;font-size:12.3px;letter-spacing:.05em}.np-num{font-size:33px}.nav .btn{padding:0 16px}.nav-cta{gap:11px}}
.nav-phone2:hover .np-num{color:var(--sky)}
@media (max-width:1024px){.nav-phone2{display:none}}
.book-hint{color:#9FB3C2;font-size:13.5px;margin-top:12px;line-height:1.5}.book-hint b{color:#fff;font-weight:700}
