/* =========================================================
   CTS – Steam Power Washing and Window Cleaning
   Brand system: crimson (#A80020) + navy (#0A192F) accent
   ========================================================= */
:root{
  --crimson:#A80020; --crimson-dark:#8A001A; --crimson-deep:#6E0016;
  --navy:#0A192F; --navy-dark:#06101E; --navy-2:#12233f;
  --tint-crimson:#FFF0F2; --ice:#EEF3F8; --off:#FAFAFA;
  --border:#E2E8F0; --ink:#0A192F; --muted:#4b566b; --muted-2:#6b7688;
  --white:#ffffff; --obsidian:#050B14;
  --gold:#E9B949; /* controlled highlight (stars/accents) */
  --shadow-sm:0 1px 3px rgba(10,25,47,.08),0 1px 2px rgba(10,25,47,.04);
  --shadow-md:0 10px 30px rgba(10,25,47,.10);
  --shadow-lg:0 24px 60px rgba(10,25,47,.18);
  --radius:16px; --radius-sm:10px; --radius-pill:999px;
  --container:1200px;
  --header-h:76px;
  --font-head:'Fraunces','Cormorant Garamond',Georgia,serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);background:var(--white);
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--crimson);text-decoration:none}
svg{width:1.25em;height:1.25em;vertical-align:middle;flex:none}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.02;letter-spacing:-.025em;margin:0 0 .5em;font-optical-sizing:auto}
h1{font-size:clamp(2.7rem,5.6vw,4.7rem);font-weight:800}
h2{font-size:clamp(2.15rem,3.9vw,3.35rem);font-weight:700}
h3{font-size:clamp(1.4rem,2.1vw,1.8rem);font-weight:700;letter-spacing:-.015em}
p{margin:0 0 1.1rem}
.container{max-width:var(--container);margin:0 auto;padding:0 22px}
.eyebrow{font-family:var(--font-body);font-weight:700;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--crimson);margin-bottom:1rem;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--crimson);display:inline-block;border-radius:2px}
.band-navy .eyebrow::before,.band-crimson .eyebrow::before{background:currentColor}
.section{padding:92px 0;position:relative}
.section-sm{padding:56px 0;position:relative}
.lead{font-size:1.18rem;color:var(--muted);max-width:62ch}
.center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}
.maxw{max-width:66ch}

