/* ============================================================
   ZZPass Emergency Access — extends landing.css
   Re-points the teal accent to a warm orange (heart.text.clipboard).
   Adds page-specific components: status badges, trust-circle stage,
   timeline cards, controls grid.
   ============================================================ */

:root {
  /* Navy accent system — matches the rest of the site */
  --accent:      #173F94;
  --accent-deep: #0C2C6E;
  --accent-soft: #E4EAF6;
  --accent-tint: #CFD9EE;
  --accent-glow: rgba(23, 63, 148, 0.16);

  /* Status palette (matches in-app) */
  --st-active:   #2D9C5F;  /* green — fills, dots, bars */
  --st-active-bg: #E3F4EA;
  --st-active-ink: #1B6339;  /* green text on tint (AA) */
  --st-trig:     #E26B1F;  /* orange — fills, dots, bars */
  --st-trig-bg:  #FBEDDF;
  --st-trig-ink: #7E3705;  /* orange text on --st-trig-bg (AA) */
  --st-unlock:   #C7382D;  /* red — fills, dots, bars */
  --st-unlock-bg:#FAE3E1;
  --st-unlock-ink: #92221A;  /* red text on tint (AA) */
}

/* ---- Accent tokens ---- */
.ea .eyebrow { color: var(--accent-deep); }
.ea .eyebrow .dot {
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
}
.ea .sec-head h2 em,
.ea .hero h1 em,
.ea h2 em { font-style: normal; color: inherit; }
.ea .hero-bloom {
  background: radial-gradient(closest-side, var(--accent-glow), transparent 70%);
}
.ea .trust-row .dot { background: var(--accent); }
.ea .nav-cta:hover { background: var(--accent-deep); }
.ea .ft-link, .ea .ft-link:link { color: var(--accent-deep); }
.ea .feat-ic { background: var(--accent-soft); color: var(--accent-deep); }
.ea .feature-accent { background: linear-gradient(180deg, #fff, var(--accent-soft) 220%); border-color: rgba(23,63,148,0.28); }

/* ============================================================
   HERO — trust circle + soft cards
   ============================================================ */
.ea-hero {
  position: relative;
  padding: 72px 0 100px;
  overflow: hidden;
  background: linear-gradient(180deg, #FBFAF6 0%, #F7F2EB 100%);
}
.ea-hero-bloom {
  position: absolute;
  top: -200px; right: -120px;
  width: 760px; height: 760px;
  background: radial-gradient(closest-side, rgba(23,63,148,0.22), transparent 65%);
  pointer-events: none;
}
.ea-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 56px;
  align-items: center;
  position: relative;
}
@media (max-width: 980px) { .ea-hero-grid { grid-template-columns: 1fr; gap: 48px; } }

.ea-hero h1 {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: clamp(48px, 6.4vw, 80px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  margin: 22px 0 26px;
  text-wrap: balance;
  color: var(--ink);
}
.ea-hero h1 em { font-style: normal; color: inherit; }
.ea-hero .lede {
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.55;
  color: var(--ink-2);
  max-width: 540px;
  text-wrap: pretty;
}

/* ---- HERO STAGE: trust circle ---- */
.ea-stage {
  position: relative;
  min-height: 560px;
  display: flex; align-items: center; justify-content: center;
}
.ea-orbit {
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.ea-orbit::before, .ea-orbit::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  border: 1px dashed rgba(23,63,148,0.28);
}
.ea-orbit::before { width: 380px; height: 380px; }
.ea-orbit::after  { width: 540px; height: 540px; border-color: rgba(23,63,148,0.15); }

.ea-vault {
  position: relative;
  width: 220px; height: 220px;
  border-radius: 32px;
  background: linear-gradient(180deg, #1B1D20 0%, #0F1114 100%);
  box-shadow:
    0 30px 60px -20px rgba(20,21,24,0.4),
    inset 0 1px 0 rgba(255,255,255,0.08);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 16px;
  color: #fff;
  z-index: 2;
}
.ea-vault-mark {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-deep) 100%);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 6px rgba(23,63,148,0.18), 0 10px 30px -8px rgba(23,63,148,0.5);
}
.ea-vault-mark svg { width: 28px; height: 28px; color: #fff; }
.ea-vault-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.ea-vault-name {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: 22px; line-height: 1; letter-spacing: -0.01em;
}

/* Contact chips around the vault */
.ea-contact {
  position: absolute;
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px 10px 10px;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 999px;
  box-shadow: 0 10px 22px -10px rgba(20,21,24,0.18);
  z-index: 3;
  white-space: nowrap;
}
.ea-contact .av {
  width: 30px; height: 30px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: 11px; color: #fff;
  letter-spacing: 0.02em;
}
.ea-contact .nm { font-size: 13px; font-weight: 500; color: var(--ink); line-height: 1; }
.ea-contact .rl { font-size: 10.5px; color: var(--ink-mute); line-height: 1.2; margin-top: 3px; font-family: 'JetBrains Mono', monospace; letter-spacing: 0.06em; text-transform: uppercase; }
.ea-contact-text { display: flex; flex-direction: column; }

.ea-contact.c1 { top: 8%; left: 4%; }
.ea-contact.c1 .av { background: #5E8EE0; }
.ea-contact.c2 { top: 14%; right: 0%; }
.ea-contact.c2 .av { background: #C77B5C; }
.ea-contact.c3 { bottom: 22%; left: -2%; }
.ea-contact.c3 .av { background: #6FA86A; }
.ea-contact.c4 { bottom: 6%; right: 6%; }
.ea-contact.c4 .av { background: #9B6FB0; }

/* Status pill on top of vault */
.ea-vault-status {
  position: absolute;
  top: -14px; left: 50%; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 12px;
  background: var(--st-active-bg);
  color: var(--st-active-ink);
  border-radius: 999px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
  border: 1px solid rgba(45,156,95,0.25);
  z-index: 4;
}
.ea-vault-status::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--st-active);
  box-shadow: 0 0 0 3px rgba(45,156,95,0.2);
}

/* Animated pulse rings */
@keyframes eaPulse {
  0%   { transform: scale(1);   opacity: 0.6; }
  100% { transform: scale(1.6); opacity: 0; }
}
.ea-pulse {
  position: absolute;
  width: 220px; height: 220px;
  border-radius: 50%;
  border: 1px solid var(--accent);
  animation: eaPulse 3.2s ease-out infinite;
}
.ea-pulse.p2 { animation-delay: 1.6s; }

/* Hide hero stage on small screens */
@media (max-width: 760px) { .ea-stage { min-height: 380px; transform: scale(0.7); } }

/* ============================================================
   PROBLEM section — soft warm card
   ============================================================ */
.ea-problem {
  background: var(--bg-warm);
  padding: 100px 0;
}
.ea-problem-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 64px;
  align-items: center;
}
@media (max-width: 880px) { .ea-problem-grid { grid-template-columns: 1fr; gap: 40px; } }

.ea-problem .stat-block {
  display: flex; flex-direction: column; gap: 18px;
}
.ea-problem .stat-big {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: clamp(72px, 9vw, 132px);
  line-height: 0.94; letter-spacing: -0.03em;
  color: var(--ink);
}
.ea-problem .stat-big em { color: inherit; font-style: normal; }
.ea-problem .stat-lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute);
}

.ea-scenarios {
  display: flex; flex-direction: column; gap: 16px;
}
.ea-scenario {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 16px;
}
.ea-scenario .ic {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent-deep);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ea-scenario .ic svg { width: 22px; height: 22px; }
.ea-scenario .h { font-weight: 600; font-size: 16px; color: var(--ink); margin-bottom: 4px; letter-spacing: -0.005em; }
.ea-scenario .p { font-size: 14px; color: var(--ink-mute); line-height: 1.5; }

/* ============================================================
   HOW IT WORKS — 3-step timeline
   ============================================================ */
.ea-how {
  padding: 120px 0;
  background: var(--bg);
}
.ea-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 56px;
  position: relative;
}
@media (max-width: 880px) { .ea-steps { grid-template-columns: 1fr; gap: 18px; } }

.ea-step {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 20px;
  padding: 28px 26px 24px;
  position: relative;
  display: flex; flex-direction: column; gap: 16px;
  min-height: 360px;
}
.ea-step-num {
  display: flex; align-items: center; gap: 12px;
}
.ea-step-num .n {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: 14px;
  font-family: 'JetBrains Mono', monospace;
}
.ea-step-num .lbl {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-mute);
}
.ea-step h3 {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600; font-size: 26px; line-height: 1.1; letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.ea-step p {
  font-size: 14.5px; line-height: 1.55; color: var(--ink-2);
  margin: 0;
}

/* Step visuals — small mock cards inside */
.ea-step-mock {
  margin-top: auto;
  border-top: 1px dashed var(--rule);
  padding-top: 16px;
}

/* Add contact mock */
.eam-add {
  background: var(--bg-soft);
  border: 1px solid var(--rule);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex; align-items: center; gap: 10px;
}
.eam-add .av {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(180deg, var(--accent), var(--accent-deep));
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 600;
}
.eam-add .nm { font-size: 13px; font-weight: 500; color: var(--ink); }
.eam-add .rl { font-size: 11px; color: var(--ink-mute); font-family: 'JetBrains Mono', monospace; letter-spacing: 0.06em; text-transform: uppercase; }

/* Request mock */
.eam-req {
  background: var(--st-trig-bg);
  border: 1px solid rgba(226,107,31,0.22);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex; flex-direction: column; gap: 8px;
}
.eam-req-top {
  display: flex; align-items: center; justify-content: space-between;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--accent-deep); font-weight: 600;
}
.eam-req-time {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: 26px; line-height: 1; letter-spacing: -0.02em;
  color: var(--ink);
}
.eam-req-bar {
  height: 4px; background: rgba(226,107,31,0.18); border-radius: 2px; overflow: hidden;
}
.eam-req-bar > div {
  width: 35%; height: 100%; background: var(--accent); border-radius: 2px;
}

