/* Nousy landing — Amboss palette. Mobile-first. No prefers-color-scheme override.
   Breakpoints: 768px, 1080px. v6 */

/* --- TOKENS --- */
:root {
  --bg-dark:   #0A2F33;
  --bg-dark-2: #05201F;
  --bg-dark-3: #0E3A3E;
  --bg:        #FFFFFF;
  --bg-soft:   #F5F8F7;
  --surface:   #FFFFFF;
  --text:      #0A1F22;
  --text-soft: #3A4F52;
  --text-muted:#6B7B7E;
  --on-dark:         #F0F5F4;
  --on-dark-strong:  #FFFFFF;
  --on-dark-soft:    #A8BDBE;
  --accent-teal:        #14B8A6;
  --accent-teal-hover:  #0F9B8E;
  --accent-teal-soft:   #E0F5F1;
  --accent-cyan:        #3ECFAE;
  --accent-purple:      #9B7FE8;
  --accent-purple-hover:#8567D9;
  --border:      #E4E9E7;
  --border-strong:#CDD6D3;
  --border-dark: rgba(255,255,255,0.08);
  --step--1: clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
  --step-0:  clamp(0.9375rem, 0.9rem  + 0.2vw,  1rem);
  --step-1:  clamp(1.0625rem, 1rem    + 0.3vw,  1.1875rem);
  --step-2:  clamp(1.25rem,   1.1rem  + 0.6vw,  1.5rem);
  --step-3:  clamp(1.75rem,   1.4rem  + 1.4vw,  2.375rem);
  --step-4:  clamp(2.5rem,    1.9rem  + 2.8vw,  4rem);
  --step-5:  clamp(3rem,      2.1rem  + 4vw,    5.5rem);
  --sp-1:.25rem; --sp-2:.5rem;  --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.5rem; --sp-6:2rem;  --sp-7:3rem;   --sp-8:4rem;
  --sp-9:6rem;   --sp-10:8rem;
  --radius-sm:8px; --radius:14px; --radius-lg:24px; --radius-xl:32px;
  --shadow-card:   0 1px 2px rgba(10,31,34,.04), 0 12px 32px -16px rgba(10,31,34,.12);
  --shadow-lifted: 0 2px 4px rgba(10,31,34,.06), 0 30px 60px -24px rgba(10,31,34,.18);
  --max-wide:1200px; --max-prose:680px;
  --font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}

/* --- RESET + BASE --- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font-sans); font-size:var(--step-0); line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  font-feature-settings:"cv11","ss01";
}
img { display:block; max-width:100%; height:auto; }
p   { margin:0; }
ul  { margin:0; padding:0; list-style:none; }
a   { color:var(--accent-teal); text-decoration:none; text-underline-offset:3px; }
a:hover { text-decoration:underline; }
h1,h2,h3,h4 { font-family:var(--font-sans); font-weight:600; letter-spacing:-0.03em; line-height:1.05; margin:0; }
h1 { font-size:var(--step-5); }
h2 { font-size:var(--step-4); }
h3 { font-size:var(--step-2); }
h4 { font-size:var(--step-0); }
:focus-visible { outline:2px solid var(--accent-teal); outline-offset:3px; border-radius:var(--radius-sm); }

/* --- REDUCED MOTION --- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
  .mock-typing    { display:none !important; }
  .mock-answer    { opacity:1 !important; }
  .mock-cites     { opacity:1 !important; }
  .js-fade        { opacity:1 !important; transform:none !important; }
  .mock-cite-card { opacity:1 !important; transform:none !important; }
  [data-reveal]   { opacity:1 !important; transform:none !important; }
}

/* --- GENERALIZED MOCK ANIMATION HOOKS --- */
/* Any element marked [data-reveal] starts hidden, fades in via .visible (added by JS) */
[data-reveal] {
  opacity:0;
  transform:translateY(4px);
  transition:opacity .4s ease, transform .4s ease;
}
[data-reveal].visible { opacity:1; transform:none; }

