
:root{
  --bg:#f7f5f2; --surface:#ffffff;
  --ink:#16202a; --ink-soft:#5a656f; --line:#e4e0da;
  --accent:#2b8c99; --accent-dark:#1d6b76; --accent-light:#b4d8d8;
  --charcoal:#16202a; --charcoal-2:#1e2b37;
  --maxw:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Playfair Display",Georgia,"Times New Roman",serif;
  font-weight:600;line-height:1.14;color:var(--ink);
  text-wrap:balance;margin:0 0 .45em}
h1{font-size:clamp(2.4rem,5vw,3.7rem);max-width:22ch}
h2{font-size:clamp(1.9rem,3.4vw,2.6rem);max-width:26ch}
h3{font-size:1.4rem}
.center h1,.center h2{margin-left:auto;margin-right:auto}
p{margin:0 0 1.1em}
a{color:var(--accent-dark)}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{font-family:"Inter",sans-serif;font-weight:600;font-size:.76rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 1rem}

/* buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;
  font-weight:600;font-size:.95rem;letter-spacing:.02em;padding:15px 32px;border-radius:3px;
  transition:background .2s,transform .2s;border:1px solid var(--accent)}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn.ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.btn.dark{background:var(--charcoal);border-color:var(--charcoal)}
.btn.dark:hover{background:#000;border-color:#000}

/* header (DARK: their logo is white-on-transparent) */
header.site{position:sticky;top:0;z-index:50;background:var(--charcoal);
  border-bottom:1px solid rgba(255,255,255,.09)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;
  max-width:var(--maxw);margin:0 auto;padding:12px 24px;position:relative}
