/* ==========================================================================
   SafetyCert — www.css
   Public marketing site stylesheet
   ========================================================================== */

/* ── Variables ─────────────────────────────────────────────────────────── */
:root {
  --bg:        #0B1320;
  --bg2:       #101C30;
  --card:      #142038;
  --card2:     #1A2A48;
  --border:    rgba(100,160,255,0.12);
  --blue:      #2196F3;
  --blue-l:    #60BDFF;
  --cyan:      #00D4E8;
  --gold:      #F5C842;
  --green:     #2DD88A;
  --text:      #E4EEF8;
  --muted:     #7A95B8;
  --faint:     rgba(33,150,243,0.08);
}

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

body {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
}

/* ── Nav ────────────────────────────────────────────────────────────────── */
nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.65rem 4rem;
  border-bottom: 1px solid var(--border);
  background: rgba(11,19,32,0.85);
  backdrop-filter: blur(14px);
  position: sticky; top:0; z-index:100;
}
.logo {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 800; font-size: 1.5rem;
  letter-spacing: -0.3px;
  color: #fff;
  display: flex; align-items: center;
}
.logo span { color: var(--blue-l); }
.logo img  { height:49px; width:auto; margin-right:16px; }
nav ul { list-style:none; display:flex; gap:2rem; }
nav ul a { color: var(--muted); text-decoration:none; font-size:.9rem; font-weight:500; transition:.2s; }
nav ul a:hover { color:#fff; }
nav ul a.nav-active { color:#fff; position:relative; }
nav ul a.nav-active::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:2px; background:var(--blue); border-radius:2px;
}
.nav-cta {
  background: var(--blue);
  color:#fff; border:none; padding:.55rem 1.4rem;
  border-radius:6px; font-family:'DM Sans',sans-serif;
  font-weight:500; font-size:.9rem; cursor:pointer;
  transition:.2s; text-decoration:none;
}
.nav-cta:hover { background: var(--blue-l); }
.nav-right { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.nav-login {
  color:var(--muted); text-decoration:none; font-size:.9rem;
  font-weight:500; padding:.5rem .9rem; border-radius:6px;
  border:1px solid var(--border); transition:.2s;
  font-family:'DM Sans',sans-serif;
}
.nav-login:hover { color:#fff; border-color:rgba(100,160,255,.35); }

/* ── Shared buttons ─────────────────────────────────────────────────────── */
.btn-primary {
  background:var(--blue); color:#fff; text-decoration:none;
  padding:.85rem 2rem; border-radius:10px;
  font-weight:700; font-size:.95rem; transition:.2s;
  font-family:'DM Sans',sans-serif; display:inline-block;
}
.btn-primary:hover { background:#42AAFF; transform:translateY(-1px); }
.btn-ghost {
  background:transparent; color:var(--text); text-decoration:none;
  padding:.85rem 2rem; border-radius:10px; border:1px solid var(--border);
  font-weight:600; font-size:.95rem; transition:.2s;
  font-family:'DM Sans',sans-serif; display:inline-block;
}
.btn-ghost:hover { border-color:var(--blue-l); color:var(--blue-l); }

/* ── Hero ───────────────────────────────────────────────────────────────── */
.hero {
  text-align: center;
  padding: 6rem 2rem 4rem;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content:'';
  position:absolute; top:-120px; left:50%; transform:translateX(-50%);
  width:700px; height:700px;
  background: radial-gradient(circle, rgba(33,150,243,0.18) 0%, transparent 70%);
  pointer-events:none;
}
.hero-badge {
  display:inline-block;
  background: rgba(33,150,243,0.12);
  border: 1px solid rgba(33,150,243,0.3);
  color: var(--blue-l);
  font-size:.78rem; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase;
  padding:.35rem 1rem; border-radius:50px;
  margin-bottom:1.5rem;
}
.hero h1 {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 800;
  line-height:1.15;
  letter-spacing:-0.5px;
  max-width:720px; margin:0 auto 1.5rem;
  color:#fff;
}
.hero h1 em { font-style:normal; color: var(--blue-l); }
.hero p {
  font-size:1.1rem; color:var(--muted); max-width:560px; margin:0 auto 2.5rem;
  line-height:1.7;
}
.hero-stats {
  display: flex; justify-content:center; gap:3rem; flex-wrap:wrap;
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid var(--border);
}
.stat { text-align:center; }
.stat-val {
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:2rem;
  color:#fff;
}
.stat-val span { color:var(--blue-l); }
.stat-label { font-size:.8rem; color:var(--muted); margin-top:.3rem; letter-spacing:.04em; }

/* ── Section title ──────────────────────────────────────────────────────── */
.section-label {
  font-size:.75rem; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--blue-l);
  margin-bottom:1rem;
  display:flex; align-items:center; gap:.6rem;
}
.section-label::after { content:''; flex:1; height:1px; background:var(--border); }

/* ── Features strip ─────────────────────────────────────────────────────── */
.features-strip {
  display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap:1px; background: var(--border);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  margin-bottom:5rem;
}
.feat {
  background: var(--bg2);
  padding:2rem 1.8rem;
  display:flex; align-items:flex-start; gap:1rem;
}
.feat-icon {
  width:40px; height:40px; border-radius:10px;
  background: var(--faint);
  border: 1px solid rgba(33,150,243,0.2);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; font-size:1.1rem;
}
.feat h3 { font-size:.95rem; font-weight:600; color:#fff; margin-bottom:.3rem; }
.feat p { font-size:.82rem; color:var(--muted); line-height:1.6; }

/* ── Calc section ───────────────────────────────────────────────────────── */
.calc-section { padding: 0 2rem 6rem; max-width:1200px; margin:0 auto; }

.calc-tabs {
  display:flex; gap:.5rem;
  background: var(--card);
  border:1px solid var(--border);
  border-radius:12px; padding:.4rem;
  width:fit-content; margin: 0 auto 3rem;
}
.tab-btn {
  padding:.7rem 2.2rem; border-radius:9px; border:none;
  font-family:'DM Sans',sans-serif; font-weight:500; font-size:.95rem;
  cursor:pointer; transition:.25s;
  color: var(--muted); background:transparent;
}
.tab-btn.active { background: var(--blue); color:#fff; }

.calc-panel { display:none; }
.calc-panel.active { display:block; animation: fadeUp .35s ease; }
@keyframes fadeUp { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }

.calc-grid { display:grid; grid-template-columns:1fr 380px; gap:2rem; align-items:start; }

/* ── Card ───────────────────────────────────────────────────────────────── */
.card {
  background: var(--card);
  border:1px solid var(--border);
  border-radius:16px; overflow:hidden;
}
.card-header {
  padding:1.5rem 1.8rem;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
}
.card-header h2 { font-family:'Plus Jakarta Sans',sans-serif; font-size:1.1rem; font-weight:700; color:#fff; }
.card-body { padding:1.8rem; }

/* ── Form controls ──────────────────────────────────────────────────────── */
.control-group { margin-bottom:1.6rem; }
.control-group:last-child { margin-bottom:0; }

label.ctrl-label {
  display:flex; align-items:center; justify-content:space-between;
  font-size:.82rem; font-weight:500; color:var(--muted);
  margin-bottom:.5rem;
}
label.ctrl-label strong { color:var(--text); font-size:.85rem; }

.section-divider {
  font-size:.7rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--blue-l);
  padding:.6rem 0; margin:1rem 0 .5rem;
  border-top:1px solid var(--border);
}

.spinner {
  display:flex; align-items:center; gap:.5rem;
}
.spin-btn {
  width:34px; height:38px; border-radius:8px;
  background:var(--card2); border:1px solid var(--border);
  color:var(--text); font-size:1.2rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:.15s; user-select:none; flex-shrink:0;
}
.spin-btn:hover { background:var(--blue); border-color:var(--blue); }
.spin-btn:active { transform:scale(.92); }
.spin-input {
  width:72px; height:38px;
  text-align:center; font-weight:600; font-size:1rem; color:#fff;
  background:var(--card2); border:1px solid var(--border);
  border-radius:8px; outline:none;
  font-family:'DM Sans',sans-serif;
  transition:border-color .15s, box-shadow .15s;
  -moz-appearance:textfield;
}
.spin-input::-webkit-outer-spin-button,
.spin-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.spin-input:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(33,150,243,0.15);
}
.spin-input.error { border-color:#ff6b6b; }

.toggle-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.toggle-item {
  background: var(--card2);
  border:1px solid var(--border);
  border-radius:10px; padding:.8rem 1rem;
  cursor:pointer; transition:.2s;
  display:flex; align-items:center; gap:.7rem;
  user-select:none;
}
.toggle-item:hover { border-color: rgba(33,150,243,0.4); }
.toggle-item.active { background:rgba(33,150,243,0.12); border-color:var(--blue); }
.toggle-item input { display:none; }
.toggle-dot {
  width:16px; height:16px; border-radius:50%;
  border:2px solid var(--border); flex-shrink:0;
  transition:.2s;
}
.toggle-item.active .toggle-dot { background:var(--blue); border-color:var(--blue); }
.toggle-text { flex:1; }
.toggle-text strong { display:block; font-size:.83rem; color:#fff; font-weight:500; }
.toggle-text span { font-size:.77rem; color:var(--muted); }

.storage-grid { display:flex; gap:.5rem; flex-wrap:wrap; }
.stor-btn {
  padding:.5rem 1rem; border-radius:8px;
  background:var(--card2); border:1px solid var(--border);
  color:var(--muted); font-size:.82rem; font-weight:500;
  cursor:pointer; transition:.2s;
}
.stor-btn:hover { border-color:rgba(33,150,243,0.5); color:var(--text); }
.stor-btn.active { background:rgba(33,150,243,0.12); border-color:var(--blue); color:var(--blue-l); }

/* ── Summary card ───────────────────────────────────────────────────────── */
.summary-card {
  background: var(--card);
  border:1px solid var(--border);
  border-radius:16px; overflow:hidden;
  position:sticky; top:90px;
}
.summary-header {
  background: linear-gradient(135deg, #1a3a6e, #0d2552);
  padding:1.4rem 1.6rem;
  border-bottom:1px solid var(--border);
}
.summary-header h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:1rem; color:#fff;
  margin-bottom:.2rem;
}
.summary-header p { font-size:.78rem; color: rgba(255,255,255,0.5); }

.summary-body { padding:1.4rem 1.6rem; }

.line-item {
  display:flex; justify-content:space-between; align-items:center;
  padding:.55rem 0; border-bottom:1px solid rgba(100,160,255,0.07);
  font-size:.83rem;
}
.line-item:last-of-type { border-bottom:none; }
.line-item .li-name { color:var(--muted); }
.line-item .li-val { color:var(--text); font-weight:500; }
.line-item .li-val.green { color:var(--green); }
.line-item .li-val.crossed { text-decoration:line-through; opacity:.5; }

.total-row {
  margin-top:1rem; padding:1.2rem 1.4rem;
  background: rgba(33,150,243,0.08);
  border:1px solid rgba(33,150,243,0.2);
  border-radius:12px;
  display:flex; justify-content:space-between; align-items:center;
}
.total-label { font-size:.85rem; font-weight:600; color:var(--muted); }
.total-amount {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.9rem; font-weight:800; color:#fff;
}
.total-amount sup { font-size:.9rem; font-weight:500; vertical-align:top; margin-top:.3rem; display:inline-block; }
.per-month {
  text-align:right; font-size:.75rem; color:var(--muted); margin-top:.3rem;
}

.discount-badge {
  background: rgba(45,216,138,0.1);
  border:1px solid rgba(45,216,138,0.25);
  border-radius:8px;
  padding:.6rem 1rem;
  margin-top:1rem;
  font-size:.78rem; color:var(--green);
  display:flex; align-items:center; gap:.5rem;
}

.cta-btn {
  display:block; width:100%;
  background: var(--blue);
  color:#fff; border:none; padding:1rem;
  border-radius:10px; font-family:'DM Sans',sans-serif;
  font-size:.95rem; font-weight:600; cursor:pointer;
  margin-top:1.2rem; text-align:center; text-decoration:none;
  transition:.2s; letter-spacing:.01em;
}
.cta-btn:hover { background: #42AAFF; transform:translateY(-1px); }

.summary-note {
  text-align:center; font-size:.73rem; color:var(--muted);
  margin-top:.8rem; line-height:1.5;
}

/* ── SP info box ────────────────────────────────────────────────────────── */
.sp-info-box {
  background: rgba(245,200,66,0.06);
  border:1px solid rgba(245,200,66,0.2);
  border-radius:10px; padding:1rem 1.2rem;
  margin-top:1.2rem;
  font-size:.82rem; color: #e8d98a;
  line-height:1.6;
}
.sp-info-box > strong:first-child { color:var(--gold); display:block; margin-bottom:.3rem; }
.sp-info-box strong { color:var(--gold); }

/* ── Modules section (pricing page) ────────────────────────────────────── */
.modules-section { padding: 0 2rem 5rem; max-width:1200px; margin:0 auto; }

.modules-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1rem; }

.module-card {
  background: var(--card);
  border:1px solid var(--border);
  border-radius:14px; padding:1.6rem;
  transition:.25s;
  position:relative; overflow:hidden;
}
.module-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0; height:3px;
}
.module-card:nth-child(1)::before { background: linear-gradient(90deg, #2196F3, #00D4E8); }
.module-card:nth-child(2)::before { background: linear-gradient(90deg, #F5C842, #FF8C00); }
.module-card:nth-child(3)::before { background: linear-gradient(90deg, #2DD88A, #00B86B); }
.module-card:nth-child(4)::before { background: linear-gradient(90deg, #B87BFF, #7B4FE8); }
.module-card:hover { border-color:rgba(33,150,243,0.35); transform:translateY(-3px); }

.module-icon { font-size:1.8rem; margin-bottom:1rem; }
.module-title {
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700; font-size:1rem;
  color:#fff; margin-bottom:.4rem;
}
.module-desc { font-size:.82rem; color:var(--muted); line-height:1.6; margin-bottom:1rem; }
.module-price {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.3rem; font-weight:700;
  color:var(--blue-l);
}
.module-price span { font-size:.75rem; font-weight:400; color:var(--muted); }

/* ── Why section ────────────────────────────────────────────────────────── */
.why-section {
  background: var(--bg2);
  border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:5rem 2rem;
  margin-bottom:5rem;
}
.why-inner { max-width:1200px; margin:0 auto; }
.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.why-text h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:2.2rem; font-weight:800;
  color:#fff; line-height:1.2; margin-bottom:1.2rem;
  letter-spacing:-.3px;
}
.why-text p { color:var(--muted); line-height:1.8; margin-bottom:1rem; }
.why-list { list-style:none; margin-top:1.5rem; }
.why-list li {
  display:flex; align-items:flex-start; gap:.8rem;
  margin-bottom:.9rem; font-size:.9rem; color:var(--muted);
  line-height:1.6;
}
.why-list li::before {
  content:'✓'; color:var(--green); font-weight:700;
  flex-shrink:0; margin-top:.1rem;
}

.tier-compare {
  background: var(--card);
  border:1px solid var(--border);
  border-radius:16px; overflow:hidden;
}
.tier-head {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  background: var(--card2);
  padding:.8rem 1.4rem;
  font-size:.75rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  border-bottom:1px solid var(--border);
}
.tier-row {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  padding:.85rem 1.4rem;
  border-bottom:1px solid rgba(100,160,255,0.06);
  font-size:.85rem;
  align-items:center;
}
.tier-row:last-child { border-bottom:none; }
.tier-row .t-name { color:var(--muted); }
.tier-row .t-val { color:#fff; font-weight:500; }
.tier-row .t-val.disc { color:var(--green); }
.tier-row .t-val.same { color:var(--muted); }

/* ── Global responsive (pricing/calc page) ──────────────────────────────── */
/* ── Hamburger button ───────────────────────────────────────────────────── */
.nav-hamburger {
  display:none;
  flex-direction:column; justify-content:center; align-items:center;
  gap:5px; width:38px; height:38px; border-radius:8px;
  background:transparent; border:1px solid var(--border);
  cursor:pointer; padding:0; flex-shrink:0;
  transition:border-color .2s;
}
.nav-hamburger:hover { border-color:rgba(100,160,255,.4); }
.nav-hamburger span {
  display:block; width:18px; height:2px;
  background:var(--muted); border-radius:2px;
  transition:transform .28s ease, opacity .2s ease, background .2s;
  transform-origin:center;
}
.nav-hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); background:#fff; }
.nav-hamburger.open span:nth-child(2) { opacity:0; }
.nav-hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); background:#fff; }

/* ── Mobile nav panel ───────────────────────────────────────────────────── */
.nav-mobile {
  display:none;
  position:fixed; top:65px; left:0; right:0; z-index:99;
  background:rgba(11,19,32,.97);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  max-height:0; overflow:hidden;
  transition:max-height .32s cubic-bezier(.4,0,.2,1), opacity .25s ease;
  opacity:0;
}
.nav-mobile.open {
  max-height:520px;
  opacity:1;
}
.nav-mobile-list {
  list-style:none; padding:1.2rem 1.5rem 1.5rem; margin:0;
  display:flex; flex-direction:column; gap:.2rem;
}
.nav-mobile-list li a {
  display:block; padding:.75rem 1rem; border-radius:8px;
  color:var(--muted); text-decoration:none; font-size:.95rem;
  font-weight:500; transition:color .15s, background .15s;
}
.nav-mobile-list li a:hover {
  color:#fff; background:rgba(33,150,243,.08);
}
.nav-mobile-list li a.nav-active {
  color:#fff; background:rgba(33,150,243,.1);
}
.nav-mobile-divider {
  height:1px; background:var(--border); margin:.6rem 0;
}
.nav-mobile-cta {
  display:block; text-align:center;
  background:var(--blue); color:#fff !important;
  border-radius:8px; padding:.8rem 1rem !important;
  font-weight:600 !important; font-size:.95rem;
  margin-top:.4rem; text-decoration:none;
  transition:background .2s !important;
}
.nav-mobile-cta:hover { background:#42AAFF !important; }
.nav-mobile-login {
  text-align:center; border:1px solid var(--border);
  border-radius:8px; margin-top:.4rem;
}
.nav-mobile-login:hover { border-color:rgba(100,160,255,.4) !important; }

@media(max-width:600px){
  .modules-grid { grid-template-columns:1fr; }
  .module-card {
    display:grid; grid-template-columns:2.2rem 1fr;
    grid-template-rows:auto auto auto;
    column-gap:.75rem; row-gap:.35rem;
    align-items:start;
  }
  .module-icon { grid-column:1; grid-row:1; font-size:1.4rem; margin-bottom:0; }
  .module-title { grid-column:2; grid-row:1; align-self:center; margin-bottom:0; }
  .module-desc { grid-column:1 / -1; grid-row:2; margin-bottom:0; }
  .module-price { grid-column:1 / -1; grid-row:3; }
}

/* ── Mobile logo (standard template - keep identical across all apps) ──
   The logo gives way to the menu button: it may shrink, it scales down on
   phones, and a wordmark wrapped as <span class="logo-word">First<span>Second</span></span>
   stacks onto two lines on small screens. */
nav { gap:.75rem; }
nav .logo { flex:0 1 auto; min-width:0; }
nav .nav-right { flex-shrink:0; }
@media (max-width:480px){
  nav .logo { font-size:1.15rem; }
  nav .logo img { height:36px; margin-right:10px; }
  nav .logo-word { font-size:1.15rem; display:flex; flex-direction:column; align-items:flex-start; line-height:1.05; }
  nav .logo-word > span { display:block; }
}

@media(max-width:900px){
  nav { padding:1rem 1.5rem; }
  nav ul { display:none; }
  .nav-cta { display:none; }
  .nav-login { display:none; }
  .nav-mobile { display:block; }
  .nav-hamburger { display:flex; }
  .calc-grid { grid-template-columns:1fr; }
  .why-grid { grid-template-columns:1fr; gap:2.5rem; }
  .summary-card { position:static; }
  .hero { padding:4rem 1.5rem 3rem; }
  .hero-stats { gap:1.5rem; }
}

/* ==========================================================================
   Features / Landing page  (lp- prefix)
   ========================================================================== */

.lp-section { max-width:1100px; margin:0 auto; padding:5rem 2rem; }
.lp-section.lp-tight { padding:3.5rem 2rem; }
.lp-center { text-align:center; }
.lp-h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.7rem,3.2vw,2.4rem); font-weight:800;
  color:#fff; letter-spacing:-.25px; margin:.4rem 0 1rem; line-height:1.2;
}
.lp-h2 em { font-style:normal; color:var(--blue-l); }
.lp-lead { color:var(--muted); font-size:.97rem; max-width:580px; margin:0 auto; line-height:1.75; }
.lp-divider { border:none; border-top:1px solid var(--border); margin:0; }

.hero-ctas { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-bottom:1rem; }

.lp-trust-bar {
  background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  padding:1.4rem 2rem;
}
.lp-trust-inner {
  max-width:1100px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:.6rem 1.2rem;
}
.lp-trust-label { font-size:.75rem; font-weight:600; color:var(--muted); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.lp-trust-sep { width:1px; height:16px; background:var(--border); flex-shrink:0; }
.lp-trust-sep:last-of-type { margin-left:1rem; }
.lp-trust-name {
  font-size:.84rem; font-weight:600; color:var(--text);
  background:var(--card); border:1px solid var(--border);
  border-radius:20px; padding:.3rem .9rem; white-space:nowrap;
}

.lp-problem-grid {
  display:grid; grid-template-columns:1fr 60px 1fr;
  gap:0; align-items:stretch; margin-top:2.5rem;
}
.lp-before, .lp-after {
  border-radius:16px; padding:2rem;
}
.lp-before {
  background:rgba(255,80,80,.05); border:1px solid rgba(255,80,80,.15);
}
.lp-after {
  background:rgba(45,216,138,.05); border:1px solid rgba(45,216,138,.18);
}
.lp-ba-head {
  display:flex; align-items:center; gap:.6rem;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.82rem;
  font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:1.2rem;
}
.lp-before .lp-ba-head { color:rgba(255,130,130,.9); }
.lp-after  .lp-ba-head { color:var(--green); }
.lp-ba-head i { font-size:1.6em; position:relative; top:2px; }
.lp-ba-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.7rem; text-align:left; }
.lp-ba-list li {
  display:flex; align-items:flex-start; gap:.6rem;
  font-size:.87rem; color:var(--muted); line-height:1.55;
  text-align:left;
}
.lp-before .lp-ba-list li::before { content:'✗'; color:rgba(255,130,130,.8); font-weight:700; flex-shrink:0; }
.lp-after  .lp-ba-list li::before { content:'✓'; color:var(--green); font-weight:700; flex-shrink:0; }
.lp-ba-divider {
  display:flex; align-items:center; justify-content:center;
}
.lp-ba-arrow {
  width:40px; height:40px; border-radius:50%;
  background:var(--blue); display:flex; align-items:center;
  justify-content:center; color:#fff; font-size:1.1rem; flex-shrink:0;
}

.lp-how-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5rem; margin-top:2.5rem; position:relative;
}
.lp-how-grid::before {
  content:''; position:absolute; top:60px; left:calc(16.6% + 28px); right:calc(50% + 28px);
  height:2px; background:linear-gradient(90deg,var(--blue),var(--blue-l));
  opacity:.3; z-index:1;
}
.lp-how-grid::after {
  content:''; position:absolute; top:60px; left:calc(50% + 28px); right:calc(16.6% + 28px);
  height:2px; background:linear-gradient(90deg,var(--blue-l),var(--blue));
  opacity:.3; z-index:1;
}
.lp-how-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:2rem 1.6rem; text-align:center;
}
.lp-how-num {
  width:56px; height:56px; border-radius:50%; margin:0 auto 1.2rem;
  background:rgba(33,150,243,.1); border:2px solid rgba(33,150,243,.3);
  display:flex; align-items:center; justify-content:center;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.3rem;
  font-weight:800; color:var(--blue-l);
  position:relative; z-index:2;
}
.lp-how-card h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.05rem;
  font-weight:700; color:#fff; margin-bottom:.6rem;
}
.lp-how-card p { font-size:.86rem; color:var(--muted); line-height:1.65; }

.lp-feat-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.2rem; margin-top:2.5rem;
}
.lp-feat-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:14px; padding:1.6rem 1.5rem;
  display:grid; grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  column-gap:.75rem; row-gap:.6rem;
  transition:border-color .2s;
}
.lp-feat-card:hover { border-color:rgba(33,150,243,.3); }
.lp-feat-icon {
  grid-column:1; grid-row:1; align-self:center;
  width:42px; height:42px; border-radius:11px; flex-shrink:0;
  background:var(--faint); border:1px solid rgba(33,150,243,.18);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
}
.lp-feat-card h3 {
  grid-column:2; grid-row:1; align-self:center;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.97rem;
  font-weight:700; color:#fff; margin:0; text-align:left;
}
.lp-feat-card p { grid-column:1 / -1; grid-row:2; font-size:.83rem; color:var(--muted); line-height:1.65; margin:0; }

.lp-screens-bg {
  background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.lp-screens-tabs {
  display:flex; gap:.4rem; justify-content:center; flex-wrap:wrap; margin-top:2rem; margin-bottom:2.5rem;
}
.lp-stab {
  padding:.5rem 1.2rem; border-radius:8px; border:1px solid var(--border);
  background:transparent; color:var(--muted); font-size:.84rem; font-weight:500;
  cursor:pointer; transition:.2s; font-family:'DM Sans',sans-serif;
}
.lp-stab.active { background:var(--blue); border-color:var(--blue); color:#fff; font-weight:600; }
.lp-screen-panel { display:none; }
.lp-screen-panel.active { display:block; animation:fadeUp .3s ease; }
.lp-screen-frame {
  border-radius:16px; border:1px solid var(--border);
  background:var(--card); overflow:hidden;
  aspect-ratio:16/9; position:relative;
  display:flex; flex-direction:column;
}
.lp-screen-bar {
  background:var(--card2); border-bottom:1px solid var(--border);
  padding:.6rem 1rem; display:flex; align-items:center; gap:.4rem;
}
.lp-screen-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.lp-screen-body {
  flex:1; display:flex; align-items:center; justify-content:center;
  flex-direction:column; gap:.8rem; padding:2rem;
}
.lp-screen-placeholder {
  width:48px; height:48px; border-radius:12px;
  background:var(--faint); border:1px dashed rgba(33,150,243,.3);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
}
.lp-screen-body p { font-size:.82rem; color:var(--muted); text-align:center; max-width:260px; }
/* Real screenshots: 2:1 frame, image pinned to the top on the app's own
   background colour so shorter screenshots read as the page continuing */
.lp-screen-frame:has(.lp-screen-shot) { aspect-ratio:2/1; }
.lp-screen-body.lp-screen-shot {
  display:block; padding:0; gap:0; overflow:hidden; background:#f1f4f9;
}
.lp-screen-shot img { display:block; width:100%; height:auto; }
.lp-screen-caption { text-align:center; margin-top:1.5rem; font-size:.84rem; color:var(--muted); }
.lp-screen-caption strong { color:var(--text); }

.lp-vp-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1.5rem; margin-top:2.5rem;
}
.lp-vp-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; overflow:hidden; display:flex; flex-direction:column;
}
.lp-vp-top { padding:2rem 2rem 1.6rem; border-bottom:1px solid var(--border); }
.lp-vp-body { padding:1.6rem 2rem 2rem; flex:1; }
.vp-badge {
  display:inline-block; font-size:.72rem; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  background:rgba(33,150,243,.12); border:1px solid rgba(33,150,243,.25);
  color:var(--blue-l); border-radius:20px; padding:.25rem .8rem; margin-bottom:.9rem;
}
.lp-vp-card h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.15rem;
  font-weight:800; color:#fff; margin-bottom:.6rem;
}
.lp-vp-card > .lp-vp-top > p { font-size:.88rem; color:var(--muted); line-height:1.65; }
.lp-vp-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6rem; }
.lp-vp-list li {
  display:flex; align-items:flex-start; gap:.6rem;
  font-size:.87rem; color:var(--text); line-height:1.55;
  text-align:left;
}
.lp-vp-list li::before { content:'✓'; color:var(--blue-l); font-weight:700; flex-shrink:0; }

.lp-int-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1rem; margin-top:2.5rem;
}
.lp-int-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:14px; padding:1.4rem 1.2rem; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  transition:border-color .2s, transform .18s;
}
.lp-int-card:hover { border-color:rgba(33,150,243,.3); transform:translateY(-2px); }
.lp-int-icon {
  width:48px; height:48px; border-radius:13px;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
  background:var(--faint); border:1px solid var(--border); color:var(--blue-l);
}
.lp-int-card h4 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.9rem;
  font-weight:700; color:#fff; margin:0;
}
.lp-int-card p { font-size:.77rem; color:var(--muted); line-height:1.5; margin:0; }
.lp-int-native {
  font-size:.7rem; font-weight:600; color:var(--blue-l);
  background:rgba(33,150,243,.1); border:1px solid rgba(33,150,243,.2);
  border-radius:20px; padding:.15rem .6rem;
}

