*, *::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); }.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%); }.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; } }
.hero:has(.hero-video) .hero-illus-row{ opacity:0; }
@media(prefers-reduced-motion:reduce){ .hero-video{ display:none; } .hero:has(.hero-video) .hero-illus-row{ opacity:.92; } }
@media(max-width:760px){ .hero-video{ display:none; } .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; }
@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-cta-row .btn-outline-lg { white-space:nowrap; background:transparent; border-color:transparent; padding-left:20px; padding-right:20px; color:var(--ink-mid); text-decoration:none; }
.hero-cta-row .btn-outline-lg:hover { background:transparent; border-color:transparent; color:var(--ink); text-decoration:underline; text-underline-offset:4px; transform:none; }
.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 {
  display: flex;
  flex-direction: column;
  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;
  margin-top: auto;
  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--culture .ph-illus{ background-image:url('assets/security-culture-hero.png'); background-size:100% auto; background-position:50% 100%; }
.page-hero--culture{ min-height:min(700px,78vh); }
.page-hero--convergence .ph-illus{ background-image:url('assets/convergence-hero.png'); background-size:126% auto; background-position:50% 100%; }
.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;}
.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;}
@media(max-width:760px){.event-cta{padding-bottom:190px;}}
@media(max-width:760px){.ind-cta-illus{padding-bottom:180px;}}
.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; }
/* light-band variant: two panels, centered, dark text on off-white */
.ev-raas-row--light{ grid-template-columns:repeat(2,1fr); gap:24px; max-width:840px; margin-left:auto; margin-right:auto; }
.ev-raas-row--light .ev-raas{ background:var(--bg); border:1px solid var(--rule); border-radius:4px; padding:30px 32px; text-align:left; }
.ev-raas-row--light .ev-raas-h{ color:var(--ink); }
.ev-raas-row--light .ev-raas-p{ color:var(--ink-mid); }
.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; }
  .ev-raas-row--light{ 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-ico { width:30px; height:30px; color:var(--green-d); margin-bottom:18px; }
.step-ico svg { width:100%; height:100%; display:block; }
.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; }
@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:1080px){
  .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; }
@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;}

/* ── 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; }

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

/* ── Nighttime city scenes (swap raster line-art to night-blueprint renders) ── */
.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; }