.nav .logo img{height:84px;width:auto;display:block}
.nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0;align-items:center}
.nav ul a{color:#e8eaec;text-decoration:none;font-size:.88rem;font-weight:500;
  letter-spacing:.01em;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav ul a:hover,.nav ul a.active{color:#fff;border-bottom-color:var(--accent)}

/* dropdown submenus */
.nav li.has-sub{position:relative}
.nav li.has-sub>a::after{content:"";display:inline-block;margin-left:7px;
  border:4px solid transparent;border-top-color:currentColor;transform:translateY(2px)}
.nav .sub{display:none;position:absolute;top:100%;left:-14px;min-width:250px;
  background:#fff;border:1px solid rgba(0,0,0,.08);border-top:3px solid var(--accent);
  box-shadow:0 18px 44px rgba(0,0,0,.22);padding:10px 0;flex-direction:column;
  gap:0;z-index:60;border-radius:0 0 3px 3px}
.nav .sub.two-col{min-width:430px;display:none}
.nav li.has-sub:hover>.sub,.nav li.has-sub:focus-within>.sub{display:flex}
.nav .sub.two-col{flex-wrap:wrap;flex-direction:row}
.nav li.has-sub:hover>.sub.two-col,.nav li.has-sub:focus-within>.sub.two-col{display:flex}
.nav .sub li{width:100%}
.nav .sub.two-col li{width:50%}
.nav .sub li a{display:block;color:var(--ink);padding:9px 20px;border-bottom:0;
  font-size:.85rem;font-weight:500;white-space:nowrap}
.nav .sub li a:hover,.nav .sub li a.active{background:var(--bg);color:var(--accent-dark);
  border-bottom:0}
.nav .sub li.sub-all{width:100%;border-bottom:1px solid rgba(0,0,0,.08);
  margin-bottom:6px;padding-bottom:6px}
.nav .sub li.sub-all a{font-weight:700;color:var(--accent-dark)}
.nav .phone{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  color:#fff;font-weight:600;font-size:.95rem;white-space:nowrap;
  border:1px solid var(--accent);background:var(--accent);padding:9px 18px;border-radius:40px}
.nav .phone:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
/* hamburger drawn in CSS, never dependent on a font glyph being present */
.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:10px 4px;
  width:44px;height:44px;align-items:center;justify-content:center}
.navtoggle span{display:block;position:relative;width:24px;height:2px;background:#fff;
  transition:background .2s}
.navtoggle span::before,.navtoggle span::after{content:"";position:absolute;left:0;
  width:24px;height:2px;background:#fff}
.navtoggle span::before{top:-7px}
.navtoggle span::after{top:7px}
.nav.open .navtoggle span{background:transparent}
.nav.open .navtoggle span::before{top:0;transform:rotate(45deg)}
.nav.open .navtoggle span::after{top:0;transform:rotate(-45deg)}

/* hero */
.hero{position:relative;min-height:640px;display:flex;align-items:center;
  background:linear-gradient(135deg,#16202a 0%,#1d4650 55%,#12313a 100%);
  color:#fff;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;opacity:.2;pointer-events:none;
  background:radial-gradient(circle at 28% 22%,rgba(180,216,216,.4),transparent 46%),
             radial-gradient(circle at 82% 88%,rgba(43,140,153,.45),transparent 50%)}
.hero .wrap{position:relative;z-index:2;padding-top:72px;padding-bottom:72px}
.hero .inner{max-width:680px}
.hero h1{color:#fff}
.hero p.lede{font-size:1.18rem;color:rgba(255,255,255,.87);max-width:46ch;margin-bottom:1.7em}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero .ph-tag{position:absolute;bottom:14px;right:16px;z-index:3;font-size:.66rem;
  letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.hero.compact{min-height:430px}
.hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero.has-photo::after{opacity:1;background:
  linear-gradient(90deg,rgba(16,26,34,.9) 0%,rgba(16,26,34,.66) 50%,rgba(16,26,34,.3) 100%)}
.hero .badges{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;padding:0;list-style:none}
.hero .badges li{font-size:.82rem;letter-spacing:.03em;color:rgba(255,255,255,.8);
  display:flex;align-items:center;gap:8px}
.hero .badges li::before{content:"";width:9px;height:9px;border-left:2px solid var(--accent-light);
  border-bottom:2px solid var(--accent-light);transform:rotate(-45deg);margin-top:-4px}

/* sections */
section{padding:82px 0}
section.tight{padding:58px 0}
.lead-in{max-width:740px}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* service grid */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;margin-top:44px}
.svc-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.svc-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(22,32,42,.45)}
.svc-card .body{padding:26px 26px 30px}
.svc-card h3{margin-bottom:.35em}
.svc-card p{font-size:.95rem;color:var(--ink-soft);margin-bottom:1.1em}
.svc-card a.more{text-decoration:none;font-weight:600;font-size:.9rem;color:var(--accent-dark)}
.svc-card a.more:hover{color:var(--ink)}
.svc-card.material .body{padding:30px 28px 34px}
.svc-card.material h3{font-size:1.55rem}
.svc-card.material h3 span{display:block;font-family:Inter,sans-serif;font-size:.68rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:7px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:30px;
  margin-top:46px;counter-reset:s}
.steps .step{counter-increment:s;padding-top:18px;border-top:2px solid var(--line);position:relative}
.steps .step::before{content:"0" counter(s);font-family:"Playfair Display",Georgia,serif;
  font-size:1.7rem;color:var(--accent);display:block;margin-bottom:6px;line-height:1}
.steps h3{font-size:1.22rem;margin-bottom:.3em}
.steps p{font-size:.94rem;color:var(--ink-soft);margin:0}

/* why-choose strip */
.trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:34px 40px;margin-top:46px}
.trust-grid .item{padding-top:20px;border-top:2px solid var(--accent)}
.trust-grid h3{font-size:1.26rem;margin-bottom:.35em}
.trust-grid p{font-size:.95rem;color:var(--ink-soft);margin:0}

/* brand wall */
.brandwall{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:40px;
  padding:0;list-style:none}
.brandwall li{background:var(--surface);border:1px solid var(--line);border-radius:3px;
  padding:20px 16px;text-align:center;font-weight:600;font-size:.98rem;color:var(--ink);
  letter-spacing:.01em;transition:border-color .2s,transform .2s;
  display:flex;align-items:center;justify-content:center;min-height:104px}
.brandwall li:hover{border-color:var(--accent);transform:translateY(-2px)}
/* logo tiles: uniform optical weight, never stretched */
.brandwall li.has-logo{padding:18px 22px}
.brandwall li.has-logo img{max-width:100%;max-height:58px;width:auto;height:auto;
  object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .25s,opacity .25s}
.brandwall li.has-logo:hover img{filter:grayscale(0);opacity:1}
/* light-on-transparent artwork rendered as a silhouette so it reads on a white tile */
.brandwall li.has-logo.darken img{filter:brightness(0);opacity:.68}
.brandwall li.has-logo.darken:hover img{filter:brightness(0);opacity:.9}
.brandwall li.is-text span{display:block;text-wrap:balance}
.brandwall li a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  color:inherit;text-decoration:none}

/* photo placeholders */
.ph{position:relative;background:
  linear-gradient(135deg,#eceae6 0%,#dfe6e6 45%,#f2f0ec 100%);
  border:1px solid var(--line);border-radius:4px;display:flex;align-items:center;
  justify-content:center;text-align:center;color:var(--ink-soft);overflow:hidden;min-height:220px}
.ph::before{content:"";position:absolute;inset:0;opacity:.55;
  background:radial-gradient(circle at 25% 30%,rgba(255,255,255,.75),transparent 42%),
            radial-gradient(circle at 75% 76%,rgba(43,140,153,.15),transparent 46%)}
.ph .lbl{position:relative;z-index:2;padding:18px;max-width:88%}
.ph .lbl .cap{font-family:"Playfair Display",Georgia,serif;font-size:1.25rem;color:var(--ink);
  margin-bottom:.2em;line-height:1.25}
.ph .lbl .sub{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark)}
.ph.tall{min-height:370px;height:100%}
.ph.wide{aspect-ratio:16/9;min-height:0}
.ph.card-top{aspect-ratio:4/3;min-height:0;border:0;border-bottom:1px solid var(--line);border-radius:0}
.ph.has-photo{background:none;padding:0}
.ph.has-photo::before{display:none}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:44px}
.gal .ph{min-height:250px}