.lp-testi-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1.5rem; margin-top:2.5rem;
}
.lp-testi-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:2rem;
}
.lp-testi-stars { color:var(--gold); font-size:.85rem; margin-bottom:.75rem; letter-spacing:.05em; }
.lp-testi-card blockquote {
  font-size:.92rem; color:var(--text); line-height:1.75;
  font-style:italic; margin:0 0 1.4rem; padding:0;
}
.lp-testi-card blockquote::before {
  content:'\201C'; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15em; color:var(--blue-l); margin-right:.1em;
}
.lp-testi-card blockquote::after {
  content:'\201D'; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.15em; color:var(--blue-l); margin-left:.1em;
}
.lp-testi-attr { display:flex; flex-direction:column; gap:.45rem; }
.lp-testi-attr strong { font-size:.88rem; color:#fff; }
.lp-testi-attr span { font-size:.78rem; color:var(--muted); }

.lp-price-bg {
  background:var(--card); border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.lp-price-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1.5rem; margin-top:2.5rem;
}
.lp-price-card {
  background:var(--bg); border:1px solid var(--border);
  border-radius:14px; padding:1.75rem; text-align:left;
}
.lp-price-card.lp-featured { border-color:rgba(33,150,243,.4); box-shadow:0 0 0 1px rgba(33,150,243,.4); }
.lp-price-card .lp-pc-badge {
  display:inline-block; background:rgba(33,150,243,.15);
  border:1px solid rgba(33,150,243,.3); border-radius:10px;
  padding:.2rem .65rem; font-size:.71rem; font-weight:700;
  color:var(--blue-l); letter-spacing:.04em; text-transform:uppercase;
  margin-bottom:.8rem;
}
.lp-price-card h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.1rem;
  font-weight:800; color:#fff; margin:0 0 .3rem;
}
.lp-price-card .lp-price-val {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:2.4rem;
  font-weight:800; color:#fff; line-height:1;
  margin:.3rem 0 .4rem; letter-spacing:-.03em;
}
.lp-price-card .lp-price-val sub { font-size:.95rem; font-weight:400; color:var(--muted); }
.lp-price-card .lp-price-note { font-size:.78rem; color:var(--muted); margin-bottom:1rem; }
.lp-price-incl { list-style:none; padding:0; margin:0 0 1.5rem; }
.lp-price-incl li {
  font-size:.83rem; color:var(--muted); margin-bottom:.45rem; line-height:1.45;
  padding-left:1.1rem; position:relative;
}
.lp-price-incl li::before { content:'✓'; position:absolute; left:0; color:var(--green); font-weight:700; }