/* Unlocked mock */
.eam-unlk {
  background: var(--st-unlock-bg);
  border: 1px solid rgba(199,56,45,0.22);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex; align-items: center; gap: 10px;
}
.eam-unlk .ic {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--st-unlock); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
}
.eam-unlk .ic svg { width: 14px; height: 14px; }
.eam-unlk .t { font-weight: 600; font-size: 13px; color: var(--ink); }
.eam-unlk .s { font-size: 11px; color: var(--ink-2); }

/* ============================================================
   STATES — 3 status badges as a visual rhythm break
   ============================================================ */
.ea-states {
  background: var(--bg-soft);
  padding: 100px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.ea-states-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 48px;
}
@media (max-width: 880px) { .ea-states-grid { grid-template-columns: 1fr; gap: 14px; } }

.ea-state {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 18px;
  padding: 26px;
  display: flex; flex-direction: column; gap: 14px;
}
.ea-state-badge {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
}
.ea-state-badge::before {
  content: ''; width: 7px; height: 7px; border-radius: 50%;
}
.ea-state.active   .ea-state-badge { background: var(--st-active-bg); color: var(--st-active-ink); }
.ea-state.active   .ea-state-badge::before { background: var(--st-active); box-shadow: 0 0 0 3px rgba(45,156,95,0.2); }
.ea-state.triggered .ea-state-badge { background: var(--st-trig-bg);   color: var(--st-trig-ink); }
.ea-state.triggered .ea-state-badge::before { background: var(--st-trig); box-shadow: 0 0 0 3px rgba(226,107,31,0.2); }
.ea-state.unlocked .ea-state-badge { background: var(--st-unlock-bg); color: var(--st-unlock-ink); }
.ea-state.unlocked .ea-state-badge::before { background: var(--st-unlock); box-shadow: 0 0 0 3px rgba(199,56,45,0.18); }