/* Typewriter targets keep their line height so the card doesn't jump while typing */
.mode-mock [data-typed] { min-height:1.4em; }

/* --- LAYOUT --- */
.container { width:100%; max-width:var(--max-wide); margin:0 auto; padding:0 var(--sp-5); }
.section { padding:var(--sp-9) 0; }
.section-light { background:var(--bg); }
.section-soft  { background:var(--bg-soft); }
.section-dark  { background:var(--bg-dark); }
.section-header { max-width:var(--max-prose); margin:0 auto var(--sp-7); text-align:center; }
.section-header h2   { margin-bottom:var(--sp-4); }
.section-sub { color:var(--text-muted); font-size:var(--step-1); margin-top:var(--sp-3); }
.section-sub.on-dark-soft { color:var(--on-dark-soft); }

/* --- TYPE UTILS --- */
.eyebrow-text {
  font-size:var(--step--1); font-weight:600; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--text-muted); margin-bottom:var(--sp-3);
}
.eyebrow-pill {
  display:inline-block; padding:0.35rem 0.875rem;
  background:rgba(62,207,174,0.15); color:var(--accent-cyan);
  font-size:0.6875rem; font-weight:600; letter-spacing:0.12em;
  text-transform:uppercase; border-radius:999px;
  border:1px solid rgba(62,207,174,0.25); margin-bottom:var(--sp-5);
}
.eyebrow-pill-sm { font-size:0.625rem; margin-bottom:var(--sp-4); }
.eyebrow-pill-xs { font-size:0.5625rem; padding:0.25rem 0.625rem; margin-bottom:var(--sp-3); }
.eyebrow-pill-soon {
  background:rgba(155,127,232,0.15); color:var(--accent-purple);
  border-color:rgba(155,127,232,0.25);
}
.on-dark      { color:var(--on-dark); }
.on-dark-soft { color:var(--on-dark-soft); }

/* --- SKIP LINK --- */
.skip-link {
  position:absolute; top:-100px; left:var(--sp-4);
  background:var(--accent-teal); color:#fff; padding:0.5rem 1rem;
  border-radius:var(--radius-sm); font-size:0.875rem; font-weight:500;
  z-index:200; transition:top 0.15s ease;
}
.skip-link:focus { top:var(--sp-4); }

/* --- BUTTONS --- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  padding:0.875rem 1.625rem; font-family:var(--font-sans); font-size:var(--step-0);
  font-weight:600; letter-spacing:-0.01em; border-radius:999px; border:1.5px solid transparent;
  cursor:pointer; line-height:1; white-space:nowrap; text-decoration:none !important;
  transition:background .15s ease, border-color .15s ease, color .15s ease, transform .1s ease;
}
.btn:active { transform:scale(0.97); }
.btn-sm { padding:0.55rem 1.125rem; font-size:var(--step--1); }
.btn-teal  { background:var(--accent-teal);   color:#fff; border-color:var(--accent-teal); }
.btn-teal:hover  { background:var(--accent-teal-hover); border-color:var(--accent-teal-hover); color:#fff; }
.btn-purple{ background:var(--accent-purple);  color:#fff; border-color:var(--accent-purple); }
.btn-purple:hover{ background:var(--accent-purple-hover); border-color:var(--accent-purple-hover); color:#fff; }
.btn-outline-dark { background:transparent; color:var(--on-dark); border-color:rgba(255,255,255,0.25); }
.btn-outline-dark:hover { background:rgba(255,255,255,0.08); color:var(--on-dark); border-color:rgba(255,255,255,0.35); }
.btn-outline { background:transparent; color:var(--text-muted); border-color:var(--border-strong); cursor:not-allowed; opacity:0.55; }

/* --- NAV --- */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; background:transparent; transition:background .25s ease, box-shadow .25s ease; }
/* Brand: "Med" pure white, "Bot" cyan */
.nav .brand      { color:var(--on-dark-strong); font-size:1.375rem; font-weight:700; letter-spacing:-0.03em; text-decoration:none !important; }
.nav .brand span { color:var(--accent-cyan); }
/* Nav links: off-white, not dim grey */
.nav .nav-links a { color:var(--on-dark); font-size:var(--step--1); font-weight:500; transition:color .15s; }
.nav .nav-links a:hover { color:var(--accent-cyan); text-decoration:none; }
.nav .nav-login  { color:var(--on-dark); font-size:var(--step--1); font-weight:500; transition:color .15s; }
.nav .nav-login:hover { color:var(--accent-cyan); text-decoration:none; }
/* Scrolled state: dark bg → light surface */
.nav.scrolled { background:var(--bg); box-shadow:0 1px 0 var(--border), 0 4px 12px -4px rgba(10,31,34,.08); }
.nav.scrolled .brand      { color:var(--text); }
.nav.scrolled .brand span { color:var(--accent-teal); }
.nav.scrolled .nav-links a { color:var(--text-soft); }
.nav.scrolled .nav-links a:hover { color:var(--text); }
.nav.scrolled .nav-login  { color:var(--text-soft); }
.nav.scrolled .nav-login:hover { color:var(--text); }
.nav-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:64px; max-width:var(--max-wide); margin:0 auto; padding:0 var(--sp-5);
}
.nav-links { display:none; align-items:center; gap:var(--sp-7); }
.nav-actions { display:flex; align-items:center; gap:var(--sp-4); }
@media (min-width:768px) { .nav-links { display:flex; } }