/* ---------- Bands (layered, not flat) ---------- */
.band-light{background:#fff}
.band-off{background:linear-gradient(180deg,#ffffff 0%,var(--off) 40%,#f4f1ee 100%)}
.band-ice{background:radial-gradient(1200px 500px at 12% -10%,#f6f9fc 0%,transparent 60%),linear-gradient(180deg,#eef3f8 0%,#e7eef6 100%)}
.band-tint{position:relative;background:
  radial-gradient(720px 420px at 90% -12%,rgba(168,0,32,.07) 0%,transparent 58%),
  radial-gradient(680px 520px at 4% 112%,rgba(10,25,47,.05) 0%,transparent 60%),
  linear-gradient(158deg,#fbf8f4 0%,#f2f4f8 52%,#e8edf3 100%)}
.band-tint::before{content:"";position:absolute;inset:0;background-image:var(--grain);background-size:170px;opacity:.04;mix-blend-mode:multiply;pointer-events:none}
.band-tint>.container{position:relative;z-index:1}
.band-navy{background:radial-gradient(1000px 600px at 82% -20%,#173257 0%,transparent 55%),linear-gradient(160deg,#0d1e38 0%,#0a192f 55%,#081324 100%);color:#dbe4f0;position:relative;overflow:hidden}
.band-crimson{background:radial-gradient(900px 600px at 12% -10%,#c11033 0%,transparent 55%),linear-gradient(150deg,#a80020 0%,#8f001b 60%,#6e0016 100%);color:#ffe1e6;position:relative;overflow:hidden}
.band-navy::before,.band-crimson::before{content:"";position:absolute;inset:0;background-image:var(--grain);background-size:180px;opacity:.05;pointer-events:none;mix-blend-mode:overlay}
.band-navy::after{content:"";position:absolute;left:-120px;bottom:-140px;width:360px;height:360px;border-radius:50%;background:rgba(168,0,32,.22);filter:blur(60px);pointer-events:none}
.band-crimson::after{content:"";position:absolute;right:-120px;bottom:-140px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.14);filter:blur(60px);pointer-events:none}
.band-navy h1,.band-navy h2,.band-navy h3{color:#fff}
.band-crimson h1,.band-crimson h2,.band-crimson h3{color:#fff}
.band-navy .eyebrow{color:#8fb2ff}
.band-crimson .eyebrow{color:#ffd0d8}
.band-navy .container,.band-crimson .container{position:relative;z-index:1}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-body);font-weight:700;
  font-size:1rem;padding:15px 30px;border-radius:var(--radius-pill);border:2px solid transparent;
  cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .15s ease;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 6px var(--crimson)}
.btn-primary{background:linear-gradient(180deg,#c00f2f 0%,#a80020 55%,#95001c 100%);color:#fff;box-shadow:0 8px 20px rgba(168,0,32,.32),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{background:linear-gradient(180deg,#a80020 0%,#8A001A 100%);color:#fff;box-shadow:0 12px 26px rgba(168,0,32,.4)}
.btn-navy{background:linear-gradient(180deg,#14294a 0%,#0A192F 100%);color:#fff;box-shadow:0 8px 20px rgba(10,25,47,.3),inset 0 1px 0 rgba(255,255,255,.12)}
.btn-navy:hover{background:var(--navy-dark);color:#fff}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-ghost-light{background:#fff;color:var(--crimson);border-color:#fff}
.btn-ghost-light:hover{background:transparent;color:#fff;border-color:#fff}
.btn-lg{padding:17px 36px;font-size:1.05rem}
.btn svg{width:18px;height:18px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;width:100%;z-index:100;background:rgba(255,255,255,.94);
  backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border);height:var(--header-h)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:46px;width:auto}
.brand-name{display:none}
.nav{display:flex;align-items:center;gap:4px}
.nav a.navlink,.nav button.navlink{font-family:var(--font-body);font-weight:600;color:var(--navy);
  background:none;border:none;font-size:.98rem;padding:10px 14px;border-radius:10px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;transition:color .2s ease,background-color .2s ease}
.nav a.navlink:hover,.nav button.navlink:hover,.nav .navlink.active{color:var(--crimson);background:#fbeef0}
.nav .navlink svg{width:14px;height:14px;transition:transform .2s ease}
.has-dd{position:relative}
.has-dd::after{content:"";position:absolute;top:100%;left:0;width:100%;height:16px;display:none}
.has-dd:hover::after{display:block}
.has-dd[aria-expanded="true"] .navlink svg,.has-dd.open .navlink svg{transform:rotate(180deg)}
.dd{position:absolute;top:calc(100% + 12px);left:0;min-width:280px;background:#fff;border:1px solid var(--border);
  border-radius:16px;box-shadow:var(--shadow-lg);padding:10px;opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;transition-delay:.16s;max-height:70vh;overflow:auto}
.dd.two-col{min-width:470px;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.has-dd:hover .dd,.has-dd.open .dd{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.dd a{display:block;padding:10px 14px;border-radius:9px;color:var(--navy);font-weight:600;font-size:.95rem;transition:background-color .18s ease,color .18s ease}
.dd a:hover{background:#fbeef0;color:var(--crimson)}
.header-cta{display:flex;align-items:center;gap:12px;margin-left:8px}
.header-phone{font-weight:700;color:var(--navy);white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.header-phone svg{width:17px;height:17px;color:var(--crimson)}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:26px;height:2.5px;background:var(--navy);margin:5px 0;border-radius:2px;transition:transform .25s ease,opacity .2s ease}
body.menu-open .burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- Mobile nav ---------- */
.mobile-nav{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;height:calc(100dvh - var(--header-h));z-index:99;
  background:linear-gradient(180deg,#ffffff 0%,#f4f7fb 62%,#eef3f9 100%);transform:translateX(100%);
  transition:transform .3s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 20px calc(30px + env(safe-area-inset-bottom));display:none;box-shadow:inset 0 3px 0 var(--crimson)}
body.menu-open .call-bar{display:none}
.mobile-nav.show{display:block}
body.menu-open .mobile-nav.show{transform:translateX(0)}
.mobile-nav>a{display:flex;align-items:center;color:var(--navy);font-weight:600;font-size:1.05rem;padding:16px 8px;
  border-bottom:1px solid rgba(10,25,47,.08);transition:color .18s ease,padding-left .18s ease}
.mobile-nav>a:active,.mobile-nav>a:hover{color:var(--crimson);padding-left:12px}
.m-group{border-bottom:1px solid rgba(10,25,47,.08)}
.m-group>button{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;
  color:var(--navy);font-family:var(--font-head);font-weight:700;font-size:1.14rem;letter-spacing:-.01em;padding:16px 8px;cursor:pointer}
.m-group>button svg{width:20px;height:20px;color:var(--crimson);transition:transform .25s ease}
.m-group.open>button svg{transform:rotate(180deg)}
.m-sub{display:none;padding:2px 0 12px;margin:0 0 0 8px;border-left:2px solid rgba(168,0,32,.22)}
.m-group.open .m-sub{display:block}
.m-sub a{display:flex;align-items:center;font-weight:500;font-size:1rem;color:var(--muted);padding:11px 12px;border-bottom:none;transition:color .18s ease,padding-left .18s ease}
.m-sub a:active,.m-sub a:hover{color:var(--crimson);padding-left:16px}
.mobile-cta{margin:28px 4px 6px;display:grid;gap:12px}
.mobile-cta .btn{width:100%;height:54px;padding:0 22px;display:flex;align-items:center;justify-content:center;font-size:1.02rem;border-radius:13px;line-height:1}
.mobile-cta .btn-primary{color:#fff}
.mobile-cta .btn-outline{background:#fff;border-color:rgba(10,25,47,.22);color:var(--navy);box-shadow:0 2px 8px rgba(10,25,47,.06)}
.mobile-cta .btn-outline:active,.mobile-cta .btn-outline:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---------- Hero ---------- */
main{padding-top:var(--header-h)}
.hero{position:relative;color:#fff;overflow:hidden;background:var(--obsidian)}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(5,11,20,.94) 0%,rgba(10,25,47,.86) 42%,rgba(110,0,22,.55) 100%)}
.hero-inner{position:relative;z-index:2;padding:96px 0 104px;max-width:760px}
.hero .badge{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  padding:8px 16px;border-radius:var(--radius-pill);font-weight:600;font-size:.85rem;margin-bottom:22px;backdrop-filter:blur(4px)}
.hero .badge .stars{color:var(--gold);letter-spacing:2px}
.hero h1{color:#fff;font-size:clamp(2.6rem,5.4vw,4.4rem)}
.hero p.lead{color:#c9d5e6;font-size:1.24rem;margin:1.1rem 0 1.9rem}
.hero .btn-row{margin-bottom:26px}
.hero-trust{display:flex;flex-wrap:wrap;gap:20px 30px;font-weight:600;color:#c9d5e6;font-size:.95rem}
.hero-trust span{display:inline-flex;align-items:center;gap:9px}
.hero-trust svg{width:20px;height:20px;color:var(--gold)}

/* ---------- Grids / cards ---------- */
.grid{display:grid;gap:26px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px;
  box-shadow:0 1px 2px rgba(10,25,47,.05),0 12px 30px -18px rgba(10,25,47,.25);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;height:100%;overflow:hidden}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--crimson),#d61a3c);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -20px rgba(10,25,47,.4);border-color:#d9e2ee}
.card:hover::before{transform:scaleX(1)}
.svc-card{display:flex;flex-direction:column;overflow:hidden;padding:0}
.svc-card .svc-img{aspect-ratio:16/10;overflow:hidden}
.svc-card .svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.svc-card:hover .svc-img img{transform:scale(1.06)}
.svc-card .svc-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.svc-card h3{margin-bottom:.4rem}
.svc-card p{color:var(--muted);font-size:.98rem;flex:1}
.svc-link{margin-top:14px;font-weight:700;color:var(--crimson);display:inline-flex;align-items:center;gap:7px}
.svc-link svg{width:16px;height:16px;transition:transform .2s ease}
.svc-card:hover .svc-link svg{transform:translateX(4px)}
.icon-badge{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#ffe3e8,#ffd0d8);color:var(--crimson);margin-bottom:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 14px -8px rgba(168,0,32,.5)}
.icon-badge svg{width:26px;height:26px}
.band-navy .icon-badge{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}

/* ---------- Premium photo service tiles ---------- */
.svc-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.svc-tile{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:340px;isolation:isolate;
  box-shadow:0 14px 34px -18px rgba(10,25,47,.55);border:1px solid rgba(10,25,47,.06);transition:transform .35s ease,box-shadow .35s ease}
.svc-tile:hover{transform:translateY(-6px);box-shadow:0 30px 60px -24px rgba(10,25,47,.6)}
.svc-tile-img{position:absolute;inset:0;z-index:-2}
.svc-tile-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.svc-tile:hover .svc-tile-img img{transform:scale(1.07)}
.svc-tile::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(8,15,28,.12) 0%,rgba(8,15,28,.35) 42%,rgba(8,15,28,.86) 100%)}
.svc-tile:hover::after{background:linear-gradient(180deg,rgba(110,0,22,.18) 0%,rgba(8,15,28,.5) 45%,rgba(8,15,28,.9) 100%)}
.svc-tile-body{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:26px 24px 24px;color:#fff}
.svc-tile-chip{position:absolute;top:20px;left:20px;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.28);color:#fff}
.svc-tile-chip svg{width:23px;height:23px}
.svc-tile h3{color:#fff;margin:0 0 6px;font-size:1.5rem;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.svc-tile p{color:rgba(255,255,255,.9);font-size:.96rem;line-height:1.55;margin:0 0 12px}
.svc-tile-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.92rem;color:#fff;
  border-top:1px solid rgba(255,255,255,.22);padding-top:12px}
.svc-tile-link svg{width:16px;height:16px;transition:transform .25s ease}
.svc-tile:hover .svc-tile-link svg{transform:translateX(5px)}
.svc-tiles.four{grid-template-columns:repeat(4,1fr)}
.svc-tiles.four .svc-tile{min-height:280px}
.svc-tiles.four .svc-tile h3{font-size:1.25rem}

/* feature (asymmetric) */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.feature .media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.feature .media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.checklist{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:14px}
.checklist li{display:flex;gap:13px;align-items:flex-start;font-weight:500}
.checklist svg{flex:none;width:24px;height:24px;color:var(--crimson);margin-top:2px}
.band-navy .checklist svg{color:#8fb2ff}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:center}
.stat .n{font-family:var(--font-head);font-weight:700;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:#fff}
.stat .l{font-size:.9rem;letter-spacing:.04em;color:#aebfd6;margin-top:8px;font-weight:600}
.band-crimson .stat .l{color:#ffd0d8}

/* reviews */
.rating-hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}
.rating-num{font-family:var(--font-head);font-weight:700;font-size:3.4rem;line-height:1;color:#fff}
.stars-lg{color:var(--gold);font-size:1.5rem;letter-spacing:3px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
.review{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:26px;color:#fbe6ea}
.review .stars{color:var(--gold);letter-spacing:2px;margin-bottom:10px}
.review p{font-size:1rem;line-height:1.65}
.review .who{font-weight:700;color:#fff;margin-top:8px}

/* area chips */
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.area-chip{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:12px;
  padding:15px 16px;font-weight:600;color:var(--navy);transition:border-color .2s ease,color .2s ease,transform .2s ease}
.area-chip:hover{border-color:var(--crimson);color:var(--crimson);transform:translateY(-3px)}
.area-chip svg{width:18px;height:18px;color:var(--crimson);flex:none}

/* breadcrumb */
.crumbs{font-size:.88rem;color:var(--muted-2);padding:16px 0 0}
.crumbs a{color:var(--muted-2);font-weight:600}
.crumbs a:hover{color:var(--crimson)}
.crumbs span{margin:0 8px;opacity:.5}

/* page header */
.page-head{background:radial-gradient(1000px 500px at 80% -30%,#173257 0%,transparent 55%),linear-gradient(160deg,#0d1e38 0%,#0a192f 55%,#081324 100%);color:#fff;padding:56px 0 62px;position:relative;overflow:hidden}
.page-head::before{content:"";position:absolute;inset:0;background-image:var(--grain);background-size:180px;opacity:.05;mix-blend-mode:overlay;pointer-events:none}
.page-head::after{content:"";position:absolute;right:-90px;top:-90px;width:360px;height:360px;border-radius:50%;background:rgba(168,0,32,.3);filter:blur(50px)}
.page-head .crumbs{color:#9db0cc;padding-top:0;margin-bottom:14px}
.page-head .container{position:relative;z-index:1}
/* service hero with background image */
.page-head.has-hero{background:var(--obsidian)}
.page-head.has-hero::after{display:none}
.page-head.has-hero .ph-bg{position:absolute;inset:0;z-index:0}
.page-head.has-hero .ph-bg img{width:100%;height:100%;object-fit:cover}
.page-head.has-hero .ph-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(102deg,rgba(5,11,20,.95) 0%,rgba(10,25,47,.84) 44%,rgba(110,0,22,.62) 100%)}
.page-head.has-hero{padding:72px 0 80px}
.page-head .crumbs a{color:#9db0cc}
.page-head h1{color:#fff;max-width:20ch}
.page-head p{color:#c9d5e6;max-width:60ch;font-size:1.15rem;margin-bottom:0}

/* content prose */
.prose{max-width:100%}
.prose h2{margin-top:0}
.prose h3{margin-top:1.6em}
.prose ul{padding-left:0;list-style:none;display:grid;gap:12px;margin:1.2rem 0}
.prose ul li{display:flex;gap:12px;align-items:flex-start}
.prose ul li::before{content:"";flex:none;width:22px;height:22px;margin-top:3px;border-radius:6px;background:var(--tint-crimson) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A80020' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/14px no-repeat}
.two-col-text{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start}
.sidebar-card{background:var(--ice);border:1px solid var(--border);border-radius:var(--radius);padding:28px;position:sticky;top:calc(var(--header-h) + 20px)}
.sidebar-card h3{font-size:1.3rem}
.sidebar-card ul{list-style:none;padding:0;margin:0 0 18px}
.sidebar-card ul li{margin-bottom:2px}
.sidebar-card ul li a{display:block;padding:9px 12px;border-radius:9px;color:var(--navy);font-weight:600;font-size:.95rem;transition:background-color .18s ease,color .18s ease}
.sidebar-card ul li a:hover{background:#fff;color:var(--crimson)}

.content-img{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);margin:8px 0 4px;aspect-ratio:16/9}
.content-img img{width:100%;height:100%;object-fit:cover;display:block}

/* FAQ */
.faq details{border:1px solid var(--border);border-radius:12px;margin-bottom:12px;background:#fff;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;font-family:var(--font-body);font-weight:700;color:var(--navy);position:relative;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:1.6rem;color:var(--crimson);font-weight:400;transition:transform .2s ease}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{color:var(--crimson)}
.faq .ans{padding:0 22px 20px;color:var(--muted)}
.faq .ans p:last-child{margin-bottom:0}

/* CTA band */
.cta-band{text-align:center}
.cta-band .btn-row{justify-content:center}

/* footer */
.site-footer{background:var(--navy);color:#aebfd6;padding:64px 0 0}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.site-footer .brand img{height:64px;margin-bottom:16px}
.site-footer p{color:#9db0cc;font-size:.96rem}
.footer-contact a{color:#dbe4f0;font-weight:600;word-break:break-word}
.footer-contact a:hover{color:#fff}
.footer-contact div{margin-bottom:10px;display:flex;gap:10px;align-items:flex-start}
.footer-contact svg{width:18px;height:18px;color:var(--crimson);flex:none;margin-top:3px}
.site-footer h4{color:#fff;font-family:var(--font-body);font-weight:700;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer ul li{margin-bottom:9px}
.site-footer ul a{color:#9db0cc;font-size:.95rem}
.site-footer ul a:hover{color:#fff}
.social{display:flex;gap:12px;margin-top:18px}
.social a{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#dbe4f0;transition:background-color .2s ease,color .2s ease}
.social a:hover{background:var(--crimson);color:#fff}
.social svg{width:19px;height:19px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.86rem;color:#7e8ea8}
.footer-bottom a{color:#9db0cc}

/* mobile call bar */
.call-bar{display:none;position:fixed;left:0;bottom:0;width:100%;z-index:95;
  background:var(--crimson);padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(0,0,0,.18)}
.call-bar a{display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-weight:800;font-size:1.12rem}
.call-bar svg{width:22px;height:22px}

/* forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column}
.field.full{grid-column:1/-1}
label{font-weight:700;font-size:.9rem;color:var(--navy);margin-bottom:7px}
label .req{color:var(--crimson)}
input,select,textarea{width:100%;font-family:var(--font-body);font-size:1rem;padding:13px 15px;
  background:#fff;border:1.5px solid var(--border);border-radius:11px;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--crimson);box-shadow:0 0 0 3px rgba(168,0,32,.12)}
textarea{resize:vertical;min-height:130px}
.field .err{color:var(--crimson);font-size:.82rem;margin-top:6px;display:none}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--crimson)}
.field.invalid .err{display:block}
.file-drop{border:1.5px dashed var(--border);border-radius:11px;padding:22px 18px;text-align:center;color:var(--muted);cursor:pointer;background:#fff;transition:border-color .2s ease,background-color .2s ease}
.file-drop svg{width:28px;height:28px;color:var(--crimson);display:block;margin:0 auto 8px}
.file-drop:hover{border-color:var(--crimson);background:#fff7f8}
.file-drop input{display:none}
.file-list{margin-top:10px;font-size:.85rem;color:var(--muted);text-align:left}
.file-list div{padding:4px 0}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.form-note{font-size:.82rem;color:var(--muted-2);margin-top:14px}
.form-alert{padding:15px 18px;border-radius:11px;font-weight:600;margin-bottom:20px;display:none}
.form-alert.ok{display:block;background:#e7f6ec;color:#0d7a3f;border:1px solid #b6e2c5}
.form-alert.bad{display:block;background:#fdeaec;color:#a80020;border:1px solid #f3c2c8}
.contact-split{display:grid;grid-template-columns:1fr 1.15fr;gap:52px;align-items:start}
.info-list{list-style:none;padding:0;margin:24px 0 0}
.info-list li{display:flex;gap:14px;margin-bottom:20px;align-items:flex-start}
.info-list .ic{width:44px;height:44px;border-radius:11px;background:var(--tint-crimson);color:var(--crimson);display:flex;align-items:center;justify-content:center;flex:none}
.info-list svg{width:21px;height:21px}
.info-list .lbl{font-weight:700;color:var(--navy);display:block}
.info-list a,.info-list span{color:var(--muted)}

/* reveal animation (only when JS is active) */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}

/* pill row */
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.pill{background:#fff;border:1px solid var(--border);border-radius:var(--radius-pill);padding:9px 18px;font-weight:600;font-size:.9rem;color:var(--navy)}
.band-tint .pill{background:#fff}
.divider-note{font-size:.95rem;color:var(--muted)}

/* reviews embed (Elfsight) */
.reviews-embed{max-width:1080px;width:100%;margin:40px auto 8px;text-align:left}
.reviews-embed>div{max-width:100%;width:100%}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .feature{gap:40px}
  .svc-tiles,.svc-tiles.four{grid-template-columns:repeat(2,1fr)}
  .review-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(2,1fr);gap:34px}
  .area-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .nav,.header-phone{display:none}
  .burger{display:block}
  .header-cta .btn{display:none}
  body{padding-bottom:66px}
  .call-bar{display:block}
  .grid-3,.grid-4{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .feature{grid-template-columns:1fr;gap:30px}
  .feature.reverse .media{order:-1}
  .two-col-text{grid-template-columns:1fr;gap:32px}
  .sidebar-card{position:static}
  .contact-split{grid-template-columns:1fr;gap:36px}
  .review-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .section{padding:60px 0}
  .hero-inner{padding:64px 0 76px;text-align:left}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  body{font-size:16px}
  .container{padding:0 18px}
  .svc-tiles,.svc-tiles.four{grid-template-columns:1fr}
  .area-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .btn{width:100%;justify-content:center}
  .hero .btn-row .btn{width:100%}
  .dd,.dd.two-col{min-width:0}
}
@media(max-width:380px){
  .area-grid{grid-template-columns:1fr}
  .rating-num{font-size:2.6rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}
