*, *::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: 80px 0 0;
  position: relative;
  overflow: hidden;
}
.hero-headline {
  font-family: 'Playfair Display', serif;
  font-size: 104px;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.02;
  color: var(--ink);
  margin-bottom: 24px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 48px;
}
.hero-sub {
  font-size: 21px;
  color: var(--ink-lt);
  font-weight: 300;
  margin: 0 auto 40px;
  max-width: 700px;
  text-wrap: pretty;
  line-height: 1.6;
  padding: 0 48px;
}
.hero-illus-row {
  display: block;
  margin-top: 16px;
  width: 100%;
}
.hero-cityscape {
  display: block;
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  height: auto;
}

/* ── SECTION SHARED ── */
.section { padding: 104px 48px; }
.section-gray { background: var(--gray); }
.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: 52px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--ink);
  text-align: center;
  margin-bottom: 20px;
}
.section-sub {
  font-size: 18.5px;
  color: var(--ink-lt);
  font-weight: 300;
  text-align: center;
  max-width: 660px;
  margin: 0 auto 60px;
  line-height: 1.78;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


/* Page-specific */
.page-hero { background: var(--gray); padding: 80px 48px 72px; text-align: center; border-bottom: 1px solid var(--rule); }
.page-hero-eyebrow { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:16px; display:block; }
.page-hero-h { font-family:"Playfair Display",serif; font-size:60px; font-weight:700; letter-spacing:-.025em; line-height:1.1; color:var(--ink); margin-bottom:20px; }
.page-hero-sub { font-size:18px; color:var(--ink-lt); font-weight:300; max-width:580px; margin:0 auto 36px; line-height:1.65; }
.two-col-text h2 { font-family:"Playfair Display",serif; font-size:40px; font-weight:700; letter-spacing:-.02em; line-height:1.2; color:var(--ink); margin-bottom:20px; }
.two-col-text p { font-size:16px; color:var(--ink-lt); font-weight:300; line-height:1.75; margin-bottom:16px; }
.two-col-text .btn-green-lg { margin-top:24px; display:inline-block; }
/* ── EVENT SECURITY PAGE ── */
.ev-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--rule); border-radius:12px; overflow:hidden; }
.ev-stat { padding:36px 32px; border-right:1px solid var(--rule); }
.ev-stat:last-child { border-right:none; }
.ev-stat-label { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:14px; }
.ev-stat-num { font-family:'DM Sans',sans-serif; font-size:27px; font-weight:700; letter-spacing:-.02em; color:var(--ink); line-height:1.15; }
.ev-stat-sub { font-size:15px; color:var(--ink-lt); font-weight:300; margin-top:4px; }
.ev-illus { width:100%; max-width:440px; display:block; margin:0 auto; }
.ev-list { list-style:none; display:flex; flex-direction:column; gap:11px; margin:22px 0 0; }
.ev-list li { display:flex; align-items:flex-start; gap:11px; font-size:14.5px; color:var(--ink-mid); font-weight:300; line-height:1.5; }
.ev-list .feat-check { width:18px; height:18px; }
.ev-domain-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(5,auto); grid-auto-flow:column; gap:0 56px; max-width:1000px; margin:52px auto 0; }
.ev-domain { display:flex; gap:20px; align-items:flex-start; padding:26px 0; border-bottom:1px solid var(--rule); }
.ev-domain-num { font-family:'DM Sans',sans-serif; font-size:20px; font-weight:700; color:var(--green-d); letter-spacing:-.01em; flex-shrink:0; width:32px; }
.ps-ico { flex-shrink:0; width:44px; height:44px; border-radius:10px; background:#E6F9F1; display:flex; align-items:center; justify-content:center; color:var(--green-d); margin-top:2px; }
.ps-ico svg { width:23px; height:23px; display:block; }
.ev-domain-h { font-family:"Playfair Display",serif; font-size:19px; font-weight:700; color:var(--ink); margin-bottom:5px; }
.ev-domain-p { font-size:14.5px; color:var(--ink-lt); font-weight:300; line-height:1.55; margin:0; }
.ev-scale-row { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px; }
.ev-scale { border:1px solid var(--rule); border-radius:12px; padding:36px 32px; background:var(--bg); }
.ev-scale-tier { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green-d); margin-bottom:18px; }
.ev-scale-range { font-family:'DM Sans',sans-serif; font-size:24px; font-weight:700; letter-spacing:-.02em; color:var(--ink); margin-bottom:8px; }
.ev-scale-venue { font-size:15px; color:var(--ink-lt); font-weight:300; line-height:1.5; }
.ev-raas-row { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:48px; }
.ev-raas-h { font-family:"Playfair Display",serif; font-size:20px; font-weight:700; color:#fff; margin-bottom:10px; }
.ev-raas-p { font-size:15px; color:#AEB9C6; font-weight:300; line-height:1.6; margin:0; }
@media(max-width:768px){
  .ev-stat-row { grid-template-columns:1fr; }
  .ev-stat { border-right:none; border-bottom:1px solid var(--rule); }
  .ev-stat:last-child { border-bottom:none; }
  .ev-domain-grid { grid-template-columns:1fr; grid-auto-flow:row; gap:0; }
  .ev-scale-row, .ev-raas-row { grid-template-columns:1fr; }
}
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; max-width:1100px; margin:0 auto; }
.feature-list { list-style:none; display:flex; flex-direction:column; gap:16px; margin:24px 0; }
.feature-list li { display:flex; align-items:flex-start; gap:14px; font-size:15px; color:var(--ink-mid); font-weight:300; line-height:1.55; }
.feat-check { width:22px; height:22px; flex-shrink:0; margin-top:1px; }
.step-row { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; max-width:1100px; margin:48px auto 0; }
.step-row-4 { grid-template-columns:repeat(4,1fr); gap:24px; }
.step-box { background:var(--bg); border:1px solid var(--rule); border-radius:12px; padding:36px 28px; }
.step-num { font-family:"Playfair Display",serif; font-size:52px; font-weight:700; color:var(--rule); letter-spacing:-.04em; line-height:1; margin-bottom:16px; }
.step-title { font-family:"Playfair Display",serif; font-size:20px; font-weight:700; color:var(--ink); margin-bottom:10px; }
.step-body { font-size:14px; color:var(--ink-lt); font-weight:300; line-height:1.72; }
.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:#0D1B2A;padding:80px 48px 72px;text-align:center;}
.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:white;margin-bottom:20px;}
.cert-hero-sub{font-size:18px;color:rgba(255,255,255,.5);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;}}
/* ── 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-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-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: #fff; 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-d{ font-size:15px; color:var(--ink-lt); font-weight:300; line-height:1.6; margin:0; }
.gloss-empty{ display:none; text-align:center; color:var(--ink-lt); font-size:16px; padding:40px 0; }
/* ── ROUTER ── */
.nav{top:0!important;z-index:200!important;}
#page-content{margin-top:0!important;min-height:100vh;}
@keyframes pagein{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}
.page-entering{animation:pagein .18s ease both;}
/* ── HAMBURGER ── */
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:none;border:none;margin-left:8px;}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .25s;}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu{display:none;background:var(--bg);border-bottom:1px solid var(--rule);padding:8px 24px 20px;flex-direction:column;box-shadow:0 4px 20px rgba(0,0,0,.06);position:relative;z-index:199;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:16px;font-weight:400;color:var(--ink);text-decoration:none;padding:13px 0;border-bottom:1px solid var(--rule);display:block;}
.mobile-menu a:last-child{border-bottom:none;}
.mobile-menu .mobile-cta{margin-top:12px;background:var(--green);color:white!important;border-radius:6px;padding:14px 20px!important;text-align:center;font-weight:500;border-bottom:none!important;}
/* ── MOBILE BREAKPOINTS ── */
@media(max-width:960px){
  .nav{padding:0 24px;height:60px;}
  .nav-links-left{display:none;}
  .nav-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; }

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



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

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

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