/* --- HERO --- */
.hero {
  background:var(--bg-dark);
  padding:calc(var(--sp-9) + 64px) 0 var(--sp-9);
  overflow:hidden;
}
.hero-container { display:flex; flex-direction:column; align-items:center; text-align:center; }
.hero h1 { color:var(--on-dark-strong); font-size:var(--step-4); max-width:20ch; margin:0 auto var(--sp-5); line-height:1.08; }
.hero h1 em { font-style:italic; color:var(--accent-cyan); font-weight:600; }
.hero-sub { color:var(--on-dark-soft); font-size:var(--step-1); max-width:52ch; margin:0 auto var(--sp-6); line-height:1.6; }
.hero-actions { display:flex; flex-wrap:wrap; gap:var(--sp-3); justify-content:center; margin-bottom:var(--sp-4); }
.hero-note { font-size:var(--step--1); color:var(--on-dark-soft); opacity:0.75; margin-bottom:var(--sp-8); }
@media (min-width:768px) {
  .hero { padding-top:calc(var(--sp-10) + 64px); padding-bottom:var(--sp-10); }
  .hero h1 { font-size:var(--step-5); }
}

/* Hero mock */
.hero-mock {
  width:100%; max-width:620px;
  background:var(--bg-dark-2); border:1px solid var(--border-dark); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:0 0 0 1px rgba(62,207,174,.08), 0 32px 80px -24px rgba(0,0,0,.4);
}
.mock-bar {
  display:flex; align-items:center; gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-5); border-bottom:1px solid var(--border-dark);
  background:rgba(255,255,255,.02);
}
.mock-dot { width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.15); }
.mock-dot:first-child  { background:rgba(255,95,87,.6); }
.mock-dot:nth-child(2) { background:rgba(255,189,46,.6); }
.mock-dot:nth-child(3) { background:rgba(40,202,65,.6); }
.mock-bar-label { margin-left:auto; font-family:var(--font-mono); font-size:0.6875rem; color:var(--on-dark-soft); opacity:.6; }
.mock-body { padding:var(--sp-5); text-align:left; }
.mock-turn { margin-bottom:var(--sp-4); }
.mock-turn:last-child { margin-bottom:0; }
.mock-role { font-size:0.6875rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:var(--sp-2); }
.mock-role-user { color:var(--on-dark-soft); }
.mock-role-ai   { color:var(--accent-cyan); }
.mock-question  { color:var(--on-dark); font-style:italic; font-size:var(--step-0); line-height:1.5; }
.mock-answer    { color:var(--on-dark-soft); font-size:var(--step--1); line-height:1.65; min-height:1.4em; }