/* split rows */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.rev .col-text{order:2}
.split .col-text h2{margin-bottom:.5em}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 4px;padding:0;list-style:none}
.chips li{background:#fff;border:1px solid var(--line);border-radius:40px;padding:8px 18px;
  font-size:.9rem;color:var(--ink);font-weight:500}
.chips li a{text-decoration:none;color:var(--accent-dark)}
.chips li a:hover{color:var(--ink)}
ul.ticks{list-style:none;padding:0;margin:0 0 1.2em}
ul.ticks li{position:relative;padding:6px 0 6px 30px;color:var(--ink-soft)}
ul.ticks li::before{content:"";position:absolute;left:2px;top:14px;width:12px;height:12px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}

/* alt band */
.band{background:var(--charcoal);color:#dfe3e6}
.band h2,.band h3{color:#fff}
.band p{color:rgba(223,227,230,.82)}
.band .eyebrow{color:var(--accent-light)}
.band ul.ticks li{color:rgba(223,227,230,.86)}
.band .chips li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#dfe3e6}
.band .chips li a{color:var(--accent-light)}
.band .brandwall li{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);color:#eef1f3}
.band .brandwall li:hover{border-color:var(--accent-light)}
/* on a dark band the logo tiles keep a white card so dark artwork still reads */
.band .brandwall li.has-logo{background:#fff;border-color:rgba(255,255,255,.22)}
.band .steps .step{border-top-color:rgba(255,255,255,.2)}
.band .steps p{color:rgba(223,227,230,.8)}
.band .steps .step::before{color:var(--accent-light)}
.band a.btn.dark{background:var(--accent);border-color:var(--accent)}
.band a.btn.dark:hover{background:var(--accent-dark);border-color:var(--accent-dark)}

/* faq */
.faq{max-width:840px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;font-family:"Playfair Display",Georgia,serif;
  font-size:1.3rem;color:var(--ink);padding:18px 44px 18px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:15px;font-size:1.6rem;
  color:var(--accent);font-family:Inter,sans-serif;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--ink-soft);padding:0 0 18px}

/* cta band */
.cta-final{background:#e6efef;color:var(--ink);text-align:center;border-top:1px solid #d5e3e3}
.cta-final h2{color:var(--ink)}
.cta-final p{color:var(--ink-soft);max-width:56ch;margin:0 auto 1.8em}
.cta-final .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.cta-final .btn.ghost{color:var(--accent-dark);border-color:var(--accent-dark)}
.cta-final .btn.ghost:hover{background:rgba(43,140,153,.09)}

/* areas */
.area-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding:0;list-style:none}
.area-grid li{background:#fff;border:1px solid var(--line);border-radius:3px;padding:14px 22px;
  font-weight:500;flex:1 1 180px;text-align:center}
.area-grid li a{color:var(--accent-dark);font-weight:600;text-decoration:none}
.area-grid li a:hover{color:var(--ink)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.info-row{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.info-row .k{font-weight:600;min-width:96px;color:var(--ink)}
.info-row a{color:var(--accent-dark);text-decoration:none}
.info-row a:hover{text-decoration:underline}
form.lead label{display:block;font-size:.85rem;font-weight:600;margin:14px 0 6px;color:var(--ink)}
form.lead input,form.lead select,form.lead textarea{width:100%;padding:13px 14px;border:1px solid var(--line);
  border-radius:3px;font:inherit;background:#fff;color:var(--ink)}
form.lead input:focus,form.lead select:focus,form.lead textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}
form.lead button{margin-top:22px;width:100%;cursor:pointer}
.map-embed{width:100%;border:0;border-radius:4px;min-height:300px}

/* blog listing */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:10px}
.blog-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .2s,box-shadow .2s}
.blog-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(22,32,42,.13)}
/* The AI SEO System generates square heroes with the post title burned into the
   bottom of the image. Cards crop from the TOP so that text band is excluded
   cleanly instead of showing half a line of type. */
.blog-card img{width:100%;height:210px;object-fit:cover;object-position:center top}
.bc-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.bc-date{font-family:Inter,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent-dark);margin-bottom:10px}
.blog-card h3{font-size:1.24rem;margin:0 0 .5em;text-wrap:balance}
.bc-body p{color:var(--ink-soft);font-size:.94rem;margin:0}
.bc-more{margin-top:auto;padding-top:16px;font-weight:600;font-size:.9rem;color:var(--accent-dark)}