.ea-state h4 {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600; font-size: 24px; line-height: 1.1; letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.ea-state p {
  font-size: 14px; color: var(--ink-2); line-height: 1.55;
  margin: 0;
}
.ea-state-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-mute);
  padding-top: 14px;
  border-top: 1px dashed var(--rule);
}

/* ============================================================
   SAFETY CONTROLS — 2x2 with phone mock on the side
   ============================================================ */
.ea-controls {
  padding: 120px 0;
  background: var(--bg);
}
.ea-controls-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 64px;
  align-items: center;
}
@media (max-width: 980px) { .ea-controls-grid { grid-template-columns: 1fr; gap: 40px; } }

.ea-controls-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 540px) { .ea-controls-list { grid-template-columns: 1fr; } }

.ea-control {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 18px 18px 16px;
  display: flex; flex-direction: column; gap: 8px;
}
.ea-control .ic {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: var(--accent-soft);
  color: var(--accent-deep);
  display: inline-flex; align-items: center; justify-content: center;
}
.ea-control .ic svg { width: 16px; height: 16px; }
.ea-control .h { font-weight: 600; font-size: 14px; color: var(--ink); margin-top: 6px; letter-spacing: -0.005em; }
.ea-control .p { font-size: 13px; color: var(--ink-mute); line-height: 1.5; }

