*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --green:   #00C97A;
  --green-d: #009E5F;
  --ink:     #333333;
  --ink-mid: #555555;
  --ink-lt:  #888888;
  --bg:      #FFFFFF;
  --gray:    #F4F4F4;
  --gray2:   #EBEBEB;
  --rule:    #E0E0E0;
}

html { scroll-behavior: smooth; }
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* ── TOP BANNER ── */
.top-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  background: #08111F;
  color: #fff;
  text-decoration: none;
  padding: 11px 48px;
  font-family: 'DM Sans', sans-serif;
  transition: background .2s;
}
.top-banner:hover { background: #0d1b2e; }
.top-banner-text { font-size: 14px; font-weight: 500; }
.top-banner-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--green);
}
.top-banner-arrow { transition: transform .2s; }
.top-banner:hover .top-banner-arrow { transform: translateX(3px); }
@media(max-width:640px){
  .top-banner { padding: 10px 20px; }
  .top-banner-text { font-size: 13px; text-align: center; }
}

/* ── NAV ── */
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  height: 68px;
  background: var(--bg);
  border-bottom: 1px solid var(--rule);
  position: sticky;
  top: 0;
  z-index: 100;
}
.nav-links-left { display: flex; gap: 26px; list-style: none; max-width: 46%; }
.nav-links-left a { font-size: 14px; color: var(--ink-mid); text-decoration: none; font-weight: 400; transition: color .2s; }
.nav-links-left a:hover { color: var(--ink); }
.nav-logo {
  font-family: 'DM Sans', sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.04em;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
}
.ws-world { color: #0D1B2A; }
.ws-safe  { color: #0055D4; }
.nav-right { display: flex; align-items: center; gap: 24px; }
.nav-account { font-size: 14px; color: var(--ink-mid); text-decoration: none; }
.nav-link-blog { font-size: 15px; font-weight: 500; color: var(--ink-mid); text-decoration: none; transition: color .2s; }
.nav-link-blog:hover { color: var(--ink); }
.btn-green {
  background: var(--green);
  color: white;
  padding: 11px 24px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s, transform .15s;
  white-space: nowrap;
}
.btn-green:hover { background: var(--green-d); transform: translateY(-1px); box-shadow: 0 12px 24px -8px rgba(0,201,122,.55); }
.btn-green-lg {
  display: inline-block;
  background: var(--green);
  color: white;
  padding: 18px 52px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s, transform .15s, box-shadow .2s;
  margin-top: 8px;
  box-shadow: 0 12px 26px -8px rgba(0,201,122,.5);
}
.btn-green-lg:hover { background: var(--green-d); transform: translateY(-2px); box-shadow: 0 18px 34px -10px rgba(0,201,122,.62); }

/* ── HERO ── */
.hero {
  background: var(--bg);
  text-align: center;
  padding: 88px 0 0;
  position: relative;
  overflow: hidden;
  min-height: min(880px, 92vh);
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.hero-content { position: relative; z-index: 2; width: 100%; }
.hero-sub, .hero-headline { text-shadow: 0 1px 6px rgba(255,255,255,.7); }
html:not([data-theme="dark"]) .hero:has(.hero-video) .hero-content::before{ background:radial-gradient(ellipse 60% 54% at 50% 50%, #fff 0%, #fff 52%, rgba(255,255,255,.88) 70%, rgba(255,255,255,0) 88%); }
html:not([data-theme="dark"]) .hero:has(.hero-video) .hero-sub{ text-shadow:0 1px 3px #fff, 0 0 12px rgba(255,255,255,.95); }
.hero-content::before { content:""; position:absolute; left:50%; top:40%; transform:translate(-50%,-50%); width:min(960px,92%); height:160%; background:radial-gradient(ellipse 56% 50% at 50% 50%, var(--bg) 0%, var(--bg) 46%, rgba(255,255,255,0.7) 66%, rgba(255,255,255,0) 86%); z-index:-1; pointer-events:none; }
.hero-eyebrow { font-family:'DM Sans',sans-serif; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--green-d); margin-bottom:22px; }
.hero-headline {
  font-family: 'Playfair Display', serif;
  font-size: clamp(30px, 5vw, 52px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--ink);
  margin-bottom: 24px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 48px;
}
.hero-headline span { display: block; white-space: nowrap; }
@media(max-width:620px){ .hero-headline{font-size:34px;} .hero-headline span{white-space:normal;} }
.hero-sub {
  font-size: 23px;
  color: var(--ink-lt);
  font-weight: 300;
  margin: 0 auto 40px;
  max-width: 740px;
  text-wrap: pretty;
  line-height: 1.62;
  padding: 0 48px;
}
.hero-video{ animation:hero-video-in 900ms ease both; position:absolute; left:0; right:0; bottom:0; width:100%; height:100%; object-fit:cover; object-position:32% bottom; z-index:0; pointer-events:none; opacity:.92; -webkit-mask-image:linear-gradient(to top, #000 0%, #000 55%, rgba(0,0,0,.82) 78%, rgba(0,0,0,.72) 100%); mask-image:linear-gradient(to top, #000 0%, #000 55%, rgba(0,0,0,.82) 78%, rgba(0,0,0,.72) 100%); }
@keyframes hero-video-in{ from{ opacity:0; } to{ opacity:.92; } }
html:not([data-theme="dark"]) .hero:has(.hero-video) .hero-illus-row{ opacity:0; }
html[data-theme="dark"] .hero-video{ display:none; }
@media(prefers-reduced-motion:reduce){ .hero-video{ display:none; } html:not([data-theme="dark"]) .hero:has(.hero-video) .hero-illus-row{ opacity:.92; } }
@media(max-width:760px){ .hero-video{ display:none; } html:not([data-theme="dark"]) .hero:has(.hero-video) .hero-illus-row{ opacity:.92; } }
.hero-illus-row {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  height: 100%;
  pointer-events: none;
  background-image: var(--hero-illus-img, url('assets/hero-cityscape-v4.png'));
  background-repeat: no-repeat;
  background-position: 32% bottom;
  background-size: 112% auto;
  opacity: .92;
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 55%, rgba(0,0,0,.82) 78%, rgba(0,0,0,.72) 100%);
  mask-image: linear-gradient(to top, #000 0%, #000 55%, rgba(0,0,0,.82) 78%, rgba(0,0,0,.72) 100%);
}
.hero-cta-row { display:flex; gap:16px; justify-content:center; align-items:center; flex-wrap:wrap; margin-bottom:18px; }
.hero-cta-row .btn-green-lg { margin:0; white-space:nowrap; }
/* ── HERO LIVE SKY (drifting clouds + passing shower) ── */
.hero-sky{ position:absolute; left:-3.84%; width:112%; bottom:0; aspect-ratio:2048/1152; z-index:1; pointer-events:none; }
.hero-cloud{ position:absolute; background-repeat:no-repeat; background-size:100% 100%; opacity:1; will-change:transform; }
.hero-cloud-l{ background-image:url('assets/hero-cloud-l.png'); left:.8%; top:2.5%; width:20.4%; height:13%; animation:cloud-drift-a 63s ease-in-out infinite; }
.hero-cloud-c{ background-image:url('assets/hero-cloud-c.png'); left:29.8%; top:8.5%; width:8.6%; height:6.7%; opacity:.9; animation:cloud-drift-b 82s ease-in-out infinite; }
.hero-cloud-r{ background-image:url('assets/hero-cloud-r.png'); left:69.8%; top:5%; width:18.4%; height:16%; animation:cloud-drift-a 74s ease-in-out infinite reverse; }
@keyframes cloud-drift-a{ 0%,100%{ transform:translateX(-10px); } 50%{ transform:translateX(26px); } }
@keyframes cloud-drift-b{ 0%,100%{ transform:translateX(14px); } 50%{ transform:translateX(-16px); } }
.hero-rain{ position:absolute; left:-3.84%; width:112%; bottom:0; aspect-ratio:2048/1152; z-index:3; pointer-events:none; container-type:size; }
/* night stars (dark mode only) */
.hero-stars{ position:absolute; inset:0; z-index:3; pointer-events:none; display:none; }
.star{ position:absolute; width:4px; height:4px; border-radius:50%; background:#EAF2FB; box-shadow:0 0 6px 1px rgba(214,230,248,.9); opacity:.4; animation:twinkle 9s ease-in-out infinite; will-change:opacity,transform; }
.star-sm{ width:3px; height:3px; box-shadow:0 0 5px 1px rgba(214,230,248,.75); }
@keyframes twinkle{ 0%,100%{ opacity:.38; transform:scale(.95); } 50%{ opacity:.72; transform:scale(1.04); } }
html[data-theme="dark"] .hero-stars{ display:block; }
html[data-theme="dark"] .hero-cloud{ display:none; }
.smoke{ position:absolute; left:18.7%; top:38.5%; width:3cqw; height:3cqw; border-radius:50%; background:radial-gradient(circle, rgba(61,90,117,.32), rgba(61,90,117,0) 68%); opacity:0; animation-name:smoke-rise; animation-timing-function:ease-in; animation-iteration-count:infinite; will-change:transform,opacity; }
@keyframes smoke-rise{ 0%{ transform:translate(0,0) scale(.4); opacity:0; } 18%{ opacity:.5; } 100%{ transform:translate(-3.5cqw,-17cqh) scale(1.7); opacity:0; } }
@media(prefers-reduced-motion:reduce){ .hero-cloud,.smoke,.star{ animation:none!important; } .smoke{ opacity:0!important; } .star{ opacity:.7!important; } }
@media(max-width:760px){ .hero-sky,.hero-rain,.hero-stars{ display:none; } }
/* new hero art has clouds baked in — hide the animated cloud overlays in light mode */
html:not([data-theme="dark"]) .hero-sky{ display:none; }
.hero-cta-row .btn-outline-lg { white-space:nowrap; }
.btn-outline-lg { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#fff; color:var(--ink); padding:18px 40px; border:1.5px solid var(--rule); border-radius:8px; font-family:'DM Sans',sans-serif; font-size:16px; font-weight:600; text-decoration:none; transition:border-color .2s, background .2s, transform .2s; }
.btn-outline-lg:hover { border-color:var(--ink); background:#fff; transform:translateY(-2px); }
.hero-proof { font-size:14px; color:var(--ink-lt); font-weight:300; margin-bottom:8px; }
@media(max-width:640px){ .hero-cta-row{flex-direction:column;align-items:center;} }
@media(max-width:760px){
  .hero{display:flex;flex-direction:column;min-height:0;padding:56px 0 0;}
  .hero-content{order:1;}
  .hero-content::before{display:none;}
  .hero-sub,.hero-headline{text-shadow:none;}
  .hero-illus-row{order:2;position:static;width:100%;height:auto;aspect-ratio:4/3;background-size:210% auto;background-position:left bottom;margin-top:40px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 22%);mask-image:linear-gradient(to bottom,transparent 0%,#000 22%);}
}

/* ── TRUST STRIP (press / client logos) ── */
.trust-strip{background:var(--bg);padding:8px 24px 44px;text-align:center;}
.trust-inner{max-width:1080px;margin:0 auto;}
.trust-label{display:block;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-lt);margin-bottom:28px;}
.trust-logos{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:32px 56px;}
.trust-logo{height:30px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.5;transition:opacity .2s;}
.trust-logos a:hover .trust-logo{opacity:.8;}
.trust-logo-un{filter:brightness(0);opacity:.42;height:48px;}
.trust-logos a:hover .trust-logo-un{opacity:.7;}
.trust-logo-npr{height:34px;}
.trust-logo-bh{height:20px;}
.trust-logo-am{height:56px;}
@media(max-width:640px){ .trust-logo-npr{height:28px;} .trust-logo-bh{height:16px;} .trust-logo-un{height:40px;} .trust-logo-am{height:46px;} }
.trust-word{font-weight:700;color:var(--ink-lt);opacity:.62;letter-spacing:-.01em;}
.trust-word-bh{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;}
.trust-word-npr{display:inline-flex;gap:4px;}
.trust-word-npr span{font-family:'DM Sans',sans-serif;font-size:18px;font-weight:700;line-height:1;padding:4px 5px;background:var(--ink-lt);color:var(--bg);border-radius:2px;opacity:1;}
@media(max-width:640px){ .trust-logos{gap:24px 32px;} .trust-logo{height:24px;} .trust-word-bh{font-size:18px;} }

/* ── SECTION SHARED ── */
.section { padding: 104px 48px; }
.section-gray { background: var(--gray); }
.section-band { background: #EDF1F7; }
@media (max-width: 1100px){ .section-band .two-col{ grid-template-columns:1fr !important; gap:32px !important; } }
.section-white { background: var(--bg); }
.section-dark { background: #0D1B2A; }
.section-dark .section-title, .section-dark .cov-title { color: #fff; }
.section-dark .section-sub, .section-dark .cov-body { color: #D2DCE8; }
.eyebrow-label { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--green-d); margin-bottom: 14px; text-align: center; }
.section-dark .eyebrow-label { color: var(--green); }
.section-title {
  font-family: 'Playfair Display', serif;
  font-size: 62px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.12;
  color: var(--ink);
  text-align: center;
  margin-bottom: 22px;
}
.section-sub {
  font-size: 21px;
  color: var(--ink-lt);
  font-weight: 300;
  text-align: center;
  max-width: 720px;
  margin: 0 auto 60px;
  line-height: 1.7;
}

/* ── HOW IT WORKS ── */
.how-body-text {
  font-size: 21px;
  color: var(--ink-lt);
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
  line-height: 1.7;
  font-weight: 300;
}
.how-body-text strong { font-weight: 600; color: var(--ink); }

.how-diagram {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}
.how-node {
  text-align: center;
  flex: 1;
}
.how-node-label {
  font-size: 15px;
  color: var(--ink-mid);
  font-weight: 300;
  line-height: 1.5;
  margin-top: 20px;
}
.how-node-label strong { display: block; font-weight: 600; color: var(--ink); font-size: 16px; margin-bottom: 4px; }
.score-mini { width:210px; max-width:100%; margin:0 auto; background:#fff; border:1px solid var(--rule); border-radius:18px; overflow:hidden; text-align:left; box-shadow:0 2px 4px rgba(18,38,61,.05), 0 28px 56px -30px rgba(18,38,61,.28); }
.sm-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; background:#F7F9FC; border-bottom:1px solid var(--rule); }
.sm-bar-ph { display:block; height:10px; width:62px; border-radius:5px; background:#D7DEE7; }
.sm-pill { font-family:'DM Sans',sans-serif; font-size:11px; font-weight:700; letter-spacing:.07em; color:var(--green-d); border:1.5px solid var(--green); border-radius:100px; padding:4px 11px; white-space:nowrap; }
.sm-body { padding:20px 18px 18px; }
.sm-score { font-family:'Playfair Display',serif; font-size:62px; font-weight:700; line-height:1; text-align:center; color:var(--ink); }
.sm-score-label { text-align:center; font-size:11px; font-weight:500; letter-spacing:.22em; color:var(--ink-lt); margin:6px 0 20px; }
.sm-metric { margin-bottom:14px; }
.sm-metric:last-child { margin-bottom:0; }
.sm-metric-label { font-size:13px; color:var(--ink-mid); margin-bottom:7px; }
.sm-track { height:9px; border-radius:5px; background:#E9EDF2; overflow:hidden; }
.sm-track>span { display:block; height:100%; border-radius:5px; background:var(--green); }
.how-arrow {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--ink-lt);
  flex: 0 0 60px;
  text-align: center;
  padding-bottom: 40px;
}

/* ── PHONE SECTION ── */
.phone-section {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  gap: 48px;
  max-width: 900px;
  margin: 0 auto;
}
.phone-caption {
  text-align: center;
}
.phone-caption .big-num {
  font-family: 'Playfair Display', serif;
  font-size: 52px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.03em;
  display: block;
  line-height: 1;
}
.phone-caption .cap-label {
  font-size: 17px;
  color: var(--ink-mid);
  font-weight: 300;
  margin-top: 8px;
}
.phone-caption .arrow-down {
  font-family: 'Caveat', cursive;
  font-size: 32px;
  color: var(--ink-lt);
  display: block;
  margin-top: 8px;
}
.phone-caption.right-align { text-align: right; }
.phone-caption.left-align  { text-align: left; }

/* ── SERVICES CARDS ── */
.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}
.service-card {
  background: var(--bg);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 28px 24px 28px;
  text-align: center;
  transition: box-shadow .2s, transform .2s;
}
.service-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.08);
  transform: translateY(-4px);
}
.svc-title {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  margin: 8px 0 10px;
}
.svc-body {
  font-size: 13px;
  color: var(--ink-lt);
  line-height: 1.6;
  font-weight: 300;
  margin-bottom: 24px;
}
.svc-btn {
  display: block;
  background: var(--green);
  color: white;
  padding: 12px 16px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s;
}
.svc-btn:hover { background: var(--green-d); }
.svc-price {
  font-size: 12px;
  color: var(--ink-lt);
  margin-top: 10px;
}

/* ── PRESS LOGOS ── */
.press-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  flex-wrap: wrap;
  margin-bottom: 64px;
}
.press-logo {
  font-size: 14px;
  font-weight: 600;
  color: var(--gray2);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ── STARS SECTION ── */
.stars-row {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin: 32px 0 48px;
}
.star-svg { width: 72px; height: 72px; }

/* ── TWEETS / SOCIAL PROOF ── */
.tweets-scroll {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
  overflow: hidden;
}
.tweet-card {
  background: var(--bg);
  border: 1px solid var(--rule);
  border-radius: 8px;
  padding: 24px;
}
.tweet-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.tweet-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--gray2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink-lt);
}
.tweet-name { font-size: 14px; font-weight: 600; color: var(--ink); }
.tweet-handle { font-size: 13px; color: var(--ink-lt); }
.tweet-body {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-mid);
  font-weight: 300;
}
.tweet-body .mention { color: var(--green); font-weight: 400; }
.tweet-body .hashtag { color: var(--green); font-weight: 400; }

/* ── BIG CTA ── */
.already-section {
  text-align: center;
}
.already-section .section-title { margin-bottom: 12px; }
.already-sub {
  font-size: 17px;
  color: var(--ink-lt);
  font-weight: 300;
  max-width: 640px;
  margin: 0 auto 40px;
  line-height: 1.7;
}

/* ── HOW IT WORKS (assess) — floor plan as background ── */
.hiw-assess { position: relative; overflow: hidden; }
.hiw-assess .hiw-content { position: relative; z-index: 1; }
.hiw-map-bg {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  pointer-events: none;
}
.hiw-map-bg svg {
  width: 130%;
  max-width: 1500px;
  height: auto;
  opacity: 0.13;
}

/* ── FOOTER ── */
footer {
  background: var(--bg);
  border-top: 1px solid var(--rule);
  padding: 48px;
}
.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
  gap: 40px;
}
.footer-logo {
  font-family: 'DM Sans', sans-serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink);
  margin-bottom: 12px;
}
.footer-tagline { font-size: 13px; color: var(--ink-lt); line-height: 1.6; max-width: 240px; font-weight: 300; }
.footer-col-h { font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-lt); margin-bottom: 16px; }
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-links a { font-size: 14px; color: var(--ink-mid); text-decoration: none; font-weight: 300; transition: color .2s; }
.footer-links a:hover { color: var(--ink); }
.footer-bottom { max-width: 1100px; margin: 32px auto 0; padding-top: 24px; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; }
.footer-bottom p { font-size: 12px; color: var(--ink-lt); }

/* WHO GRID */
.who-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}
.who-card {
  background: var(--bg);
  border: 1px solid var(--rule);
  border-radius: 12px;
  padding: 32px 24px 28px;
  text-align: center;
  transition: transform .2s, box-shadow .2s;
}
.who-card:hover { transform: translateY(-4px); box-shadow: 0 8px 32px rgba(0,0,0,0.07); }
.who-icon-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}
.who-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green-d);
  margin-bottom: 8px;
}
.who-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
  line-height: 1.3;
}
.who-body {
  font-size: 13px;
  color: var(--ink-lt);
  font-weight: 300;
  line-height: 1.65;
  margin-bottom: 18px;
}
.who-link {
  font-size: 13px;
  font-weight: 500;
  color: var(--green-d);
  text-decoration: none;
  border-bottom: 1px solid rgba(0,158,95,0.3);
  padding-bottom: 1px;
  transition: border-color .2s;
}
.who-link:hover { border-color: var(--green-d); }

/* COVERAGE GRID */
.coverage-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px 32px;
  max-width: 1000px;
  margin: 0 auto;
}
.coverage-item { text-align: center; }
.cov-circle { display: flex; justify-content: center; margin-bottom: 20px; }
.cov-title {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 10px;
  line-height: 1.35;
}
.cov-body {
  font-size: 14px;
  color: var(--ink-lt);
  font-weight: 300;
  line-height: 1.65;
}