/* blog post */
.post-head{padding-top:8px}
.post-head h1{font-size:clamp(2.1rem,4vw,3.1rem);max-width:24ch;margin-top:.3em}
.post-meta{font-family:Inter,sans-serif;font-size:.84rem;color:var(--ink-soft);margin:0}
/* Hero is never cropped: the generated image carries the post title along its
   bottom edge, so object-fit:cover would cut the type in half. */
.post-media{margin:34px auto 0;max-width:760px}
.post-hero{display:block;width:100%;height:auto;margin:0 auto;border-radius:4px}
.post-body{max-width:800px;margin:0 auto;padding-top:38px;padding-bottom:10px;font-size:1.06rem}
.post-body>p:first-of-type{font-size:1.18rem;line-height:1.66;color:var(--ink)}
/* Article headings run the full measure. The sitewide h2 cap of 26ch is meant for
   marketing sections; here it would cut the hairline rule short and wrap headings
   into ragged two-liners. */
.post-body h2{font-size:clamp(1.55rem,2.5vw,2rem);margin-top:1.9em;padding-top:.55em;
  border-top:1px solid var(--line);max-width:none}
.post-body h3{max-width:none}
.post-body h2:first-child{margin-top:.3em;padding-top:0;border-top:0}
.post-body h3{font-size:1.22rem;margin-top:1.7em;color:var(--accent-dark)}
.post-body ul,.post-body ol{padding-left:22px;margin:0 0 1.3em}
.post-body li{margin-bottom:.55em}
.post-body ul li::marker{color:var(--accent)}
.post-body strong{color:var(--ink)}
.post-body a{color:var(--accent-dark)}
/* WordPress block markup (wp-block-image, wp-block-table, aligncenter) arrives
   with no WordPress stylesheet behind it, so every class it leans on is set here. */