/* Typing dots */
.mock-typing { display:flex; gap:5px; padding:var(--sp-2) 0; }
.mock-typing-dot { width:7px; height:7px; border-radius:50%; background:var(--accent-cyan); animation:typing-bounce 1.2s ease-in-out infinite; }
.mock-typing-dot:nth-child(2) { animation-delay:.2s; }
.mock-typing-dot:nth-child(3) { animation-delay:.4s; }
@keyframes typing-bounce {
  0%,60%,100% { transform:translateY(0); opacity:.4; }
  30%          { transform:translateY(-6px); opacity:1; }
}
.mock-typing.hidden { display:none; }

/* Citation cards — richer than chips, staggered fade-in */
.mock-cites {
  display:grid; grid-template-columns:1fr; gap:var(--sp-2);
  margin-top:var(--sp-4);
}
@media (min-width:480px) { .mock-cites { grid-template-columns:1fr 1fr; } }

.mock-cite-card {
  display:flex; align-items:flex-start; gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-3);
  border-radius:var(--radius); border:1px solid;
  opacity:0; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.mock-cite-card.visible { opacity:1; transform:translateY(0); }
.mock-cite-card:nth-child(2) { transition-delay:200ms; }

/* Colombian source — cyan accent */
.mock-cite-card-co {
  background:rgba(62,207,174,.08);
  border-color:rgba(62,207,174,.3);
}
.mock-cite-card-co .mock-cite-card-icon { color:var(--accent-cyan); }
.mock-cite-card-co .mock-cite-card-title { color:var(--accent-cyan); }
.mock-cite-card-co .mock-cite-card-link { color:rgba(62,207,174,.55); }

/* Internacional source — purple accent */
.mock-cite-card-intl {
  background:rgba(155,127,232,.08);
  border-color:rgba(155,127,232,.3);
}
.mock-cite-card-intl .mock-cite-card-icon { color:var(--accent-purple); }
.mock-cite-card-intl .mock-cite-card-title { color:var(--accent-purple); }
.mock-cite-card-intl .mock-cite-card-link { color:rgba(155,127,232,.55); }

.mock-cite-card-icon {
  flex-shrink:0; margin-top:1px;
}
.mock-cite-card-content {
  flex:1; display:flex; flex-direction:column; gap:2px;
}
.mock-cite-card-title {
  font-family:var(--font-mono); font-size:0.5625rem; font-weight:600;
  letter-spacing:.02em; line-height:1.3;
}
.mock-cite-card-meta {
  font-size:0.5rem; color:var(--on-dark-soft); opacity:.7; letter-spacing:.04em;
}
.mock-cite-card-link {
  flex-shrink:0; font-size:0.5rem; font-weight:500; letter-spacing:.04em;
  opacity:.7; white-space:nowrap; align-self:flex-end;
}

/* --- TRUST --- */
.trust { background:var(--bg); padding:var(--sp-6) 0; border-bottom:1px solid var(--border); }
.trust-label { text-align:center; font-size:var(--step--1); font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin-bottom:var(--sp-4); }
.trust-row { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:var(--sp-3) var(--sp-5); }
.trust-item { font-size:var(--step-1); font-weight:600; color:var(--text-soft); opacity:.6; letter-spacing:-0.01em; }
.trust-sub   { display:inline; font-size:var(--step--1); font-weight:500; color:var(--text-muted); letter-spacing:0; opacity:.85; }
.trust-divider { width:4px; height:4px; border-radius:50%; background:var(--border-strong); display:none; }
@media (min-width:768px) { .trust-divider { display:block; } }

/* --- FEATURES --- */
.features-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
.feature-card {
  padding:var(--sp-6); background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.feature-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lifted); border-color:var(--border-strong); }
.feature-icon {
  width:48px; height:48px; background:var(--accent-teal-soft); border-radius:var(--radius);
  display:flex; align-items:center; justify-content:center; color:var(--accent-teal); margin-bottom:var(--sp-4);
}
.feature-card h3 { font-size:var(--step-1); margin-bottom:var(--sp-3); color:var(--text); }
.feature-card p  { color:var(--text-soft); font-size:var(--step--1); line-height:1.65; }
@media (min-width:768px)  { .features-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px) { .features-grid { grid-template-columns:repeat(4,1fr); } }