/* Phone mock — wait time picker */
.ea-phone-mock {
  position: relative;
  width: 320px;
  margin: 0 auto;
  border-radius: 38px;
  padding: 12px;
  background: linear-gradient(180deg, #1B1D20, #0F1114);
  box-shadow: 0 30px 60px -20px rgba(20,21,24,0.35);
}
.ea-phone-screen {
  background: var(--bg);
  border-radius: 28px;
  padding: 28px 18px 22px;
  display: flex; flex-direction: column; gap: 14px;
}
.ea-phone-status {
  display: flex; align-items: center; justify-content: space-between;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px; font-weight: 600; color: var(--ink);
  padding: 0 4px;
}
.ea-phone-title {
  padding: 4px 4px 0;
}
.ea-phone-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 600;
}
.ea-phone-h {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: 22px; line-height: 1.05; letter-spacing: -0.015em;
  color: var(--ink);
  margin: 6px 0 0;
  font-weight: 400;
}
.ea-phone-sub {
  font-size: 12px; color: var(--ink-mute); margin-top: 6px; line-height: 1.4;
}

.ea-wait-list {
  list-style: none; padding: 0; margin: 6px 0 0;
  display: flex; flex-direction: column; gap: 6px;
}
.ea-wait-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--rule);
}
.ea-wait-row.selected {
  background: var(--accent-soft);
  border-color: rgba(23,63,148,0.35);
}
.ea-wait-row .wn { font-size: 14px; font-weight: 500; color: var(--ink); }
.ea-wait-row .ws { font-size: 11px; color: var(--ink-mute); margin-top: 2px; font-family: 'JetBrains Mono', monospace; letter-spacing: 0.06em; text-transform: uppercase; }
.ea-wait-row .wt { display: flex; flex-direction: column; }
.ea-wait-row .wc {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--rule);
  background: #fff;
}
.ea-wait-row.selected .wc {
  background: var(--accent);
  border-color: var(--accent-deep);
  position: relative;
}
.ea-wait-row.selected .wc::after {
  content: '';
  position: absolute;
  top: 5px; left: 7px;
  width: 5px; height: 9px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* ============================================================
   SECURITY block — dark
   ============================================================ */
.ea-security {
  background: var(--night);
  color: #ECE9DF;
  padding: 120px 0;
}
.ea-security .sec-head h2 { color: #F4F1E8; }
.ea-security .sec-head h2 em { font-style: normal; color: inherit; }
.ea-security .sec-head p { color: #B8B5AB; }
.ea-security .eyebrow { color: #9DB6EC; }
.ea-security .eyebrow .dot { background: #9DB6EC; box-shadow: 0 0 0 3px rgba(157,182,236,0.22); }

.ea-sec-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 56px;
}
@media (max-width: 880px) { .ea-sec-grid { grid-template-columns: 1fr; gap: 14px; } }

.ea-sec-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 18px;
  padding: 26px 24px 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.ea-sec-card .ic {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(157,182,236,0.16);
  color: #9DB6EC;
  display: inline-flex; align-items: center; justify-content: center;
}
.ea-sec-card .ic svg { width: 18px; height: 18px; }
.ea-sec-card h4 {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600; font-size: 22px; line-height: 1.1; letter-spacing: -0.01em;
  color: #F4F1E8;
  margin: 4px 0 0;
}
.ea-sec-card p {
  font-size: 14px; line-height: 1.55; color: #B8B5AB;
  margin: 0;
}

/* ============================================================
   COMPARISON
   ============================================================ */
.ea-compare {
  padding: 120px 0;
  background: var(--bg-soft);
}
.ea-compare-table {
  margin-top: 56px;
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 30px 60px -30px rgba(20,21,24,0.12);
}
.ea-ct-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  align-items: stretch;
}
.ea-ct-row + .ea-ct-row { border-top: 1px solid var(--rule); }
.ea-ct-cell {
  padding: 18px 22px;
  font-size: 14px; color: var(--ink-2);
  display: flex; align-items: center; gap: 8px;
}
.ea-ct-cell + .ea-ct-cell { border-left: 1px solid var(--rule); }
.ea-ct-row.head .ea-ct-cell {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-mute); font-weight: 600;
  background: var(--bg-soft);
  padding: 16px 22px;
}
.ea-ct-row.head .ea-ct-cell.us {
  color: var(--accent-deep);
  background: var(--accent-soft);
}
.ea-ct-cell.us { background: rgba(23,63,148,0.04); color: var(--ink); font-weight: 500; }

.ea-ct-check {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px;
}
.ea-ct-check svg { width: 18px; height: 18px; flex-shrink: 0; }
.ea-ct-check.yes { color: var(--st-active-ink); }
.ea-ct-check.no  { color: var(--ink-mute); }
.ea-ct-check.partial { color: var(--accent-deep); }
.ea-ct-row .ea-ct-cell.feature-name { color: var(--ink); font-weight: 500; }

@media (max-width: 760px) {
  .ea-ct-row { grid-template-columns: 1fr; }
  .ea-ct-cell + .ea-ct-cell { border-left: none; border-top: 1px dashed var(--rule); }
  .ea-ct-row.head { display: none; }
  .ea-ct-cell::before {
    content: attr(data-label);
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--ink-mute); font-weight: 600;
    margin-right: auto;
  }
  .ea-ct-cell.feature-name::before { display: none; }
}

/* ============================================================
   FOOTER CTA — warm orange wash
   ============================================================ */
.ea-footer-cta {
  position: relative;
  padding: 140px 32px 120px;
  text-align: center;
  background: linear-gradient(180deg, #FBFAF6 0%, #CFD9EE 100%);
  overflow: hidden;
}
.ea-footer-cta .fc-bloom {
  position: absolute;
  top: 30%; left: 50%; transform: translate(-50%, -50%);
  width: 720px; height: 720px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(23,63,148,0.22), transparent 65%);
  pointer-events: none;
}
.ea-footer-cta > * { position: relative; }
.ea-footer-cta h2 {
  font-family: 'Instrument Sans', sans-serif; font-weight: 600;
  font-size: clamp(44px, 6vw, 80px);
  line-height: 1.04; letter-spacing: -0.025em;
  font-weight: 400;
  margin: 0 auto 20px;
  max-width: 780px;
  text-wrap: balance;
}
.ea-footer-cta h2 em { font-style: normal; color: inherit; }
.ea-footer-cta .lede {
  font-size: 17px; color: var(--ink-2); line-height: 1.55;
  max-width: 520px; margin: 0 auto 36px;
  text-wrap: pretty;
}
.ea-footer-cta .fc-note {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-mute);
  margin-top: 36px;
}