.post-body img{height:auto;border-radius:4px;margin:0 auto}
.post-body figure{margin:30px 0}
.post-body figure.wp-block-image{display:block;text-align:center}
.post-body figure.wp-block-image img{max-width:640px;width:100%}
.post-body .aligncenter{margin-left:auto;margin-right:auto}
.post-body figcaption,.post-body .wp-element-caption{font-size:.85rem;color:var(--ink-soft);
  margin-top:10px;text-align:center}
.post-body blockquote{margin:26px 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);
  color:var(--ink-soft);font-style:italic}
.post-body figure.wp-block-table{overflow-x:auto;margin:30px 0}
.post-body table{width:100%;border-collapse:collapse;font-size:.95rem}
.post-body th,.post-body td{border:1px solid var(--line);padding:12px 14px;text-align:left;
  vertical-align:top}
.post-body th{background:#eef4f4;font-weight:600;font-size:.88rem;letter-spacing:.02em}
.post-body tbody tr:nth-child(even){background:#faf9f7}
.post-body td:first-child{font-weight:600}
.post-foot{max-width:800px;margin:26px auto 0;padding-top:26px;border-top:1px solid var(--line)}
.post-foot .eyebrow{margin-bottom:.7rem}
.post-links{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 30px;list-style:none}
.post-links a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:3px;
  padding:9px 16px;font-size:.88rem;font-weight:500;color:var(--accent-dark);text-decoration:none}
.post-links a:hover{border-color:var(--accent);color:var(--ink)}

@media(max-width:960px){
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:22px}
}
@media(max-width:640px){
  .blog-grid{grid-template-columns:1fr}
  .blog-card img{height:190px}
  .post-body{font-size:1rem;padding-top:28px}
  .post-body>p:first-of-type{font-size:1.08rem}
  .post-body th,.post-body td{padding:9px 11px;font-size:.9rem}
  .post-head h1{font-size:clamp(1.9rem,7vw,2.4rem)}
}

/* breadcrumbs */
.crumbs{font-size:.82rem;color:var(--ink-soft);padding:18px 0 0}
.crumbs a{color:var(--accent-dark);text-decoration:none}
.crumbs a:hover{text-decoration:underline}