/* --- AI MODES --- */
.section-dark .section-header h2 { color:var(--on-dark); }
.modes-grid {
  display:grid; grid-template-columns:1fr; gap:var(--sp-5);
}
.mode-card {
  background:var(--bg-dark-3); border:1px solid var(--border-dark);
  border-radius:var(--radius-lg); padding:var(--sp-6); display:flex; flex-direction:column;
}
.mode-card-soon { opacity:.8; }
.mode-card-eyebrow { margin-bottom:var(--sp-2); }
.mode-card-heading { color:var(--on-dark); font-size:var(--step-2); margin-bottom:var(--sp-3); }
.mode-card-body    { color:var(--on-dark-soft); font-size:var(--step--1); line-height:1.65; margin-bottom:var(--sp-4); }
.mode-card-mobile-note {
  margin-top:auto; padding-top:var(--sp-4);
  font-size:0.6875rem; color:var(--on-dark-soft); opacity:.65;
  border-top:1px solid var(--border-dark); line-height:1.5;
}

/* Mode mini mocks */
.mode-mock { flex:1; margin-bottom:0; }
.mode-mock-inner {
  background:var(--bg-dark-2); border:1px solid var(--border-dark);
  border-radius:var(--radius); padding:var(--sp-4); font-size:0.75rem;
}
.mode-mock-label { display:block; font-size:0.5625rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark-soft); opacity:.7; margin-bottom:var(--sp-2); }
.mode-mock-label-ai { color:var(--accent-cyan); opacity:1; }
.mode-mock-q p, .mode-mock-case p { color:var(--on-dark); line-height:1.5; margin-bottom:var(--sp-3); }
.mode-mock-a p { color:var(--on-dark-soft); line-height:1.5; }
.mode-mock-cites { display:flex; gap:var(--sp-2); flex-wrap:wrap; margin-top:var(--sp-2); }
/* Small citation chips in mode mocks */
.mode-mock-cite {
  font-family:var(--font-mono); font-size:0.5rem; border-radius:999px; padding:.15rem .45rem;
}
.mode-mock-cite-co {
  color:var(--accent-cyan); background:rgba(62,207,174,.12); border:1px solid rgba(62,207,174,.2);
}
.mode-mock-cite-intl {
  color:var(--accent-purple); background:rgba(155,127,232,.12); border:1px solid rgba(155,127,232,.2);
}
.mode-mock-options { display:flex; flex-direction:column; gap:var(--sp-2); }
.mode-mock-option { display:flex; align-items:flex-start; gap:var(--sp-2); padding:var(--sp-2) var(--sp-3); border:1px solid var(--border-dark); border-radius:var(--radius-sm); color:var(--on-dark-soft); font-size:0.6875rem; }
.mode-mock-option-correct { border-color:rgba(62,207,174,.4); background:rgba(62,207,174,.08); color:var(--accent-cyan); }
.mode-mock-opt-letter { font-weight:700; font-size:0.5625rem; flex-shrink:0; min-width:1em; }

/* Caso clínico mock */
.mode-mock-inner-caso { display:flex; flex-direction:column; gap:var(--sp-3); }
.mode-mock-caso-case p { color:var(--on-dark); line-height:1.5; font-size:0.6875rem; margin:0; }
.mode-mock-caso-input {
  background:rgba(255,255,255,.04); border:1px dashed var(--border-dark);
  border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-3);
}
.mode-mock-caso-placeholder {
  font-size:0.5625rem; color:var(--on-dark-soft); opacity:.5; font-style:italic;
}
.mode-mock-caso-tag {
  display:inline-flex; align-items:center; gap:var(--sp-1);
  font-family:var(--font-mono); font-size:0.5rem; color:var(--accent-cyan);
  background:rgba(62,207,174,.1); border:1px solid rgba(62,207,174,.2);
  border-radius:999px; padding:.2rem .5rem; line-height:1.4;
}