.lp-faq { margin-top:2.5rem; }
.lp-faq-item {
  background:var(--card); border:1px solid var(--border);
  border-radius:0; margin-bottom:-1px; overflow:hidden;
}
.lp-faq-item:first-child { border-radius:14px 14px 0 0; }
.lp-faq-item:last-child  { border-radius:0 0 14px 14px; margin-bottom:0; }
.lp-faq-q {
  padding:1.1rem 1.5rem; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem; user-select:none;
}
.lp-faq-q span { font-size:.92rem; font-weight:600; color:var(--text); }
.lp-faq-q .lp-faq-arr { color:var(--muted); font-size:.8rem; transition:.2s; flex-shrink:0; }
.lp-faq-item.open .lp-faq-arr { transform:rotate(180deg); color:var(--blue-l); }
.lp-faq-item.open .lp-faq-q span { color:#fff; }
.lp-faq-a {
  display:none; padding:0 1.5rem 1.2rem;
  font-size:.87rem; color:var(--muted); line-height:1.7;
}
.lp-faq-item.open .lp-faq-a { display:block; }

.lp-final-cta {
  text-align:center;
  background:linear-gradient(135deg,rgba(33,150,243,.15) 0%,rgba(33,150,243,.04) 60%,transparent 100%);
  border-top:1px solid rgba(33,150,243,.2);
  padding:5rem 2rem 5.5rem; position:relative; overflow:hidden;
}
.lp-final-cta::before {
  content:''; position:absolute; top:-100px; left:50%; transform:translateX(-50%);
  width:600px; height:400px;
  background:radial-gradient(circle, rgba(33,150,243,.15) 0%, transparent 70%);
  pointer-events:none;
}
.lp-final-cta h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2rem,4vw,3rem); font-weight:800;
  color:#fff; letter-spacing:-.3px; margin:.5rem auto 1rem;
  line-height:1.18; max-width:680px; position:relative;
}
.lp-final-cta p { color:var(--muted); font-size:1rem; max-width:500px; margin:0 auto 2.5rem; line-height:1.7; position:relative; }
.lp-final-cta .lp-cta-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; position:relative; }
.lp-final-cta .lp-cta-note { font-size:.78rem; color:var(--muted); margin-top:1rem; position:relative; }