/* footer */
footer.site{background:var(--charcoal);color:#aeb7bf;padding:64px 0 30px;font-size:.92rem}
footer.site .cols{display:grid;grid-template-columns:1.4fr .85fr .85fr 1.1fr;gap:40px;margin-bottom:40px}
footer.site .footlogo{height:64px;width:auto;display:block;margin-bottom:16px}
footer.site h4{font-family:Inter,sans-serif;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;
  color:#8c959d;margin:0 0 16px}
footer.site a{color:#aeb7bf;text-decoration:none}
footer.site a:hover{color:#fff}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site ul li{margin-bottom:9px}
footer.site .brandmark{font-family:"Playfair Display",Georgia,serif;font-size:1.6rem;color:#fff;margin-bottom:10px}
footer.site .social{display:flex;gap:12px;margin-top:16px}
footer.site .social a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.28);
  display:inline-flex;align-items:center;justify-content:center;color:#dfe3e6;transition:all .2s}
footer.site .social a:hover{background:var(--accent);border-color:var(--accent);color:#fff}
footer.site .social svg{width:18px;height:18px;display:block}
footer.site .legal{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;
  flex-wrap:wrap;justify-content:space-between;gap:12px;color:#7d858c;font-size:.82rem}
footer.site .legal a{color:#98a1a8}
.powered{opacity:.9}

/* legal pages (ASG legal-page format, CD skin) */
.legal-doc{max-width:780px;margin:0 auto;padding:64px 24px 96px;color:var(--ink-soft);
  font-size:.95rem;line-height:1.75}
.legal-doc .intro{font-size:1.06rem;color:var(--ink);line-height:1.75;margin:0 0 48px;
  padding-bottom:32px;border-bottom:1px solid var(--line)}
.legal-doc h2{font-size:1.5rem;margin:40px 0 16px;line-height:1.3}
.legal-doc h2:first-of-type{margin-top:0}
.legal-doc p{margin:0 0 16px}
.legal-doc strong{color:var(--ink);font-weight:600}
.legal-doc ul{margin:0 0 20px;padding:0 0 0 22px;list-style:disc}
.legal-doc ul li{margin-bottom:10px;padding-left:4px}
.legal-doc ul li::marker{color:var(--accent)}
.legal-doc a{color:var(--accent-dark);text-decoration:none;
  border-bottom:1px solid transparent;transition:border-color .2s}
.legal-doc a:hover{border-bottom-color:var(--accent)}
.legal-doc .contact-card{background:var(--surface);border-left:3px solid var(--accent);
  padding:20px 24px;border-radius:4px;margin:16px 0 0;border-top:1px solid var(--line);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.legal-doc .contact-card p{margin-bottom:6px;font-size:.9rem}
.legal-doc .contact-card p:last-child{margin-bottom:0}
.legal-doc .back{margin-top:56px;padding-top:32px;border-top:1px solid var(--line);
  text-align:center}
@media(max-width:720px){
  .legal-doc{padding:48px 24px 72px;font-size:.9rem}
  .legal-doc h2{font-size:1.25rem;margin:32px 0 12px}
  .legal-doc .intro{font-size:.95rem}
}

/* sms consent row on the lead form */
form.lead .consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0}
form.lead .form-legal{text-align:center;margin:16px 0 0;font-size:.82rem}
form.lead .form-legal a{color:var(--accent);text-decoration:underline}
form.lead .form-legal span{color:var(--ink-soft);margin:0 10px}
form.lead .consent input{width:auto;margin:4px 0 0;flex-shrink:0;accent-color:var(--accent)}
form.lead .consent label{display:inline;font-weight:400;font-size:.8rem;color:var(--ink-soft);
  margin:0;line-height:1.55}

/* responsive */
@media(max-width:1080px){
  .nav ul{gap:16px}
  .nav ul a{font-size:.83rem}
  .nav .logo img{height:70px}
}
@media(max-width:900px){
  .split,.contact-grid{grid-template-columns:1fr;gap:34px}
  .split.rev .col-text{order:0}
  footer.site .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .nav .logo img{height:64px}
  .nav ul,.nav .phone.deskphone{display:none}
  .navtoggle{display:flex}
  .nav.open ul{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:var(--charcoal);border-bottom:1px solid rgba(255,255,255,.12);padding:14px 24px;gap:0;
    z-index:60;max-height:calc(100vh - 96px);overflow-y:auto}
  .nav.open ul a{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.09);display:block}
  /* submenus flatten into the mobile drawer, no hover needed */
  .nav.open li.has-sub>a::after{display:none}
  .nav.open .sub,.nav.open .sub.two-col{display:flex;position:static;min-width:0;width:100%;
    flex-direction:column;background:transparent;border:0;box-shadow:none;padding:0 0 6px 0}
  .nav.open .sub li,.nav.open .sub.two-col li{width:100%}
  .nav.open .sub li a{color:#b9c2c9;padding:11px 0 11px 16px;font-size:.82rem;
    border-bottom:1px solid rgba(255,255,255,.06)}
  .nav.open .sub li a:hover,.nav.open .sub li a.active{background:transparent;color:#fff}
  .nav.open .sub li.sub-all{border-bottom:0;margin-bottom:0;padding-bottom:0}
  .nav.open .sub li.sub-all a{color:var(--accent-light);font-weight:700}
  section{padding:58px 0}
  .hero{min-height:540px}
  .hero.compact{min-height:340px}
  footer.site .cols{grid-template-columns:1fr}
}