/* SWITCH SECTION */
.switch-diagram {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-top: 48px;
  flex-wrap: wrap;
}
.switch-side {
  text-align: center;
  flex: 0 0 240px;
}
.switch-label-top {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-lt);
  margin-bottom: 16px;
}
.switch-desc {
  font-size: 14px;
  color: var(--ink-lt);
  font-weight: 300;
  line-height: 1.6;
  margin-top: 16px;
}
.switch-toggle-wrap {
  text-align: center;
  flex: 0 0 140px;
}
.switch-toggle-label {
  font-size: 12px;
  color: var(--green-d);
  font-weight: 500;
  margin-top: 8px;
}

/* CREDIBILITY */
.eyebrow-chip {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green-d);
  margin-bottom: 16px;
}
.cred-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto;
}
.cred-stats {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}
.cred-stat { display: flex; flex-direction: column; }
.cred-num {
  font-family: 'Playfair Display', serif;
  font-size: 40px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.03em;
  line-height: 1;
}
.cred-label {
  font-size: 13px;
  color: var(--ink-lt);
  font-weight: 300;
  margin-top: 4px;
}

/* FAQ */
.faq-list {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
.faq-item {
  border-top: 1px solid var(--rule);
  padding: 28px 0;
}
.faq-item:last-child { border-bottom: 1px solid var(--rule); }
.faq-q {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 14px;
  letter-spacing: -0.01em;
}
.faq-a {
  font-size: 16px;
  color: var(--ink-lt);
  font-weight: 300;
  line-height: 1.75;
}


/* Page-specific */
.page-hero { background: var(--gray); padding: 80px 48px 72px; text-align: center; border-bottom: 1px solid var(--rule); }
/* assessment hero: home-style illustration treatment */
.page-hero--illus{ background:var(--bg); border-bottom:1px solid var(--rule); position:relative; overflow:hidden; padding:76px 0 0; min-height:min(720px,80vh); display:flex; align-items:flex-start; justify-content:center; }
.page-hero--illus .ph-illus{ position:absolute; left:0; right:0; bottom:0; height:100%; z-index:0; pointer-events:none; background:url('assets/assess-hero.png') no-repeat 50% bottom; background-size:118% auto; opacity:.6; -webkit-mask-image:linear-gradient(to top,#000 0%,#000 52%,rgba(0,0,0,.78) 78%,rgba(0,0,0,.66) 100%); mask-image:linear-gradient(to top,#000 0%,#000 52%,rgba(0,0,0,.78) 78%,rgba(0,0,0,.66) 100%); }
.page-hero--illus .ph-content{ position:relative; z-index:2; width:100%; padding:0 48px; }
.page-hero--raas .ph-illus{ background-image:url('assets/raas-hero.png'); }
.page-hero--creator .ph-illus{ background-image:url('assets/creator-hero.png'); }
.page-hero--port .ph-illus{ background-image:url('assets/port-security-hero-white.png'); }
.page-hero--nonprofit .ph-illus{ background-image:url('assets/nonprofit-hero.png'); }
.page-hero--industries .ph-illus{ background-image:url('assets/industries-hero.png'); }
.page-hero--event .ph-illus{ background-image:url('assets/event-hero.png'); }
.page-hero--continuity .ph-illus{ background-image:url('assets/continuity-hero.png'); }
.page-hero--training .ph-illus{ background-image:url('assets/training-hero.png'); }
.page-hero--about .ph-illus{ background-image:url('assets/about-hero.png'); }
.page-hero--food .ph-illus{ background-image:url('assets/food-defense-hero.png'); }
.page-hero--blog .ph-illus{ background-image:url('assets/blog-hero.png'); }
.page-hero--contact .ph-illus{ background-image:url('assets/contact-hero.png'); }
.page-hero--alertmedia{ border-bottom:none; }
.page-hero--alertmedia .ph-illus{ background-image:url('assets/alertmedia-hero.png'); -webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent 96%); mask-image:linear-gradient(to bottom,#000 62%,transparent 96%); }
.ind-cta-illus{position:relative;overflow:hidden;padding-bottom:300px;}
.ind-cta-illus::before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;background:url('assets/industries-cta.png') no-repeat 50% bottom;background-size:118% auto;opacity:.6;-webkit-mask-image:linear-gradient(to top,#000 0%,#000 40%,rgba(0,0,0,.5) 74%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to top,#000 0%,#000 40%,rgba(0,0,0,.5) 74%,rgba(0,0,0,0) 100%);z-index:0;pointer-events:none;}
.ind-cta-illus::after{content:"";position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);width:min(1000px,94%);height:120%;background:radial-gradient(ellipse 54% 52% at 50% 50%,var(--bg) 0%,var(--bg) 46%,rgba(255,255,255,.7) 68%,rgba(255,255,255,0) 88%);z-index:1;pointer-events:none;}
.ind-cta-illus>*{position:relative;z-index:2;}
html[data-theme="dark"] .ind-cta-illus::before{opacity:.14;}
html[data-theme="dark"] .ind-cta-illus::after{background:radial-gradient(ellipse 54% 52% at 50% 50%,var(--bg) 0%,var(--bg) 46%,rgba(8,17,31,.7) 68%,rgba(8,17,31,0) 88%);}
.event-cta{position:relative;overflow:hidden;padding-bottom:320px;}
.event-cta::before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;background:url('assets/event-cta.png') no-repeat 50% bottom;background-size:118% auto;opacity:.72;-webkit-mask-image:linear-gradient(to top,#000 0%,#000 40%,rgba(0,0,0,.5) 74%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to top,#000 0%,#000 40%,rgba(0,0,0,.5) 74%,rgba(0,0,0,0) 100%);z-index:0;pointer-events:none;}
.event-cta::after{content:"";position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);width:min(1000px,94%);height:120%;background:radial-gradient(ellipse 54% 52% at 50% 50%,var(--gray) 0%,var(--gray) 46%,rgba(245,247,250,0) 82%);z-index:1;pointer-events:none;}
.event-cta>*{position:relative;z-index:2;}
html[data-theme="dark"] .event-cta::before{opacity:.2;}
html[data-theme="dark"] .event-cta::after{background:radial-gradient(ellipse 54% 52% at 50% 50%,var(--gray) 0%,var(--gray) 46%,rgba(0,0,0,0) 82%);}
@media(max-width:760px){.event-cta{padding-bottom:190px;}}
@media(max-width:760px){.ind-cta-illus{padding-bottom:180px;}}
html[data-theme="dark"] .page-hero--illus{ background:var(--bg); }
html[data-theme="dark"] .page-hero--illus .ph-illus{ opacity:.14; -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 88%); mask-image:linear-gradient(to bottom,#000 0%,#000 55%,transparent 88%); }
html[data-theme="dark"] .page-hero--illus .ph-content::before{ background:radial-gradient(ellipse 60% 58% at 50% 50%,rgba(11,22,35,.82) 0%,rgba(11,22,35,.6) 45%,rgba(11,22,35,.28) 68%,rgba(11,22,35,0) 86%); }
html[data-theme="dark"] .page-hero--illus .page-hero-h,html[data-theme="dark"] .page-hero--illus .page-hero-sub{ text-shadow:none; }
.page-hero--illus .ph-content::before{ content:""; position:absolute; left:50%; top:42%; transform:translate(-50%,-50%); width:min(1040px,96%); height:160%; background:radial-gradient(ellipse 52% 52% at 50% 50%,var(--bg) 0%,var(--bg) 50%,rgba(255,255,255,.72) 70%,rgba(255,255,255,0) 88%); z-index:-1; pointer-events:none; }
.page-hero--illus .page-hero-h,.page-hero--illus .page-hero-sub{ text-shadow:0 1px 6px rgba(255,255,255,.7); }
@media(max-width:760px){ .page-hero--illus{ flex-direction:column; min-height:0; padding:48px 0 0; } .page-hero--illus .ph-content{ order:1; } .page-hero--illus .ph-content::before{ display:none; } .page-hero--illus .page-hero-h,.page-hero--illus .page-hero-sub{ text-shadow:none; } .page-hero--illus .ph-illus{ order:2; position:static; width:100%; height:auto; aspect-ratio:16/10; background-size:210% auto; background-position:left bottom; margin-top:28px; -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 24%); mask-image:linear-gradient(to bottom,transparent 0%,#000 24%); } }
.page-hero-eyebrow { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:16px; display:block; }
.page-hero-h { font-family:"Playfair Display",serif; font-size:60px; font-weight:700; letter-spacing:-.025em; line-height:1.1; color:var(--ink); margin-bottom:20px; }
.page-hero-sub { font-size:18px; color:var(--ink-lt); font-weight:300; max-width:580px; margin:0 auto 36px; line-height:1.65; }
.two-col-text h2 { font-family:"Playfair Display",serif; font-size:40px; font-weight:700; letter-spacing:-.02em; line-height:1.2; color:var(--ink); margin-bottom:20px; }
.two-col-text p { font-size:16px; color:var(--ink-lt); font-weight:300; line-height:1.75; margin-bottom:16px; }
.two-col-text .btn-green-lg { margin-top:24px; display:inline-block; }
/* ── EVENT SECURITY PAGE ── */
.ev-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--rule); border-radius:12px; overflow:hidden; }
.ev-stat { padding:36px 32px; border-right:1px solid var(--rule); }
.ev-stat:last-child { border-right:none; }
.ev-stat-label { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:14px; }
.ev-stat-num { font-family:'DM Sans',sans-serif; font-size:27px; font-weight:700; letter-spacing:-.02em; color:var(--ink); line-height:1.15; }
.ev-stat-sub { font-size:15px; color:var(--ink-lt); font-weight:300; margin-top:4px; }
.ev-illus { width:100%; max-width:440px; display:block; margin:0 auto; }
.ev-list { list-style:none; display:flex; flex-direction:column; gap:11px; margin:22px 0 0; }
.ev-list li { display:flex; align-items:flex-start; gap:11px; font-size:14.5px; color:var(--ink-mid); font-weight:300; line-height:1.5; }
.ev-list .feat-check { width:18px; height:18px; }
.ev-domain-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(5,auto); grid-auto-flow:column; gap:0 56px; max-width:1000px; margin:52px auto 0; }
.ev-domain { display:flex; gap:20px; align-items:flex-start; padding:26px 0; border-bottom:1px solid var(--rule); }
.ev-domain-num { font-family:'DM Sans',sans-serif; font-size:20px; font-weight:700; color:var(--green-d); letter-spacing:-.01em; flex-shrink:0; width:32px; }
.ps-ico { flex-shrink:0; width:44px; height:44px; border-radius:10px; background:#E6F9F1; display:flex; align-items:center; justify-content:center; color:var(--green-d); margin-top:2px; }
.ps-ico svg { width:23px; height:23px; display:block; }
.ev-domain-h { font-family:"Playfair Display",serif; font-size:19px; font-weight:700; color:var(--ink); margin-bottom:5px; }
.ev-domain-p { font-size:14.5px; color:var(--ink-lt); font-weight:300; line-height:1.55; margin:0; }
.ev-scale-row { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px; }
.ev-scale { border:1px solid var(--rule); border-radius:12px; padding:36px 32px; background:var(--bg); }
.ev-scale-tier { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:18px; }
.ev-scale-range { font-family:'DM Sans',sans-serif; font-size:24px; font-weight:700; letter-spacing:-.02em; color:var(--ink); margin-bottom:8px; }
.ev-scale-venue { font-size:15px; color:var(--ink-lt); font-weight:300; line-height:1.5; }
.ev-raas-row { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:48px; }
.ev-raas-h { font-family:"Playfair Display",serif; font-size:20px; font-weight:700; color:#fff; margin-bottom:10px; }
.ev-raas-p { font-size:15px; color:#AEB9C6; font-weight:300; line-height:1.6; margin:0; }
@media(max-width:768px){
  .ev-stat-row { grid-template-columns:1fr; }
  .ev-stat { border-right:none; border-bottom:1px solid var(--rule); }
  .ev-stat:last-child { border-bottom:none; }
  .ev-domain-grid { grid-template-columns:1fr; grid-auto-flow:row; gap:0; }
  .ev-scale-row, .ev-raas-row { grid-template-columns:1fr; }
}
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; max-width:1100px; margin:0 auto; }
.feature-list { list-style:none; display:flex; flex-direction:column; gap:16px; margin:24px 0; }
.feature-list li { display:flex; align-items:flex-start; gap:14px; font-size:15px; color:var(--ink-mid); font-weight:300; line-height:1.55; }
.feat-check { width:22px; height:22px; flex-shrink:0; margin-top:1px; }
.step-row { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:1100px; margin:48px auto 0; }
.step-row-4 { grid-template-columns:repeat(4,1fr); gap:24px; }
.step-box { background:var(--bg); border:1px solid var(--rule); border-radius:12px; padding:36px 28px; }
.step-num { font-family:"Playfair Display",serif; font-size:52px; font-weight:700; color:var(--rule); letter-spacing:-.04em; line-height:1; margin-bottom:16px; }
.step-title { font-family:"Playfair Display",serif; font-size:20px; font-weight:700; color:var(--ink); margin-bottom:10px; }
.step-body { font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.72; }
.scenario-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; max-width:1100px; margin:44px auto 0; text-align:left; }
.scenario-card { background:var(--bg); border:1px solid var(--rule); border-radius:12px; padding:30px 26px; border-top:3px solid var(--green); }
.scenario-title { font-family:"Playfair Display",serif; font-size:19px; font-weight:700; color:var(--ink); margin-bottom:10px; line-height:1.2; }
.scenario-body { font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.68; }
html[data-theme="dark"] .scenario-card { background:var(--panel,#0E1C2E); }
html[data-theme="dark"] .scenario-body { color:#C6D4E2; }
@media(max-width:900px){ .scenario-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .scenario-grid{ grid-template-columns:1fr; } }
.pull-quote { font-family:"Playfair Display",serif; font-style:italic; font-size:28px; font-weight:400; color:var(--ink); line-height:1.45; letter-spacing:-.01em; border-left:4px solid var(--green); padding-left:28px; margin:0; max-width:620px; }
.tag-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.tag { display:inline-block; background:var(--gray); border:1px solid var(--rule); border-radius:100px; font-size:13px; color:var(--ink-mid); padding:6px 16px; font-weight:300; }







/* ── CERT PAGE ── */
.cert-hero{background:var(--bg);padding:80px 48px 72px;text-align:center;position:relative;overflow:hidden;}
.cert-hero::before{content:"";position:absolute;inset:0;background:url('assets/certified-hero.png') no-repeat 50% bottom;background-size:120% auto;opacity:.58;-webkit-mask-image:linear-gradient(to top,#000 0%,#000 52%,rgba(0,0,0,.7) 80%,rgba(0,0,0,.5) 100%);mask-image:linear-gradient(to top,#000 0%,#000 52%,rgba(0,0,0,.7) 80%,rgba(0,0,0,.5) 100%);z-index:0;pointer-events:none;}
.cert-hero::after{content:"";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:min(1040px,96%);height:158%;background:radial-gradient(ellipse 52% 52% at 50% 50%,var(--bg) 0%,var(--bg) 50%,rgba(255,255,255,.72) 70%,rgba(255,255,255,0) 88%);z-index:1;pointer-events:none;}
.cert-hero>*{position:relative;z-index:2;}
.cert-hero-h,.cert-hero-sub{text-shadow:0 1px 6px rgba(255,255,255,.7);}
.ind-illus-fade{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 7%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 7%,#000 86%,transparent 100%);mask-composite:intersect;}
.cert-hero-eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#00C97A;margin-bottom:16px;display:block;}
.cert-hero-h{font-family:"Playfair Display",serif;font-size:60px;font-weight:700;letter-spacing:-.025em;line-height:1.1;color:var(--ink);margin-bottom:20px;}
.cert-hero-sub{font-size:18px;color:var(--ink-lt);font-weight:300;max-width:580px;margin:0 auto 36px;line-height:1.65;}
.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto;}
.cert-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:36px 28px;text-align:center;}
.cert-step{display:flex;gap:28px;align-items:flex-start;padding:34px 0;border-bottom:1px solid var(--rule);}
.cert-step:last-child{border-bottom:none;}
.cert-step-num{font-family:"Playfair Display",serif;font-size:40px;font-weight:700;color:var(--rule);width:48px;text-align:right;flex-shrink:0;line-height:1;}
.cert-step-body h3{font-family:"Playfair Display",serif;font-size:20px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.cert-step-body p{font-size:15px;color:var(--ink-lt);font-weight:300;line-height:1.65;}
.vendor-types{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:48px auto 0;}
.vendor-type{background:var(--gray);border:1px solid var(--rule);border-radius:10px;padding:30px 28px;}
.vendor-type-icon{display:block;width:30px;height:30px;color:var(--green);margin-bottom:16px;stroke-width:1.7;}
.vendor-type-title{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:10px;}
.vendor-type-body{font-size:14px;color:var(--ink-lt);font-weight:300;line-height:1.65;}
.badge-display{display:flex;align-items:center;gap:24px;background:var(--gray);border:1px solid var(--rule);border-radius:12px;padding:32px;max-width:600px;margin:0 auto;}
/* ── OFFER CARDS (four ways) ── */
.offer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1140px;margin:48px auto 0;}
.offer-card{background:var(--bg);border:1px solid var(--rule);border-radius:14px;padding:32px 26px;display:flex;flex-direction:column;text-align:center;align-items:center;transition:box-shadow .2s,transform .2s,border-color .2s;}
.offer-card:hover{box-shadow:0 14px 40px -18px rgba(13,27,42,.28);transform:translateY(-3px);border-color:#CBD5E1;}
.offer-ic{width:58px;height:58px;border-radius:15px;background:#EEF2F6;border:1px solid #E0E7EF;display:flex;align-items:center;justify-content:center;color:#12263D;margin-bottom:20px;}
.offer-ic svg{width:28px;height:28px;stroke-width:1.6;}
.offer-eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d);margin-bottom:8px;}
.offer-title{font-family:"Playfair Display",serif;font-size:23px;font-weight:700;color:var(--ink);letter-spacing:-.01em;margin-bottom:12px;line-height:1.2;}
.offer-desc{font-size:14.5px;color:var(--ink-lt);font-weight:300;line-height:1.6;margin-bottom:24px;flex-grow:1;}
.offer-link{margin-top:auto;font-family:"DM Sans",sans-serif;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--green);padding:13px 24px;border-radius:9px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;box-shadow:0 10px 22px -6px rgba(0,201,122,.55);transition:transform .18s,box-shadow .18s,background .18s,gap .18s;}
.offer-link:hover{background:var(--green-d);transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(0,201,122,.65);gap:11px;}
@media(max-width:900px){.offer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.offer-grid{grid-template-columns:1fr;}}
/* ── COMMON FINDINGS (circle cluster) ── */
.finds-cluster{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;max-width:860px;margin:48px auto 0;}
.find-bub{border-radius:50%;background:var(--gray);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;box-sizing:border-box;}
.find-bub.lg{width:228px;height:228px;}
.find-bub.md{width:188px;height:188px;}
.find-bub.sm{width:158px;height:158px;}
.find-bub strong{font-family:"Playfair Display",serif;font-weight:700;font-size:18px;line-height:1.2;color:var(--ink);margin-bottom:7px;letter-spacing:-.01em;}
.find-bub span{font-size:12.5px;color:var(--ink-lt);font-weight:300;line-height:1.45;}
.find-bub.accent{background:#E6F9F1;}
.finds-cluster .find-bub:nth-child(even){transform:translateY(26px);}
@media(max-width:560px){
  .finds-cluster .find-bub:nth-child(even){transform:none;}
  .find-bub.lg,.find-bub.md,.find-bub.sm{width:150px;height:150px;padding:16px;}
  .find-bub strong{font-size:15px;}.find-bub span{font-size:11px;}
}
/* ── RAAS explainer (full-bleed bg overlay) ── */
.raas-points{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1060px;margin:48px auto 0;padding:0 28px;box-sizing:border-box;}
.raas-point{text-align:center;background:rgba(255,255,255,0.9);border:1px solid rgba(200,210,221,0.7);border-radius:13px;padding:18px 16px;box-shadow:0 16px 36px -22px rgba(13,27,42,.4);}
.raas-point strong{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:5px;letter-spacing:-.01em;}
.raas-point span{font-size:13px;color:var(--ink-lt);font-weight:300;line-height:1.5;}
@media(max-width:760px){.raas-points{grid-template-columns:1fr 1fr;gap:16px;}}
@media(max-width:460px){.raas-points{grid-template-columns:1fr;}}
/* ── EXEC & CREATOR ── */
.ec-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:920px;margin:44px auto 0;}
.ec-card{background:var(--bg);border:1px solid var(--rule);border-radius:14px;padding:32px 30px;}
.ec-ic{width:52px;height:52px;border-radius:13px;background:#EEF2F6;border:1px solid #E0E7EF;display:flex;align-items:center;justify-content:center;color:#12263D;margin-bottom:18px;}
.ec-ic svg{width:26px;height:26px;stroke-width:1.6;}
.ec-card h3{font-family:"Playfair Display",serif;font-size:22px;font-weight:700;color:var(--ink);margin-bottom:10px;letter-spacing:-.01em;}
.ec-card p{font-size:15px;color:var(--ink-lt);font-weight:300;line-height:1.65;}
@media(max-width:680px){.ec-grid{grid-template-columns:1fr;}.ec-card{text-align:center;display:flex;flex-direction:column;align-items:center;}}
.section-dark .ec-card{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.14);}
.section-dark .ec-card h3{color:#fff;}
.section-dark .ec-card p{color:#C7D3E0;}
.section-dark .ec-ic{background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.16);color:#fff;}
/* ── FAQ ── */
.faq-wrap{max-width:780px;margin:44px auto 0;}
.faq-item{border-bottom:1px solid var(--rule);}
.faq-item summary{list-style:none;cursor:pointer;padding:22px 4px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:"Playfair Display",serif;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:"DM Sans",sans-serif;font-size:26px;font-weight:400;line-height:1;color:var(--green-d);flex-shrink:0;}
.faq-item[open] summary::after{content:"\2013";}
.faq-item p{font-size:15px;color:var(--ink-lt);font-weight:300;line-height:1.7;padding:0 4px 24px;margin:0;max-width:680px;}
/* ── BLOG & ARTICLE ── */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.blog-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:28px;cursor:pointer;transition:box-shadow .2s;}
.blog-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);}
.blog-ext{ font-size:.72em; color:var(--ink-lt); vertical-align:middle; margin-left:2px; }
.blog-cat{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);margin-bottom:12px;}
.blog-title{font-family:"Playfair Display",serif;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.3;margin-bottom:12px;}
.blog-excerpt{font-size:14px;color:var(--ink-lt);font-weight:300;line-height:1.6;margin-bottom:16px;}
.blog-byline{font-size:13px;color:var(--ink-lt);font-weight:300;}
.blog-filter{display:flex;flex-wrap:wrap;gap:10px;max-width:1200px;margin:0 auto 36px;}
.blog-filter-btn{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;color:var(--ink-mid);background:var(--bg);border:1px solid var(--rule);border-radius:100px;padding:8px 18px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.blog-filter-btn:hover{border-color:var(--green);color:var(--ink);}
.blog-filter-btn.active{background:var(--green);color:#0B1623;border-color:var(--green);font-weight:600;}
.blog-empty{max-width:1200px;margin:0 auto;text-align:center;color:var(--ink-lt);font-size:15px;font-weight:300;padding:24px 0;display:none;}
.article-header{max-width:740px;margin:0 auto;padding:64px 24px 40px;}
.article-cat{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);margin-bottom:16px;display:block;}
.article-cat a{color:var(--green-d);text-decoration:none;}
.article-h1{font-family:"Playfair Display",serif;font-size:48px;font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--ink);margin-bottom:20px;}
.article-byline{font-size:14px;color:var(--ink-lt);display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.article-byline a{color:var(--green-d);text-decoration:none;}
.article-byline a:hover{text-decoration:underline;}
.article-byline-dot{width:3px;height:3px;background:var(--ink-lt);border-radius:50%;}
.article-body{max-width:740px;margin:0 auto;padding:0 24px 80px;}
.article-body p{font-size:17px;color:var(--ink-mid);font-weight:300;line-height:1.8;margin-bottom:24px;}
.article-body h2{font-family:"Playfair Display",serif;font-size:28px;font-weight:700;color:var(--ink);margin:48px 0 16px;line-height:1.25;}
.article-lede{font-size:18px;color:var(--ink);font-weight:500;line-height:1.65;margin:-4px 0 18px;}
.aqi-scale{max-width:680px;margin:26px 0 10px;border:1px solid var(--rule);border-radius:12px;overflow:hidden;}
.aqi-head{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:#F7F9FC;padding:14px 20px;border-bottom:1px solid var(--rule);}
.aqi-foot{font-size:12px;color:var(--ink-lt);font-weight:300;background:#F7F9FC;padding:12px 20px;border-top:1px solid var(--rule);}
.aqi-row{display:grid;grid-template-columns:84px 1fr;gap:18px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--rule);border-left:6px solid var(--aqi);}
.aqi-row:last-child{border-bottom:none;}
.aqi-range{font-family:'DM Sans',sans-serif;font-weight:700;font-size:14px;color:#fff;background:var(--aqi);border-radius:6px;padding:7px 0;text-align:center;letter-spacing:.01em;}
.aqi-text{font-size:15px;color:var(--ink-lt);font-weight:300;line-height:1.5;}
.aqi-text strong{display:block;color:var(--ink);font-weight:700;font-size:15px;margin-bottom:3px;}
.article-body p a,.article-body li a{color:var(--green-d);text-decoration:underline;text-underline-offset:2px;}
.article-body p a:hover,.article-body li a:hover{color:var(--ink);}
@media(max-width:520px){.aqi-row{grid-template-columns:70px 1fr;gap:14px;padding:13px 16px;}}
.steps-orange{max-width:680px;margin:24px 0 10px;border:1px solid var(--rule);border-radius:12px;overflow:hidden;}
.step-o{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:16px 20px;border-bottom:1px solid var(--rule);}
.step-o:last-child{border-bottom:none;}
.step-o-num{width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;font-family:'DM Sans',sans-serif;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.step-o p{margin:0;font-size:15px;color:var(--ink-lt);font-weight:300;line-height:1.55;}
.article-body ul,.article-body ol{margin:0 0 24px 24px;}
.article-body li{font-size:17px;color:var(--ink-mid);font-weight:300;line-height:1.75;margin-bottom:8px;}
.article-body blockquote{border-left:4px solid var(--green);padding:4px 0 4px 24px;margin:36px 0;}
.article-body blockquote p{font-family:"Playfair Display",serif;font-style:italic;font-size:22px;color:var(--ink);font-weight:400;margin:0;}
.article-tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;}
.article-tag{background:var(--gray);border:1px solid var(--rule);border-radius:100px;font-size:12px;color:var(--ink-mid);padding:5px 14px;font-weight:300;}
.article-cta{background:var(--gray);border-radius:12px;padding:40px;text-align:center;margin:48px 0;}
.article-cta h3{font-family:"Playfair Display",serif;font-size:24px;font-weight:700;color:var(--ink);margin-bottom:12px;}
.article-cta p{font-size:15px;color:var(--ink-lt);font-weight:300;margin-bottom:24px;}
.article-tldr{background:var(--gray);border:1px solid var(--rule);border-left:3px solid var(--green);border-radius:12px;padding:22px 26px;margin-bottom:36px;}
.article-tldr .tldr-label{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d);margin-bottom:12px;}
.article-tldr ul{margin:0;padding-left:20px;}
.article-tldr li{font-size:15px;color:var(--ink-mid);font-weight:300;line-height:1.6;margin-bottom:8px;}
.article-tldr li:last-child{margin-bottom:0;}
/* ── CASE STUDIES ── */
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.case-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:32px;cursor:pointer;transition:box-shadow .2s;}
.case-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);}
.case-industry{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green-d);margin-bottom:12px;}
.case-title{font-family:"Playfair Display",serif;font-size:22px;font-weight:700;color:var(--ink);margin-bottom:12px;line-height:1.3;}
.case-summary{font-size:14px;color:var(--ink-lt);font-weight:300;line-height:1.6;}
.cs-stat-band{background:var(--ink);padding:48px;display:grid;grid-template-columns:repeat(3,1fr);margin:48px 0;}
.cs-stat{text-align:center;padding:0 24px;border-right:1px solid rgba(255,255,255,.15);}
.cs-stat:last-child{border-right:none;}
.cs-stat-num{font-family:"Playfair Display",serif;font-size:48px;font-weight:700;color:white;letter-spacing:-.03em;line-height:1;display:block;}
.cs-stat-label{font-size:13px;color:rgba(255,255,255,.5);font-weight:300;margin-top:8px;display:block;}
/* ── TEAM ── */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1100px;margin:0 auto;}
.team-card{background:var(--bg);border:1px solid var(--rule);border-radius:16px;overflow:hidden;}
.team-photo{width:100%;height:220px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--rule);overflow:hidden;}
.team-info{padding:28px;}
/* ── CAREERS ROLE LISTING ── */
.role-listing{border:1px solid var(--rule);border-radius:16px;overflow:hidden;background:var(--bg);}
.role-head{padding:40px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-start;}
.role-now{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d);margin-bottom:14px;}
.role-title{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-bottom:18px;}
.role-meta{display:flex;flex-wrap:wrap;gap:10px;}
.role-tag{font-size:12.5px;font-weight:500;color:var(--ink-mid);background:var(--gray);border:1px solid var(--rule);border-radius:100px;padding:6px 14px;}
.role-body{padding:40px;}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:40px;}
.role-h{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--ink);margin:0 0 18px;}
.role-prose p{font-size:16px;color:var(--ink-lt);font-weight:300;line-height:1.75;margin-bottom:16px;}
.role-prose p:last-child{margin-bottom:0;}
.role-ul{list-style:none;display:flex;flex-direction:column;gap:13px;margin:0;}
.role-ul li{position:relative;padding-left:22px;font-size:15.5px;color:var(--ink-lt);font-weight:300;line-height:1.6;}
.role-ul li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--green);}
.role-ul li strong{color:var(--ink);font-weight:600;font-style:normal;}
.role-foot{padding:32px 40px;border-top:1px solid var(--rule);display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
@media(max-width:768px){.role-grid{grid-template-columns:1fr;gap:36px;}.role-head,.role-body,.role-foot{padding:28px 24px;}.role-title{font-size:26px;}}
/* ── VALUES ── */
.values-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px 64px;max-width:1000px;}
.value-num{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:.14em;color:var(--green);margin-bottom:16px;}
.value-icon{color:var(--green);margin-bottom:18px;}
.value-icon svg{width:30px;height:30px;display:block;}
.value-h{font-family:'Playfair Display',serif;font-size:25px;font-weight:700;letter-spacing:-.01em;color:#fff;margin-bottom:13px;}
.value-p{font-size:16px;line-height:1.7;color:#A8C0D6;font-weight:300;}
@media(max-width:768px){.values-grid{grid-template-columns:1fr;gap:40px;}.value-h{font-size:22px;}}
.team-name{font-family:"Playfair Display",serif;font-size:21px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.team-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green-d);margin-bottom:14px;}
.team-bio{font-size:14px;color:var(--ink-lt);font-weight:300;line-height:1.7;}
.team-cred-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;}
.team-cred{background:var(--gray);border:1px solid var(--rule);border-radius:100px;font-size:11px;color:var(--ink-mid);padding:4px 11px;font-weight:300;}
.team-linkedin{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:12px;color:var(--ink-lt);text-decoration:none;font-weight:400;transition:color .2s;}
.team-linkedin:hover{color:var(--green-d);}
/* ── FOOTER SOCIAL ── */
.footer-social{display:flex;gap:16px;margin-top:20px;}
.social-link{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-lt);text-decoration:none;font-weight:300;transition:color .2s;}
.social-link:hover{color:var(--green-d);}
/* ── FEATURED TESTIMONIAL (white quote card) ── */
.tm-section { background: #fdfdfd; padding: 96px 48px 120px; position:relative; overflow:hidden; min-height:600px; display:flex; align-items:center; justify-content:center; }
.tm-bg { position:absolute; left:0; right:0; bottom:0; width:100%; height:auto; z-index:0; pointer-events:none; user-select:none; }
.tm-card2 {
  position:relative; z-index:1;
  max-width: 560px; margin: 0 auto; background:#fff;
  border-radius: 28px; padding: 56px 64px 48px; text-align:center;
  box-shadow: 0 2px 4px rgba(18,38,61,.04), 0 40px 80px -34px rgba(18,38,61,.30);
}
.tm-toplogo { height:74px; width:auto; margin:0 auto 26px; display:block; filter: brightness(0); opacity:.82; }
.tm-qrow { display:flex; align-items:center; gap:22px; margin-bottom:26px; }
.tm-qrow .ln { flex:1; height:1px; background:var(--rule); }
.tm-qmark { font-family:'Playfair Display',serif; font-size:88px; line-height:.45; height:34px; color:#0055D4; font-weight:700; }
.tm-quote2 { font-size:23px; line-height:1.55; color:var(--ws-text,#12263D); font-weight:400; margin-bottom:40px; text-wrap:pretty; }
.tm-div { height:1px; background:var(--rule); margin-bottom:28px; }
.tm-person2 { display:flex; align-items:center; justify-content:center; gap:16px; text-align:left; }
.tm-avatar2 { width:56px;height:56px;border-radius:50%;background:#EFF4FB;color:#0055D4;font-weight:700;font-size:18px;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.tm-name2 { font-size:17px;font-weight:600;color:var(--ws-text,#12263D);line-height:1.3; }
.tm-role2 { font-size:14px;color:var(--ink-lt);font-weight:300;margin-top:3px; }
@media(max-width:768px){ .tm-card2{ padding:40px 28px 36px; border-radius:20px; } .tm-quote2{ font-size:19px; } .tm-section{ padding:56px 20px; } }
/* ── TESTIMONIAL CAROUSEL ── */
.tm-carousel { position:relative; z-index:1; width:100%; max-width:860px; margin:0 auto; }
.tm-stage { display:flex; align-items:center; gap:8px; }
.tm-viewport { flex:1 1 auto; min-width:0; overflow:hidden; }
.tm-track { display:flex; transition:transform .5s cubic-bezier(.2,0,0,1); will-change:transform; }
.tm-slide { flex:0 0 100%; min-width:100%; display:flex; justify-content:center; box-sizing:border-box; padding:44px 52px 82px; }
.tm-slide .tm-card2 { margin:0; }
.tm-arrow { flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--rule); color:var(--ws-text,#12263D); cursor:pointer; box-shadow:0 2px 10px rgba(18,38,61,.08); transition:background .2s, border-color .2s, color .2s; }
.tm-arrow:hover { background:#0055D4; border-color:#0055D4; color:#fff; }
.tm-arrow:focus-visible { outline:2px solid #0055D4; outline-offset:2px; }
.tm-arrow svg { display:block; }
.tm-wordmark { font-family:'Playfair Display',serif; font-size:25px; font-weight:700; color:var(--ws-text,#12263D); text-align:center; letter-spacing:-.01em; line-height:1.15; height:74px; margin:0 auto 26px; display:flex; align-items:center; justify-content:center; text-wrap:balance; }
.tm-toplogo2 { display:block; width:auto; margin:0 auto 26px; }
.tm-dots { display:flex; justify-content:center; gap:10px; margin-top:24px; }
.tm-dot { width:8px; height:8px; padding:0; border:none; border-radius:50%; background:var(--rule); cursor:pointer; transition:background .2s, transform .2s; }
.tm-dot:hover { background:#9DB4CC; }
.tm-dot.is-active { background:#0055D4; transform:scale(1.3); }
@media(max-width:768px){ .tm-slide{ padding:28px 12px 56px; } .tm-stage{ gap:2px; } .tm-arrow{ width:38px; height:38px; } .tm-wordmark{ font-size:20px; height:auto; min-height:48px; margin-bottom:20px; } }
/* ── CERTIFIED CLIENT LOGO ── */
.cert-client { margin-top:48px; padding-top:36px; border-top:1px solid var(--rule); }
.cert-client-label { font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-lt); margin-bottom:24px; }
.cert-client-logo { height:112px; width:auto; display:block; margin:0 auto; }
/* ── RAAS PLAN COMPARISON (Lemonade-style) ── */
.raas-compare{ max-width:1080px; margin:0 auto; }
.cmp-scroll{ margin-top:44px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px; }
.cmp-table{ display:grid; grid-template-columns:minmax(220px,1.8fr) repeat(3,minmax(150px,1fr)); min-width:760px; background:var(--bg); border:1px solid var(--rule); border-radius:24px; overflow:hidden; box-shadow:0 2px 4px rgba(18,38,61,.04), 0 40px 80px -48px rgba(18,38,61,.26); }
.cmp-row{ display:contents; }
.cmp-corner{ background:var(--bg); }
.cmp-plan{ padding:26px 22px; display:flex; flex-direction:column; gap:4px; position:relative; }
.cmp-tier{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-lt); }
.cmp-plan-name{ font-family:'Playfair Display',serif; font-size:21px; font-weight:700; line-height:1.15; color:var(--ink); }
.cmp-plan-basic{ background:var(--bg); }
.cmp-plan-prem{ background:var(--bg); }
.cmp-plan-prem .cmp-tier{ color:#0E9E63; }
.cmp-plan-adv{ background:#0057FF; }
.cmp-plan-adv .cmp-tier{ color:rgba(255,255,255,.82); }
.cmp-plan-adv .cmp-plan-name{ color:#fff; }
.cmp-badge{ display:inline-block; align-self:flex-start; margin-bottom:8px; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:#fff; color:#0057FF; padding:4px 11px; border-radius:100px; }
.cmp-feat{ padding:22px; border-top:1px solid var(--rule); }
.cmp-feat-name{ font-size:16px; font-weight:600; color:var(--ink); margin-bottom:5px; }
.cmp-feat-desc{ font-size:13px; color:var(--ink-lt); font-weight:300; line-height:1.55; }
.cmp-cell{ padding:22px 16px; border-top:1px solid var(--rule); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:4px; }
.col-adv{ background:rgba(0,87,255,.05); }
.cmp-check{ display:inline-flex; width:30px; height:30px; border-radius:50%; align-items:center; justify-content:center; background:rgba(0,87,255,.12); color:#0057FF; font-size:15px; font-weight:700; line-height:1; }
.cmp-check-g{ background:rgba(0,201,122,.15); color:#0E9E63; }
.cmp-none{ color:var(--ink-lt); opacity:.4; font-size:20px; line-height:1; }
.cmp-val{ font-size:15px; font-weight:700; color:var(--ink); line-height:1.2; }
.cmp-val-sub{ font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-lt); }
.cmp-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:30px; }
.cmp-foot-text{ font-size:15px; color:var(--ink-mid); font-weight:300; }
@media(max-width:768px){ .cmp-plan-name{ font-size:18px; } }
/* AlertMedia page */
.am-hero-logo{ display:inline-block; margin-bottom:26px; transition:opacity .2s; }
.am-hero-logo:hover{ opacity:.7; }
.am-hero-logo img{ display:block; height:132px; width:auto; background:transparent; }
.am-panel{ background:var(--gray); border:1px solid var(--rule); border-radius:18px; padding:30px; }
.am-panel-h{ font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-lt); margin-bottom:16px; }
.am-list{ list-style:none; margin:0; padding:0; }
.am-list li{ font-size:15px; color:var(--ink); padding:12px 0 12px 26px; border-top:1px solid var(--rule); position:relative; }
.am-list li:first-child{ border-top:none; }
.am-list li::before{ content:""; position:absolute; left:2px; top:19px; width:7px; height:7px; border-radius:50%; background:var(--green); }
.am-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1100px; margin:40px auto 0; }
.am-step{ background:var(--bg); border:1px solid var(--rule); border-radius:16px; padding:28px 26px; text-align:left; }
.am-step-ico{ width:46px; height:46px; border-radius:13px; background:rgba(0,201,122,.1); display:flex; align-items:center; justify-content:center; color:var(--green-d); margin-bottom:16px; }
@media(max-width:860px){ .am-steps{ grid-template-columns:1fr; } }
/* Glossary */
.gloss-search{ max-width:420px; margin:8px auto 0; }
.gloss-search input{ width:100%; box-sizing:border-box; font-family:inherit; font-size:16px; color:var(--ink); background:var(--bg); border:1px solid var(--rule); border-radius:100px; padding:14px 22px; outline:none; transition:border-color .2s; }
.gloss-search input:focus{ border-color:var(--green); }
.gloss-wrap{ max-width:860px; margin:0 auto; }
.gloss-az{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-bottom:40px; }
.gloss-az a{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:9px; font-size:13px; font-weight:600; color:var(--ink-mid); text-decoration:none; border:1px solid var(--rule); transition:background .15s,color .15s,border-color .15s; }
.gloss-az a:hover{ background:var(--green); color:#fff; border-color:var(--green); }
.gloss-az a.is-empty{ opacity:.3; pointer-events:none; }
.gloss-group{ margin-bottom:36px; scroll-margin-top:90px; }
.gloss-letter{ font-family:'Playfair Display',serif; font-size:30px; font-weight:700; color:var(--green-d); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--rule); }
.gloss-term{ padding:16px 0; border-bottom:1px solid var(--rule); }
.gloss-term-h{ font-size:17px; font-weight:600; color:var(--ink); margin-bottom:5px; }
.gloss-term-h a{ color:inherit; text-decoration:none; border-bottom:1px solid transparent; }
.gloss-term-h a:hover{ color:var(--green-d); border-bottom-color:var(--green-d); }
.rel-read{ max-width:760px; margin:0 auto; }
.rel-read h2{ font-family:'Playfair Display',serif; font-size:22px; font-weight:700; color:var(--ink); margin:0 0 18px; }
.rel-read ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.rel-read li{ border-top:1px solid var(--rule); padding:16px 0; }
.rel-read li:last-child{ border-bottom:1px solid var(--rule); }
.rel-read a{ font-size:17px; font-weight:500; color:var(--ink); text-decoration:none; display:block; }
.rel-read a:hover{ color:var(--green-d); }
.rel-read span{ display:block; font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.55; margin-top:5px; }
.gloss-term-d{ font-size:15px; color:var(--ink-lt); font-weight:300; line-height:1.6; margin:0; }
.gloss-empty{ display:none; text-align:center; color:var(--ink-lt); font-size:16px; padding:40px 0; }
/* ── ROUTER ── */
.nav{top:0!important;z-index:200!important;}
#page-content{margin-top:0!important;min-height:100vh;}
@keyframes pagein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.page-entering{animation:pagein .18s ease both;}
/* ── HAMBURGER ── */
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;margin-left:8px;}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .25s;}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{display:none;background:var(--bg);border-bottom:1px solid var(--rule);padding:8px 24px 20px;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.06);position:relative;z-index:199;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:16px;font-weight:400;color:var(--ink);text-decoration:none;padding:13px 0;border-bottom:1px solid var(--rule);display:block;}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu .mobile-cta{margin-top:12px;background:var(--green);color:white!important;border-radius:6px;padding:14px 20px!important;text-align:center;font-weight:500;border-bottom:none!important;}
/* ── MOBILE BREAKPOINTS ── */
@media(max-width:960px){
  .nav{padding:0 24px;height:60px;}
  .nav-links-left{display:none;}
  .nav-right{display:none;}
  .nav-hamburger{display:flex;}
}
@media(max-width:1080px){
  .hero-headline{font-size:80px;}
}
@media(max-width:768px){
  .hero-headline{font-size:52px!important;}.page-hero-h{font-size:32px!important;}
  .section{padding:48px 20px!important;}.section-title{font-size:30px!important;}
  .two-col{grid-template-columns:1fr!important;gap:40px;}
  .step-row{grid-template-columns:1fr!important;}
  .services-grid{grid-template-columns:1fr 1fr!important;}.who-grid{grid-template-columns:1fr 1fr!important;}
  .team-grid{grid-template-columns:1fr!important;}.blog-grid{grid-template-columns:1fr!important;}
  .case-grid{grid-template-columns:1fr!important;}.contact-grid{grid-template-columns:1fr!important;}
  .footer-inner{grid-template-columns:1fr 1fr!important;gap:32px;}
  .cs-stat-band{grid-template-columns:1fr!important;padding:28px 20px;}
  .cs-stat{border-right:none!important;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:18px;}
  .cs-stat:last-child{border-bottom:none!important;}
  .article-h1{font-size:28px!important;}.cert-grid{grid-template-columns:1fr!important;}
  .vendor-types{grid-template-columns:1fr 1fr!important;}.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .phone-section{grid-template-columns:1fr!important;}
  .how-diagram{flex-direction:column!important;align-items:center;gap:24px;}
  .how-arrow{display:none!important;}
  .how-node{flex:0 0 auto!important;width:100%;max-width:300px;}
  .how-node>svg,.how-node>img{width:160px!important;height:auto!important;}
  .advisor-row{grid-template-columns:1fr!important;}.cert-hero-h{font-size:32px!important;}
}
@media(max-width:480px){
  .hero-headline{font-size:28px!important;}.page-hero-h{font-size:24px!important;}
  .section-title{font-size:24px!important;}.article-h1{font-size:22px!important;}
  .services-grid{grid-template-columns:1fr!important;}.who-grid{grid-template-columns:1fr!important;}
  .vendor-types{grid-template-columns:1fr!important;}.footer-inner{grid-template-columns:1fr!important;}
  .cert-hero-h{font-size:22px!important;}
}

/* ── CONTACT FORM ── */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; max-width: 1100px; margin: 0 auto; }
.form-group { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.form-label { font-size: 14px; font-weight: 500; color: var(--ink); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-input {
  font-family: "DM Sans", sans-serif;
  font-size: 15px;
  font-weight: 300;
  color: var(--ink);
  background: var(--bg);
  border: 1.5px solid var(--rule);
  border-radius: 8px;
  padding: 12px 16px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color .2s;
  outline: none;
}
.form-input:focus { border-color: var(--green); }
.form-textarea { min-height: 120px; resize: vertical; }
.radio-group { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.radio-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 300;
  color: var(--ink-mid);
  cursor: pointer;
  padding: 10px 14px;
  border: 1.5px solid var(--rule);
  border-radius: 8px;
  transition: border-color .2s, background .2s;
}
.radio-item:hover { border-color: var(--green); background: #f8fffe; }
.radio-item input[type="radio"] { accent-color: var(--green); width: 16px; height: 16px; flex-shrink: 0; }
.form-submit { width: 100%; padding: 18px; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; }
.what-to-expect { background: var(--gray); border-radius: 12px; padding: 32px; }
.what-to-expect h3 { font-family: "Playfair Display", serif; font-size: 20px; font-weight: 700; color: var(--ink); margin-bottom: 20px; }
.expect-item { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.expect-item p { font-size: 14px; color: var(--ink-lt); font-weight: 300; line-height: 1.6; margin: 0; }

/* ── CONTACT CARD (redesign) ── */
.contact-card {
  display: grid;
  grid-template-columns: 1.25fr 0.9fr;
  max-width: 1080px;
  margin: 0 auto;
  background: var(--bg);
  border: 1px solid var(--rule);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 70px -34px rgba(13,27,42,.32);
}
.contact-form-panel { padding: 48px 48px 52px; }
.contact-form-panel h2 {
  font-family: 'Playfair Display', serif;
  font-size: 30px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.02em;
  margin: 0 0 8px;
}
.contact-form-intro { font-size: 15px; color: var(--ink-lt); font-weight: 300; line-height: 1.6; margin: 0 0 32px; max-width: 42ch; }
.form-group { position: relative; }
.form-label .req { color: var(--green-d); margin-left: 2px; }
.form-input::placeholder { color: #B4BCC6; }
.form-divider { height: 1px; background: var(--rule); border: 0; margin: 4px 0 24px; }

/* ── HubSpot form styling (inline embed → site design language) ── */
#hs-contact-form .hs-form-field{ margin-bottom:18px; }
#hs-contact-form label{ display:block; font-family:'DM Sans',sans-serif; font-size:13px; font-weight:600; letter-spacing:.01em; color:var(--ink); margin-bottom:7px; }
#hs-contact-form label .hs-form-required{ color:var(--green-d); margin-left:2px; }
#hs-contact-form .hs-input,#hs-contact-form input[type=text],#hs-contact-form input[type=email],#hs-contact-form input[type=tel],#hs-contact-form textarea{
  width:100%; box-sizing:border-box; font-family:'DM Sans',sans-serif; font-size:15px; color:var(--ink);
  padding:12px 14px; background:var(--bg); border:1.5px solid var(--rule); border-radius:9px; outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
#hs-contact-form .hs-input::placeholder,#hs-contact-form textarea::placeholder{ color:#B4BCC6; }
#hs-contact-form .hs-input:focus,#hs-contact-form textarea:focus{ border-color:var(--green); box-shadow:0 0 0 3px rgba(0,201,122,.14); }
#hs-contact-form textarea{ min-height:104px; resize:vertical; }
#hs-contact-form .hs-fieldtype-select select{ appearance:none; background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2388929E' stroke-width='1.6' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E") no-repeat right 14px center; padding-right:34px; }
/* side-by-side first / last name */
#hs-contact-form .hs-form-field.hs-firstname,#hs-contact-form .hs-form-field.hs-lastname{ display:inline-block; width:calc(50% - 7px); vertical-align:top; }
#hs-contact-form .hs-form-field.hs-firstname{ margin-right:14px; }
#hs-contact-form .hs-error-msg,#hs-contact-form .hs-error-msgs label{ color:#C0392B; font-size:12px; font-weight:500; margin-top:5px; }
#hs-contact-form .hs-button,#hs-contact-form input[type=submit]{
  margin-top:6px; font-family:'DM Sans',sans-serif; font-size:15px; font-weight:600; letter-spacing:.01em; color:#fff;
  background:var(--green); border:0; border-radius:10px; padding:14px 30px; cursor:pointer; width:auto;
  transition:background .15s ease, transform .12s ease, box-shadow .15s ease; box-shadow:0 10px 24px -12px rgba(0,201,122,.7);
}
#hs-contact-form .hs-button:hover,#hs-contact-form input[type=submit]:hover{ background:var(--green-d); transform:translateY(-1px); }
#hs-contact-form fieldset{ max-width:none!important; }
html[data-theme="dark"] #hs-contact-form .hs-input,html[data-theme="dark"] #hs-contact-form textarea{ background:var(--gray); border-color:var(--rule); color:var(--ink); }
@media(max-width:520px){ #hs-contact-form .hs-form-field.hs-firstname,#hs-contact-form .hs-form-field.hs-lastname{ display:block; width:100%; margin-right:0; } }

/* navy aside */
.contact-aside {
  background: #0D1B2A;
  color: #fff;
  padding: 44px 40px;
  display: flex;
  flex-direction: column;
}
.contact-aside .aside-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 22px;
}
.contact-aside .expect-item { margin-bottom: 22px; }
.contact-aside .expect-item p { color: #AEB9C6; font-size: 14px; }
.contact-aside .expect-item strong { color: #fff; font-weight: 600; }
.aside-foot {
  margin-top: auto;
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.aside-foot .foot-label { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #6E7E8E; margin-bottom: 8px; }
.aside-foot a { display: inline-flex; align-items: center; gap: 9px; color: #fff; text-decoration: none; font-size: 19px; font-weight: 600; font-family: 'DM Sans', sans-serif; }
.aside-foot a:hover { color: var(--green); }
.aside-foot a svg { flex-shrink: 0; }
@media (max-width: 860px) {
  .contact-card { grid-template-columns: 1fr; border-radius: 14px; }
  .contact-form-panel { padding: 36px 28px 40px; }
  .contact-aside { padding: 36px 28px; }
}
@media (max-width: 768px) {
  .contact-grid { grid-template-columns: 1fr !important; gap: 40px; }
  .form-row { grid-template-columns: 1fr !important; }
}

@media (max-width: 900px) {
  .nav-right { display: none; }
  .nav-logo { position: absolute; left: 50%; transform: translateX(-50%); }
  .nav { position: relative; justify-content: space-between; }
}

/* ── GLOBAL OVERFLOW FIX ── */
body { overflow-x: hidden; }
* { box-sizing: border-box; }

/* ── COVERAGE GRID MOBILE ── */
@media (max-width: 768px) {
  .coverage-grid { grid-template-columns: 1fr 1fr !important; gap: 32px 20px; }
  .coverage-item svg { max-width: 80px; height: auto; }
  .section-sub { font-size: 15px !important; padding: 0 8px; }
  .hero-headline { font-size: 36px !important; }
  .hero-sub { font-size: 15px !important; padding: 0 8px; }
  .section-title { font-size: 28px !important; }
  .how-diagram { flex-wrap: wrap; gap: 12px; }
  .how-arrow { display: none; }
  .services-grid { grid-template-columns: 1fr !important; }
  .who-grid { grid-template-columns: 1fr 1fr !important; }
  .phone-section { grid-template-columns: 1fr !important; text-align: center; }
  .phone-caption.right-align { text-align: center; }
  .step-row { grid-template-columns: 1fr !important; }
  .big-stat-row { display:grid; grid-template-columns: repeat(3,1fr); gap:32px; text-align:center; }
  .footer-inner { grid-template-columns: 1fr 1fr !important; gap: 32px; }
  .btn-green-lg { padding: 14px 28px; font-size: 14px; width: auto; display: inline-block; }
}
@media (max-width: 480px) {
  .coverage-grid { grid-template-columns: 1fr !important; }
  .who-grid { grid-template-columns: 1fr !important; }
  .footer-inner { grid-template-columns: 1fr !important; }
  .hero-headline { font-size: 28px !important; }
  .section-title { font-size: 24px !important; }
  .how-node { flex: 0 0 100%; }
  .cert-hero-h { font-size: 26px !important; }
}

.training-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:28px;}
.tr-ic{width:54px;height:54px;border-radius:14px;background:#EEF2F6;border:1px solid #E0E7EF;display:flex;align-items:center;justify-content:center;color:#12263D;margin-bottom:18px;}
.tr-ic svg{width:27px;height:27px;stroke-width:1.6;}
.training-title{font-family:"Playfair Display",serif;font-size:18px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.training-body{font-size:14px;color:var(--ink-lt);font-weight:300;line-height:1.65;}

.big-stat-num{font-family:"Playfair Display",serif;font-size:52px;font-weight:700;color:var(--ink);letter-spacing:-.03em;line-height:1;display:block;}
.big-stat-label{font-size:14px;color:var(--ink-lt);font-weight:300;margin-top:8px;display:block;}

@media (max-width: 768px) {
  .training-grid { grid-template-columns: 1fr !important; }
  .training-card { padding: 20px; }
}
@media (max-width: 480px) {
  .training-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 768px) {
  .training-stat-band { grid-template-columns: 1fr !important; gap: 24px !important; }
}

@media (max-width: 768px) {
  .step-row-4 { grid-template-columns: 1fr 1fr !important; gap: 16px; }
  .team-grid-2 { grid-template-columns: 1fr !important; }
  .cta-band-inner { grid-template-columns: 1fr !important; gap: 24px !important; }
  .featured-blog-grid { grid-template-columns: 1fr !important; }
  .featured-blog-grid > div:first-child { min-height: 200px !important; border-right: none !important; border-bottom: 1px solid var(--rule); }
}
@media (max-width: 480px) {
  .step-row-4 { grid-template-columns: 1fr !important; }
}
/* ── Mobile typography (generous hierarchy) ── */
@media (max-width: 768px) {
  .hero-headline { font-size: 56px !important; line-height: 1.05; }
  .hero-sub { font-size: 18px !important; line-height: 1.6; padding: 0 16px; }
  .page-hero-h { font-size: 40px !important; }
  .page-hero-sub { font-size: 18px !important; line-height: 1.6; }
  .section-title { font-size: 34px !important; }
  .section-sub { font-size: 18px !important; line-height: 1.6; padding: 0 12px; }
  .two-col-text h2 { font-size: 30px !important; }
  .two-col-text p { font-size: 17px !important; line-height: 1.7; }
  .feature-list li { font-size: 16px !important; }
  .how-node-label { font-size: 16px !important; }
  .how-node-label strong { font-size: 18px !important; }
  .step-title { font-size: 21px !important; }
  .step-body, .blog-excerpt, .vendor-type-body, .training-body, .cert-step-body p { font-size: 16px !important; line-height: 1.65; }
  .blog-title { font-size: 21px !important; }
  .vendor-type-title { font-size: 17px !important; }
}
@media (max-width: 480px) {
  .hero-headline { font-size: 40px !important; }
  .page-hero-h { font-size: 32px !important; }
  .section-title { font-size: 28px !important; }
  .cert-hero-h { font-size: 30px !important; }
}

/* Port Security — program-at-a-glance spec list (on dark) */
.ps-glance { margin-top: 44px; border-top: 1px solid rgba(255,255,255,0.16); }
.ps-glance-row { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 20px 2px; border-bottom: 1px solid rgba(255,255,255,0.16); }
.ps-glance-k { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.55); font-weight: 500; }
.ps-glance-v { font-size: 19px; color: #FFFFFF; font-weight: 400; text-align: right; }
@media (max-width: 600px) { .ps-glance-row { flex-direction: column; gap: 6px; } .ps-glance-v { text-align: left; } }



/* Authoritative hero headline sizing (overrides legacy breakpoint values) */
.hero-headline{font-size:clamp(32px,6vw,72px)!important;text-wrap:balance;}

/* RaaS section: keep the bright cityscape but lift the copy for legibility */
.raas-how{position:relative;overflow:hidden;}
.raas-how::before{content:"";position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(760px,88%);height:118%;background:radial-gradient(ellipse 55% 50% at 50% 50%,#fff 0%,#fff 44%,rgba(255,255,255,.75) 62%,rgba(255,255,255,0) 82%);z-index:0;pointer-events:none;}
.raas-how>*{position:relative;z-index:1;}
.raas-how .section-sub{color:var(--ink);font-weight:400;}
.raas-how .section-title{color:var(--ink);}

/* Four-ways cards: Lemonade-style (plain icon, full-width button, benefit caption) */
.offer-grid{gap:28px;}
.offer-card{background:#fff;border:1px solid #EDF0F4;border-radius:20px;padding:44px 28px 32px;box-shadow:0 18px 42px -26px rgba(13,27,42,.28);transition:box-shadow .25s,transform .25s;}
.offer-card:hover{box-shadow:0 30px 60px -24px rgba(13,27,42,.34);transform:translateY(-4px);border-color:#EDF0F4;}
.offer-ic{width:auto;height:74px;background:none;border:none;border-radius:0;margin-bottom:20px;color:#3D5A75;}
.offer-ic svg{width:62px;height:62px;stroke-width:1.35;}
.offer-eyebrow{display:none;}
.offer-title{font-size:25px;margin-bottom:12px;}
.offer-desc{font-size:15px;margin-bottom:26px;}
.offer-link{width:100%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:15px 20px;border-radius:8px;gap:0;}
.offer-link span{display:none;}
.offer-note{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-lt);margin-top:16px;}

/* ============ DARK MODE ============ */
/* WorldSafe's foundational surface is navy. Dark mode leans into it:
   navy page, deeper "voice" bands, and architect's-drawing illustrations
   kept on a light blueprint plate so their ink stays legible. */

html[data-theme="dark"]{
  --green:   #16D98A;   /* brand green, a touch brighter for navy */
  --green-d: #34E098;   /* used as accent-text + button hover */
  --ink:     #FFFFFF;
  --ink-mid: #E4ECF4;
  --ink-lt:  #CBD8E5;
  --bg:      #0B1623;   /* primary navy surface */
  --gray:    #101E30;   /* elevated band (was the light-gray sections) */
  --gray2:   #18293E;
  --rule:    #25394F;
}
html[data-theme="dark"] body{ background: var(--bg); color: var(--ink); }
html[data-theme="dark"] .section-band{ background: var(--gray); }

/* meta wordmark + logo */
html[data-theme="dark"] .ws-world{ color:#EAF1F8; }
html[data-theme="dark"] .ws-safe { color:#4D8BFF; }

/* deeper "voice" bands so the dark panels still read distinct from surfaces */
html[data-theme="dark"] .section-dark,
html[data-theme="dark"] .cert-hero,
html[data-theme="dark"] .contact-aside{ background:#060D17; }
html[data-theme="dark"] .cert-hero::before{ opacity:.16; }
html[data-theme="dark"] .cert-hero::after{ background:radial-gradient(ellipse 52% 52% at 50% 50%,#060D17 0%,#060D17 50%,rgba(6,13,23,.72) 70%,rgba(6,13,23,0) 88%); }
html[data-theme="dark"] .cert-hero-h,html[data-theme="dark"] .cert-hero-sub{ text-shadow:none; }
html[data-theme="dark"] .step-box .step-body{ color:#F4F8FC; }
html[data-theme="dark"] .top-banner{ background:#0B2A57; }
html[data-theme="dark"] .top-banner:hover{ background:#0E3268; }

/* icon chips (svgs use currentColor, so recolor via the chip) */
html[data-theme="dark"] .offer-ic,
html[data-theme="dark"] .ec-ic,
html[data-theme="dark"] .tr-ic{
  background:#16273C; border-color:#27405A; color:#DCE7F2;
}
html[data-theme="dark"] .offer-card:hover{ border-color:#3A5170; box-shadow:0 18px 44px -20px rgba(0,0,0,.65); }
/* four-ways cards: dark surface (Lemonade restyle hardcodes #fff) */
html[data-theme="dark"] .offer-card{ background:#101E30; border-color:#25394F; box-shadow:0 18px 44px -26px rgba(0,0,0,.55); }
html[data-theme="dark"] .offer-ic{ background:none; border:none; color:#9FB6CC; }
html[data-theme="dark"] .offer-ic svg{ stroke:#9FB6CC; }
html[data-theme="dark"] .sched-illus{ mix-blend-mode:screen!important; filter:invert(1) hue-rotate(180deg) brightness(1.55) contrast(.9); opacity:.6; }
/* hero: swap the white readability halo/glow for a navy one on dark */
html[data-theme="dark"] .hero-content::before{ background:radial-gradient(ellipse 56% 50% at 50% 50%, var(--bg) 0%, var(--bg) 40%, rgba(11,22,35,0.55) 62%, rgba(11,22,35,0) 84%); }
html[data-theme="dark"] .hero-sub, html[data-theme="dark"] .hero-headline{ text-shadow:none; }
/* sections with hardcoded light inline backgrounds → dark surfaces */
html[data-theme="dark"] [style*="ECF1F8"]{ background:var(--gray) !important; }
/* #how holds a light JPG illustration — keep the section light in dark mode and pin text dark so the image blends */
html[data-theme="dark"] #how{ background:#fbfbfb !important; }
html[data-theme="dark"] #how .eyebrow-label{ color:var(--green-d); }
html[data-theme="dark"] #how .section-title{ color:#12263D; }
html[data-theme="dark"] #how .how-body-text{ color:#3D5A75; }
html[data-theme="dark"] .raas-how::before{ background:radial-gradient(ellipse 55% 50% at 50% 50%, var(--bg) 0%, var(--bg) 44%, rgba(11,22,35,0.6) 62%, rgba(11,22,35,0) 82%); }

/* findings + radio accents */
html[data-theme="dark"] .find-bub.accent{ background:rgba(22,217,138,.14); }
html[data-theme="dark"] .radio-item:hover{ background:rgba(22,217,138,.10); }
html[data-theme="dark"] .form-input::placeholder{ color:#5F7488; }
html[data-theme="dark"] #subscribe-email{ background:var(--gray2); color:var(--ink); }
html[data-theme="dark"] #subscribe-email::placeholder{ color:#5F7488; }

/* featured testimonial (was a white card on white) */
html[data-theme="dark"] .tm-section{ background:var(--bg); }
html[data-theme="dark"] .tm-card2{
  background:#101E30;
  box-shadow:0 2px 4px rgba(0,0,0,.35), 0 44px 90px -38px rgba(0,0,0,.8);
}
html[data-theme="dark"] .tm-quote2,
html[data-theme="dark"] .tm-name2{ color:var(--ink); }
html[data-theme="dark"] .tm-avatar2{ background:#16273C; color:#6AA0FF; }
html[data-theme="dark"] .tm-bg{ opacity:.16; }
html[data-theme="dark"] .tm-wordmark{ color:var(--ink); }
html[data-theme="dark"] .tm-toplogo2{ opacity:.92; }
html[data-theme="dark"] img[src$="abfs-logo.png"]{ content:url('assets/abfs-logo-white.png'); }
html[data-theme="dark"] img[src$="ccnc-logo.png"]{ content:url('assets/ccnc-logo-grey.png'); }
html[data-theme="dark"] .tm-arrow{ background:#16273C; border-color:var(--rule); color:var(--ink); box-shadow:0 2px 10px rgba(0,0,0,.4); }
html[data-theme="dark"] .tm-arrow:hover{ background:#0057FF; border-color:#0057FF; color:#fff; }
html[data-theme="dark"] .tm-dot{ background:#2A3F55; }
html[data-theme="dark"] .tm-dot:hover{ background:#3E556F; }
html[data-theme="dark"] .tm-dot.is-active{ background:#6AA0FF; }

/* shadows in dark want black, not navy */
html[data-theme="dark"] .contact-card{ box-shadow:0 30px 70px -34px rgba(0,0,0,.65); }

/* inline-styled light surfaces (stylesheet !important beats plain inline styles) */
html[data-theme="dark"] .blog-thumb{ background:#16273C !important; }
/* ── Blog category color system (keyed to filter taxonomy) ── */
.blog-thumb.cat-industries{ background:#EAF0FD !important; }
.blog-thumb.cat-services{ background:#E6F9F1 !important; }
.blog-thumb.cat-certification{ background:#FFF6E5 !important; }
.blog-thumb.cat-creators{ background:#F2ECFB !important; }
.blog-thumb.cat-news{ background:#EEF1F6 !important; }
.blog-thumb.cat-industries [stroke]{ stroke:#5080C0; }
.blog-thumb.cat-services [stroke]{ stroke:#2E8B5A; }
.blog-thumb.cat-certification [stroke]{ stroke:#C4833A; }
.blog-thumb.cat-creators [stroke]{ stroke:#7B5EA7; }
.blog-thumb.cat-news [stroke]{ stroke:#5E708A; }
html[data-theme="dark"] .blog-thumb.cat-industries{ background:#152A44 !important; }
html[data-theme="dark"] .blog-thumb.cat-services{ background:#12332A !important; }
html[data-theme="dark"] .blog-thumb.cat-certification{ background:#33291455 !important; }
html[data-theme="dark"] .blog-thumb.cat-creators{ background:#241C3A !important; }
html[data-theme="dark"] .blog-thumb.cat-news{ background:#1A2536 !important; }
html[data-theme="dark"] .blog-thumb.cat-industries [stroke]{ stroke:#8FB4E6; }
html[data-theme="dark"] .blog-thumb.cat-services [stroke]{ stroke:#5FD3A0; }
html[data-theme="dark"] .blog-thumb.cat-certification [stroke]{ stroke:#E0B36A; }
html[data-theme="dark"] .blog-thumb.cat-creators [stroke]{ stroke:#B79BE0; }
html[data-theme="dark"] .blog-thumb.cat-news [stroke]{ stroke:#9DB0C8; }
html[data-theme="dark"] [style*="EFF0F2"]{ background:var(--bg) !important; }
html[data-theme="dark"] [style*="EAEAEA"]{ background:#16273C !important; }
html[data-theme="dark"] .featured-blog-grid svg [stroke="#333"],
html[data-theme="dark"] .featured-blog-grid svg path[stroke="#333"]{ stroke:#5E7A95 !important; }
html[data-theme="dark"] .featured-blog-grid svg{ opacity:.42 !important; }

/* ── Light product panels: the architect line-art + product-UI mockups stay
   light on purpose (brand two-panel system: light info panels on navy), but
   read as deliberate, well-separated "screenshot" panels rather than raw blocks. */
html[data-theme="dark"] .ws-plate{
  background:#F1F5FA;
  border-radius:16px;
  padding:14px;
  box-shadow:0 0 0 1px rgba(120,150,184,.16), 0 26px 54px -30px rgba(0,0,0,.9);
}
/* self-contained product cutouts (risk phone PNG) get depth so they sit on navy
   instead of floating as harsh bright shapes */
html[data-theme="dark"] .phone-section>img{
  filter:drop-shadow(0 22px 44px rgba(0,0,0,.55));
}
/* ── How-it-works: blend the score card + line-art into the navy ── */
html[data-theme="dark"] .score-mini{ background:#101E30; box-shadow:0 2px 4px rgba(0,0,0,.4), 0 28px 56px -30px rgba(0,0,0,.85); }
html[data-theme="dark"] .sm-head{ background:#0C1727; }
html[data-theme="dark"] .sm-bar-ph{ background:#2E4256; }
html[data-theme="dark"] .sm-track{ background:#1B2B3E; }
/* line-art + product illustrations read as ice-blue blueprint on navy (no light plate) */
html[data-theme="dark"] .ws-blueprint [fill="#FAFBFC"]{ fill:#142433; }
html[data-theme="dark"] .ws-blueprint [fill="#FFFFFF"]{ fill:#18293B; }
html[data-theme="dark"] .ws-blueprint [fill="#fff"]{ fill:#18293B; }
html[data-theme="dark"] .ws-blueprint [fill="#E6F9F1"]{ fill:rgba(22,217,138,.16); }
html[data-theme="dark"] .ws-blueprint [fill="#F0F3F7"]{ fill:#1C2E42; }
html[data-theme="dark"] .ws-blueprint [fill="#CAD2DD"]{ fill:#33495F; }
html[data-theme="dark"] .ws-blueprint [fill="#D7DEE7"]{ fill:#33495F; }
html[data-theme="dark"] .ws-blueprint [fill="#E3E9F0"]{ fill:#2A3D52; }
html[data-theme="dark"] .ws-blueprint [fill="#12263D"]{ fill:#EAF1F8; }
html[data-theme="dark"] .ws-blueprint [fill="#00A860"]{ fill:var(--green); }
html[data-theme="dark"] .ws-blueprint [fill="#00C97A"]{ fill:var(--green); }
html[data-theme="dark"] .ws-blueprint [fill="#9CA7B5"]{ fill:#8AA0B6; }
html[data-theme="dark"] .ws-blueprint [fill="#7C8B9C"]{ fill:#8AA0B6; }
html[data-theme="dark"] .ws-blueprint [fill="#ADB7C3"]{ fill:#6E8BA8; }
html[data-theme="dark"] .ws-blueprint [stroke="#ADB7C3"]{ stroke:#5E7A95; }
html[data-theme="dark"] .ws-blueprint [stroke="#DDE3EB"]{ stroke:#33495F; }
html[data-theme="dark"] .ws-blueprint [stroke="#D7DEE7"]{ stroke:#33495F; }
html[data-theme="dark"] .ws-blueprint [stroke="#CAD2DD"]{ stroke:#3E556F; }
html[data-theme="dark"] .ws-blueprint [stroke="#C1CAD5"]{ stroke:#33495F; }
html[data-theme="dark"] .ws-blueprint [stroke="#E7ECF3"]{ stroke:#25394F; }
html[data-theme="dark"] .ws-blueprint [stroke="#EEF2F6"]{ stroke:#1E3047; }
html[data-theme="dark"] .ws-blueprint [stroke="#D3DBE4"]{ stroke:#3E556F; }
html[data-theme="dark"] .ws-blueprint [stroke="#B0DFC8"]{ stroke:rgba(22,217,138,.4); }
html[data-theme="dark"] .ws-blueprint [stroke="#00C97A"]{ stroke:var(--green); }
html[data-theme="dark"] .ws-blueprint [fill="white"]{ fill:#18293B; }
html[data-theme="dark"] .ws-blueprint [fill="#ECF0F6"]{ fill:#142433; }
html[data-theme="dark"] .ws-blueprint [fill="#E0E6EE"]{ fill:#1C2E42; }
html[data-theme="dark"] .ws-blueprint [fill="#F0FDF7"]{ fill:rgba(22,217,138,.10); }
html[data-theme="dark"] .ws-blueprint [fill="#C8F0E0"]{ fill:rgba(22,217,138,.22); }
html[data-theme="dark"] .ws-blueprint [stroke="#12263D"]{ stroke:#8EA6BD; }
html[data-theme="dark"] .ws-blueprint [stroke="#ECF0F6"]{ stroke:#25394F; }
html[data-theme="dark"] .ws-blueprint [stroke="#E0E6EE"]{ stroke:#33495F; }

/* testimonial partner logo is a WHITE asset; the light-mode rule forces it black
   (brightness(0)) which vanishes on the dark card — keep it white in dark mode */
html[data-theme="dark"] .tm-toplogo{ filter:brightness(0) invert(1); opacity:.72; }
/* AlertMedia client logo is a colored asset on transparent; knock it out to white on navy */
html[data-theme="dark"] img[src$="alertmedia-logo.png"]{ content:url('assets/alertmedia-logo-white.png'); }
/* RaaS comparison on navy */
html[data-theme="dark"] .cmp-check{ background:rgba(91,140,255,.16); color:#7AA2FF; }
html[data-theme="dark"] .cmp-check-g{ background:rgba(22,217,138,.16); color:var(--green); }
html[data-theme="dark"] .col-adv{ background:rgba(91,140,255,.10); }

/* ── Blueprint plate: keep architect's-drawing illustrations legible ── */

/* ── Nighttime city scenes (swap raster line-art to night-blueprint renders) ── */
/* These read as the same architect's drawing after dusk: navy night sky,
   ice-blue linework, green certified check preserved. They replace the
   light-plate treatment for the big raster cityscapes in dark mode. */
html[data-theme="dark"] .hero-illus-row{
  --hero-illus-img: url('assets/hero-cityscape-nocloud-night.png');
}
html[data-theme="dark"] .hero-cloud-l{ background-image:url('assets/hero-cloud-l-night.png'); }
html[data-theme="dark"] .hero-cloud-c{ background-image:url('assets/hero-cloud-c-night.png'); }
html[data-theme="dark"] .hero-cloud-r{ background-image:url('assets/hero-cloud-r-night.png'); }
html[data-theme="dark"] .smoke{ background:radial-gradient(circle, rgba(168,192,214,.3), rgba(168,192,214,0) 68%); }
/* dark-mode trust logos: invert dark-ink marks to light */
html[data-theme="dark"] .trust-logo-un{ filter:brightness(0) invert(1); opacity:.55; }
html[data-theme="dark"] .trust-logos a:hover .trust-logo-un{ opacity:.8; }
html[data-theme="dark"] .trust-logo-npr{ filter:brightness(0) invert(1); opacity:.72; }
html[data-theme="dark"] .trust-logo-bh{ filter:brightness(0) invert(1); opacity:.72; }
html[data-theme="dark"] .tm-bg{ content:url('assets/cityscape-strip-night.png'); opacity:.5; }
html[data-theme="dark"] img[src$="certified-apply-bg.jpg"]{ content:url('assets/certified-apply-bg-night.png'); }
html[data-theme="dark"] img[src$="risk-score-phone-cut.png"]{ content:url('assets/risk-score-phone-cut-night.png'); }
html[data-theme="dark"] img[src$="creator-snapshot.png"]{ content:url('assets/creator-snapshot-night.png'); }
html[data-theme="dark"] img[src$="certified-directory.png"]{ content:url('assets/certified-directory-night.png'); }
html[data-theme="dark"] .raas-how{
  background:linear-gradient(rgba(8,17,31,.62),rgba(8,17,31,.72)),
             url('assets/raas-cityscape-night.png') center / cover no-repeat !important;
}

/* ============ THEME TOGGLE ============ */
.theme-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:5px;
  border:1px solid var(--rule); background:transparent;
  color:var(--ink-mid); cursor:pointer; flex-shrink:0; padding:0;
  transition:color .2s, border-color .2s, background .2s;
}
.theme-toggle:hover{ color:var(--ink); border-color:var(--ink-lt); }
.theme-toggle svg{ width:18px; height:18px; display:block; }
.theme-toggle .ic-sun{ display:none; }
html[data-theme="dark"] .theme-toggle .ic-moon{ display:none; }
html[data-theme="dark"] .theme-toggle .ic-sun{ display:block; }

/* mobile-menu variant */
.theme-toggle-row{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  background:transparent; border:none; border-bottom:1px solid var(--rule);
  padding:13px 0; cursor:pointer; font-family:'DM Sans',sans-serif;
  font-size:16px; font-weight:400; color:var(--ink);
}
.theme-toggle-row .ttr-label::after{ content:'Dark mode'; }
html[data-theme="dark"] .theme-toggle-row .ttr-label::after{ content:'Light mode'; }
.theme-toggle-row svg{ width:20px; height:20px; color:var(--ink-mid); }
.theme-toggle-row .ic-sun{ display:none; }
html[data-theme="dark"] .theme-toggle-row .ic-moon{ display:none; }
html[data-theme="dark"] .theme-toggle-row .ic-sun{ display:block; }

.how-diagram-img{display:block;width:100%;max-width:1120px;height:auto;margin:44px auto 0;}


.article-video{ position:relative; width:100%; aspect-ratio:16/9; border-radius:16px; overflow:hidden; background:#0B1623; margin:28px 0 8px; box-shadow:0 24px 60px -24px rgba(11,22,35,.4); }
.article-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* link defaults */
.section-sub a, .article-body p a, .article-body li a{ color:var(--green-d); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
.section-sub a:hover, .article-body p a:hover, .article-body li a:hover{ color:var(--green); }


button.btn-green-lg{ font-family:'DM Sans',sans-serif; border:none; cursor:pointer; }
button.btn-green-lg:disabled{ opacity:.55; cursor:default; transform:none; box-shadow:none; }

.article-fig{ margin:32px 0 12px; }
.article-fig img{ width:100%; display:block; border:1px solid var(--rule); border-radius:16px; background:#F7F8F9; }
.article-fig figcaption{ font-size:13.5px; color:var(--ink-lt); font-weight:300; line-height:1.6; margin-top:12px; }

/* exec & creator capability */
.ec-lede{ max-width:780px; margin:0 auto; }
.ec-lede-h{ font-family:"Playfair Display",serif; font-size:40px; font-weight:700; letter-spacing:-.02em; line-height:1.18; color:var(--ink); margin-bottom:22px; }
.ec-lede p{ font-size:16.5px; color:var(--ink-lt); font-weight:300; line-height:1.78; margin-bottom:18px; }
.ec-lede-claim{ font-family:"Playfair Display",serif; font-size:22px; font-weight:700; color:var(--ink) !important; line-height:1.4; margin-top:26px !important; }
.section-dark .ec-lede-h{ color:#fff; }
.section-dark .ec-lede p{ color:#C7D3E0; }
.section-dark .ec-lede-claim{ color:#fff !important; }
.ec-facts{ max-width:780px; margin:44px auto 0; display:flex; flex-direction:column; }
.ec-fact{ display:grid; grid-template-columns:200px 1fr; gap:28px; padding:20px 0; border-top:1px solid var(--rule); align-items:baseline; }
.ec-fact:last-child{ border-bottom:1px solid var(--rule); }
.ec-fact-l{ font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--green-d); }
.ec-fact-v{ font-size:15.5px; color:var(--ink-mid); font-weight:300; line-height:1.6; }
@media(max-width:700px){ .ec-fact{ grid-template-columns:1fr; gap:8px; } }
.ec-mini{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; }
.ec-mini li{ font-size:13.5px; color:var(--ink-lt); font-weight:300; line-height:1.5; padding:8px 0 8px 14px; border-top:1px solid var(--rule); position:relative; }
.ec-mini li:before{ content:""; position:absolute; left:0; top:15px; width:5px; height:5px; border-radius:50%; background:var(--green); }
.ec-framework{ display:flex; flex-wrap:wrap; gap:6px; margin-top:18px; }
.ec-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:18px; }
.ec-chips span{ font-size:12px; color:var(--ink-lt); font-weight:300; background:var(--gray); border-radius:4px; padding:5px 9px; }
.ec-framework span{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mid); border:1px solid var(--rule); border-radius:4px; padding:6px 9px; }
.ec-domains{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:14px; overflow:hidden; max-width:1140px; margin:48px auto 0; text-align:left; }
.ec-domain{ background:var(--bg); padding:30px 26px; }
.ec-domain-ic{ width:34px; height:34px; color:var(--green-d); margin-bottom:16px; }
.ec-domain-ic svg{ width:100%; height:100%; display:block; }
.ec-domain-t{ font-family:"Playfair Display",serif; font-size:18px; font-weight:700; color:var(--ink); line-height:1.25; margin-bottom:10px; }
.ec-domain-b{ font-size:13.5px; color:var(--ink-lt); font-weight:300; line-height:1.65; }
@media(max-width:980px){ .ec-domains{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .ec-domains{ grid-template-columns:1fr; } }
.ec-closer{ font-family:"Playfair Display",serif; font-size:20px; font-weight:700; color:var(--ink); margin-top:44px; }

/* article author bio — reuses the .team-* person component */
.author-bio{ border-top:1px solid var(--rule); margin-top:52px; padding-top:32px; }
.author-bio-l{ font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-lt); margin-bottom:16px; }
.author-bio p{ font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.7; margin-bottom:14px; }

/* executive protection article figures */
.ep-fig{ margin:34px 0 14px; border:1px solid var(--rule); border-radius:14px; padding:28px 26px; background:var(--gray); }
.ep-fig-h{ font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-lt); margin-bottom:20px; }
.ep-fig figcaption{ font-size:13.5px; color:var(--ink-lt); font-weight:300; line-height:1.65; margin-top:20px; padding-top:16px; border-top:1px solid var(--rule); }
.ep-cov{ display:flex; flex-direction:column; gap:20px; }
.ep-cov-row{ display:grid; grid-template-columns:150px 1fr; gap:20px; align-items:start; }
.ep-cov-l{ font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mid); padding-top:5px; }
.ep-cov-bars{ display:flex; flex-wrap:wrap; gap:7px; }
.ep-bar{ font-size:13px; font-weight:300; color:var(--ink-mid); background:var(--bg); border:1px solid var(--rule); border-radius:100px; padding:6px 13px; }
.ep-bar.on{ background:#E6F9F1; border-color:#A8E6C9; color:#0A7A4E; }
@media(max-width:640px){ .ep-cov-row{ grid-template-columns:1fr; gap:10px; } }
.ep-four{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:10px; overflow:hidden; }
.ep-f{ background:var(--bg); padding:20px 18px; }
.ep-f-n{ font-family:"Playfair Display",serif; font-size:17px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.ep-f p{ font-size:13px; color:var(--ink-lt); font-weight:300; line-height:1.6; margin:0; }
@media(max-width:820px){ .ep-four{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .ep-four{ grid-template-columns:1fr; } }
.ep-four-out{ display:flex; flex-direction:column; gap:8px; margin-top:18px; }
.ep-four-out span{ font-size:13px; color:var(--ink-lt); font-weight:300; padding:9px 14px; background:var(--bg); border:1px solid var(--rule); border-radius:8px; }
.ep-four-out span.on{ color:var(--ink); font-weight:500; border-color:#A8E6C9; background:#E6F9F1; }
.ep-pattern{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ep-pattern > span{ font-size:13px; font-weight:300; color:var(--ink-mid); background:var(--bg); border:1px solid var(--rule); border-radius:100px; padding:6px 13px; }
.ep-pattern-out{ width:100%; margin-top:14px; padding:14px 18px; border-radius:10px; background:var(--ink); color:#fff; font-family:"Playfair Display",serif; font-size:17px; font-weight:700; }
.ep-il{ margin:34px 0 14px; }
.ep-il img{ width:100%; max-width:560px; display:block; margin:0 auto; }
.ep-il figcaption{ font-size:13.5px; color:var(--ink-lt); font-weight:300; line-height:1.65; margin-top:16px; text-align:center; max-width:640px; margin-left:auto; margin-right:auto; }
html[data-theme="dark"] .ep-fig{ background:var(--panel,#0E1C2E); }
html[data-theme="dark"] .ep-bar, html[data-theme="dark"] .ep-f, html[data-theme="dark"] .ep-four-out span, html[data-theme="dark"] .ep-pattern > span{ background:#0B1623; }
html[data-theme="dark"] .ep-pattern-out{ background:var(--green); color:#0B1623; }

/* downloadable resource block */
.res-row{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:minmax(300px,440px) 1fr; gap:56px; align-items:center; }
.res-cover{ display:block; border:1px solid var(--rule); border-radius:16px; overflow:hidden; background:#F7F8F9; box-shadow:0 12px 32px -16px rgba(18,38,61,.35); transition:transform .2s, box-shadow .2s; }
.res-cover:hover{ transform:translateY(-3px); box-shadow:0 20px 44px -18px rgba(18,38,61,.45); }
.res-cover img{ width:100%; display:block; }
.res-h{ font-family:"Playfair Display",serif; font-size:40px; font-weight:700; letter-spacing:-.025em; line-height:1.12; color:var(--ink); margin:10px 0 16px; }
.res-p{ font-size:17px; color:var(--ink-mid); font-weight:300; line-height:1.7; margin-bottom:20px; max-width:56ch; }
.res-list{ list-style:none; margin:0 0 26px; padding:0; }
.res-list li{ font-size:15.5px; color:var(--ink-mid); font-weight:300; line-height:1.5; padding:9px 0 9px 22px; border-top:1px solid var(--rule); position:relative; }
.res-list li:last-child{ border-bottom:1px solid var(--rule); }
.res-list li:before{ content:""; position:absolute; left:0; top:17px; width:6px; height:6px; border-radius:50%; background:var(--green); }
.res-cta{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.res-meta{ font-size:13.5px; color:var(--ink-lt); font-weight:300; }
@media(max-width:1100px){ .res-row{ grid-template-columns:1fr; gap:32px; max-width:620px; } .res-h{ font-size:32px; } }

/* global link defaults — keeps user-added links off browser blue */
a{ color:var(--green-d); }
a:hover{ color:var(--green); }
.nav-links-left a, .nav-logo a, .nav-account, .nav-link-blog, .btn-green, .btn-green-lg, .btn-outline-lg, .svc-btn, .footer-links a, .res-cover, .team-linkedin, .article-cat a{ color:inherit; }
.btn-green, .btn-green-lg, .svc-btn{ color:#fff; }
.btn-green:hover, .btn-green-lg:hover, .svc-btn:hover{ color:#fff; }

/* guides & webinars */
.gw-head{ max-width:1080px; margin:0 auto 28px; }
.gw-h{ font-family:'Playfair Display',serif; font-size:44px; font-weight:700; letter-spacing:-.025em; line-height:1.1; color:var(--ink); margin-top:8px; }
.gw-webinar{ max-width:1080px; margin:0 auto; background:var(--bg); border:1px solid var(--rule); border-radius:20px; display:grid; grid-template-columns:230px 1fr; overflow:hidden; }
.gw-when{ background:#0B1623; color:#fff; padding:32px 28px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.gw-badge{ font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#0B1623; background:var(--green); border-radius:100px; padding:6px 13px; }
.gw-date{ display:flex; flex-direction:column; line-height:1; }
.gw-mon{ font-size:15px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--green); }
.gw-day{ font-family:'Playfair Display',serif; font-size:66px; font-weight:700; letter-spacing:-.04em; color:#fff; margin-top:4px; }
.gw-time{ font-size:14px; color:#C7D3E0; font-weight:300; }
.gw-detail{ padding:34px 36px; }
.gw-title{ font-family:'Playfair Display',serif; font-size:30px; font-weight:700; letter-spacing:-.02em; line-height:1.18; color:var(--ink); margin-bottom:12px; }
.gw-sub{ font-size:16.5px; color:var(--ink-mid); font-weight:300; line-height:1.7; margin-bottom:20px; max-width:64ch; }
.gw-list{ list-style:none; margin:0 0 22px; padding:0; }
.gw-list li{ font-size:15.5px; color:var(--ink-mid); font-weight:300; line-height:1.5; padding:8px 0 8px 20px; border-top:1px solid var(--rule); position:relative; }
.gw-list li:last-child{ border-bottom:1px solid var(--rule); }
.gw-list li:before{ content:""; position:absolute; left:0; top:16px; width:5px; height:5px; border-radius:50%; background:var(--green); }
.gw-who{ font-size:15px; color:var(--ink-mid); font-weight:400; margin-bottom:22px; }
.gw-who span{ color:var(--ink-lt); font-weight:300; }
.gw-link{ font-size:15px; font-weight:500; color:var(--green-d); text-decoration:none; }
.gw-link:hover{ color:var(--green); }
@media(max-width:820px){ .gw-webinar{ grid-template-columns:1fr; } .gw-when{ flex-direction:row; align-items:center; gap:20px; padding:22px 26px; } .gw-day{ font-size:44px; } .gw-detail{ padding:26px 24px; } .gw-h{ font-size:34px; } }
.gw-grid{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.gw-card{ display:block; background:var(--bg); border:1px solid var(--rule); border-radius:16px; padding:26px 26px 22px; text-decoration:none; transition:border-color .2s, transform .2s, box-shadow .2s; }
.gw-card:hover{ border-color:var(--green); transform:translateY(-2px); box-shadow:0 14px 30px -18px rgba(18,38,61,.4); }
.gw-kind{ font-size:11.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--green-d); }
.gw-card h3{ font-family:'Playfair Display',serif; font-size:23px; font-weight:700; letter-spacing:-.02em; line-height:1.22; color:var(--ink); margin:10px 0 8px; }
.gw-card p{ font-size:15.5px; color:var(--ink-mid); font-weight:300; line-height:1.6; margin-bottom:14px; }
.gw-go{ font-size:14.5px; font-weight:500; color:var(--green-d); }
@media(max-width:760px){ .gw-grid{ grid-template-columns:1fr; } }
html[data-theme="dark"] .gw-webinar, html[data-theme="dark"] .gw-card{ background:var(--bg); }

/* resources dropdown */
.nav-drop{ position:relative; }
.nav-drop-btn{ display:inline-flex; align-items:center; gap:6px; background:none; border:none; padding:0; cursor:pointer; font-family:'DM Sans',sans-serif; font-size:14px; font-weight:400; color:var(--ink-mid); transition:color .2s; }
.nav-drop-btn svg{ width:10px; height:7px; transition:transform .2s; }
.nav-drop:hover .nav-drop-btn, .nav-drop:focus-within .nav-drop-btn{ color:var(--ink); }
.nav-drop:hover .nav-drop-btn svg, .nav-drop:focus-within .nav-drop-btn svg{ transform:rotate(180deg); }
.nav-drop-panel{ position:absolute; top:100%; left:-20px; margin-top:14px; min-width:230px; background:var(--bg); border:1px solid var(--rule); border-radius:14px; box-shadow:0 18px 40px -18px rgba(18,38,61,.45); padding:18px 8px 10px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .18s, transform .18s, visibility .18s; z-index:120; }
.nav-drop:hover .nav-drop-panel, .nav-drop:focus-within .nav-drop-panel{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-drop-panel:before{ content:""; position:absolute; top:-14px; left:0; right:0; height:14px; }
.nav-drop-label{ font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-lt); padding:0 16px 10px; }
.nav-drop-panel a{ display:block; padding:10px 16px; border-radius:8px; font-size:15px; font-weight:400; color:var(--ink-mid); text-decoration:none; transition:background .15s, color .15s; }
.nav-drop-panel a:hover{ background:var(--gray); color:var(--ink); }
@media(max-width:900px){ .nav-drop{ display:none; } }