@media(max-width:860px) {
  .lp-problem-grid { grid-template-columns:1fr; gap:1rem; }
  .lp-ba-divider { display:none; }
  .lp-how-grid, .lp-feat-grid { grid-template-columns:1fr 1fr; }
  .lp-how-grid::before, .lp-how-grid::after { display:none; }
  .lp-vp-grid, .lp-testi-grid, .lp-price-grid { grid-template-columns:1fr; }
  .lp-int-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:560px) {
  .lp-how-grid, .lp-feat-grid, .lp-int-grid { grid-template-columns:1fr; }
  .lp-int-card {
    display:grid; grid-template-columns:48px 1fr;
    grid-template-rows:auto auto auto;
    column-gap:.75rem; row-gap:.4rem;
    text-align:left; align-items:start;
  }
  .lp-int-icon { grid-column:1; grid-row:1; }
  .lp-int-card h4 { grid-column:2; grid-row:1; align-self:center; }
  .lp-int-card p { grid-column:1 / -1; grid-row:2; }
  .lp-int-native { grid-column:1 / -1; grid-row:3; }
}

/* ==========================================================================
   Modules page  (mod- prefix)
   ========================================================================== */

.mod-page   { max-width:1100px; margin:0 auto; padding:4rem 2rem 6rem; }

.mod-hero   { text-align:center; padding:1rem 0 3.5rem; }
.mod-hero h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2rem,4vw,3.2rem); font-weight:800;
  color:#fff; letter-spacing:-.3px; margin:.4rem 0 1rem;
}
.mod-hero p  { color:var(--muted); font-size:1rem; max-width:580px; width:100%; margin:0 auto 2rem; line-height:1.75; }