/* deeper "voice" bands so the dark panels still read distinct from surfaces */
html[data-theme="dark"] .section-dark,
html[data-theme="dark"] .cert-hero,
html[data-theme="dark"] .contact-aside{ background:#060D17; }
html[data-theme="dark"] .step-box .step-body{ color:#F4F8FC; }
html[data-theme="dark"] .top-banner{ background:#0B2A57; }
html[data-theme="dark"] .top-banner:hover{ background:#0E3268; }

/* icon chips (svgs use currentColor, so recolor via the chip) */
html[data-theme="dark"] .offer-ic,
html[data-theme="dark"] .ec-ic,
html[data-theme="dark"] .tr-ic{
  background:#16273C; border-color:#27405A; color:#DCE7F2;
}
html[data-theme="dark"] .offer-card:hover{ border-color:#3A5170; box-shadow:0 18px 44px -20px rgba(0,0,0,.65); }

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

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

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

/* inline-styled light surfaces (stylesheet !important beats plain inline styles) */
html[data-theme="dark"] .blog-thumb{ background:#16273C !important; }
html[data-theme="dark"] [style*="EFF0F2"]{ background:var(--bg) !important; }
html[data-theme="dark"] [style*="EAEAEA"]{ background:#16273C !important; }
html[data-theme="dark"] .featured-blog-grid svg [stroke="#333"],
html[data-theme="dark"] .featured-blog-grid svg path[stroke="#333"]{ stroke:#5E7A95 !important; }
html[data-theme="dark"] .featured-blog-grid svg{ opacity:.42 !important; }

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

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

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

/* ── Nighttime city scenes (swap raster line-art to night-blueprint renders) ── */
/* These read as the same architect's drawing after dusk: navy night sky,
   ice-blue linework, green certified check preserved. They replace the
   light-plate treatment for the big raster cityscapes in dark mode. */
html[data-theme="dark"] .hero-cityscape{
  content:url('assets/hero-cityscape-night.png');
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 38%), linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to bottom, transparent 0%, #000 38%), linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%);
  mask-composite: intersect;
}
html[data-theme="dark"] .tm-bg{ content:url('assets/cityscape-strip-night.png'); opacity:.5; }
html[data-theme="dark"] img[src$="certified-apply-bg.jpg"]{ content:url('assets/certified-apply-bg-night.png'); }
html[data-theme="dark"] img[src$="risk-score-phone-cut.png"]{ content:url('assets/risk-score-phone-cut-night.png'); }
html[data-theme="dark"] img[src$="creator-snapshot.png"]{ content:url('assets/creator-snapshot-night.png'); }
html[data-theme="dark"] img[src$="certified-directory.png"]{ content:url('assets/certified-directory-night.png'); }
html[data-theme="dark"] .raas-how{
  background:linear-gradient(rgba(8,17,31,.62),rgba(8,17,31,.72)),
             url('assets/raas-cityscape-night.png') center / cover no-repeat !important;
}

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

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