/* University selector mock */
.mode-mock-inner-uni { display:flex; flex-direction:column; gap:var(--sp-3); }
.mode-mock-uni-selector {}
.mode-mock-uni-dropdown {
  display:inline-flex; align-items:center; gap:var(--sp-2);
  background:rgba(255,255,255,.05); border:1px solid var(--border-dark);
  border-radius:var(--radius-sm); padding:.3rem .6rem; margin-top:var(--sp-1); cursor:pointer;
}
.mode-mock-uni-selected { color:var(--on-dark); font-size:0.6875rem; font-weight:600; }
.mode-mock-uni-options {
  display:flex; flex-wrap:wrap; gap:var(--sp-1); margin-top:var(--sp-2);
}
.mode-mock-uni-opt {
  font-size:0.5625rem; padding:.2rem .5rem; border-radius:999px;
  border:1px solid var(--border-dark); color:var(--on-dark-soft); cursor:pointer;
}
.mode-mock-uni-opt-active {
  border-color:rgba(62,207,174,.4); background:rgba(62,207,174,.1); color:var(--accent-cyan);
}
.mode-mock-uni-preview {
  background:rgba(255,255,255,.03); border:1px solid var(--border-dark);
  border-radius:var(--radius-sm); padding:var(--sp-3);
}
.mode-mock-uni-tag {
  display:inline-block; font-size:0.5rem; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent-cyan); margin-bottom:var(--sp-2);
}
.mode-mock-uni-preview p {
  color:var(--on-dark-soft); font-size:0.6875rem; line-height:1.5; margin:0;
}