.base-banner {
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--border);
  border-radius:14px; padding:1.2rem 1.6rem; margin-bottom:3.5rem;
}
.base-banner-head { display:flex; align-items:center; gap:1rem; min-width:0; }
.base-banner-text { min-width:0; }
.base-banner-icon { font-size:1.6rem; flex-shrink:0; }
.base-banner-text h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:700;
  font-size:.95rem; color:#fff; margin:0 0 .25rem;
}
.base-banner-text p { font-size:.82rem; color:var(--muted); margin:0; line-height:1.5; }
.base-inclusions {
  display:flex; gap:.5rem; flex-wrap:wrap; margin-left:auto;
}
.base-pill {
  background:var(--faint); border:1px solid var(--border);
  border-radius:20px; padding:.3rem .85rem;
  font-size:.75rem; color:var(--muted); white-space:nowrap;
}

.mod-card {
  display:grid; grid-template-columns:1fr 1fr;
  gap:0; background:var(--card); border:1px solid var(--border);
  border-radius:18px; overflow:hidden; margin-bottom:2.5rem;
}
.mod-card.reverse { direction:rtl; }
.mod-card.reverse > * { direction:ltr; }

.mod-card-content {
  padding:2.8rem 3rem; display:flex; flex-direction:column; justify-content:center;
}
.mod-card-visual {
  background:var(--card2); border-left:1px solid var(--border);
  padding:2.5rem 2.8rem; display:flex; flex-direction:column;
  justify-content:center; gap:1rem;
}
.mod-card.reverse .mod-card-visual { border-left:none; border-right:1px solid var(--border); }

.mod-tag {
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--faint); border:1px solid var(--border);
  border-radius:20px; padding:.3rem .9rem;
  font-size:.72rem; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.8rem; width:fit-content;
}
.mod-tag.pat  { border-color:rgba(33,150,243,.3);  color:var(--blue-l);  background:rgba(33,150,243,.07); }
.mod-tag.mw   { border-color:rgba(245,200,66,.3);  color:#F5C842;        background:rgba(245,200,66,.07); }
.mod-tag.eicr { border-color:rgba(45,216,138,.3);  color:var(--green);   background:rgba(45,216,138,.07); }
.mod-tag.cc   { border-color:rgba(180,120,255,.3); color:#c084fc;        background:rgba(180,120,255,.07); }

.mod-card-content h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.65rem;
  font-weight:800; color:#fff; letter-spacing:-.2px; margin:0 0 .8rem;
}
.mod-card-content .mod-lead {
  font-size:.95rem; color:var(--muted); line-height:1.75; margin:0 0 1.4rem;
}

.mod-features { list-style:none; margin:0 0 1.8rem; padding:0; }
.mod-features li {
  display:flex; align-items:flex-start; gap:.7rem;
  font-size:.875rem; color:var(--text); line-height:1.55; margin-bottom:.55rem;
}
.mod-features li::before { content:'✓'; color:var(--green); font-weight:700; flex-shrink:0; margin-top:.05rem; }

.mod-disclaimer {
  display:flex; flex-direction:column; gap:.5rem;
  font-size:.78rem; color:var(--muted); line-height:1.5;
  margin:-.8rem 0 1.4rem;
  padding:.6rem .75rem;
  background:rgba(33,150,243,.05); border:1px solid rgba(33,150,243,.12);
  border-radius:8px;
}
.mod-disclaimer span { display:flex; align-items:baseline; gap:.35rem; }
.mod-disclaimer i { color:var(--blue-l); font-size:.8rem; flex-shrink:0; position:relative; top:1px; }
.mod-disclaimer a { color:var(--blue-l); text-decoration:none; font-weight:500; align-self:flex-start; }
.mod-disclaimer a:hover { text-decoration:underline; }

.mod-cta-row {
  display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; margin-top:auto;
}
.mod-price-badge {
  background:var(--faint); border:1px solid var(--border);
  border-radius:10px; padding:.6rem 1rem; text-align:center;
}
.mod-price-badge .price { font-family:'Plus Jakarta Sans',sans-serif; font-size:1.3rem; font-weight:800; color:#fff; }
.mod-price-badge .freq  { font-size:.72rem; color:var(--muted); margin-top:.1rem; }
.mod-demo-link {
  color:var(--blue-l); text-decoration:none; font-size:.87rem;
  font-weight:600; display:inline-flex; align-items:center; gap:.35rem;
}
.mod-demo-link:hover { color:#fff; }

.mod-screen {
  background:var(--card); border:1px solid var(--border);
  border-radius:12px; overflow:hidden;
}
.mod-screen-bar {
  background:rgba(255,255,255,.04); border-bottom:1px solid var(--border);
  padding:.55rem .9rem; display:flex; align-items:center; gap:.4rem;
}
.mod-screen-dot {
  width:9px; height:9px; border-radius:50%;
}
.mod-screen-body { padding:1.1rem 1.2rem; }

.mod-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.mod-stat {
  background:var(--card2); border:1px solid var(--border);
  border-radius:10px; padding:.8rem 1rem;
}
.mod-stat .val { font-family:'Plus Jakarta Sans',sans-serif; font-size:1.35rem; font-weight:800; color:#fff; }
.mod-stat .lbl { font-size:.72rem; color:var(--muted); margin-top:.15rem; }
.mod-stat.accent .val { color:var(--blue-l); }
.mod-stat.green  .val { color:var(--green); }
.mod-stat.gold   .val { color:#F5C842; }
.mod-stat.purple .val { color:#c084fc; }

.chip-row { display:flex; flex-wrap:wrap; gap:.45rem; }
.chip {
  background:var(--faint); border:1px solid var(--border);
  border-radius:20px; padding:.3rem .8rem;
  font-size:.74rem; color:var(--muted);
}

.mod-bottom-cta {
  text-align:center; padding:3.5rem 2rem;
  background:var(--card); border:1px solid var(--border);
  border-radius:18px; margin-top:1rem;
}
.mod-bottom-cta h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.8rem;
  font-weight:800; color:#fff; margin:0 0 .8rem; letter-spacing:-.2px;
}
.mod-bottom-cta p { color:var(--muted); font-size:.95rem; max-width:500px; margin:0 auto 2rem; line-height:1.7; }
.mod-cta-buttons { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

@media(max-width:820px){
  .mod-card, .mod-card.reverse { grid-template-columns:1fr; direction:ltr; }
  .mod-card-visual { border-left:none !important; border-right:none !important; border-top:1px solid var(--border); padding:1.8rem 1.6rem; }
  .mod-card-content { padding:2rem 1.6rem; }
  .base-inclusions  { margin-left:0; }
  .mod-stat-grid    { grid-template-columns:repeat(2,1fr); }
}

/* ==========================================================================
   Service Providers page  (sp- prefix)
   ========================================================================== */

.sp-page { max-width:1100px; margin:0 auto; padding:4rem 2rem 6rem; }

.sp-hero { text-align:center; padding:1rem 0 3.5rem; }
.sp-hero h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2.1rem,4.5vw,3.4rem); font-weight:800;
  color:#fff; letter-spacing:-.4px; margin:.5rem 0 1.2rem;
  line-height:1.15;
}
.sp-hero h1 span { color:var(--blue-l); }
.sp-hero p  { color:var(--muted); font-size:1.05rem; max-width:600px; margin:0 auto 2.2rem; line-height:1.75; }
.sp-hero-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

.sp-stats {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--border);
  border:1px solid var(--border); border-radius:16px;
  overflow:hidden; margin-bottom:4rem;
}
.sp-stat {
  background:var(--card); padding:1.8rem 1.5rem; text-align:center;
}
.sp-stat .sv {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:2.2rem;
  font-weight:800; color:var(--blue-l); line-height:1;
}
.sp-stat .sl { font-size:.82rem; color:var(--muted); margin-top:.4rem; line-height:1.4; }

.sp-section-head { text-align:center; margin-bottom:2.5rem; }
.sp-section-head h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:800; color:#fff; letter-spacing:-.2px; margin:.4rem 0 .8rem;
}
.sp-section-head p { color:var(--muted); font-size:.95rem; max-width:540px; margin:0 auto; line-height:1.7; }

.sp-benefits {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.2rem; margin-bottom:4rem;
}
.sp-benefit-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:1.8rem 1.6rem;
  display:flex; flex-direction:column; gap:.7rem;
}
.sp-benefit-icon {
  width:44px; height:44px; border-radius:12px;
  background:var(--faint); border:1px solid rgba(33,150,243,.2);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; flex-shrink:0;
}
.sp-benefit-card h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1rem;
  font-weight:700; color:#fff; margin:0;
}
.sp-benefit-card p { font-size:.84rem; color:var(--muted); line-height:1.65; margin:0; }