.ea-shot { display: flex; align-items: center; justify-content: center; min-height: 560px; }
.ea-shot img { width: 300px; max-width: 100%; height: auto; filter: drop-shadow(0 34px 60px rgba(20,21,24,0.22)); }
@media (max-width: 760px) { .ea-shot { min-height: 0; margin-top: 28px; } .ea-shot img { width: 240px; } }

.ea-tier { margin: 22px 0 0; font-size: 14.5px; color: var(--ink-2); }
.ea-tier b { color: var(--ink); font-weight: 600; }
.ea-tier a { font-weight: 600; white-space: nowrap; }

.ea-setup { margin: 26px 0 0; font-size: 15.5px; line-height: 1.6; color: var(--ink-2); text-wrap: pretty; }
.ea-setup b { color: var(--ink); font-weight: 600; }
.ea-ct-foot { margin: 30px auto 0; max-width: 640px; text-align: center; font-size: 14.5px; line-height: 1.6; color: var(--ink-mute); text-wrap: pretty; }
.ea-related { padding: 72px 32px; background: var(--bg-soft); border-top: 1px solid var(--rule); }
.ea-related-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.ea-related h3 { margin: 14px 0 10px; font-family: 'Instrument Sans', sans-serif; font-weight: 600; font-size: 30px; color: var(--ink); }
.ea-related p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--ink-2); max-width: 520px; text-wrap: pretty; }
.ea-related-link { display: inline-flex; align-items: center; gap: 8px; font-size: 15.5px; font-weight: 600; white-space: nowrap; text-decoration: none; }

.ea-status-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 52px; padding-top: 28px; border-top: 1px solid var(--rule); }
.ess { padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.ess.protected { background: var(--st-active-bg); color: var(--st-active-ink); }
.ess.pending { background: var(--st-trig-bg); color: var(--st-trig-ink); }
.ess.granted { background: var(--st-active-bg); color: var(--st-active-ink); }
.ess-sep { color: var(--ink-mute); font-size: 14px; }
.ess-note { font-size: 14px; color: var(--ink-2); }
@media (max-width: 980px) { .ess-note { flex-basis: 100%; } }

/* FAQ */
.ea-faq { background: var(--bg-soft); }
.ea-faq .faq-list { max-width: 820px; margin: 0 auto; border-top: 1px solid var(--rule); }
.ea-faq .faq-item { border-bottom: 1px solid var(--rule); padding: 22px 4px; }
.ea-faq .faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 16px; font-family: 'Instrument Sans', sans-serif; font-weight: 600; font-size: 24px; color: var(--ink); }
.ea-faq .faq-item summary::-webkit-details-marker { display: none; }
.ea-faq .faq-item summary::after { content: '+'; margin-left: auto; font-family: 'JetBrains Mono', monospace; font-size: 22px; color: var(--accent-deep); }
.ea-faq .faq-item[open] summary::after { content: '\2212'; }
.ea-faq .faq-body { margin-top: 12px; padding-right: 40px; font-size: 16px; color: var(--ink-2); line-height: 1.62; text-wrap: pretty; }
