@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800&family=Open+Sans:wght@400;500;600&display=swap");
/* =====================================================================
   TEMPLATE 01 — standalone. No Foundry stylesheet, no shared sections.
   Every value below is taken from the reference at 1568px wide.
   Slots marked data-slot="..." are where the content / image pullers
   will write later. Nothing here depends on anything outside this file.
   ===================================================================== */
:root{
  /* Foundry sets --brand --brand-dark --brand-light --accent --accent-text --ink --muted --line --surface
     from the site's theme (page shell). Everything this pack needs is derived from those. */
  --brand-solid:color-mix(in srgb,var(--brand) 78%,#000); --brand-2:var(--brand-solid); --brand-ink:color-mix(in srgb,var(--brand-dark) 82%,#000);
  --brand-deep:color-mix(in srgb,var(--brand) 55%,#000); --brand-tint:var(--brand-light);
  --cta:var(--accent); --cta-hover:color-mix(in srgb,var(--accent) 80%,#000);
  --cta-tint:color-mix(in srgb,var(--accent) 12%,#fff); --cta-ink:var(--accent-text,#fff);
  --text:color-mix(in srgb,var(--ink) 80%,#fff); --soft:var(--surface);
  --r-btn:8px; --r-card:12px; --shadow-cta:0 6px 16px -6px color-mix(in srgb,var(--cta) 70%,transparent);
  --teal:var(--brand-solid); --teal-ink:var(--brand-ink); --red:var(--cta); --red-hover:var(--cta-hover);
  --label:#2b3a4a; --field-line:#dfe3e8; --placeholder:#8a929c; --wrap:1426px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Open Sans",system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
.wrap{width:min(var(--wrap),100% - 2*clamp(16px,5vw,78px));margin-inline:auto}

/* ------------------------------------------------------------ header */
.hdr{background:var(--teal);height:92px;display:flex;align-items:center}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;
  width:min(1780px,100% - 2*clamp(16px,3.2vw,60px))}
.logo{display:flex;flex-direction:column;line-height:1;color:#fff}
.logo img{max-height:62px;width:auto;display:block}
.logo-name{font-family:"Montserrat",sans-serif;font-weight:800;font-size:34px;letter-spacing:-.5px}
.logo-sub{font-family:"Brush Script MT","Segoe Script",cursive;font-style:italic;font-size:17px;margin-top:2px;letter-spacing:.2px}
.nav{display:flex;align-items:center;gap:23px}
.nav a{font-family:"Montserrat",sans-serif;font-weight:600;font-size:13.5px;color:var(--brand-tint);white-space:nowrap;
  display:inline-flex;align-items:center;gap:7px}
.nav a:hover{color:#fff}
.nav .chev{width:8px;height:8px;opacity:.7}
.call{display:inline-flex;align-items:center;gap:11px;background:var(--red);color:#fff;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:14px;height:32px;padding:0 20px;border-radius:var(--r-btn)}
.call:hover{background:var(--red-hover)}
.call svg{width:14px;height:14px}
.burger{display:none;background:none;border:0;padding:6px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}

/* -------------------------------------------------------------- hero */
.hero{position:relative;min-height:656px;overflow:hidden;display:flex;align-items:flex-start}
.hero-bg{position:absolute;inset:0;background:#b9bfc4}
.hero-bg img{width:100%;height:100%;object-fit:cover;display:block}
/* the washed look of the reference: a light veil so dark type reads on a photo */
.hero-bg::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.18)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1fr 479px;gap:40px;align-items:start;
  padding-top:41px;padding-bottom:41px}
.hero-copy{padding-top:151px}
.hero h1{font-family:"Montserrat",sans-serif;font-weight:800;font-size:49px;line-height:1.19;
  letter-spacing:-.4px;margin:0 0 20px;color:var(--ink);max-width:520px}
.hero h1 .hl{color:var(--teal-ink)}
.hero-sub{font-family:"Montserrat",sans-serif;font-weight:500;font-size:15.5px;margin:0 0 18px;color:#111}
.book{display:inline-flex;align-items:center;height:45px;padding:0 17px;background:var(--red);color:#fff;
  font-family:"Montserrat",sans-serif;font-weight:700;font-size:13px;letter-spacing:.2px;text-transform:uppercase;border-radius:var(--r-btn)}
.book:hover{background:var(--red-hover)}

/* ------------------------------------------------------------- form */
.card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.card-head{background:var(--teal);color:#fff;padding:13px 24px 14px}
.card-head h2{font-family:"Montserrat",sans-serif;font-weight:600;font-size:17px;margin:0 0 5px}
.card-head p{font-family:"Open Sans",sans-serif;font-size:12.5px;margin:0;opacity:.95}
.form{padding:22px 24px 24px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.field{margin-bottom:24px}
.field label{display:block;font-family:"Montserrat",sans-serif;font-weight:500;font-size:12px;
  letter-spacing:.3px;text-transform:uppercase;color:var(--label);margin-bottom:6px}
.field label i{font-style:normal;color:var(--cta);margin-left:4px}
.field input,.field select{width:100%;height:39px;border:1px solid var(--field-line);border-radius:6px;
  padding:0 13px;font:400 15px "Open Sans",sans-serif;color:var(--ink);background:#fff;appearance:none}
.field input::placeholder{color:var(--placeholder)}
.field input:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-solid) 18%,transparent)}
.select{position:relative}
.select::after{content:"";position:absolute;right:13px;top:50%;margin-top:-2px;
  border:5px solid transparent;border-top:6px solid #111;border-bottom:0}
.field select{color:var(--ink);padding-right:34px;cursor:pointer}
.submit{width:100%;height:39px;border:0;border-radius:6px;background:var(--red);color:#fff;cursor:pointer;
  font:500 14.5px "Open Sans",sans-serif;margin-top:4px}
.submit:hover{background:var(--red-hover)}
.fine{margin:10px 0 0;font-size:11.5px;color:var(--placeholder);text-align:center}


/* ---------------------------------------------------------- services */
.svc{padding:52px 0 70px;background:#fff}
.svc .wrap{width:min(1540px,100% - 2*clamp(16px,5vw,48px))}
.svc-head{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:start;padding:0 8px;margin-bottom:64px}
.svc-head h2{font-family:"Montserrat",sans-serif;font-weight:800;font-size:clamp(28px,2.3vw,36px);line-height:1.15;margin:4px 0 0;
  letter-spacing:-.3px;color:var(--ink)}
.svc-head h2 .hl{color:var(--teal-ink)}
.svc-head p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 15px;max-width:740px}
.svc-link{font-family:"Montserrat",sans-serif;font-weight:700;font-size:13px;color:var(--red)}
.svc-link:hover{text-decoration:underline}
/* Four columns; a card spans one or two (data-span), which keeps the
   reference's uneven rows for any number of services. */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:svc}
.svc-card{counter-increment:svc;position:relative;grid-column:span 1;display:flex;flex-direction:column;
  border:1px solid #e3e8ea;border-radius:12px;background:linear-gradient(180deg,#fff 0%,#fff 100%);
  padding:26px 24px 22px;color:inherit;overflow:hidden;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
/* a quiet index number in the corner — structure, not a claim */
.svc-card::after{content:counter(svc,decimal-leading-zero);position:absolute;right:20px;top:16px;
  font:800 34px/1 "Montserrat",sans-serif;color:var(--soft);letter-spacing:-1px;transition:color .2s}
/* accent bar that draws in on hover */
.svc-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--teal);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.svc-card:hover{transform:translateY(-4px);border-color:var(--line);box-shadow:0 16px 34px rgba(15,23,42,.09)}
.svc-card:hover::before{transform:scaleX(1)}
.svc-card:hover::after{color:var(--line)}

.svc-ic{position:relative;z-index:1;width:50px;height:50px;border-radius:12px;display:grid;place-items:center;
  background:var(--brand-tint);color:var(--teal);margin-bottom:20px;transition:background .2s,color .2s}
.svc-ic svg{width:24px;height:24px}
.svc-card:hover .svc-ic{background:var(--teal);color:#fff}
.svc-card h3{position:relative;z-index:1;font:800 18px/1.25 "Montserrat",sans-serif;margin:0 0 10px;color:var(--ink)}
.svc-card p{position:relative;z-index:1;font:400 15px/1.6 "Open Sans",sans-serif;color:var(--muted);margin:0 0 18px}
.svc-go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;
  font:700 12.5px "Montserrat",sans-serif;letter-spacing:.3px;text-transform:uppercase;color:var(--red)}
.svc-go svg{width:16px;height:16px;transition:transform .2s}
.svc-card:hover .svc-go svg{transform:translateX(4px)}

/* wide cards: icon beside the text, a tinted panel, so they read as the
   headline services rather than stretched small ones */
.svc-body{position:relative;z-index:1;display:flex;flex-direction:column;flex:1}
.svc-card[data-span="2"]{grid-column:span 2;flex-direction:row;gap:22px;
  background:linear-gradient(135deg,var(--brand-tint) 0%,#fff 60%);padding:30px 30px 26px}
.svc-card[data-span="2"] .svc-ic{flex:0 0 auto;width:64px;height:64px;border-radius:16px;margin:0}
.svc-card[data-span="2"] .svc-ic svg{width:30px;height:30px}
.svc-card[data-span="2"] h3{font-size:21px;margin-top:4px}
.svc-card[data-span="2"] p{max-width:52ch}
@media (max-width:1100px){.svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-card[data-span="2"]{grid-column:span 2}}
@media (max-width:760px){.svc-head{grid-template-columns:1fr;gap:18px;margin-bottom:36px}
  .svc-head h2{font-size:28px}}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}
  .svc-card[data-span="2"],.svc-card{grid-column:span 1}
  .svc-card[data-span="2"]{flex-direction:column}
  .svc-card[data-span="2"] .svc-ic{margin-bottom:18px;width:52px;height:52px}}


/* ------------------------------------------------------------ why us */
.why{padding:40px 0 30px;background:#fff}
.why .wrap{width:min(1520px,100% - 2*clamp(16px,5vw,48px))}
.why-in{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:start}
.why-media{position:relative;padding:0 22px 22px 0}
/* a solid block offset behind the photo gives it depth without a shadow */
.why-media::before{content:"";position:absolute;right:0;bottom:0;width:78%;height:82%;border-radius:10px;
  background:var(--teal);opacity:.12}
.why-pic{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:742/470;
  background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand-deep) 100%);box-shadow:0 18px 40px rgba(15,23,42,.16)}
.why-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* shown only while no photo is set */
.why-pic-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;
  color:rgba(255,255,255,.55);font:600 13px "Montserrat",sans-serif;letter-spacing:.6px;text-transform:uppercase;
  background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:18px 18px}
.why-pic-empty svg{width:46px;height:46px}
.why-pic img~.why-pic-empty{display:none}
.why-float{position:absolute;left:-18px;bottom:0;display:flex;align-items:center;gap:14px;background:#fff;
  border-radius:10px;padding:16px 22px 16px 16px;box-shadow:0 14px 34px rgba(15,23,42,.18)}
.why-float b{display:grid;place-items:center;width:62px;height:62px;border-radius:10px;background:var(--red);color:#fff;
  font:800 24px "Montserrat",sans-serif;letter-spacing:-.5px}
.why-float span{font:700 14px/1.25 "Montserrat",sans-serif;color:var(--ink)}
.why-float small{display:block;font:400 12px "Open Sans",sans-serif;color:var(--muted);margin-top:3px}
.why h2{font:800 clamp(26px,2.3vw,34px)/1.15 "Montserrat",sans-serif;letter-spacing:-.3px;margin:8px 0 18px;color:var(--ink)}
.why h2 .hl{color:var(--teal-ink)}
.why-intro{font:400 14.5px/1.6 "Open Sans",sans-serif;color:var(--text);margin:0 0 20px;max-width:720px}
.why-list{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:17px}
.why-list li{display:grid;grid-template-columns:22px 1fr;column-gap:12px}
.why-list svg{width:20px;height:20px;color:var(--red);margin-top:1px}
.why-list strong{display:block;font:700 14px/1.3 "Montserrat",sans-serif;color:var(--ink);margin-bottom:5px}
.why-list span{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted)}
.why-btn{display:inline-flex;align-items:center;height:36px;padding:0 12px;background:var(--red);color:#fff;
  border-radius:var(--r-btn);font:700 12px "Montserrat",sans-serif;text-transform:uppercase;letter-spacing:.2px}
.why-btn:hover{background:var(--red-hover)}

/* credentials band — the business's own facts as stamps. Every seal comes
   from the business record; one that is not true there is not rendered. */
.creds{padding:36px 0 70px;background:#fff}
.creds .wrap{width:min(1520px,100% - 2*clamp(16px,5vw,48px))}
.creds-box{background:linear-gradient(180deg,var(--brand-tint) 0%,#fff 100%);border:1px solid var(--line);border-radius:14px;
  padding:34px 28px 30px}
.creds-title{text-align:center;font:700 12px "Montserrat",sans-serif;letter-spacing:2.2px;text-transform:uppercase;
  color:var(--teal);margin:0 0 26px}
.creds-row{display:grid;grid-template-columns:repeat(6,1fr)}
.seal{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:4px 10px;
  border-left:1px solid var(--line);--c:var(--teal)}
.seal:first-child{border-left:0}
.seal.red{--c:var(--red)}
.seal-mark{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--c);
  border:3px solid var(--c);box-shadow:0 0 0 7px #fff,0 0 0 9px color-mix(in srgb,var(--c) 26%,transparent);
  transition:transform .25s ease}
.seal:hover .seal-mark{transform:translateY(-3px) rotate(-6deg)}
.seal-mark svg{width:38px;height:38px}
.seal-img{width:132px;height:auto;display:block;filter:drop-shadow(0 8px 14px rgba(15,23,42,.14));
  transition:transform .3s ease}
.seal:hover .seal-img{transform:translateY(-4px) rotate(-4deg)}
.seal small{display:block;font:600 12.5px/1.35 "Open Sans",sans-serif;color:#4f5b62}
@media (max-width:980px){.why-in{grid-template-columns:1fr;gap:40px}
  .creds-row{grid-template-columns:repeat(3,1fr);row-gap:30px}
  .seal:nth-child(4){border-left:0}}
@media (max-width:560px){.creds-row{grid-template-columns:repeat(2,1fr)}.seal-img{width:112px}
  .seal{border-left:0}.why-float{left:0}}




/* -------------------------------------------------------- service area */
.area{padding:30px 0 70px;background:#fff}
.area .wrap{width:min(1700px,100% - 2*clamp(16px,4vw,30px))}
.area-in{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
/* Foundry's own keyless Google Maps embed — same URL shape the engine uses. */
.area-map{position:relative;border-radius:14px;overflow:hidden;background:var(--soft);aspect-ratio:826/415;
  box-shadow:0 10px 30px rgba(15,23,42,.12);border:1px solid var(--line)}
.area-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.85)}
.area-chip{position:absolute;left:14px;bottom:14px;z-index:2;display:flex;align-items:center;gap:8px;background:#fff;
  border-radius:999px;padding:8px 14px 8px 10px;box-shadow:0 6px 18px rgba(0,0,0,.14);
  font:700 12.5px "Montserrat",sans-serif;color:var(--ink)}
.area-chip i{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(183,46,43,.18)}
.area h2{font:800 clamp(26px,2.4vw,36px)/1.15 "Montserrat",sans-serif;letter-spacing:-.3px;margin:14px 0 22px;color:var(--ink)}
.area h2 .hl{color:var(--teal-ink)}
.area-copy p{font:400 15px/1.7 "Open Sans",sans-serif;color:var(--text);margin:0 0 18px}
.area-list{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 26px}
.area-list a{display:inline-flex;align-items:center;gap:8px;font:400 15px "Open Sans",sans-serif;color:var(--text)}
.area-list a:hover{color:var(--teal)}
.area-list svg{width:15px;height:15px;color:var(--red);flex:0 0 auto}
@media (max-width:980px){.area-in{grid-template-columns:1fr;gap:30px}.area-map{aspect-ratio:4/3}}


/* ------------------------------------------------------------ cta band */
.band{position:relative;overflow:hidden;background:var(--brand-deep);color:#fff;text-align:center}
.band-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--brand-solid),var(--brand-deep))}
.band-bg img{width:100%;height:100%;object-fit:cover;display:block}
.band::after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--brand-deep) 70%,transparent)}
.band-in{position:relative;z-index:1;padding:48px 20px 50px}
.band h2{font:800 clamp(26px,2.6vw,36px)/1.15 "Montserrat",sans-serif;margin:0 0 20px;letter-spacing:-.2px}
.band-sub{display:inline-flex;align-items:center;gap:10px;font:500 13.5px "Montserrat",sans-serif;
  color:rgba(255,255,255,.72);margin:0 0 22px}
.band-sub i{width:9px;height:9px;border-radius:50%;background:var(--cta);box-shadow:0 0 0 0 rgba(224,64,64,.6);
  animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(224,64,64,0)}100%{box-shadow:0 0 0 0 rgba(224,64,64,0)}}
.band-btns{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.band-call,.band-book{display:inline-flex;align-items:center;gap:10px;height:37px;padding:0 13px;border-radius:var(--r-btn);
  font:800 13px "Montserrat",sans-serif;text-transform:uppercase;letter-spacing:.1px;color:#fff}
.band-call{background:var(--red)}.band-call:hover{background:var(--red-hover)}
.band-book{background:var(--teal)}.band-book:hover{filter:brightness(1.12)}
.band-call svg{width:14px;height:14px}

/* ------------------------------------------------------------- reviews */
.rev{padding:48px 0 60px;background:#fff}
.rev .wrap{width:min(1540px,100% - 2*clamp(16px,5vw,48px))}
.rev-top{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:30px}
.rev-score{font:800 46px/1 "Montserrat",sans-serif;color:var(--ink);letter-spacing:-1px;padding-right:22px;border-right:1px solid var(--line)}
.rev-meta{padding-right:22px;border-right:1px solid var(--line)}
.stars{color:var(--star);letter-spacing:2px;font-size:15px}
.rev-meta b{display:block;font:600 12.5px "Open Sans",sans-serif;color:var(--ink);margin-top:3px}
.rev-meta small{font:400 11px "Open Sans",sans-serif;color:var(--muted)}
.rev-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:4px;padding:8px 13px;
  font:600 11.5px "Open Sans",sans-serif;color:#44505a}
.rev-badge svg{width:16px;height:16px}

/* the slider: a track that moves by one card at a time */
.slider{--per:3;--gap:18px;position:relative;overflow:hidden;padding:2px}
.track{display:flex;gap:var(--gap);transition:transform .6s cubic-bezier(.22,.8,.3,1);will-change:transform}
.rcard{flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:22px 24px 20px;box-shadow:0 4px 14px rgba(0,0,0,.04);display:flex;flex-direction:column;
  position:relative}
.rcard::before{content:"\201C";position:absolute;left:18px;top:2px;font:800 64px/1 Georgia,serif;color:#eceff1}
.rcard .stars{position:relative;margin:18px 0 12px;font-size:13px}
.rcard blockquote{position:relative;margin:0 0 18px;font:italic 400 14.5px/1.75 "Open Sans",sans-serif;color:var(--text);flex:1}
.rcard-foot{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:16px}
.av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font:800 11.5px "Montserrat",sans-serif;flex:0 0 auto}
.rcard-foot b{display:block;font:600 12.5px "Open Sans",sans-serif;color:var(--ink)}
.rcard-foot small{font:400 11px "Open Sans",sans-serif;color:var(--muted)}
.rcard-src{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font:500 11px "Open Sans",sans-serif;color:var(--muted)}
.rcard-src svg{width:13px;height:13px}
.rev-bar{height:2px;background:var(--line);margin-top:16px;position:relative;overflow:hidden}
.rev-bar span{position:absolute;left:0;top:0;bottom:0;background:var(--brand-2);width:0}
.rev-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}
.rev-nav button.arrow{width:34px;height:34px;border-radius:50%;border:1px solid #c9d0d6;background:#fff;color:var(--brand-2);
  display:grid;place-items:center;cursor:pointer}
.rev-nav button.arrow:hover{border-color:var(--brand-2);color:var(--brand-2)}
.rev-nav button.arrow svg{width:14px;height:14px}
.dots{display:flex;gap:6px;align-items:center}
.dots button{width:6px;height:6px;border-radius:6px;border:0;background:#cfd6dc;padding:0;cursor:pointer;transition:width .3s,background .3s}
.dots button[aria-current="true"]{width:18px;background:var(--brand-2)}
@media (max-width:1100px){.slider{--per:2}}
@media (max-width:680px){.slider{--per:1}.rev-score{font-size:38px}}
@media (prefers-reduced-motion:reduce){.track{transition:none}.band-sub i{animation:none}}


/* ------------------------------------------------------------ about */
.about{padding:10px 0 70px;background:#fff}
.about .wrap{width:min(1540px,100% - 2*clamp(16px,4vw,26px))}
.about-in{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:start}
.about h2{font:800 clamp(26px,2.4vw,34px)/1.2 "Montserrat",sans-serif;letter-spacing:-.3px;margin:6px 0 24px;color:var(--ink)}
.about h2 .hl{color:var(--teal-ink)}
.about-text p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 4px}
.about-btn{display:inline-flex;align-items:center;height:36px;padding:0 12px;margin-top:52px;background:var(--red);color:#fff;
  border-radius:var(--r-btn);font:800 12px "Montserrat",sans-serif;text-transform:uppercase}
.about-btn:hover{background:var(--red-hover)}
/* photo slot used across the page: a tidy panel until the real photo lands */
.ph{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand-deep) 100%)}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:8px;
  color:rgba(255,255,255,.55);font:600 12px "Montserrat",sans-serif;letter-spacing:.6px;text-transform:uppercase;
  background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:18px 18px}
.ph-empty svg{width:40px;height:40px}
.ph img~.ph-empty{display:none}
.about-pic{border-radius:8px;aspect-ratio:742/320}

/* ------------------------------------------------------------- blog */
.blog{padding:20px 0 80px;background:#fff}
.blog .wrap{width:min(1540px,100% - 2*clamp(16px,4vw,20px))}
.blog h2{font:800 clamp(26px,2.4vw,35px)/1.2 "Montserrat",sans-serif;letter-spacing:-.3px;margin:0 0 42px;color:var(--ink)}
.blog h2 .hl{color:var(--teal-ink)}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post{display:flex;flex-direction:column;background:#fff;border-radius:8px;overflow:hidden;
  box-shadow:0 6px 22px rgba(15,23,42,.08);border:1px solid var(--line);color:inherit;transition:transform .2s,box-shadow .2s}
.post:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,23,42,.13)}
.post-pic{aspect-ratio:490/322}
.post-pic img{transition:transform .5s ease}
.post:hover .post-pic img{transform:scale(1.04)}
.post-body{padding:32px 18px 22px;display:flex;flex-direction:column;flex:1}
.post h3{font:600 13px/1.4 "Open Sans",sans-serif;color:var(--ink);margin:0 0 6px}
.post time{font:400 11px "Open Sans",sans-serif;color:var(--muted);margin-bottom:12px}
.post p{font:400 13.5px/1.6 "Open Sans",sans-serif;color:var(--muted);margin:0 0 16px;flex:1}
.post-more{font:700 11.5px "Montserrat",sans-serif;color:var(--red)}
@media (max-width:980px){.about-in{grid-template-columns:1fr;gap:26px}.about-btn{margin-top:24px}
  .posts{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.posts{grid-template-columns:1fr}}


/* ------------------------------------------------------------ footer */
.ftr{background:var(--teal);color:rgba(255,255,255,.9)}
.ftr .wrap{width:min(1720px,100% - 2*clamp(16px,5vw,100px))}
.ftr-in{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:40px;padding:46px 0 46px}
.ftr-logo{display:inline-flex;flex-direction:column;line-height:1;color:#fff;margin-bottom:18px}
.ftr-logo img{max-height:64px;width:auto}
.ftr-logo .logo-name{font:800 38px "Montserrat",sans-serif;letter-spacing:-.5px}
.ftr-logo .logo-sub{font-family:"Brush Script MT","Segoe Script",cursive;font-style:italic;font-size:18px;margin-top:2px}
.ftr-blurb{font:400 13.5px/1.6 "Open Sans",sans-serif;color:rgba(255,255,255,.92);margin:0 0 18px;max-width:390px}
.ftr-social{display:flex;gap:18px;margin-bottom:20px}
.ftr-social a{width:32px;height:32px;border-radius:4px;background:rgba(255,255,255,.12);display:grid;place-items:center;color:#fff}
.ftr-social a:hover{background:rgba(255,255,255,.22)}
.ftr-social svg{width:17px;height:17px}
.ftr-lic{font:500 10.5px "Open Sans",sans-serif;color:rgba(255,255,255,.85);margin:0}
.ftr h3{font:700 15px "Montserrat",sans-serif;color:#fff;margin:6px 0 16px}
.ftr nav{display:grid;gap:11px;align-content:start}
.ftr nav a,.ftr-contact li{font:400 13.5px "Open Sans",sans-serif;color:rgba(255,255,255,.9)}
.ftr nav a:hover,.ftr-contact a:hover{color:#fff;text-decoration:underline}
.ftr-contact{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.ftr-contact li{display:flex;align-items:center;gap:12px}
.ftr-contact svg{width:13px;height:13px;flex:0 0 auto;color:#fff}
.ftr-base{border-top:1px solid rgba(255,255,255,.35);padding:14px 0 16px;margin:0 clamp(16px,2.5vw,46px)}
.ftr-base p{margin:0;font:400 11.5px "Open Sans",sans-serif;color:rgba(255,255,255,.85);padding-left:16px}
@media (max-width:1000px){.ftr-in{grid-template-columns:1fr 1fr;gap:34px}}
@media (max-width:560px){.ftr-in{grid-template-columns:1fr}}


/* --------------------------------------------------------------- faq */
.faq{padding:40px 0 80px;background:#fff}
.faq .wrap{width:min(1240px,100% - 2*clamp(16px,5vw,48px))}
.faq h2{text-align:center;font:800 clamp(26px,2.2vw,30px) "Montserrat",sans-serif;color:var(--teal-ink);margin:0 0 34px}
.faq-list{border-top:0}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:20px 0 19px;font:600 16px/1.4 "Montserrat",sans-serif;color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--teal)}
.qa summary b{color:var(--teal);font-weight:800;margin-right:4px}
.qa summary svg{width:16px;height:16px;flex:0 0 auto;transition:transform .25s ease}
.qa[open] summary svg{transform:rotate(180deg)}
.qa[open] summary{color:var(--teal)}
.qa-a{overflow:hidden}
.qa-a p{margin:0 0 20px;padding-left:30px;max-width:950px;font:400 15px/1.7 "Open Sans",sans-serif;color:var(--text)}
@media (max-width:560px){.qa summary{font-size:14.5px}.qa-a p{padding-left:0}}


/* ------------------------------------------------------------ process */
.proc{padding:36px 0 80px;background:linear-gradient(180deg,#fff 0%,var(--brand-tint) 100%)}
.proc .wrap{width:min(1180px,100% - 2*clamp(16px,5vw,48px))}
.proc h2{text-align:center;font:800 clamp(26px,2.4vw,34px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px}
.proc h2 .hl{color:var(--teal-ink)}
.proc-sub{text-align:center;font:400 15px "Open Sans",sans-serif;color:var(--muted);margin:0 0 44px}

/* the rail: four stops on a line that fills up to the active one */
.steps{--n:4;--at:0;position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);margin-bottom:34px}
.steps::before,.steps::after{content:"";position:absolute;top:31px;height:3px;border-radius:var(--r-btn);
  left:calc(100% / var(--n) / 2)}
.steps::before{right:calc(100% / var(--n) / 2);background:var(--line)}
.steps::after{background:var(--teal);transition:width .5s cubic-bezier(.22,.8,.3,1);
  width:calc((100% - 100% / var(--n)) * var(--at) / (var(--n) - 1))}
.step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;
  background:none;border:0;padding:0 8px;cursor:pointer;font:inherit;color:inherit;text-align:center}
.step-dot{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#fff;
  border:3px solid var(--line);color:var(--muted);transition:all .35s ease}
.step-dot svg{width:26px;height:26px}
.step-n{font:700 11px "Montserrat",sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);transition:color .3s}
.step-t{font:700 15px/1.3 "Montserrat",sans-serif;color:#51606a;transition:color .3s}
.step.done .step-dot{border-color:var(--teal);color:var(--teal)}
.step.on .step-dot{background:var(--teal);border-color:var(--teal);color:#fff;transform:scale(1.08);
  box-shadow:0 0 0 7px color-mix(in srgb,var(--brand-solid) 14%,transparent),0 10px 22px color-mix(in srgb,var(--brand-solid) 30%,transparent)}
.step.on .step-n,.step.done .step-n{color:var(--teal)}
.step.on .step-t{color:var(--ink)}
.step:focus-visible{outline:none}.step:focus-visible .step-dot{outline:3px solid var(--red);outline-offset:3px}

/* the panel under the rail */
.panel-wrap{position:relative;background:#fff;border-radius:14px;border:1px solid var(--line);
  box-shadow:0 14px 34px rgba(15,23,42,.08);overflow:hidden}
.panel-wrap::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--teal)}
.panel{display:none;grid-template-columns:1fr auto;gap:30px;padding:30px 34px 30px 40px;animation:rise .45s ease}
.panel.on{display:grid}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.panel h3{font:800 21px "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px}
.panel h3 span{color:var(--teal)}
.panel p{font:400 14.5px/1.7 "Open Sans",sans-serif;color:var(--text);margin:0 0 16px;max-width:640px}
.panel ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.panel li{display:inline-flex;align-items:center;gap:7px;font:600 12.5px "Open Sans",sans-serif;color:var(--text);
  background:var(--brand-tint);border-radius:999px;padding:7px 12px}
.panel li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--red)}
.panel-big{align-self:center;font:800 88px/1 "Montserrat",sans-serif;color:var(--brand-tint);letter-spacing:-3px;user-select:none}
.proc-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;flex-wrap:wrap}
.proc-auto{height:3px;flex:1;min-width:120px;background:var(--line);border-radius:var(--r-btn);overflow:hidden}
.proc-auto span{display:block;height:100%;width:0;background:var(--red)}
.proc-cta{display:inline-flex;align-items:center;gap:8px;font:800 12.5px "Montserrat",sans-serif;text-transform:uppercase;
  color:#fff;background:var(--red);height:38px;padding:0 16px;border-radius:var(--r-btn)}
.proc-cta:hover{background:var(--red-hover)}
@media (max-width:760px){
  .steps{grid-template-columns:1fr;gap:6px;margin-bottom:24px}
  .steps::before,.steps::after{display:none}
  .step{flex-direction:row;text-align:left;gap:14px;padding:6px 0}
  .step-dot{width:48px;height:48px}.step-dot svg{width:20px;height:20px}
  .step-n{display:none}
  .panel{grid-template-columns:1fr;padding:24px 22px 24px 28px}.panel-big{display:none}
}
@media (prefers-reduced-motion:reduce){.panel{animation:none}.steps::after{transition:none}}

/* ------------------------------------------------------------ mobile */
@media (max-width:1180px){
  .nav{gap:16px}.nav a{font-size:12.5px}
}
@media (max-width:1024px){
  .nav{display:none}
  .burger{display:block;order:3}
  .call{margin-left:auto}
  .hero .wrap{grid-template-columns:1fr;gap:28px}
  .hero-copy{padding-top:40px}
  .hero h1{font-size:clamp(32px,6vw,44px)}
}
@media (max-width:560px){
  .hdr{height:72px}.logo-name{font-size:26px}.logo-sub{font-size:14px}
  .call span{display:none}.call{padding:0 12px}
  .row2{grid-template-columns:1fr;gap:0}
}

/* =====================================================================
   SERVICE PAGE — one layout for every service. Only the data changes:
   the service name, the city, the sub-services in the tabs, the photo.
   ===================================================================== */
.nav a[aria-current="page"]{color:#fff;font-weight:700}

.shero{position:relative;overflow:hidden;color:#fff;min-height:586px;display:flex;flex-direction:column}
.shero-bg{position:absolute;inset:0;background:linear-gradient(120deg,var(--brand-solid),var(--brand-deep))}
.shero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.shero::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(8,14,13,.72) 0%,rgba(8,14,13,.45) 55%,rgba(8,14,13,.2) 100%)}
.shero .wrap{position:relative;z-index:2}
.shero-copy-wrap{width:min(1690px,100% - 2*clamp(16px,5vw,97px))}
.shero-copy{padding:66px 0 40px;max-width:760px}
.shero-eyebrow{font:600 12.5px "Open Sans",sans-serif;letter-spacing:.2px;text-transform:uppercase;margin:0 0 16px;color:#fff}
.shero h1{font:800 clamp(30px,3.2vw,44px)/1.25 "Montserrat",sans-serif;letter-spacing:-.4px;margin:0 0 22px}
.shero-lede{font:400 14.5px/1.55 "Open Sans",sans-serif;color:rgba(255,255,255,.95);margin:0 0 16px;max-width:740px}
.shero-btns{display:flex;flex-wrap:wrap;gap:16px 160px;align-items:center;margin-bottom:14px}
.btn-teal,.btn-out{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:var(--r-btn);
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:.8px;text-transform:uppercase;color:#fff}
.btn-teal{background:var(--teal)}.btn-teal:hover{filter:brightness(1.15)}
.btn-out{border:1.5px solid #fff}.btn-out:hover{background:rgba(255,255,255,.1)}
.shero-facts{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0;padding:0 0 0 186px}
.shero-facts li{display:inline-flex;align-items:center;gap:6px;font:500 13.5px "Open Sans",sans-serif}
.shero-facts svg{width:13px;height:13px;color:var(--cta)}

/* tabs that sit on the bottom edge of the hero */
.stabs-bar{position:relative;z-index:2;margin-top:auto}
.stabs-bar .wrap{background:#fff;padding:0 58px;width:min(1484px,100% - 2*clamp(16px,5vw,196px))}
.stabs{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:24px;transform:translateY(-20px)}
.stab{display:grid;place-items:center;height:45px;border-radius:var(--r-btn);background:#d6d8d8;color:var(--text);
  font:600 16px "Montserrat",sans-serif;border:0;cursor:pointer;transition:background .2s,color .2s;padding:0 12px;text-align:center}
.stab:hover{background:#c8cccc}
.stab[aria-current="true"]{background:var(--ink);color:#fff}

/* trust strip under the hero */
.strip{background:var(--soft);padding:12px 0 22px;margin-top:-1px}
.strip ul{list-style:none;margin:0;padding:6px 0 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center}
.strip li{display:inline-flex;align-items:center;gap:8px;font:500 13.5px "Open Sans",sans-serif;color:var(--text);padding:0 10px}
.strip li+li{border-left:1px solid #cfd3d3}
.strip svg{width:13px;height:13px;color:var(--red)}
.strip-cta{text-align:center;margin:26px 0 0;font:400 15px "Open Sans",sans-serif;color:var(--muted)}
.strip-cta a{color:var(--cta);margin-left:6px}
.strip-cta a:hover{text-decoration:underline}

.sintro{padding:44px 0 30px;text-align:center}
.sintro-eyebrow{font:600 12.5px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 12px}
.sintro h2{font:800 clamp(26px,2.5vw,35px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0;letter-spacing:-.3px}

@media (max-width:1100px){.shero-btns{gap:14px}.shero-facts{padding-left:0}}
@media (max-width:860px){
  .stabs-bar .wrap{padding:0;background:transparent}
  .stabs{grid-template-columns:repeat(2,1fr);gap:10px;transform:none;padding:16px 0}
  .stabs-bar{background:#fff}
  .strip li,.strip li+li{border:0;padding:4px 8px}
  .stab{font-size:14px;height:42px}
}

/* intro subtitle + the photo / dark panel split */
.sintro{padding:44px 0 0}
.sintro-sub{font:400 14.5px/1.5 "Open Sans",sans-serif;color:var(--muted);margin:12px 0 0}
.split{padding:22px 0 60px}
.split .wrap{width:min(1283px,100% - 2*clamp(16px,4vw,33px))}
.split-in{display:grid;grid-template-columns:625fr 658fr;border-radius:7px;overflow:hidden;background:#111;min-height:480px}
.split-pic{position:relative;min-height:320px}
.split-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split-copy{padding:32px 34px 38px 32px;color:#fff}
.split-copy h3{font:800 clamp(21px,1.9vw,25px)/1.2 "Montserrat",sans-serif;margin:0 0 20px;max-width:560px}
.split-copy p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:rgba(255,255,255,.93);margin:0 0 18px;max-width:590px}
.split-btns{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
.btn-red{display:inline-flex;align-items:center;height:37px;padding:0 12px;border-radius:var(--r-btn);background:var(--red);color:#fff;
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:.9px;text-transform:uppercase}
.btn-red:hover{background:var(--red-hover)}
.split .btn-out{height:37px}
@media (max-width:900px){.split-in{grid-template-columns:1fr}.split-pic{aspect-ratio:4/3;min-height:0}}

/* related service groups: four cards with a checklist, then the call row */
.groups{padding:10px 0 60px}
.groups .wrap{width:min(1620px,100% - 2*clamp(16px,5vw,107px))}
.groups-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.gcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px;background:#fff;padding:24px 16px 24px 16px;
  transition:border-color .2s,box-shadow .2s}
.gcard:hover{border-color:#d2d8db;box-shadow:0 10px 26px rgba(0,0,0,.06)}
.gicon{width:36px;height:36px;border-radius:var(--r-btn);background:#eeeeee;display:grid;place-items:center;color:var(--red);margin-bottom:18px}
.gicon svg{width:19px;height:19px}
.gcard h3{font:800 18px "Montserrat",sans-serif;color:var(--ink);margin:0 0 14px}
.gcard p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0 0 20px}
.gcard ul{list-style:none;margin:0 0 26px;padding:0}
.gcard li{display:flex;align-items:center;gap:10px;font:400 14.5px "Open Sans",sans-serif;color:var(--text);padding:9px 0}
.gcard li+li{border-top:1px solid var(--line)}
.gcard li svg{width:12px;height:12px;color:var(--red);flex:0 0 auto}
.glink{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font:800 14.5px "Montserrat",sans-serif;color:var(--red)}
.glink svg{width:14px;height:14px;transition:transform .2s}
.glink:hover svg{transform:translateX(3px)}
.call-row{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:32px}
.call-row .band-call,.call-row .band-book{letter-spacing:1px}
@media (max-width:1150px){.groups-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.groups-grid{grid-template-columns:1fr}}

/* dark block: what we fix (left) and how it works (right) */
.dark{background:var(--brand-deep);color:#fff;padding:22px 0 40px}
.dark .wrap{width:min(1503px,100% - 2*clamp(16px,5vw,146px))}
.dark-in{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.dark-eyebrow{font:600 12.5px "Open Sans",sans-serif;text-transform:uppercase;margin:0 0 30px}
.dark h2{font:800 clamp(26px,2.4vw,33px)/1.18 "Montserrat",sans-serif;margin:0 0 30px;max-width:620px}
.dark-lede{font:400 14.5px/1.65 "Open Sans",sans-serif;color:rgba(255,255,255,.93);margin:0 0 22px;max-width:720px}
.fixlist{list-style:none;margin:0 0 26px;padding:0}
.fixlist li{display:flex;align-items:center;gap:9px;padding:11px 0;font:400 15px "Open Sans",sans-serif}
.fixlist li+li{border-top:1px solid #3a3a3a}
.fixlist svg{width:16px;height:16px;color:var(--star);flex:0 0 auto}
.btn-call{display:inline-flex;align-items:center;gap:10px;height:36px;padding:0 12px;border-radius:var(--r-btn);background:var(--red);color:#fff;
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:1px;text-transform:uppercase}
.btn-call:hover{background:var(--red-hover)}
.btn-call svg{width:14px;height:14px}
.dark-note{display:flex;justify-content:center;align-items:center;gap:8px;margin:26px 0 0;
  font:500 13px "Montserrat",sans-serif;color:rgba(255,255,255,.62);max-width:720px}
.dark-note i{width:9px;height:9px;border-radius:50%;background:var(--cta)}
.dark-pic{border-radius:6px;aspect-ratio:743/468}
.how{margin-top:16px;background:color-mix(in srgb,var(--brand-deep) 80%,#fff 4%);border:1px solid color-mix(in srgb,var(--brand-deep) 70%,#fff 12%);border-radius:6px;padding:14px 16px 0}
.how h3{font:800 18px "Montserrat",sans-serif;margin:0;padding-bottom:12px;border-bottom:1px solid var(--text)}
.how ol{list-style:none;margin:0;padding:6px 0 0}
.how li{display:grid;grid-template-columns:54px 1fr;padding:12px 0 10px}
.how-n{font:800 22px/1 "Montserrat",sans-serif;color:var(--cta);padding-top:2px}
.how li b{display:block;font:800 16px "Montserrat",sans-serif;margin-bottom:8px}
.how li p{margin:0;font:400 12px/1.55 "Open Sans",sans-serif;color:rgba(255,255,255,.88)}
.how-cta{display:grid;place-items:center;height:37px;margin:10px 0 0;background:var(--teal);border-radius:var(--r-btn) 2px 0 0;
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:1.4px;text-transform:uppercase;color:#fff}
.how-cta:hover{filter:brightness(1.15)}
@media (max-width:980px){.dark-in{grid-template-columns:1fr}.dark{padding:40px 0}.dark-note{justify-content:flex-start}}

/* "the difference": six reasons in a 3 x 2 grid on a light band */
.diff{background:var(--soft);padding:22px 0 20px}
.diff .wrap{width:min(1603px,100% - 2*clamp(16px,5vw,77px))}
.diff-head{text-align:center;margin-bottom:64px}
.diff-eyebrow{font:600 12.5px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 20px}
.diff h2{font:800 clamp(26px,2.4vw,34px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 26px;letter-spacing:-.3px}
.diff-sub{font:400 14.5px "Open Sans",sans-serif;color:var(--text);margin:0}
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 24px}
.dcard{background:#fff;border:1px solid var(--line);border-radius:4px;padding:24px 16px 26px;min-height:176px;
  transition:border-color .2s,box-shadow .2s,transform .2s}
.dcard:hover{border-color:#d3d9de;box-shadow:0 10px 26px rgba(0,0,0,.06);transform:translateY(-2px)}
.dicon{width:36px;height:36px;border-radius:var(--r-btn);background:#eeeeee;display:grid;place-items:center;color:var(--red);margin-bottom:28px}
.dicon svg{width:18px;height:18px}
.dcard h3{font:800 18px "Montserrat",sans-serif;color:var(--ink);margin:0 0 18px}
.dcard p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0}
.diff-cta{display:flex;justify-content:center;margin-top:24px}
.diff-cta a{display:inline-flex;align-items:center;gap:12px;height:36px;padding:0 12px;border-radius:var(--r-btn);background:var(--red);color:#fff;
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:1.2px;text-transform:uppercase}
.diff-cta a:hover{background:var(--red-hover)}
.diff-cta svg{width:14px;height:14px;transition:transform .2s}.diff-cta a:hover svg{transform:translateX(3px)}
@media (max-width:1000px){.diff-grid{grid-template-columns:repeat(2,1fr)}.diff-head{margin-bottom:36px}}
@media (max-width:620px){.diff-grid{grid-template-columns:1fr}}

/* service-page reviews: red-topped cards, initials, city; slides when there are more than three */
.srev{padding:18px 0 50px;background:#fff}
.srev .wrap{width:min(1508px,100% - 2*clamp(16px,4vw,50px))}
.srev-head{text-align:center;margin-bottom:44px}
.srev-eyebrow{font:600 12.5px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 20px}
.srev h2{font:800 clamp(26px,2.4vw,34px) "Montserrat",sans-serif;color:var(--ink);margin:0;letter-spacing:-.3px}
.srev .slider{--gap:16px}
.qcard{flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));background:#fff;border:1px solid var(--line);
  border-top:3px solid var(--cta);border-radius:6px;padding:22px 16px 20px;display:flex;flex-direction:column}
.qmark{font:800 58px/.7 Georgia,serif;color:color-mix(in srgb,var(--cta) 30%,#fff);height:34px;margin-bottom:34px}
.qcard blockquote{margin:0 0 18px;font:400 14.5px/1.45 "Open Sans",sans-serif;color:var(--text);flex:1}
.qfoot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0 32px;border-top:1px solid var(--line);padding-top:16px}
.qav{width:38px;height:38px;border-radius:50%;background:#f0f0f0;border:1px solid #dcdcdc;display:grid;place-items:center;
  font:800 13px "Montserrat",sans-serif;color:var(--cta);margin-left:8px}
.qfoot b{display:block;font:800 12px "Montserrat",sans-serif;color:var(--ink);margin-bottom:5px}
.qfoot small{font:400 12px "Open Sans",sans-serif;color:var(--muted)}
.qsrc{text-align:left;min-width:80px}
.qsrc .stars{font-size:11px;letter-spacing:1px;display:block;color:var(--star);margin-bottom:3px}
.qsrc span{font:400 10.5px "Open Sans",sans-serif;color:var(--muted);display:inline-flex;align-items:center;gap:4px}
.qsrc svg{width:10px;height:10px}
.srev-sum{display:flex;justify-content:center;align-items:center;gap:8px;margin:36px 0 16px;font:400 13.5px "Open Sans",sans-serif;color:var(--muted)}
.srev-sum .stars{font-size:12px}
.srev-cta{display:flex;justify-content:center}
.srev-cta a{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:var(--r-btn);background:var(--red);color:#fff;
  font:800 12.5px "Montserrat",sans-serif;letter-spacing:1.3px;text-transform:uppercase}
.srev-cta a:hover{background:var(--red-hover)}
.srev .rev-nav{margin-top:14px}
@media (max-width:1100px){.srev .slider{--per:2}}
@media (max-width:680px){.srev .slider{--per:1}.qfoot{gap:0 14px}}

/* offers (left) + communities served (right) on a light band */
.more{background:var(--soft);padding:34px 0 38px}
.more .wrap{width:min(1470px,100% - 2*clamp(16px,4vw,47px))}
.more-in{display:grid;grid-template-columns:722fr 700fr;gap:40px;align-items:start}
.more-eyebrow{font:600 12.5px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 18px}
.more h2{font:800 clamp(24px,2.1vw,28px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0 0 18px}
.offers{display:grid;gap:16px}
.offer{display:grid;grid-template-columns:100px 1fr;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.offer-side{display:grid;place-items:center;background:var(--teal);color:#fff;text-align:center;
  font:800 16px/1.2 "Montserrat",sans-serif}
.offer-side svg{width:26px;height:26px}
.offer.red .offer-side{background:var(--red)}
.offer-body{padding:16px 20px 14px}
.offer h3{font:800 16px "Montserrat",sans-serif;color:var(--ink);margin:0 0 8px}
.offer p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0 0 14px}
.offer-btn{display:inline-flex;align-items:center;height:29px;padding:0 10px;border-radius:var(--r-btn);background:var(--teal);color:#fff;
  font:800 11px "Montserrat",sans-serif;letter-spacing:1.3px;text-transform:uppercase}
.offer.red .offer-btn{background:var(--red)}
.offer-btn:hover{filter:brightness(1.12)}
.more-lede{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 20px}
.pills{display:flex;flex-wrap:wrap;gap:10px 8px;list-style:none;margin:0 0 20px;padding:0;max-width:470px}
.pills a{display:inline-flex;align-items:center;height:33px;padding:0 16px;border-radius:999px;background:#e5e7e8;
  border:1px solid #d6d9db;font:600 13px "Montserrat",sans-serif;color:var(--cta);transition:background .2s,color .2s}
.pills a:hover{background:var(--red);border-color:var(--red);color:#fff}
.more-q{display:flex;align-items:center;gap:12px;font:400 14.5px "Open Sans",sans-serif;color:var(--text);margin:0 0 16px}
.more-q svg{width:11px;height:11px;color:var(--red)}
@media (max-width:980px){.more-in{grid-template-columns:1fr}}
@media (max-width:480px){.offer{grid-template-columns:72px 1fr}}

/* long city lists: first 16 visible, the rest behind one button */
.pills li.extra{display:none}
.pills.open li.extra{display:list-item}
.pills-more{display:inline-flex;align-items:center;height:33px;padding:0 16px;border-radius:999px;background:#fff;
  border:1px dashed #c9cfd2;font:700 13px "Montserrat",sans-serif;color:var(--teal);cursor:pointer}
.pills-more:hover{border-color:var(--teal)}

/* service pages: the same Google map as the home page, beside the city list */
.more-map{position:relative;border-radius:10px;overflow:hidden;background:var(--soft);aspect-ratio:21/9;margin:0 0 20px;
  border:1px solid var(--line);box-shadow:0 8px 22px rgba(15,23,42,.10)}
.more-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.85)}

/* ------------------------------------------------ services dropdown */
.nav .dd{position:relative;display:inline-flex}
.dd-btn{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;cursor:pointer;
  font-family:"Montserrat",sans-serif;font-weight:600;font-size:13.5px;color:var(--brand-tint);white-space:nowrap}
.dd-btn:hover,.dd.open .dd-btn{color:#fff}
.dd-btn[aria-current="page"]{color:#fff;font-weight:700}
.dd-btn .chev{transition:transform .2s}
.dd.open .dd-btn .chev{transform:rotate(180deg)}
.dd-menu{position:absolute;left:50%;top:calc(100% + 26px);transform:translate(-50%,8px);z-index:60;
  width:560px;background:#fff;border-radius:10px;box-shadow:0 22px 50px rgba(0,0,0,.2);padding:14px;
  display:grid;grid-template-columns:1fr 1fr;gap:4px;opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s}
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-26px;height:26px}      /* hover bridge */
.dd-menu::after{content:"";position:absolute;left:50%;top:-7px;width:14px;height:14px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.dd.open .dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dd-menu a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:var(--ink);
  font:600 13.5px "Montserrat",sans-serif;white-space:normal}
.dd-menu a:hover,.dd-menu a:focus-visible{background:var(--brand-tint);color:var(--teal);outline:none}
.dd-menu a[aria-current="page"]{background:var(--brand-tint);color:var(--teal)}
.dd-ic{flex:0 0 auto;width:34px;height:34px;border-radius:8px;background:var(--cta-tint);color:var(--red);display:grid;place-items:center}
.dd-ic svg{width:17px;height:17px}
.dd-all{grid-column:1/-1;justify-content:center;margin-top:6px;border-top:1px solid var(--line);border-radius:0 !important;
  padding-top:12px !important;color:var(--red) !important;font-weight:800 !important;background:none !important}
.dd-all:hover{text-decoration:underline}

/* ------------------------------------------------ phone menu */
@media (max-width:1024px){
  .hdr{position:relative}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:100%;z-index:70;flex-direction:column;align-items:stretch;gap:0;
    background:var(--teal);padding:8px clamp(16px,5vw,40px) 18px;box-shadow:0 18px 30px rgba(0,0,0,.2);max-height:calc(100vh - 72px);overflow:auto}
  .nav.open>a,.nav.open .dd-btn{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:15px;width:100%;justify-content:space-between}
  .nav.open .dd{flex-direction:column}
  .nav.open .dd-menu{position:static;transform:none;width:auto;box-shadow:none;border-radius:8px;display:none;opacity:1;visibility:visible;
    grid-template-columns:1fr;margin:8px 0 6px;padding:6px}
  .nav.open .dd-menu::before,.nav.open .dd-menu::after{display:none}
  .nav.open .dd.open .dd-menu{display:grid}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .burger span{transition:transform .2s,opacity .2s}
}

/* related services: chosen per page, never the page itself */
.groups-head{text-align:center;margin:0 0 30px}
.groups-head h2{font:800 clamp(24px,2.2vw,30px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px}
.groups-head p{font:400 15px "Open Sans",sans-serif;color:var(--muted);margin:0}
.gcard h3 a{color:inherit}
.gcard h3 a:hover{color:var(--red)}
.glink{font-size:13.5px;line-height:1.3;align-items:flex-start}
.glink svg{flex:0 0 auto;margin-top:2px}

/* ================================================================ ABOUT */
.phero{position:relative;overflow:hidden;color:#fff;text-align:center}
.phero-bg{position:absolute;inset:0;background:linear-gradient(120deg,var(--brand-solid),var(--brand-deep))}
.phero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.phero::before{content:"";position:absolute;inset:0;z-index:1;background:color-mix(in srgb,var(--brand-deep) 72%,transparent)}
.phero-in{position:relative;z-index:2;padding:58px 20px 70px}
.phero-eyebrow{font:600 11.5px "Open Sans",sans-serif;text-transform:uppercase;letter-spacing:.2px;margin:0 0 18px}
.phero h1{font:800 clamp(34px,3.4vw,48px)/1.1 "Montserrat",sans-serif;margin:0 0 30px;letter-spacing:-.5px}
.phero-sub{font:400 15px "Open Sans",sans-serif;margin:0;color:rgba(255,255,255,.95)}
.who{padding:40px 0 60px}
.who .wrap{width:min(1515px,100% - 2*clamp(16px,5vw,134px))}
.who-in{display:grid;grid-template-columns:742fr 773fr;gap:48px;align-items:center}
.who-pic{border-radius:8px;aspect-ratio:742/389}
.who-eyebrow{font:600 11px "Open Sans",sans-serif;text-transform:uppercase;letter-spacing:.3px;color:var(--ink);margin:0 0 22px}
.who h2{font:800 clamp(26px,2.3vw,34px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0 0 24px;letter-spacing:-.3px}
.who h2 .hl{color:var(--teal-ink)}
.who-text p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 2px}
.who .about-btn{margin-top:18px}
@media (max-width:980px){.who-in{grid-template-columns:1fr;gap:26px}}

/* about: stats strip, vision & mission, why-choose-us heading */
.stats{background:var(--soft);padding:30px 0 26px}
.stats .wrap{width:min(1270px,100% - 2*clamp(16px,5vw,87px))}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.stat b{display:block;font:800 clamp(28px,2.4vw,33px)/1 "Montserrat",sans-serif;color:var(--cta);letter-spacing:-.5px;margin-bottom:10px}
.stat span{font:400 14.5px "Open Sans",sans-serif;color:var(--muted)}
.vision{padding:70px 0 74px;background:#fff}
.vision .wrap{width:min(900px,100% - 2*clamp(16px,5vw,40px))}
.vision-in{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.vision-eyebrow,.why-eyebrow{font:600 11px "Open Sans",sans-serif;text-transform:uppercase;letter-spacing:.3px;color:var(--ink);margin:0 0 16px}
.vision h2{font:800 clamp(28px,2.4vw,34px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 20px;letter-spacing:-.3px}
.vision h2 .hl,.why-h .hl{color:var(--teal-ink)}
.vision p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0}
.vlist{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.vlist li{display:grid;grid-template-columns:24px 1fr;gap:0;font:400 15px/1.65 "Open Sans",sans-serif;color:var(--text)}
.vlist svg{width:13px;height:13px;color:var(--red);margin-top:5px}
.why-h{background:var(--soft);text-align:center;padding:66px 20px 34px}
.why-h h2{font:800 clamp(26px,2.4vw,34px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0 0 22px;letter-spacing:-.3px}
.why-h p{font:400 14.5px "Open Sans",sans-serif;color:var(--text);margin:0}
@media (max-width:760px){.stats-row{grid-template-columns:1fr 1fr 1fr;gap:12px}.vision-in{grid-template-columns:1fr;gap:26px}}
@media (max-width:420px){.stats-row{grid-template-columns:1fr}}

/* about: four reasons, trust strip, centered service areas with map */
.why-cards{background:var(--soft);padding:0 0 64px}
.why-cards .wrap{width:min(1620px,100% - 2*clamp(16px,4vw,30px))}
.why-cards .diff-grid{grid-template-columns:repeat(4,1fr)}
.why-cards .dcard{min-height:0;padding:24px 16px 24px;background:var(--soft)}
.why-cards .dicon{margin-bottom:24px}
.why-cards .dcard h3{margin-bottom:18px}
.strip.bordered{border-block:1px solid var(--line);padding:14px 0}
.areas2{padding:66px 0 70px;text-align:center}
.areas2 .wrap{width:min(1100px,100% - 2*clamp(16px,5vw,40px))}
.areas2-eyebrow{font:600 11.5px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 20px}
.areas2 h2{font:800 clamp(26px,2.4vw,34px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0 0 22px;letter-spacing:-.3px}
.areas2 h2 .hl{color:var(--teal-ink)}
.areas2 p{font:400 14.5px "Open Sans",sans-serif;color:var(--text);margin:0 0 26px}
.areas2 .area-list{justify-content:center;margin:0 0 34px;gap:12px 28px}
.areas2 .more-map{aspect-ratio:21/8;max-width:1100px;margin:0 auto;text-align:left}
@media (max-width:1100px){.why-cards .diff-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.why-cards .diff-grid{grid-template-columns:1fr}.areas2 .more-map{aspect-ratio:4/3}}

/* ============================================================= CONTACT */
.phero.contact .phero-in{padding:74px 20px 96px}
.phero.contact h1{margin-bottom:26px}
.contact{padding:0 0 0}
.contact-in{display:grid;grid-template-columns:1fr 1fr;align-items:start}
.contact-info{padding:10px clamp(16px,5vw,90px) 40px clamp(16px,5vw,90px)}
.contact-info h2{font:800 clamp(28px,2.5vw,36px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 20px;letter-spacing:-.3px}
.contact-info>p{font:400 15px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 20px;max-width:830px}
.cinfo{list-style:none;margin:0;padding:0;display:grid;gap:22px}
.cinfo li{display:grid;grid-template-columns:32px 1fr;column-gap:12px;align-items:start}
.cinfo-ic{width:32px;height:32px;border-radius:6px;background:#efefef;color:var(--red);display:grid;place-items:center}
.cinfo-ic svg{width:17px;height:17px}
.cinfo b{display:block;font:800 14.5px "Montserrat",sans-serif;color:var(--ink);margin:4px 0 6px}
.cinfo a,.cinfo span{font:400 15px "Open Sans",sans-serif;color:var(--muted)}
.cinfo a:hover{color:var(--teal)}
.contact-form{border-left:1px solid var(--line);background:#fff}
.contact-form .card-head{padding:14px 24px 14px}
.contact-form .card-head h2{font:800 20px "Montserrat",sans-serif;margin:0 0 8px}
.contact-form .form{padding:22px 0 26px 24px;padding-right:clamp(0px,0vw,0px)}
.contact-form textarea{width:100%;min-height:96px;border:1px solid var(--field-line);border-radius:6px;padding:10px 13px;
  font:400 15px "Open Sans",sans-serif;color:var(--ink);resize:vertical}
.contact-form textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-solid) 18%,transparent)}
.contact-map{padding:50px 0 60px}
.contact-map .wrap{width:min(1640px,100% - 2*clamp(16px,4vw,48px))}
.contact-map .more-map{aspect-ratio:21/7;margin:0}
@media (max-width:900px){.contact-in{grid-template-columns:1fr}.contact-form{border-left:0;border-top:1px solid var(--line)}
  .contact-form .form{padding:22px clamp(16px,5vw,40px) 26px}.contact-map .more-map{aspect-ratio:4/3}}
.cinfo .cinfo-ic{color:var(--red)}
.contact-form .form{padding-right:clamp(16px,2vw,32px)}

/* ============================================================ LOCATION */
.lhero{position:relative;overflow:hidden;min-height:320px}
.lhero-bg{position:absolute;inset:0;background:linear-gradient(120deg,#c9d0cf,#9aa5a3)}
.lhero-bg img{width:100%;height:100%;object-fit:cover;display:block}
/* a white wash from the left so dark type reads over any photo */
.lhero::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.72) 55%,rgba(255,255,255,.15) 100%)}
.lhero .wrap{position:relative;z-index:2;width:min(1780px,100% - 2*clamp(16px,3vw,52px));padding:84px 0 46px}
.lhero h1{font:800 clamp(26px,2.3vw,33px)/1.2 "Montserrat",sans-serif;color:var(--ink);margin:0 0 30px;letter-spacing:-.3px}
.lhero-lede{font:400 14.5px/1.5 "Open Sans",sans-serif;color:var(--ink);margin:0 0 26px;max-width:1500px}
.lhero-btn{display:inline-flex;align-items:center;height:44px;padding:0 16px;background:var(--red);color:#fff;border-radius:var(--r-btn);
  font:800 13px "Montserrat",sans-serif;text-transform:uppercase}
.lhero-btn:hover{background:var(--red-hover)}
.lfacts{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap}
.lfacts li{display:inline-flex;align-items:center;gap:8px;padding:0 16px;font:500 11.5px "Open Sans",sans-serif;color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.35)}
.lfacts li:first-child{padding-left:0}
.lfacts li+li{border-left:1px solid rgba(255,255,255,.55)}
.lfacts svg{width:15px;height:15px}
.lstats{background:var(--teal);color:#fff}
.lstats-row{display:flex;justify-content:center;flex-wrap:wrap}
.lstat{text-align:center;padding:12px 38px 16px;min-width:228px}
.lstat+.lstat{border-left:1px solid rgba(255,255,255,.3)}
.lstat b{display:block;font:800 24px "Montserrat",sans-serif;margin-bottom:6px}
.lstat span{font:400 14.5px "Open Sans",sans-serif;opacity:.95}
.local{padding:40px 0 60px}
.local .wrap{width:min(1480px,100% - 2*clamp(16px,5vw,100px))}
.local-in{display:grid;grid-template-columns:640fr 815fr;gap:24px;align-items:center}
.local-pic{aspect-ratio:640/302;border-radius:var(--r-btn)}
.local h2{font:800 clamp(24px,2vw,29px)/1.02 "Montserrat",sans-serif;color:var(--ink);margin:0 0 24px;letter-spacing:-.3px}
.local-text p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 18px}
.local-checks{list-style:none;margin:22px 0 0;padding:0 0 0 8px;display:grid;grid-template-columns:1fr 1fr;gap:3px 40px}
.local-checks li{display:flex;align-items:center;gap:10px;font:400 14.5px "Open Sans",sans-serif;color:var(--muted)}
.local-checks svg{width:13px;height:13px;color:var(--red);flex:0 0 auto}
@media (max-width:980px){.local-in{grid-template-columns:1fr}.lstat{min-width:0;flex:1 1 45%}.lstat+.lstat{border-left:0}}
@media (max-width:560px){.local-checks{grid-template-columns:1fr}.lhero .wrap{padding:48px 0 34px}
  .lfacts li{padding:4px 10px;border:0 !important}}
/* dark on the white wash, so the facts read on any photo */
.lfacts li{color:var(--ink);text-shadow:none;font-weight:600}
.lfacts li+li{border-left-color:#c3c9cc}
.lfacts svg{color:var(--red)}

/* location: service overview (bento), alternating service rows, city faq + booking card */
.lsvc{background:var(--soft);padding:12px 0 34px}
.lsvc .wrap{width:min(1700px,100% - 2*clamp(16px,5vw,99px))}
.lsvc h2{text-align:center;font:800 clamp(24px,2vw,29px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 20px}
.lsvc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lcard{background:#fff;border-radius:10px;box-shadow:0 2px 12px rgba(0,0,0,.05);padding:26px 20px 24px;display:flex;flex-direction:column}
.lcard.wide{grid-column:1/-1}
.lcard-ic{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;margin-bottom:26px}
.lcard-ic svg{width:22px;height:22px}
.lcard h3{font:800 18px "Montserrat",sans-serif;color:var(--ink);margin:0 0 16px}
.lcard h3 a{color:inherit}.lcard h3 a:hover{color:var(--red)}
.lcard p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0 0 20px}
.lcard .lmore{margin-top:auto;display:inline-flex;align-items:center;gap:5px;font:500 13.5px "Open Sans",sans-serif;color:var(--cta)}
.lcard .lmore svg{width:13px;height:13px;transition:transform .2s}.lcard .lmore:hover svg{transform:translateX(3px)}
.lsvc-note{grid-column:1/-1;text-align:center;font:400 15px "Open Sans",sans-serif;color:var(--muted);margin:18px 0}
.lrow{padding:40px 0}
.lrow.alt{background:var(--soft)}
.lrow .wrap{width:min(1810px,100% - 2*clamp(16px,2vw,25px))}
.lrow-in{display:grid;grid-template-columns:897fr 888fr;gap:16px;align-items:center}
.lrow.alt .lrow-in{grid-template-columns:888fr 897fr}
.lrow.alt .lrow-pic{order:2}
.lrow-pic{border-radius:10px;aspect-ratio:897/320}
.lrow-eyebrow{font:600 11px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 14px}
.lrow h2{font:800 clamp(24px,2vw,29px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 18px}
.lrow p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0 0 18px;max-width:880px}
.lrow-btn{display:inline-flex;align-items:center;height:36px;padding:0 11px;background:var(--red);color:#fff;border-radius:var(--r-btn);
  font:800 12.5px "Montserrat",sans-serif;text-transform:uppercase}
.lrow-btn:hover{background:var(--red-hover)}
.lfaq{background:var(--soft);padding:52px 0 44px}
.lfaq .wrap{width:min(1800px,100% - 2*clamp(16px,2vw,33px))}
.lfaq-in{display:grid;grid-template-columns:880fr 895fr;gap:24px;align-items:start}
.lfaq-eyebrow{font:600 11px "Open Sans",sans-serif;text-transform:uppercase;color:var(--ink);margin:0 0 16px}
.lfaq h2{font:800 clamp(24px,2vw,29px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 22px}
.lqa{border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:22px}
.lqa h3{font:600 14.5px "Montserrat",sans-serif;color:var(--ink);margin:0 0 16px}
.lqa p{font:400 14.5px/1.65 "Open Sans",sans-serif;color:var(--muted);margin:0}
.lbook{position:sticky;top:20px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px 16px 26px}
.lbook h3{font:700 16px "Montserrat",sans-serif;color:var(--ink);margin:0 0 26px}
.lbook p{font:400 13.5px "Open Sans",sans-serif;color:var(--ink);margin:0 0 20px}
.lbook a{display:flex;justify-content:center;align-items:center;gap:10px;height:36px;border-radius:var(--r-btn);color:#fff;
  font:800 12.5px "Montserrat",sans-serif;text-transform:uppercase;margin-bottom:28px}
.lbook .b1{background:var(--red)}.lbook .b1:hover{background:var(--red-hover)}
.lbook .b2{background:var(--teal)}.lbook .b2:hover{filter:brightness(1.15)}
.lbook a svg{width:14px;height:14px}
.lbook small{display:flex;align-items:center;gap:8px;font:500 11px "Open Sans",sans-serif;color:var(--text);margin-top:-6px}
.lbook small svg{width:12px;height:12px;color:var(--brand-2)}
.lmap{padding:44px 0 60px}
.lmap .wrap{width:min(1640px,100% - 2*clamp(16px,4vw,48px))}
.lmap h2{text-align:center;font:800 clamp(24px,2vw,29px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 24px}
.lmap .more-map{aspect-ratio:21/7;margin:0}
@media (max-width:980px){.lsvc-grid,.lrow-in,.lrow.alt .lrow-in,.lfaq-in{grid-template-columns:1fr}.lrow.alt .lrow-pic{order:0}
  .lbook{position:static}.lmap .more-map{aspect-ratio:4/3}}
/* nearby cities under the map, and the service-areas hub */
.lnear{margin:18px 0 0;text-align:center;font:400 15px/1.8 "Open Sans",sans-serif;color:var(--muted)}
.lnear a{color:var(--teal);font-weight:600}
.lnear a:hover{text-decoration:underline}
.hub{padding:50px 0 70px}
.hub .wrap{width:min(1300px,100% - 2*clamp(16px,5vw,48px))}
.hub-in{columns:3 280px;column-gap:40px}
.hub-group{break-inside:avoid;margin:0 0 28px}
.hub-group h2{font:800 17px "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px;padding-bottom:8px;border-bottom:2px solid var(--teal)}
.hub-group ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.hub-group a{font:400 15px "Open Sans",sans-serif;color:var(--text)}
.hub-group a:hover{color:var(--teal)}

/* location service cards, v2: accent bar, service chips that link out, split wide card */
.lsvc{padding:26px 0 44px}
.lsvc h2{margin-bottom:10px}
.lsvc-sub{text-align:center;font:400 15px "Open Sans",sans-serif;color:var(--muted);margin:0 0 26px}
.lsvc-grid{gap:20px}
.lcard{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 16px rgba(15,23,42,.05);
  padding:30px 26px 26px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s}
.lcard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--acc,var(--brand-solid))}
.lcard:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(15,23,42,.11);border-color:#dde3e6}
.lcard-top{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.lcard-ic{width:54px;height:54px;border-radius:14px;margin:0;flex:0 0 auto;transition:transform .25s}
.lcard:hover .lcard-ic{transform:rotate(-6deg) scale(1.05)}
.lcard-ic svg{width:28px;height:28px}
.lcard h3{font-size:20px;margin:0}
.lcard h3 small{display:block;font:600 11.5px "Open Sans",sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-top:4px}
.lcard p{font-size:13.5px;line-height:1.6;margin:0 0 18px}
.lchips{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.lchips a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:999px;background:var(--brand-tint);
  border:1px solid var(--line);font:600 12.5px "Montserrat",sans-serif;color:var(--ink);transition:background .18s,color .18s,border-color .18s}
.lchips a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc,var(--brand-solid))}
.lchips a:hover{background:var(--acc,var(--brand-solid));border-color:var(--acc,var(--brand-solid));color:#fff}
.lchips a:hover::before{background:#fff}
.lcard .lmore{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:8px;background:var(--cta-tint);
  color:var(--red);font:800 12px "Montserrat",sans-serif;text-transform:uppercase;letter-spacing:.5px;align-self:flex-start}
.lcard .lmore:hover{background:var(--red);color:#fff}
.lcard.wide{display:grid;grid-template-columns:1.1fr 1fr;gap:10px 40px;align-items:start}
.lcard.wide .lchips{margin-top:6px;display:grid;grid-template-columns:1fr 1fr}
.lcard.wide .lchips a{height:40px;border-radius:10px;justify-content:flex-start}
.lsvc-note{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0;font-size:13.5px}
.lsvc-note::before,.lsvc-note::after{content:"";height:1px;flex:0 1 120px;background:#d9dfe2}
@media (max-width:980px){.lcard.wide{grid-template-columns:1fr}.lcard.wide .lchips{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.lcard{padding:26px 20px 22px}.lcard.wide .lchips{grid-template-columns:1fr}}
.lcard.wide .lchips li{display:flex}
.lcard.wide .lchips a{width:100%;padding:0 16px}
.lcard.wide .lchips a::after{content:"→";margin-left:auto;color:var(--acc);font-weight:800}
.lcard.wide .lchips a:hover::after{color:#fff}
/* legal & sitemap pages */
.legal{padding:48px 0 70px}
.legal .wrap{width:min(860px,100% - 2*clamp(16px,5vw,40px))}
.legal-date{font:600 12px "Open Sans",sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:0 0 22px}
.legal h2{font:800 20px "Montserrat",sans-serif;color:var(--ink);margin:34px 0 12px}
.legal p,.legal li{font:400 15px/1.75 "Open Sans",sans-serif;color:var(--text)}
.legal ul{padding-left:20px;margin:0 0 12px}
.legal li{margin:0 0 8px}
.legal a{color:var(--teal);font-weight:600}
.legal a:hover{text-decoration:underline}
.sm-list{list-style:none;padding:0 !important;columns:2 260px;column-gap:36px}
.sm-list li{break-inside:avoid}
/* footer: legal links */
.ftr-base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}
.ftr-legal{display:flex;flex-wrap:wrap;gap:6px 18px;padding-right:16px}
.ftr-legal a{font:400 11.5px "Open Sans",sans-serif;color:rgba(255,255,255,.85)}
.ftr-legal a:hover{color:#fff;text-decoration:underline}
.ftr .ftr-legal{display:flex;flex-wrap:wrap;gap:6px 18px;align-content:center}

/* service sub-sections: what the hero tabs jump to */
.subs{padding:10px 0 50px}
.subs .wrap{width:min(1283px,100% - 2*clamp(16px,4vw,33px))}
.subs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.sub{scroll-margin-top:90px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:8px;padding:22px 22px 20px}
.sub:target{border-left-color:var(--red);box-shadow:0 10px 26px rgba(0,0,0,.08)}
.sub h3{font:800 18px "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px}
.sub p{font:400 15px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 12px}
.sub ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.sub li{display:inline-flex;align-items:center;gap:6px;font:600 12.5px "Open Sans",sans-serif;color:var(--text)}
.sub li svg{color:var(--red)}
.sub-call{font:800 12.5px "Montserrat",sans-serif;color:var(--red)}
.sub-call:hover{text-decoration:underline}
@media (max-width:760px){.subs-grid{grid-template-columns:1fr}}
/* ===================================================== core additions */
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:#fff;color:var(--ink);padding:10px 14px;border-radius:6px;font:700 14px "Open Sans",sans-serif}
.skip:focus{left:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.call-cta{display:inline-flex;align-items:center;gap:8px}
.call-link{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.nav .dd + .dd{margin-left:0}
.dd-menu.dd-areas{grid-template-columns:repeat(3,1fr);width:600px}
.search-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  background:transparent;color:#fff;cursor:pointer;flex:0 0 auto;margin-left:auto;margin-right:14px}
.search-btn:hover{background:rgba(255,255,255,.12)}
.hdr .wrap{gap:18px}
.nav{margin-left:auto}
.search-dlg{position:fixed;inset:0;z-index:300;background:rgba(10,20,18,.55);display:flex;justify-content:center;align-items:flex-start;padding:10vh 16px 16px}
.search-dlg[hidden]{display:none}
body.search-on{overflow:hidden}
.search-box{position:relative;width:min(640px,100%);background:#fff;border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.3);padding:14px}
.search-box input{width:100%;height:52px;border:2px solid var(--line);border-radius:10px;padding:0 52px 0 16px;font:500 16px "Open Sans",sans-serif;color:var(--ink)}
.search-box input:focus{outline:none;border-color:var(--teal)}
.search-x{position:absolute;right:24px;top:22px;width:36px;height:36px;border:0;background:var(--soft);border-radius:50%;font-size:22px;line-height:1;cursor:pointer;color:#445}
.search-results{list-style:none;margin:10px 0 0;padding:0;max-height:55vh;overflow:auto}
.search-results a{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;border-radius:8px;color:var(--ink)}
.search-results a:hover,.search-results a:focus{background:var(--brand-tint);outline:none}
.sr-kind{grid-row:span 2;align-self:start;font:700 10.5px "Montserrat",sans-serif;text-transform:uppercase;color:var(--teal);background:var(--brand-tint);border-radius:5px;padding:4px 7px;margin-top:2px}
.search-results b{font:700 14.5px "Montserrat",sans-serif}
.search-results small{font:400 13.5px "Open Sans",sans-serif;color:var(--muted)}
.search-empty{margin:14px 6px 4px;font:400 15px "Open Sans",sans-serif;color:#556}
.search-empty a{color:var(--red);font-weight:700}
/* call panel that replaces forms on call-only sites */
.call-panel{padding:26px 24px 24px;text-align:center}
.call-panel-kicker{font:800 13px "Montserrat",sans-serif;text-transform:uppercase;letter-spacing:1px;color:var(--teal);margin:0 0 12px}
.call-panel-num{display:inline-flex;align-items:center;gap:10px;background:var(--red);color:#fff;border-radius:8px;padding:14px 20px;
  font:800 clamp(20px,2vw,26px) "Montserrat",sans-serif;margin-bottom:12px}
.call-panel-num:hover{background:var(--red-hover)}
.call-panel-num svg{width:22px;height:22px}
.call-panel>p{font:400 15px "Open Sans",sans-serif;color:var(--text);margin:0 0 14px}
.call-panel ul{list-style:none;margin:0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;text-align:left}
.call-panel li{font:600 13.5px "Open Sans",sans-serif;color:var(--text);padding-left:22px;position:relative}
.call-panel li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}
/* blog */
.legal.wide .wrap{width:min(1300px,100% - 2*clamp(16px,5vw,40px))}
.blog-list{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-cta{margin:34px 0 10px;padding:20px;border-radius:10px;background:var(--brand-tint);border-left:4px solid var(--teal);font:400 15px/1.6 "Open Sans",sans-serif}
.post-cta .call-cta{margin-top:12px;background:var(--red);color:#fff !important;padding:10px 16px;border-radius:6px;font:800 14px "Montserrat",sans-serif;text-decoration:none !important}
.post-related{font:600 14px "Open Sans",sans-serif}
@media (max-width:1024px){.search-btn{margin-left:auto;margin-right:0}.nav{margin-left:0}.dd-menu.dd-areas{width:auto;grid-template-columns:1fr 1fr}}
@media (max-width:900px){.blog-list{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.blog-list{grid-template-columns:1fr}}

.panel-big::after{content:attr(data-n)}
.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}

/* ======================================================= THEME REFINEMENT
   Layered on top of everything above; all colours come from the tokens. */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{color:var(--text);text-rendering:optimizeLegibility}
::selection{background:color-mix(in srgb,var(--cta) 22%,#fff);color:var(--ink)}
[id]{scroll-margin-top:96px}
:focus-visible{outline:3px solid color-mix(in srgb,var(--cta) 75%,#fff);outline-offset:2px;border-radius:4px}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}

/* header stays in reach, so the phone number is always one tap away */
.hdr{position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(255,255,255,.06),0 6px 20px -12px rgba(0,0,0,.45)}
.hdr .call{border-radius:var(--r-btn);box-shadow:var(--shadow-cta)}

/* one feel for every call-to-action */
.call,.submit,.btn-red,.btn-call,.band-call,.lhero-btn,.lrow-btn,.about-btn,.why-btn,.proc-cta,.offer-btn,
.srev-cta a,.diff-cta a,.call-panel-num,.call-cta,.lbook a,.hero .cta,.btn-teal,.band-book{
  border-radius:var(--r-btn);transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,filter .2s}
.call,.btn-red,.btn-call,.band-call,.lhero-btn,.lrow-btn,.about-btn,.why-btn,.proc-cta,.srev-cta a,.diff-cta a,.call-panel-num,.hero .cta,.lbook .b1{
  background:var(--cta);box-shadow:var(--shadow-cta)}
.call:hover,.btn-red:hover,.btn-call:hover,.band-call:hover,.lhero-btn:hover,.lrow-btn:hover,.about-btn:hover,.why-btn:hover,
.proc-cta:hover,.srev-cta a:hover,.diff-cta a:hover,.call-panel-num:hover,.hero .cta:hover{background:var(--cta-hover);transform:translateY(-1px)}
.call:active,.btn-red:active,.btn-call:active,.band-call:active,.call-panel-num:active,.lhero-btn:active{transform:translateY(0)}
.btn-teal,.band-book,.lbook .b2,.how-cta{background:var(--brand-solid)}
.btn-out{border-radius:var(--r-btn)}

/* cards: one radius, one shadow language */
.svc-card,.gcard,.dcard,.qcard,.rcard,.post,.offer,.lcard,.sub,.card,.how,.lbook,.panel-wrap,.creds-box{border-radius:var(--r-card)}
.svc-card:hover,.gcard:hover,.dcard:hover,.post:hover{box-shadow:0 18px 40px -18px rgba(15,23,42,.28)}

/* highlighted words in headings */
.hl{color:var(--brand-2)}

/* hero and page heroes: brand-tinted instead of flat grey/green */
.phero-bg,.band-bg,.shero-bg{background:linear-gradient(125deg,var(--brand-solid) 0%,var(--brand-deep) 100%)}
.ph{background:linear-gradient(135deg,var(--brand-2) 0%,var(--brand-deep) 100%)}

/* stars and rating */
.stars,.qsrc .stars,.srev-sum .stars{color:var(--star)}

/* ---------------------------------------------- phone: sticky call bar */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:150;align-items:center;gap:10px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -8px 24px -10px rgba(15,23,42,.35)}
  .callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;height:50px;border-radius:12px;
    background:var(--cta);color:#fff;font:800 17px "Montserrat",sans-serif;box-shadow:var(--shadow-cta)}
  .callbar a svg{width:20px;height:20px}
  .callbar small{display:block;font:600 11px "Open Sans",sans-serif;opacity:.9}
  .callbar span{display:flex;flex-direction:column;line-height:1.15}
  body{padding-bottom:78px}
}
.pills a{background:var(--brand-tint);border-color:color-mix(in srgb,var(--brand-solid) 18%,#fff);color:var(--brand-ink)}
.pills a:hover{background:var(--brand-solid);border-color:var(--brand-solid);color:#fff}
.how-n{color:color-mix(in srgb,var(--cta) 55%,#fff)}
/* light heroes: a soft brand tint until the photo arrives (a real photo covers it) */
.hero-bg,.lhero-bg{background:radial-gradient(1200px 500px at 85% 20%,color-mix(in srgb,var(--brand-2) 22%,#fff) 0%,transparent 60%),
  linear-gradient(120deg,var(--brand-tint) 0%,color-mix(in srgb,var(--brand-solid) 14%,#fff) 100%)}
.btn-teal.call-cta{background:var(--cta);box-shadow:var(--shadow-cta)}.btn-teal.call-cta:hover{background:var(--cta-hover)}

/* city pages: local knowledge (only when the city has facts) */
.lfx{padding:44px 0 40px;background:#fff}
.lfx .wrap{width:min(1300px,100% - 2*clamp(16px,5vw,48px))}
.lfx-eyebrow{font:700 12px "Montserrat",sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--cta);margin:0 0 10px}
.lfx h2{font:800 clamp(24px,2.2vw,31px) "Montserrat",sans-serif;color:var(--ink);margin:0 0 10px}
.lfx-geo{font:500 15px "Open Sans",sans-serif;color:var(--muted);margin:0 0 22px}
.lf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.lf-card{border:1px solid var(--line);border-top:4px solid var(--brand-2);border-radius:var(--r-card);padding:20px 20px 18px;background:var(--soft)}
.lf-card h3{font:800 17px "Montserrat",sans-serif;color:var(--ink);margin:0 0 8px}
.lf-card p{font:400 15px/1.65 "Open Sans",sans-serif;color:var(--text);margin:0 0 12px}
.lf-card a{font:800 13px "Montserrat",sans-serif;color:var(--brand-ink)}
.lf-card a:hover{text-decoration:underline}

/* ------------------------------------------------ Foundry pack glue */
body{font-family:"Open Sans",system-ui,sans-serif}
/* call buttons take the theme's accent text colour (dark text on light accents) */
.call,.btn-red,.btn-call,.band-call,.lhero-btn,.lrow-btn,.about-btn,.why-btn,.proc-cta,.srev-cta a,.diff-cta a,
.call-panel-num,.hero .cta,.lbook .b1,.callbar a,.btn-teal.call-cta,.post-cta .call-cta{color:var(--cta-ink) !important}
.t1-empty{display:none}
img.cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.creds-row{grid-template-columns:repeat(var(--n,6),1fr)}
@media (max-width:980px){.creds-row{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.creds-row{grid-template-columns:repeat(2,1fr)}}
.dicon{background:var(--cta-tint);color:var(--cta-hover);font:800 13px "Montserrat",sans-serif}
.lcard .lmore{color:var(--cta-hover)}
/* page heroes with a photo: keep the text readable over it */
.phero-bg img.cover,.band-bg img.cover,.shero-bg img.cover{z-index:0}
.lhero-bg img.cover{z-index:0}
.subs-h,.subs .wrap>h2{font:800 22px "Montserrat",sans-serif;color:var(--ink);margin:0 0 16px}
.dark-pic{border-radius:10px;aspect-ratio:16/10;margin-bottom:16px;position:relative;overflow:hidden}
.area-copy p{font:400 15px/1.7 "Open Sans",sans-serif;color:var(--text);margin:0 0 14px}

/* ---- hero, refined: readable over any photo -------------------------- */
.hero{isolation:isolate}
.hero .wrap{position:relative;z-index:2}
.hero-bg{z-index:0}
.hero-bg::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.9) 34%,rgba(255,255,255,.55) 55%,rgba(255,255,255,0) 74%)}
.hero h1{color:var(--ink);text-shadow:0 1px 0 rgba(255,255,255,.6)}
.hero-sub{font:600 18px/1.5 "Open Sans",sans-serif;color:var(--text);margin:14px 0 22px;max-width:520px}
.hero .book{font-size:15px;height:52px;padding:0 22px;border-radius:10px}
.hero .book svg{width:18px;height:18px}
.hero-chips{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;max-width:560px}
.hero-chips li{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:#fff;
  border:1px solid var(--line);box-shadow:0 2px 8px rgba(15,23,42,.08);font:700 13px "Open Sans",sans-serif;color:var(--ink)}
.hero-chips svg{color:var(--brand-solid)}
.hero .card{background:#fff;border:0;box-shadow:0 24px 60px -18px rgba(15,23,42,.45);backdrop-filter:none}
.call-panel-kicker{color:var(--brand-ink)}
@media (max-width:980px){
  .hero-bg::after{background:linear-gradient(180deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.86) 60%,rgba(255,255,255,.75) 100%)}
  .hero-sub{font-size:16px}
}

/* ---- accent as TEXT: themes with light accents (yellow, cyan) fail as text on
   white, so text-only links use a darkened accent; buttons keep the real one. */
:root{--cta-link:color-mix(in srgb,var(--accent) 52%,#000)}
.call-link,.sub-call,.glink,.lfx-eyebrow,.lmore,.lcard .lmore,.svc-link,.svc-go,.post-more,.strip-cta a,
.dicon,.qa summary b,.hero-chips svg,.why-list svg,.area-list svg{color:var(--cta-link) !important}
.lcard .lmore{background:color-mix(in srgb,var(--accent) 14%,#fff)}
/* footer on the darker brand shade, whatever the theme */
.ftr{background:var(--brand-deep)}
.ftr-base{border-top-color:rgba(255,255,255,.25)}
.hero .book,.book.call-cta{background:var(--cta);color:var(--cta-ink) !important;box-shadow:var(--shadow-cta)}.hero .book:hover{background:var(--cta-hover)}

/* legal pages and footer legal links */
.legal{padding:48px 0 64px}
.legal .wrap{width:min(860px,100% - 2*clamp(16px,5vw,40px))}
.legal-date{font:600 12px "Open Sans",sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:0 0 22px}
.legal h2{font:800 20px "Montserrat",sans-serif;color:var(--ink);margin:32px 0 12px}
.legal p,.legal li{font:400 15px/1.75 "Open Sans",sans-serif;color:var(--text)}
.legal ul{padding-left:20px}
.legal a{color:var(--brand-ink);font-weight:600}
.sm-list{list-style:none;padding:0 !important;columns:2 240px;column-gap:32px}
.ftr-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px}
.ftr .ftr-legal{display:flex;flex-wrap:wrap;gap:6px 18px;padding-right:16px}
.ftr-legal a{font:400 12.5px "Open Sans",sans-serif;color:rgba(255,255,255,.88)}
.ftr-legal a:hover{color:#fff;text-decoration:underline}

/* hero without the side call box: one strong column */
.hero .wrap{display:block}
.hero-copy{max-width:700px}
.hero-sub{font:500 21px/1.55 "Open Sans",sans-serif;color:var(--ink);max-width:640px;margin:18px 0 26px}
@media (max-width:980px){.hero-sub{font-size:18px}}
@media (max-width:560px){.hero-sub{font-size:17px}}
.hero-copy{max-width:800px}.hero-sub{max-width:780px}