.sp-steps { display:flex; flex-direction:column; gap:0; margin-bottom:4rem; }
.sp-step {
  display:grid; grid-template-columns:60px 1fr;
  gap:1.5rem; align-items:flex-start;
  padding:1.8rem 2rem;
  background:var(--card); border:1px solid var(--border);
  border-radius:0; margin-bottom:-1px;
  position:relative;
}
.sp-step:first-child { border-radius:16px 16px 0 0; }
.sp-step:last-child  { border-radius:0 0 16px 16px; margin-bottom:0; }
.sp-step-num {
  width:44px; height:44px; border-radius:50%;
  background:rgba(33,150,243,.1); border:2px solid rgba(33,150,243,.3);
  display:flex; align-items:center; justify-content:center;
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.05rem;
  font-weight:800; color:var(--blue-l); flex-shrink:0; margin-top:.1rem;
}
.sp-step-body h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.05rem;
  font-weight:700; color:#fff; margin:0 0 .4rem;
}
.sp-step-body p { font-size:.88rem; color:var(--muted); line-height:1.65; margin:0; }

.sp-pricing-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:1.5rem; margin-bottom:4rem;
}
.sp-price-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:18px; overflow:hidden;
}
.sp-price-card.featured { border-color:rgba(33,150,243,.4); }
.sp-price-card-top {
  padding:1.8rem 2rem 1.4rem;
  border-bottom:1px solid var(--border);
}
.sp-price-card.featured .sp-price-card-top {
  background:linear-gradient(135deg,rgba(33,150,243,.12),rgba(33,150,243,.04));
}
.sp-price-card-top .badge {
  display:inline-block; background:rgba(33,150,243,.15);
  border:1px solid rgba(33,150,243,.3); border-radius:20px;
  padding:.2rem .75rem; font-size:.72rem; font-weight:700;
  color:var(--blue-l); letter-spacing:.04em; text-transform:uppercase;
  margin-bottom:.7rem;
}
.sp-price-card-top h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.15rem;
  font-weight:800; color:#fff; margin:0 0 .3rem;
}
.sp-price-card-top .sp-price {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:2.4rem;
  font-weight:800; color:#fff; line-height:1;
  display:flex; align-items:baseline; gap:.3rem;
}
.sp-price-card-top .sp-price sub { font-size:1rem; font-weight:400; color:var(--muted); }
.sp-price-card-top .sp-price-desc { font-size:.8rem; color:var(--muted); margin-top:.35rem; }
.sp-price-card-body { padding:1.6rem 2rem; }
.sp-price-list { list-style:none; margin:0; padding:0; }
.sp-price-list li {
  display:flex; align-items:flex-start; gap:.65rem;
  font-size:.86rem; color:var(--text); margin-bottom:.6rem; line-height:1.5;
}
.sp-price-list li::before { content:'✓'; color:var(--green); font-weight:700; flex-shrink:0; }
.sp-price-list li.muted { color:var(--muted); }
.sp-price-list li.muted::before { content:'+'; color:var(--blue-l); }

.sp-compare {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; overflow:hidden; margin-bottom:4rem;
}
.sp-compare-head {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  background:rgba(255,255,255,.03); border-bottom:1px solid var(--border);
  padding:.9rem 1.5rem;
}
.sp-compare-head span { font-size:.78rem; font-weight:700; color:var(--muted); letter-spacing:.05em; text-transform:uppercase; }
.sp-compare-head span:not(:first-child) { text-align:center; }
.sp-compare-row {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  padding:.9rem 1.5rem; border-bottom:1px solid var(--border);
  align-items:center;
}
.sp-compare-row:last-child { border-bottom:none; }
.sp-compare-row:nth-child(even) { background:rgba(255,255,255,.015); }
.sp-compare-row .feature { font-size:.86rem; color:var(--text); }
.sp-compare-row .feature small { display:block; font-size:.76rem; color:var(--muted); margin-top:.1rem; }
.sp-compare-row .cell { text-align:center; font-size:.86rem; }
.sp-compare-row .cell.yes  { color:var(--green); font-weight:700; }
.sp-compare-row .cell.no   { color:var(--muted); }
.sp-compare-row .cell.val  { color:#fff; font-weight:600; }
.sp-compare-row .cell.disc { color:var(--blue-l); font-weight:600; }

.sp-quote {
  background:linear-gradient(135deg,rgba(33,150,243,.1),rgba(33,150,243,.03));
  border:1px solid rgba(33,150,243,.2); border-radius:18px;
  padding:2.5rem 3rem; margin-bottom:4rem; position:relative;
}
.sp-quote::before {
  content:'\201C'; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:5rem; color:rgba(33,150,243,.2); line-height:1;
  position:absolute; top:1rem; left:2rem;
}
.sp-quote blockquote {
  font-size:1.15rem; color:var(--text); line-height:1.75;
  font-style:italic; margin:0 0 1.2rem; padding-left:1.5rem;
}
.sp-quote-attr { padding-left:1.5rem; font-size:.85rem; color:var(--muted); }
.sp-quote-attr strong { color:#fff; }

.sp-faq { margin-bottom:4rem; }
.sp-faq-item {
  background:var(--card); border:1px solid var(--border);
  border-radius:0; margin-bottom:-1px; overflow:hidden;
}
.sp-faq-item:first-child { border-radius:14px 14px 0 0; }
.sp-faq-item:last-child  { border-radius:0 0 14px 14px; margin-bottom:0; }
.sp-faq-q {
  padding:1.1rem 1.5rem; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem; user-select:none;
}
.sp-faq-q span { font-size:.92rem; font-weight:600; color:var(--text); }
.sp-faq-q .sp-faq-arrow { color:var(--muted); font-size:.8rem; transition:.2s; flex-shrink:0; }
.sp-faq-item.open .sp-faq-arrow { transform:rotate(180deg); color:var(--blue-l); }
.sp-faq-item.open .sp-faq-q span { color:#fff; }
.sp-faq-a {
  display:none; padding:0 1.5rem 1.2rem;
  font-size:.87rem; color:var(--muted); line-height:1.7;
}
.sp-faq-item.open .sp-faq-a { display:block; }

.sp-cta {
  text-align:center;
  background:linear-gradient(135deg,rgba(33,150,243,.12),rgba(33,150,243,.04));
  border:1px solid rgba(33,150,243,.25); border-radius:20px;
  padding:3.5rem 2rem;
}
.sp-cta h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(1.7rem,3vw,2.4rem);
  font-weight:800; color:#fff; margin:0 0 .8rem; letter-spacing:-.2px;
}
.sp-cta p { color:var(--muted); font-size:1rem; max-width:500px; margin:0 auto 2rem; line-height:1.7; }

@media(max-width:860px){
  .sp-stats        { grid-template-columns:repeat(2,1fr); }
  .sp-benefits     { grid-template-columns:1fr 1fr; }
  .sp-pricing-grid { grid-template-columns:1fr; }
  .sp-compare-head,
  .sp-compare-row  { grid-template-columns:1.5fr 1fr 1fr; }
  .sp-quote        { padding:2rem 1.8rem; }
  .sp-quote::before { display:none; }
  .sp-quote blockquote,
  .sp-quote-attr   { padding-left:0; }
}
@media(max-width:580px){
  .sp-benefits { grid-template-columns:1fr; }
}

/* ==========================================================================
   About page  (about- prefix)
   ========================================================================== */

.about-page { max-width:1100px; margin:0 auto; padding:4rem 2rem 6rem; }

.about-hero { text-align:center; padding:1rem 0 3.5rem; }
.about-hero h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2rem,4vw,3.2rem); font-weight:800;
  color:#fff; letter-spacing:-.3px; margin:.5rem 0 1.2rem; line-height:1.2;
}
.about-hero h1 em { font-style:normal; color:var(--blue-l); }
.about-hero p { color:var(--muted); font-size:1.05rem; max-width:600px; margin:0 auto; line-height:1.75; }

.mission-strip {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:var(--border);
  border:1px solid var(--border); border-radius:16px;
  overflow:hidden; margin-bottom:4rem;
}
.mission-cell {
  background:var(--card); padding:1.8rem 1.6rem;
  text-align:center;
}
.mission-cell .mc-icon { font-size:1.8rem; margin-bottom:.7rem; }
.mission-cell h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.95rem;
  font-weight:700; color:#fff; margin-bottom:.4rem;
}
.mission-cell p { font-size:.82rem; color:var(--muted); line-height:1.6; }

.about-two-col {
  display:grid; grid-template-columns:1fr 1fr;
  gap:3rem; align-items:center; margin-bottom:4rem;
}
.about-two-col.flip { direction:rtl; }
.about-two-col.flip > * { direction:ltr; }
.about-prose h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(1.5rem,2.5vw,2rem);
  font-weight:800; color:#fff; letter-spacing:-.2px; margin-bottom:1rem; line-height:1.25;
}
.about-prose h2 em { font-style:normal; color:var(--blue-l); }
.about-prose p { font-size:.92rem; color:var(--muted); line-height:1.75; margin-bottom:1rem; }
.about-prose p:last-child { margin-bottom:0; }
.about-prose .about-list { list-style:none; margin:.8rem 0 0; padding:0; }
.about-prose .about-list li {
  display:flex; align-items:flex-start; gap:.6rem;
  font-size:.88rem; color:var(--text); margin-bottom:.5rem; line-height:1.55;
}
.about-prose .about-list li::before { content:'✓'; color:var(--green); font-weight:700; flex-shrink:0; margin-top:.1rem; }