/* MIR España mock */
.mode-mock-inner-mir { display:flex; flex-direction:column; gap:var(--sp-3); }
.mode-mock-mir-header { display:flex; align-items:center; gap:var(--sp-2); }
.mode-mock-mir-flag {
  display:flex; flex-direction:column; overflow:hidden; border-radius:2px;
  width:18px; height:13px; flex-shrink:0;
}
.mir-flag-red    { flex:1; background:#c60b1e; }
.mir-flag-yellow { flex:1.6; background:#ffc400; }
.mode-mock-mir-q p { color:var(--on-dark-soft); font-size:0.6875rem; line-height:1.5; margin:0; }
.mode-mock-mir-badge {
  display:inline-flex; align-items:center; gap:var(--sp-1);
  font-size:0.5rem; color:var(--accent-purple);
  background:rgba(155,127,232,.1); border:1px solid rgba(155,127,232,.2);
  border-radius:999px; padding:.2rem .5rem;
}

.modes-nav { display:flex; justify-content:center; gap:var(--sp-3); margin-top:var(--sp-7); }
.modes-nav-btn {
  width:44px; height:44px; border-radius:50%; border:1.5px solid var(--border-dark);
  background:var(--bg-dark-3); color:var(--on-dark); display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s, border-color .15s;
}
.modes-nav-btn:hover { background:var(--bg-dark); border-color:rgba(255,255,255,.18); }
.modes-nav-btn:focus-visible { outline:2px solid var(--accent-cyan); outline-offset:3px; }

@media (min-width:768px)  { .modes-grid { grid-template-columns:repeat(2,1fr); align-items:stretch; } }
@media (min-width:1080px) { .modes-grid { grid-template-columns:repeat(3,1fr); } }

/* --- PRICING --- */
.pricing-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-5); align-items:stretch; }
.plan-card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:var(--sp-6); display:flex; flex-direction:column; box-shadow:var(--shadow-card);
}
.plan-card-featured { background:var(--bg-dark); border-color:rgba(62,207,174,.15); }
.plan-card-featured .plan-name   { color:var(--on-dark); }
.plan-card-featured .plan-tagline{ color:var(--on-dark-soft); }
.plan-card-featured .plan-amount { color:var(--on-dark); }
.plan-card-featured .plan-suffix { color:var(--on-dark-soft); }
.plan-card-featured .plan-price  { border-bottom-color:var(--border-dark); }
.plan-card-featured .plan-features li { color:var(--on-dark-soft); }
.plan-card-featured .plan-features li::before {
  background-color:var(--accent-cyan);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9'%3E%3Cpath d='M1.5 4.5L3.5 6.5L7.5 2.5' stroke='%230A2F33' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.plan-card-soon { opacity:.75; }
.plan-badge-recommended {
  align-self:flex-start; background:var(--accent-cyan); color:var(--bg-dark);
  font-size:0.625rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:.25rem .7rem; border-radius:999px; margin-bottom:var(--sp-4);
}
.plan-badge-soon {
  align-self:flex-start; background:var(--bg-soft); color:var(--text-muted);
  font-size:0.625rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  padding:.25rem .7rem; border-radius:999px; border:1px solid var(--border); margin-bottom:var(--sp-4);
}
.plan-name    { font-size:var(--step-2); font-weight:700; color:var(--text); margin-bottom:var(--sp-2); }
.plan-tagline { font-size:var(--step--1); color:var(--text-muted); line-height:1.5; margin-bottom:var(--sp-5); min-height:2.6em; }
.plan-price   { display:flex; align-items:baseline; gap:var(--sp-2); margin-bottom:var(--sp-5); padding-bottom:var(--sp-5); border-bottom:1px solid var(--border); }
.plan-amount  { font-size:var(--step-3); font-weight:700; color:var(--text); letter-spacing:-0.03em; line-height:1; }
.plan-suffix  { font-size:var(--step--1); color:var(--text-muted); }
.plan-features { flex:1; margin-bottom:var(--sp-6); }
.plan-features li {
  font-size:var(--step--1); color:var(--text-soft);
  padding:var(--sp-2) 0;
  display:flex; align-items:flex-start; gap:var(--sp-3);
  line-height:1.5;
}
/* Checkmark bullet — fixed size and alignment so it never overlaps text */
.plan-features li::before {
  content:"";
  flex-shrink:0;
  width:16px; height:16px;
  margin-top:0.15em;
  border-radius:50%;
  background:var(--accent-teal)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9'%3E%3Cpath d='M1.5 4.5L3.5 6.5L7.5 2.5' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center/9px no-repeat;
}
.plan-btn { width:100%; }
@media (min-width:768px)  { .pricing-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px) {
  .pricing-grid { grid-template-columns:repeat(4,1fr); }
  .plan-card { padding:var(--sp-5); }
}

/* --- TESTIMONIALS --- */
.testimonials-grid { display:grid; grid-template-columns:1fr; gap:var(--sp-5); }
.testimonial-card {
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:var(--sp-6); display:flex; flex-direction:column; box-shadow:var(--shadow-card);
}
.testimonial-card blockquote { margin:0 0 var(--sp-5); font-style:italic; font-size:var(--step-1); line-height:1.55; color:var(--text); font-weight:400; flex:1; position:relative; padding-top:var(--sp-6); }
.testimonial-card blockquote::before { content:"\201C"; position:absolute; top:0; left:0; font-size:2.5rem; line-height:1; color:var(--accent-teal); font-style:normal; font-weight:600; }
.testimonial-footer { display:flex; align-items:center; gap:var(--sp-3); padding-top:var(--sp-4); border-top:1px solid var(--border); }
.testimonial-avatar {
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  object-fit:cover; background:var(--bg-soft);
}
.testimonial-name { font-size:var(--step-0); font-weight:600; color:var(--text); line-height:1.3; }
.testimonial-role { font-size:var(--step--1); color:var(--text-muted); line-height:1.4; }
@media (min-width:768px) { .testimonials-grid { grid-template-columns:repeat(3,1fr); } }

/* --- FAQ --- */
.faq-list { max-width:760px; margin:0 auto; }
.faq-list details { border-bottom:1px solid var(--border); }
.faq-list details:first-child { border-top:1px solid var(--border); }
.faq-list summary {
  padding:var(--sp-5) 0; font-size:var(--step-1); font-weight:600; color:var(--text);
  cursor:pointer; list-style:none; display:flex; align-items:center;
  justify-content:space-between; gap:var(--sp-4); transition:color .15s;
}
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:hover { color:var(--accent-teal); }
.faq-list summary::after {
  content:""; flex-shrink:0; width:18px; height:18px; border:1.5px solid var(--border-strong);
  border-radius:50%; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 4L5 7L8 4' stroke='%236B7B7E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat; transition:transform .2s ease;
}
.faq-list details[open] summary::after { transform:rotate(-180deg); }
.faq-list details[open] summary { color:var(--accent-teal); }
.faq-body { padding-bottom:var(--sp-5); }
.faq-body p { color:var(--text-soft); line-height:1.7; max-width:64ch; font-size:var(--step-0); }

/* --- CTA FINAL --- */
.cta-final { background:var(--bg-dark); padding:var(--sp-9) var(--sp-5); }
.cta-final-inner {
  max-width:calc(var(--max-wide) - var(--sp-7)); margin:0 auto; text-align:center;
  background:var(--bg-dark-3); border:1px solid var(--border-dark);
  border-radius:var(--radius-xl); padding:var(--sp-9) var(--sp-5);
}
.cta-final h2 { color:var(--on-dark); max-width:20ch; margin:0 auto var(--sp-4); }
.cta-final p  { color:var(--on-dark-soft); max-width:48ch; margin:0 auto var(--sp-6); font-size:var(--step-1); }

/* --- FOOTER --- */
.footer { background:var(--bg); border-top:1px solid var(--border); }
.footer-inner { display:grid; grid-template-columns:1fr; gap:var(--sp-7); padding:var(--sp-8) var(--sp-5); max-width:var(--max-wide); margin:0 auto; }
.footer-brand { font-size:1.375rem; font-weight:700; letter-spacing:-0.03em; color:var(--text); text-decoration:none !important; display:block; margin-bottom:var(--sp-3); }
.footer-brand span { color:var(--accent-teal); }
.footer-tagline { font-size:var(--step--1); color:var(--text-muted); line-height:1.55; max-width:28ch; margin-bottom:var(--sp-5); }
.footer-social { display:flex; gap:var(--sp-3); }
.footer-social-link { width:36px; height:36px; border-radius:var(--radius-sm); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-muted); transition:color .15s, border-color .15s; text-decoration:none !important; }
.footer-social-link:hover { color:var(--accent-teal); border-color:var(--accent-teal); }
.footer-col-heading { font-size:var(--step--1); font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text); margin-bottom:var(--sp-4); }
.footer-links { display:flex; flex-direction:column; gap:var(--sp-3); }
.footer-links li a { font-size:var(--step--1); color:var(--text-muted); transition:color .15s; text-decoration:none !important; }
.footer-links li a:hover { color:var(--text); }
.footer-bottom { border-top:1px solid var(--border); padding:var(--sp-4) 0; }
.footer-bottom-inner { display:flex; flex-direction:column; gap:var(--sp-2); font-size:var(--step--1); color:var(--text-muted); max-width:var(--max-wide); margin:0 auto; padding:0 var(--sp-5); }
.footer-disclaimer { opacity:.65; }
@media (min-width:768px) {
  .footer-inner { grid-template-columns:1.5fr 1fr 1fr 1fr; gap:var(--sp-6); }
  .footer-bottom-inner { flex-direction:row; justify-content:space-between; align-items:center; }
}

/* --- SCROLL FADE-UP --- */
.js-fade { opacity:0; transform:translateY(16px); transition:opacity .5s cubic-bezier(.2,.6,.2,1), transform .5s cubic-bezier(.2,.6,.2,1); }
.js-fade.inview { opacity:1; transform:translateY(0); }
.js-stagger .js-fade:nth-child(2) { transition-delay:80ms; }
.js-stagger .js-fade:nth-child(3) { transition-delay:160ms; }
.js-stagger .js-fade:nth-child(4) { transition-delay:240ms; }
.js-stagger .js-fade:nth-child(5) { transition-delay:320ms; }