/* 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; } }

/* 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:1080px){ .nav-drop{ display:none; } }

/* certified partners */
.pc-wrap{ max-width:1180px; margin:0 auto; }
.pc-filters{ display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin-bottom:20px; }
.pc-chip{ display:inline-flex; align-items:center; gap:8px; font-family:'DM Sans',sans-serif; font-size:13.5px; font-weight:400; color:var(--ink-mid); background:var(--bg); border:1px solid var(--rule); border-radius:2px; padding:8px 14px; cursor:pointer; transition:border-color .12s,color .12s,background .12s; }
.pc-chip i{ width:8px; height:8px; border-radius:50%; flex:0 0 auto; }
.pc-chip span{ font-size:11.5px; font-weight:500; color:var(--ink-lt); }
.pc-chip:hover{ border-color:var(--ink-mid); color:var(--ink); }
.pc-chip.on{ background:var(--ink); border-color:var(--ink); color:#fff; }
.pc-chip.on span{ color:rgba(255,255,255,.55); }
.pc-count{ text-align:center; font-size:13.5px; color:var(--ink-lt); font-weight:300; margin-bottom:30px; }
.pc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:start; }
@media(max-width:1000px){ .pc-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:660px){ .pc-grid{ grid-template-columns:1fr; } }
.pc{ background:var(--bg); border:1px solid var(--rule); border-top:3px solid var(--rule); border-radius:2px; padding:20px; transition:border-color .15s, box-shadow .15s; }
.pc:hover{ box-shadow:0 12px 26px -20px rgba(18,38,61,.38); }
.pc-top{ display:flex; align-items:flex-start; gap:12px; }
.pc-mark{ flex:0 0 auto; width:38px; height:38px; border-radius:2px; display:flex; align-items:center; justify-content:center; }
.pc-ico{ width:21px; height:21px; }
.pc-id{ min-width:0; }
.pc-n{ font-size:17px; font-weight:500; letter-spacing:-.01em; color:var(--ink); line-height:1.28; }
.pc-u{ font-size:13px; color:var(--ink-lt); font-weight:300; text-decoration:none; display:inline-block; margin-top:2px; }
.pc-u:hover{ color:var(--green-d); text-decoration:underline; }
.pc-aka{ font-size:12.5px; color:var(--ink-lt); font-weight:300; line-height:1.45; margin:11px 0 0; }
.pc-tags{ display:flex; flex-wrap:wrap; gap:5px; margin-top:14px; }
.pc-tag{ display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:400; border-radius:2px; padding:5px 9px; line-height:1.3; }
.pc-tag-i{ width:13px; height:13px; flex:0 0 auto; }
.pc-empty{ text-align:center; padding:56px 0; font-size:16px; color:var(--ink-lt); font-weight:300; }
.pc[data-k="access"]{ border-top-color:#5080C0; }
.pc[data-k="access"]:hover{ border-color:#5080C0; border-top-color:#5080C0; }
.pc[data-k="access"] .pc-mark{ background:#EFF4FB; color:#5080C0; }
.pc-tag[data-k="access"]{ background:#EFF4FB; color:#5080C0; }
.pc-chip[data-k="access"] i{ background:#5080C0; }
.pc-chip[data-k="access"]:hover{ border-color:#5080C0; color:#5080C0; }
.pc-chip[data-k="access"].on{ background:#5080C0; border-color:#5080C0; color:#fff; }
.pc-chip[data-k="access"].on i{ background:#fff; }
.pc[data-k="accessories"]{ border-top-color:#C4833A; }
.pc[data-k="accessories"]:hover{ border-color:#C4833A; border-top-color:#C4833A; }
.pc[data-k="accessories"] .pc-mark{ background:#F8F4EF; color:#C4833A; }
.pc-tag[data-k="accessories"]{ background:#F8F4EF; color:#C4833A; }
.pc-chip[data-k="accessories"] i{ background:#C4833A; }
.pc-chip[data-k="accessories"]:hover{ border-color:#C4833A; color:#C4833A; }
.pc-chip[data-k="accessories"].on{ background:#C4833A; border-color:#C4833A; color:#fff; }
.pc-chip[data-k="accessories"].on i{ background:#fff; }
.pc[data-k="alarm"]{ border-top-color:#B04040; }
.pc[data-k="alarm"]:hover{ border-color:#B04040; border-top-color:#B04040; }
.pc[data-k="alarm"] .pc-mark{ background:#FBF0F0; color:#B04040; }
.pc-tag[data-k="alarm"]{ background:#FBF0F0; color:#B04040; }
.pc-chip[data-k="alarm"] i{ background:#B04040; }
.pc-chip[data-k="alarm"]:hover{ border-color:#B04040; color:#B04040; }
.pc-chip[data-k="alarm"].on{ background:#B04040; border-color:#B04040; color:#fff; }
.pc-chip[data-k="alarm"].on i{ background:#fff; }
.pc[data-k="blast"]{ border-top-color:#7B5EA7; }
.pc[data-k="blast"]:hover{ border-color:#7B5EA7; border-top-color:#7B5EA7; }
.pc[data-k="blast"] .pc-mark{ background:#F5F2F8; color:#7B5EA7; }
.pc-tag[data-k="blast"]{ background:#F5F2F8; color:#7B5EA7; }
.pc-chip[data-k="blast"] i{ background:#7B5EA7; }
.pc-chip[data-k="blast"]:hover{ border-color:#7B5EA7; color:#7B5EA7; }
.pc-chip[data-k="blast"].on{ background:#7B5EA7; border-color:#7B5EA7; color:#fff; }
.pc-chip[data-k="blast"].on i{ background:#fff; }
.pc[data-k="comms"]{ border-top-color:#2E8B5A; }
.pc[data-k="comms"]:hover{ border-color:#2E8B5A; border-top-color:#2E8B5A; }
.pc[data-k="comms"] .pc-mark{ background:#EFF8F4; color:#2E8B5A; }
.pc-tag[data-k="comms"]{ background:#EFF8F4; color:#2E8B5A; }
.pc-chip[data-k="comms"] i{ background:#2E8B5A; }
.pc-chip[data-k="comms"]:hover{ border-color:#2E8B5A; color:#2E8B5A; }
.pc-chip[data-k="comms"].on{ background:#2E8B5A; border-color:#2E8B5A; color:#fff; }
.pc-chip[data-k="comms"].on i{ background:#fff; }
.pc[data-k="crisis"]{ border-top-color:#C05A2E; }
.pc[data-k="crisis"]:hover{ border-color:#C05A2E; border-top-color:#C05A2E; }
.pc[data-k="crisis"] .pc-mark{ background:#FBF2ED; color:#C05A2E; }
.pc-tag[data-k="crisis"]{ background:#FBF2ED; color:#C05A2E; }
.pc-chip[data-k="crisis"] i{ background:#C05A2E; }
.pc-chip[data-k="crisis"]:hover{ border-color:#C05A2E; color:#C05A2E; }
.pc-chip[data-k="crisis"].on{ background:#C05A2E; border-color:#C05A2E; color:#fff; }
.pc-chip[data-k="crisis"].on i{ background:#fff; }
.pc[data-k="detection"]{ border-top-color:#3E7A9E; }
.pc[data-k="detection"]:hover{ border-color:#3E7A9E; border-top-color:#3E7A9E; }
.pc[data-k="detection"] .pc-mark{ background:#EDF5F9; color:#3E7A9E; }
.pc-tag[data-k="detection"]{ background:#EDF5F9; color:#3E7A9E; }
.pc-chip[data-k="detection"] i{ background:#3E7A9E; }
.pc-chip[data-k="detection"]:hover{ border-color:#3E7A9E; color:#3E7A9E; }
.pc-chip[data-k="detection"].on{ background:#3E7A9E; border-color:#3E7A9E; color:#fff; }
.pc-chip[data-k="detection"].on i{ background:#fff; }
.pc[data-k="guard"]{ border-top-color:#4A6FA5; }
.pc[data-k="guard"]:hover{ border-color:#4A6FA5; border-top-color:#4A6FA5; }
.pc[data-k="guard"] .pc-mark{ background:#EFF3FA; color:#4A6FA5; }
.pc-tag[data-k="guard"]{ background:#EFF3FA; color:#4A6FA5; }
.pc-chip[data-k="guard"] i{ background:#4A6FA5; }
.pc-chip[data-k="guard"]:hover{ border-color:#4A6FA5; color:#4A6FA5; }
.pc-chip[data-k="guard"].on{ background:#4A6FA5; border-color:#4A6FA5; color:#fff; }
.pc-chip[data-k="guard"].on i{ background:#fff; }
.pc[data-k="surveillance"]{ border-top-color:#8A6D3B; }
.pc[data-k="surveillance"]:hover{ border-color:#8A6D3B; border-top-color:#8A6D3B; }
.pc[data-k="surveillance"] .pc-mark{ background:#F8F5EE; color:#8A6D3B; }
.pc-tag[data-k="surveillance"]{ background:#F8F5EE; color:#8A6D3B; }
.pc-chip[data-k="surveillance"] i{ background:#8A6D3B; }
.pc-chip[data-k="surveillance"]:hover{ border-color:#8A6D3B; color:#8A6D3B; }
.pc-chip[data-k="surveillance"].on{ background:#8A6D3B; border-color:#8A6D3B; color:#fff; }
.pc-chip[data-k="surveillance"].on i{ background:#fff; }
.pc[data-k="tracking"]{ border-top-color:#3D8C8C; }
.pc[data-k="tracking"]:hover{ border-color:#3D8C8C; border-top-color:#3D8C8C; }
.pc[data-k="tracking"] .pc-mark{ background:#EDF7F7; color:#3D8C8C; }
.pc-tag[data-k="tracking"]{ background:#EDF7F7; color:#3D8C8C; }
.pc-chip[data-k="tracking"] i{ background:#3D8C8C; }
.pc-chip[data-k="tracking"]:hover{ border-color:#3D8C8C; color:#3D8C8C; }
.pc-chip[data-k="tracking"].on{ background:#3D8C8C; border-color:#3D8C8C; color:#fff; }
.pc-chip[data-k="tracking"].on i{ background:#fff; }
.pc[data-k="unmanned"]{ border-top-color:#6A5ACD; }
.pc[data-k="unmanned"]:hover{ border-color:#6A5ACD; border-top-color:#6A5ACD; }
.pc[data-k="unmanned"] .pc-mark{ background:#F2F1FB; color:#6A5ACD; }
.pc-tag[data-k="unmanned"]{ background:#F2F1FB; color:#6A5ACD; }
.pc-chip[data-k="unmanned"] i{ background:#6A5ACD; }
.pc-chip[data-k="unmanned"]:hover{ border-color:#6A5ACD; color:#6A5ACD; }
.pc-chip[data-k="unmanned"].on{ background:#6A5ACD; border-color:#6A5ACD; color:#fff; }
.pc-chip[data-k="unmanned"].on i{ background:#fff; }

/* guides hero: information accessibility row */
.guides-hero{ background:var(--bg); position:relative; overflow:hidden; padding-bottom:200px; }
.guides-hero:before{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  width:100%; aspect-ratio:2.4/1;
  background:url('assets/hero-accessibility-row.png?v=2') center bottom / 100% auto no-repeat;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(to top, #000 0%, #000 62%, rgba(0,0,0,.7) 84%, rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to top, #000 0%, #000 62%, rgba(0,0,0,.7) 84%, rgba(0,0,0,0) 100%);
}
.guides-hero > *{ position:relative; z-index:1; }
@media(max-width:900px){ .guides-hero{ padding-bottom:150px; } }
@media(max-width:600px){ .guides-hero{ padding-bottom:110px; } .guides-hero:before{ background-size:150% auto; } }
/* subscribe page */
.sub-form{ display:flex; align-items:stretch; gap:6px; max-width:480px; margin:34px auto 0; padding:5px; background:var(--bg); border:1px solid var(--rule); border-radius:2px; transition:border-color .14s, box-shadow .14s; }
.sub-form:focus-within{ border-color:var(--green); box-shadow:0 0 0 3px rgba(0,201,122,.14); }
.sub-form input{ flex:1; min-width:0; font-family:'DM Sans',sans-serif; font-size:16px; font-weight:300; color:var(--ink); background:none; padding:12px 14px; border:none; border-radius:0; outline:none; }
.sub-form input::placeholder{ color:var(--ink-lt); }
.sub-form input:disabled{ color:var(--ink-lt); }
.sub-form .btn-green{ flex:0 0 auto; margin:0; padding:13px 24px; white-space:nowrap; border-radius:2px; }
@media(max-width:520px){
  .sub-form{ flex-direction:column; padding:0; border:none; gap:9px; }
  .sub-form:focus-within{ box-shadow:none; }
  .sub-form input{ border:1px solid var(--rule); padding:14px 16px; }
  .sub-form:focus-within input{ border-color:var(--green); }
  .sub-form .btn-green{ padding:14px 24px; text-align:center; }
}
.sub-msg{ font-size:14px; color:var(--green-d); margin-top:14px; min-height:21px; }
.sub-wrap{ max-width:820px; margin:0 auto; }
.sub-list{ display:flex; flex-direction:column; margin-top:18px; }
.sub-item{ padding:22px 0; border-top:1px solid var(--rule); }
.sub-item:last-of-type{ border-bottom:1px solid var(--rule); }
.sub-item h3{ font-family:'Playfair Display',serif; font-size:21px; font-weight:700; letter-spacing:-.015em; color:var(--ink); margin-bottom:7px; }
.sub-item p{ font-size:16px; color:var(--ink-mid); font-weight:300; line-height:1.7; max-width:70ch; }
.sub-note{ font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.7; margin-top:26px; }
/* newsletter hero */
.sub-hero{ background:var(--bg); position:relative; overflow:hidden; padding-bottom:210px; }
.sub-hero:before{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  width:100%; aspect-ratio:2.498/1;
  background:url('assets/hero-newsletter-row.png') center bottom / 100% auto no-repeat;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(to top, #000 0%, #000 62%, rgba(0,0,0,.7) 84%, rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to top, #000 0%, #000 62%, rgba(0,0,0,.7) 84%, rgba(0,0,0,0) 100%);
}
.sub-hero > *{ position:relative; z-index:1; }
@media(max-width:900px){ .sub-hero{ padding-bottom:150px; } }
@media(max-width:600px){ .sub-hero{ padding-bottom:105px; } .sub-hero:before{ background-size:170% auto; } }
.sub-item h3 a{ color:inherit; text-decoration:none; }
.sub-item h3 a:hover{ color:var(--green-d); text-decoration:underline; text-underline-offset:3px; }

/* multi-column nav panels + grouped mobile menu */
.nav-drop-panel--wide{ min-width:470px; }
.nav-drop-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 8px; }
.mobile-menu{ max-height:calc(100vh - 60px); overflow-y:auto; -webkit-overflow-scrolling:touch; }
/* open menu is a fixed panel: it cannot scroll away from the close button.
   `top` is set from the nav's real position by app.js, because an announcement
   bar may sit above it. */
.mobile-menu.open{ position:fixed; left:0; right:0; top:60px; bottom:0; max-height:none; overflow-y:auto; padding-bottom:32px; }
html.mm-locked, html.mm-locked body{ overflow:hidden; }
.mm-close{ width:100%; display:flex; align-items:center; justify-content:center; gap:8px; margin-top:18px; background:none; border:1px solid var(--rule); border-radius:6px; padding:14px 20px; font-family:inherit; font-size:14px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-lt); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mm-close:hover{ color:var(--ink); border-color:var(--ink-lt); }
.mm-close svg{ width:12px; height:12px; }
/* collapsible sections: labels become accordion toggles, groups built by app.js */
.mobile-menu-label{ font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-lt); padding:18px 0 4px; }
.mobile-menu-label:first-child{ padding-top:8px; }
.mm-toggle{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; background:none; border:none; border-bottom:1px solid var(--rule); padding:16px 0; margin:0; font-family:inherit; font-size:15px; font-weight:500; letter-spacing:.02em; color:var(--ink); text-align:left; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mm-toggle svg{ width:12px; height:8px; flex-shrink:0; color:var(--ink-lt); transition:transform 200ms cubic-bezier(.2,0,0,1); }
.mm-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
.mm-toggle[aria-expanded="true"]{ color:var(--green-d); }
.mm-group{ display:none; padding:2px 0 10px 14px; }
.mm-group.open{ display:block; }
.mm-sub{ font-size:10.5px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-lt); padding:16px 0 2px; }
.mm-group > .mm-sub:first-child{ padding-top:6px; }
.mobile-menu .mm-group a{ font-size:15px; padding:11px 0; border-bottom:1px solid var(--rule); color:var(--ink-mid); }
.mobile-menu .mm-group a:last-child{ border-bottom:none; }
.mm-group a[aria-current="page"]{ color:var(--green-d); font-weight:500; }

/* comparison table (guides) */
.cmp{ width:100%; border-collapse:collapse; margin-top:40px; text-align:left; }
.cmp th,.cmp td{ padding:16px 18px; border-bottom:1px solid var(--rule); font-size:15px; font-weight:300; line-height:1.65; color:var(--ink-mid); vertical-align:top; }
.cmp th{ font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.cmp td:first-child{ font-weight:500; color:var(--ink); width:22%; }
@media(max-width:700px){ .cmp th,.cmp td{ padding:12px 10px; font-size:14px; } .cmp td:first-child{ width:30%; } }

/* grouped services mega panel */
.nav-drop-panel--mega{ min-width:780px; padding-bottom:6px; }
.nav-mega{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 6px; }
.nav-mega .nav-drop-label{ padding:0 16px 8px; min-height:26px; white-space:nowrap; }
.nav-mega-foot{ margin-top:10px; padding-top:10px; border-top:1px solid var(--rule); }
.nav-mega-foot a{ display:flex; align-items:baseline; gap:8px; }
.nav-mega-note{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-mid); }

.services-grid--3{ grid-template-columns:repeat(3,1fr); max-width:860px; }
.services-grid--2{ grid-template-columns:repeat(2,1fr); max-width:600px; }
@media(max-width:1040px){ .services-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:900px){ .services-grid--3,.services-grid--2{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .services-grid--3,.services-grid--2{ grid-template-columns:1fr; } }

.nav-drop-panel--mega2{ min-width:540px; padding-bottom:6px; }
.nav-drop-panel--mega2b{ min-width:640px; padding-bottom:6px; }
.nav-mega--2{ grid-template-columns:repeat(2,1fr); }

/* integration checklist: paired panels, used on the convergence guide page */
.sign-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:900px; margin:44px auto 0; text-align:left; }
.sign{ display:flex; gap:14px; align-items:flex-start; background:var(--bg); border:1px solid var(--rule); border-radius:4px; padding:22px 24px; }
.sign svg{ flex-shrink:0; width:20px; height:20px; margin-top:2px; }
.sign span{ font-size:15px; font-weight:400; color:var(--ink); line-height:1.5; }
@media(max-width:768px){ .sign-grid{ grid-template-columns:1fr; } }