.about-stat-panel {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:2rem;
  display:flex; flex-direction:column; gap:1rem;
}
.about-stat-row {
  background:var(--card2); border:1px solid var(--border);
  border-radius:10px; padding:1.1rem 1.4rem;
  display:flex; justify-content:space-between; align-items:center;
}
.about-stat-row .asr-label { font-size:.82rem; color:var(--muted); }
.about-stat-row .asr-val {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.3rem;
  font-weight:800; color:var(--blue-l);
}
.about-cs-logo {
  background:linear-gradient(135deg,rgba(33,150,243,.15),rgba(33,150,243,.04));
  border:1px solid rgba(33,150,243,.2); border-radius:16px;
  padding:1rem 2rem 1.6rem;
  display:flex; flex-direction:column; gap:.9rem;
}
.about-cs-logo .cs-wordmark {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.6rem;
  font-weight:800; color:#fff; letter-spacing:-.3px;
}
.about-cs-logo .cs-wordmark span { color:var(--blue-l); }
.about-cs-logo .cs-tag {
  font-size:.75rem; color:var(--muted); letter-spacing:.06em;
  text-transform:uppercase; font-weight:600;
}
.about-cs-logo .cs-desc {
  font-size:.85rem; color:var(--muted); line-height:1.65;
  border-top:1px solid var(--border); padding-top:.9rem;
}
.cs-pill-row { display:flex; flex-wrap:wrap; gap:.4rem; }
.cs-pill {
  background:var(--faint); border:1px solid var(--border);
  border-radius:20px; padding:.25rem .75rem;
  font-size:.73rem; color:var(--muted);
}

.about-section-head { text-align:center; margin-bottom:2.5rem; }
.about-section-head h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.5rem,3vw,2.1rem); font-weight:800;
  color:#fff; letter-spacing:-.2px; margin:.4rem 0 .8rem;
}
.about-section-head p { color:var(--muted); font-size:.93rem; max-width:560px; margin:0 auto; line-height:1.7; }

.product-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.2rem; margin-bottom:4rem;
}
.product-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color .2s, transform .2s;
}
.product-card:hover { border-color:rgba(33,150,243,.35); transform:translateY(-2px); }
.product-card-top {
  padding:1.5rem 1.6rem 1.2rem;
  border-bottom:1px solid var(--border);
  display:flex; align-items:flex-start; gap:.9rem;
}
.product-icon {
  width:42px; height:42px; border-radius:11px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
}
.pi-ca, .pi-cc, .pi-cs, .pi-csp, .pi-ep, .pi-fm, .pi-ir, .pi-tc { background:none; border:none; }

.product-card-top-text h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.98rem;
  font-weight:800; color:#fff; margin-bottom:.25rem;
}
.product-card-top-text .p-tag {
  font-size:.72rem; color:var(--muted); font-weight:500;
}
.product-card-body {
  padding:1.2rem 1.6rem 1.5rem;
  flex:1; display:flex; flex-direction:column; gap:.8rem;
}
.product-card-body p { font-size:.84rem; color:var(--muted); line-height:1.65; flex:1; }
.product-card-features { list-style:none; padding:0; margin:0; }
.product-card-features li {
  display:flex; align-items:flex-start; gap:.5rem;
  font-size:.79rem; color:var(--muted); margin-bottom:.35rem; line-height:1.45;
}
.product-card-features li::before { content:'•'; color:var(--blue-l); flex-shrink:0; }
.product-card-std {
  display:inline-block; font-size:.7rem; font-weight:600;
  border-radius:20px; padding:.2rem .7rem;
  background:var(--faint); border:1px solid var(--border);
  color:var(--muted); margin-top:auto; width:fit-content;
}
a.product-card { cursor:pointer; text-decoration:none; }
a.product-card:hover { border-color:rgba(33,150,243,.35); transform:translateY(-2px); }

.about-cta {
  text-align:center;
  background:linear-gradient(135deg,rgba(33,150,243,.12),rgba(33,150,243,.03));
  border:1px solid rgba(33,150,243,.2); border-radius:20px;
  padding:3.5rem 2rem;
}
.about-cta h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:800; color:#fff; margin-bottom:.8rem; letter-spacing:-.2px;
}
.about-cta p { color:var(--muted); font-size:.95rem; max-width:500px; margin:0 auto 2rem; line-height:1.7; }
.about-cta-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

@media(max-width:860px) {
  .about-two-col, .about-two-col.flip { grid-template-columns:1fr; direction:ltr; }
  .mission-strip  { grid-template-columns:1fr; }
  .product-grid   { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
  .product-grid   { grid-template-columns:1fr; }
}

/* ==========================================================================
   Demo request page  (demo- prefix)
   ========================================================================== */

.demo-wrap { max-width:1100px; margin:0 auto; padding:4rem 2rem 6rem; }

.demo-grid {
  display:grid; grid-template-columns:1fr 380px;
  gap:3rem; align-items:start; margin-top:3rem;
}

.demo-form-card {
  background:var(--card); border:1px solid var(--border); border-radius:16px; overflow:hidden;
}
.demo-form-card-header {
  padding:1.4rem 1.8rem; border-bottom:1px solid var(--border);
}
.demo-form-card-header h2 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:1.05rem;
  font-weight:700; color:#fff; margin:0 0 .25rem;
}
.demo-form-card-header p { font-size:.8rem; color:var(--muted); margin:0; }
.demo-form-body { padding:1.8rem; }

.f-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; align-items:start; }
.f-row + .f-row, .f-row + .f-group, .f-group + .f-row, .f-group + .f-group { margin-top:.9rem; }
/* Cancel the sibling margin for groups sitting side-by-side inside a row */
.f-row .f-group + .f-group { margin-top:0; }
.f-group { display:flex; flex-direction:column; gap:.3rem; }

.f-label {
  font-size:.76rem; font-weight:600; color:var(--muted); letter-spacing:.04em; text-transform:uppercase;
}
.f-label .req { color:var(--blue-l); }

.f-input, .f-select, .f-textarea {
  background:var(--card2); border:1px solid var(--border); border-radius:8px;
  color:var(--text); font-family:'DM Sans',sans-serif; font-size:.88rem;
  padding:.65rem .9rem; outline:none; width:100%; box-sizing:border-box;
  transition:border-color .15s, box-shadow .15s;
}
.f-select {
  appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A95B8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center; padding-right:2.4rem;
}
.f-select option { background:#142038; color:#E4EEF8; }
.f-textarea { resize:vertical; min-height:110px; }
.f-input:focus, .f-select:focus, .f-textarea:focus {
  border-color:var(--blue); box-shadow:0 0 0 3px rgba(33,150,243,.15);
}
.f-input.is-invalid, .f-select.is-invalid, .f-num-wrap.is-invalid { border-color:#ff6b6b; }
.f-error { font-size:.74rem; color:#ff8a8a; }

/* ── Custom number stepper ───────────────────────────────────────────────── */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
input[type=number] { -moz-appearance:textfield; appearance:textfield; }

.f-num-wrap {
  display:flex; align-items:stretch;
  background:var(--card2); border:1px solid var(--border); border-radius:8px;
  overflow:hidden; transition:border-color .15s, box-shadow .15s;
}
.f-num-wrap:focus-within {
  border-color:var(--blue); box-shadow:0 0 0 3px rgba(33,150,243,.15);
}
.f-num-wrap .f-input {
  background:transparent !important; border:none !important;
  box-shadow:none !important; border-radius:0 !important;
  flex:1; text-align:center; padding:.65rem .25rem; min-width:0;
}
.f-num-btn {
  flex-shrink:0; width:36px; padding:0;
  background:none; border:none; cursor:pointer;
  color:var(--muted); font-size:.95rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:color .15s, background .15s;
  user-select:none;
}
.f-num-btn:hover  { color:#fff; background:rgba(33,150,243,.1); }
.f-num-btn:active { background:rgba(33,150,243,.22); }
.f-num-dec { border-right:1px solid var(--border); }
.f-num-inc { border-left:1px solid var(--border); }

.form-sep {
  font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blue-l); padding:.5rem 0; margin:1.4rem 0 .6rem;
  border-top:1px solid var(--border);
}
.form-sep:first-child { margin-top:0; border-top:none; }

.demo-submit {
  display:block; width:100%; background:var(--blue); color:#fff;
  border:none; border-radius:10px; font-family:'DM Sans',sans-serif;
  font-weight:600; font-size:.95rem; padding:1rem; cursor:pointer;
  margin-top:1.6rem; transition:.2s; letter-spacing:.01em;
}
.demo-submit:hover { background:#42AAFF; transform:translateY(-1px); }

/* ── Anti-bot honeypot field ──────────────────────────────────────────────── */
.hp-field {
  position:absolute; left:-9999px; top:-9999px;
  width:1px; height:1px; opacity:0;
  pointer-events:none; tab-index:-1;
}

.d-alert {
  border-radius:10px; padding:1rem 1.2rem; margin-bottom:1.5rem;
  font-size:.88rem; display:flex; align-items:flex-start; gap:.8rem;
}
.d-alert-ok  { background:rgba(45,216,138,.08); border:1px solid rgba(45,216,138,.25); color:#2dd88a; }
.d-alert-err { background:rgba(255,107,107,.08); border:1px solid rgba(255,107,107,.25); color:#ff8a8a; }
.d-alert strong { display:block; margin-bottom:.2rem; font-size:.9rem; }
.d-alert-icon { font-size:1.15rem; flex-shrink:0; line-height:1.4; }

.demo-sidebar { display:flex; flex-direction:column; gap:1.2rem; position:sticky; top:90px; }
.sb-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:14px; padding:1.4rem 1.6rem;
}
.sb-card h3 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.95rem;
  font-weight:700; color:#fff; margin:0 0 .9rem;
  display:flex; align-items:center; gap:.55rem;
}
.sb-card h3 i { position:relative; top:2px; }
.sb-contact-item {
  display:flex; align-items:center; gap:.75rem;
  padding:.5rem 0; border-bottom:1px solid rgba(100,160,255,.07);
  font-size:.83rem;
}
.sb-contact-item:last-child { border-bottom:none; }
.sb-contact-icon {
  width:32px; height:32px; border-radius:8px; flex-shrink:0;
  background:var(--faint); border:1px solid rgba(33,150,243,.2);
  display:flex; align-items:center; justify-content:center; font-size:.9rem;
}
.sb-contact-item a { color:var(--blue-l); text-decoration:none; }
.sb-contact-item a:hover { color:#fff; }
.sb-promise-list { list-style:none; margin:0; padding:0; }
.sb-promise-list li {
  display:flex; align-items:flex-start; gap:.65rem;
  font-size:.83rem; color:var(--muted); line-height:1.55; margin-bottom:.65rem;
}
.sb-promise-list li:last-child { margin-bottom:0; }
.sb-promise-list li::before { content:'✓'; color:var(--green); font-weight:700; flex-shrink:0; }

@media(max-width:900px){
  .demo-grid { grid-template-columns:1fr; }
  .demo-sidebar { position:static; }
  .f-row { grid-template-columns:1fr; }
}

/* ==========================================================================
   Site footer
   ========================================================================== */

.site-footer {
  background:var(--bg2); border-top:1px solid var(--border);
  padding:3rem 4rem;
  display:block;
}
.site-footer-inner {
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr;
  gap:2.5rem; align-items:start;
}
.sf-brand .site-footer-logo {
  font-family:'Plus Jakarta Sans',sans-serif; font-weight:800;
  font-size:1.25rem; color:#fff;
}
.sf-brand .site-footer-logo span { color:var(--blue-l); }
.sf-brand .sf-tagline { font-size:.82rem; color:var(--muted); margin-top:.4rem; line-height:1.55; max-width:230px; }
.sf-brand .sf-contact { margin-top:1.2rem; display:flex; flex-direction:column; gap:.35rem; }
.sf-brand .sf-contact a {
  font-size:.8rem; color:var(--muted); text-decoration:none;
  display:flex; align-items:center; gap:.45rem; transition:.15s;
}
.sf-brand .sf-contact a:hover { color:var(--blue-l); }
.sf-brand .sf-contact .sf-ci { font-size:.85rem; margin-top:.3rem; opacity:.6; flex-shrink:0; }
.sf-col h4 {
  font-family:'Plus Jakarta Sans',sans-serif; font-size:.75rem;
  font-weight:700; color:var(--muted); letter-spacing:.08em;
  text-transform:uppercase; margin-bottom:.85rem;
}
.sf-col ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; }
.sf-col ul li a {
  font-size:.84rem; color:var(--muted); text-decoration:none; transition:.15s;
}
.sf-col ul li a:hover { color:#fff; }
.sf-bottom {
  max-width:1100px; margin:2rem auto 0;
  border-top:1px solid var(--border); padding-top:1.2rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.8rem;
}
.sf-bottom p { font-size:.75rem; color:var(--muted); }
.sf-bottom a { font-size:.75rem; color:var(--muted); text-decoration:none; }
.sf-bottom a:hover { color:var(--blue-l); }
@media(max-width:860px) {
  .site-footer { padding:2.5rem 2rem; }
  .site-footer-inner { grid-template-columns:1fr 1fr; gap:2rem; }
  .sf-brand { grid-column:1 / -1; }
}
@media(max-width:500px) {
  .site-footer-inner { grid-template-columns:1fr; }
}

/* ==========================================================================
   Terms & Conditions page  (terms- prefix)
   ========================================================================== */
.terms-page {
  max-width:860px; margin:0 auto; padding:4rem 2rem 6rem;
}

/* Hero */
.terms-hero {
  text-align:center; padding:1rem 0 3rem;
}
.terms-hero h1 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.9rem,4vw,3rem); font-weight:800; color:#fff;
  margin:.6rem 0 1rem;
}
.terms-hero p {
  font-size:.95rem; color:var(--muted); max-width:600px;
  margin:0 auto; line-height:1.7;
}

/* Main card */
.terms-card {
  background:var(--card); border:1px solid var(--border);
  border-radius:16px; padding:2.5rem 3rem;
}
@media(max-width:600px) {
  .terms-card { padding:1.6rem 1.4rem; }
}

/* Meta row: company + effective date */
.terms-meta {
  display:flex; align-items:baseline; justify-content:space-between;
  flex-wrap:wrap; gap:.5rem; margin-bottom:1.4rem;
}
.terms-company {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:700; font-size:1rem; color:#fff;
}
.terms-effective {
  font-size:.8rem; color:var(--muted);
}

/* Divider rule */
.terms-rule {
  border:none; border-top:1px solid var(--border); margin:1.6rem 0;
}

/* Individual clause sections */
.terms-section {
  margin-bottom:1.8rem;
}
.terms-section:last-of-type {
  margin-bottom:0;
}
.terms-section h2 {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem; font-weight:700; color:#fff;
  margin:0 0 .65rem;
}
.terms-section p {
  font-size:.87rem; color:var(--muted); line-height:1.75;
  margin:0 0 .5rem;
}
.terms-section p:last-child { margin-bottom:0; }

/* Numbered sub-clauses (2.1, 2.2 etc) */
.terms-ol {
  list-style:decimal; padding-left:1.4rem; margin:.4rem 0 0;
}
.terms-ol li {
  font-size:.87rem; color:var(--muted); line-height:1.75; margin-bottom:.35rem;
}
.terms-ol li:last-child { margin-bottom:0; }

/* Bullet lists */
.terms-ul {
  list-style:disc; padding-left:1.4rem; margin:.4rem 0 0;
}
.terms-ul li {
  font-size:.87rem; color:var(--muted); line-height:1.75; margin-bottom:.35rem;
}
.terms-ul li:last-child { margin-bottom:0; }

/* Tables (lawful basis, sub-processors) - scroll sideways on small screens */
.terms-table {
  display:block; width:100%; overflow-x:auto;
  border-collapse:collapse; margin:.6rem 0 .8rem;
  font-size:.82rem; color:var(--muted); line-height:1.6;
}
.terms-table th, .terms-table td {
  border:1px solid var(--border); padding:.55rem .7rem;
  text-align:left; vertical-align:top; min-width:120px;
}
.terms-table th {
  color:#fff; font-weight:700; background:rgba(255,255,255,0.03);
}
.terms-section code {
  font-size:.8rem; color:#fff; background:rgba(255,255,255,0.06);
  padding:.05rem .35rem; border-radius:4px;
}

/* Footer */
.terms-footer {
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem; margin-top:.4rem;
}
.terms-footer-logo img {
  height:56px; width:auto; display:block; transform:translateX(-5px);
}
.terms-footer-contact a {
  display:flex; align-items:center; gap:.4rem;
  font-size:.84rem; color:var(--muted); text-decoration:none; transition:color .15s;
}
.terms-footer-contact a:hover { color:var(--blue-l); }
.terms-footer-contact i { font-size:1rem; position:relative; top:1px; }

/* ─── COOKIE NOTICE ─────────────────────────────────────────────────────────── */
.sf-cookie-notice {
  font-size:.75rem;
  color:var(--muted);
  margin-top:.35rem;
  opacity:.7;
}
.sf-cookie-notice code {
  font-size:.72rem;
  background:rgba(255,255,255,.06);
  padding:.1em .35em;
  border-radius:3px;
  font-family:monospace;
}
.sf-cookie-notice a {
  color:var(--muted);
  text-decoration:underline;
  text-underline-offset:2px;
}
.sf-cookie-notice a:hover { color:var(--blue-l); }
