/* ============================================================
   Aeora marketing site - themed on the application's design
   system (app.css tokens): soft paper blue, white cards, navy
   ink, #4C7FF0 accent, 16-24px radii, soft shadows.
   Pure CSS, no framework.
   ============================================================ */

:root {
  --paper:#F3F6FC; --card:#FFFFFF; --line:#E3E8F5; --muted:#6B7494;
  --ink:#2A3157; --night:#242C57; --blue:#4C7FF0; --blue-deep:#3D63C9;
  --green:#27AE7A; --amber:#F5A623; --soft:#DCE7FB; --soft2:#B9CBF2;
  --shadow:0 8px 24px rgba(44,62,120,.07);
  --shadow-lg:0 18px 48px rgba(44,62,120,.13);
  --radius:24px; --radius-sm:14px;
  --font:"Inter",-apple-system,"Segoe UI",sans-serif;
  --display:"Manrope","Inter",sans-serif;
}

* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
body {
  font:16px/1.65 var(--font); color:var(--ink); background:var(--paper);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img, svg { display:block; max-width:100%; }
a { color:var(--blue-deep); text-decoration:none; }
.wrap { width:min(1160px, 92vw); margin:0 auto; }
.narrow { width:min(820px, 92vw); }
.center { text-align:center; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; }

h1, h2, h3 { font-family:var(--display); color:var(--night);
  letter-spacing:-.02em; line-height:1.12; }
h2 { font-size:clamp(28px, 4vw, 42px); margin-bottom:14px; }
/* Section titles sit centered above their centered subtitles;
   split layouts (e.g. the subscription-math band) opt out by not
   using the .reveal heading style. */
.section > .wrap > h2.reveal { text-align:center; }
.section-sub { color:var(--muted); font-size:17.5px; max-width:640px;
  margin:0 auto 46px; text-align:center; }
.section-sub.left { margin:0 0 26px; text-align:left; }
.fine { font-size:12.5px; color:var(--muted); }
.fine.center { text-align:center; margin-top:12px; }

/* ---------------- buttons ---------------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; font-weight:700; font-family:var(--font); cursor:pointer;
  border:1.5px solid transparent; border-radius:14px; white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, background .18s,
             border-color .18s; position:relative; overflow:hidden;
}
.btn.sm { padding:9px 18px; font-size:14px; }
.btn.lg { padding:15px 30px; font-size:16.5px; }
.btn.primary { background:linear-gradient(135deg, var(--blue), var(--blue-deep));
  color:#fff; box-shadow:0 6px 18px rgba(76,127,240,.32); }
.btn.primary:hover { transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(76,127,240,.42); }
.btn.ghost { background:#fff; color:var(--night); border-color:var(--line);
  box-shadow:var(--shadow); }
.btn.ghost:hover { transform:translateY(-2px); border-color:var(--soft2);
  box-shadow:var(--shadow-lg); }
.btn.glow::after { content:""; position:absolute; inset:0;
  background:radial-gradient(120px 60px at var(--mx,50%) 0%,
             rgba(255,255,255,.35), transparent 70%);
  opacity:0; transition:opacity .25s; pointer-events:none; }
.btn.glow:hover::after { opacity:1; }
.btn .ripple { position:absolute; border-radius:50%; pointer-events:none;
  background:rgba(255,255,255,.45); transform:scale(0);
  animation:rip .55s ease-out forwards; }
@keyframes rip { to { transform:scale(3.2); opacity:0; } }
.cta-row { display:flex; gap:14px; flex-wrap:wrap; margin:26px 0 22px; }
.cta-row.center { justify-content:center; }
.cta-band { text-align:center; margin-top:42px; }

/* ---------------- nav ---------------- */
#nav { position:fixed; inset:0 0 auto; z-index:50;
  transition:background .25s, box-shadow .25s, backdrop-filter .25s; }
#nav.scrolled { background:rgba(243,246,252,.86);
  backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line); }
.nav-row { display:flex; align-items:center; gap:34px; height:72px; }
.logo { display:flex; align-items:center; gap:10px;
  font:800 21px var(--display); color:var(--night); }
.nav-links { display:flex; gap:26px; margin-left:auto; }
.nav-links a { color:var(--ink); font-weight:600; font-size:15px;
  padding:6px 2px; border-bottom:2px solid transparent;
  transition:border-color .18s; }
.nav-links a:hover { border-color:var(--blue); }
.nav-cta { display:flex; gap:10px; }
#burger { display:none; background:none; border:0; cursor:pointer;
  padding:10px; margin-left:auto; }
#burger span { display:block; width:22px; height:2.5px; margin:5px 0;
  background:var(--night); border-radius:2px; transition:.25s; }
#mobile-menu { background:#fff; box-shadow:var(--shadow-lg);
  border-radius:0 0 var(--radius) var(--radius); padding:18px 6vw 26px;
  display:none; flex-direction:column; gap:4px; }
#mobile-menu.open { display:flex; }
#mobile-menu[hidden] { display:none !important; }
@media (min-width:761px) { #mobile-menu { display:none !important; } }
#mobile-menu a { padding:12px 4px; font-weight:600; color:var(--ink);
  border-bottom:1px solid var(--line); }
#mobile-menu a.btn { margin-top:14px; border-bottom:0; color:#fff; }

/* ---------------- hero ---------------- */
.hero { position:relative; padding:150px 0 90px; overflow:hidden; }
.hero-bg { position:absolute; inset:0; pointer-events:none; }
.blob { position:absolute; border-radius:50%; filter:blur(70px);
  opacity:.55; animation:drift 16s ease-in-out infinite alternate; }
.b1 { width:520px; height:520px; background:#DCE7FB; top:-160px; right:-120px; }
.b2 { width:420px; height:420px; background:#E7F3EC; bottom:-180px; left:-140px;
  animation-delay:-5s; }
.b3 { width:300px; height:300px; background:#EFE9FD; top:30%; left:38%;
  opacity:.4; animation-delay:-9s; }
@keyframes drift { to { transform:translate(40px, 26px) scale(1.07); } }

.hero-grid { position:relative; display:grid;
  grid-template-columns:1.02fr .98fr; gap:56px; align-items:center; }
.eyebrow { font:700 13.5px var(--font); letter-spacing:.12em;
  text-transform:uppercase; color:var(--blue-deep); margin-bottom:16px; }
.hero h1 { font-size:clamp(40px, 5.6vw, 66px); margin-bottom:22px; }
.hero h1 em { font-style:normal;
  background:linear-gradient(120deg, var(--blue), var(--green));
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.lede { font-size:18.5px; color:var(--muted); max-width:520px; }
.hero-trust { display:flex; flex-wrap:wrap; gap:8px 22px; list-style:none;
  color:var(--muted); font-size:13.5px; font-weight:600; }
.hero-trust li::before { content:"✓"; color:var(--green); margin-right:7px;
  font-weight:800; }

.hero-shot { perspective:1400px; }
.win-frame { background:#fff; border-radius:18px; box-shadow:var(--shadow-lg);
  border:1px solid var(--line); overflow:hidden;
  transform:rotateY(-6deg) rotateX(2deg);
  transition:transform .5s ease, box-shadow .5s ease; }
.hero-shot:hover .win-frame { transform:rotateY(0) rotateX(0);
  box-shadow:0 28px 70px rgba(44,62,120,.2); }
.win-bar { display:flex; align-items:center; gap:7px; padding:10px 14px;
  border-bottom:1px solid var(--line); background:#FAFBFE; }
.win-bar i { width:11px; height:11px; border-radius:50%; background:#E4E9F5; }
.win-bar i:nth-child(1) { background:#F5A6A0; }
.win-bar i:nth-child(2) { background:#F5D98F; }
.win-bar i:nth-child(3) { background:#9ADBB5; }
.win-bar span { margin-left:8px; font:600 12px var(--font); color:var(--muted); }

/* ---------------- value strip ---------------- */
.strip { padding:26px 0; border-block:1px solid var(--line);
  background:#fff; }
.strip-row { display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  text-align:center; }
.strip-row strong { display:block; font:800 26px var(--display);
  color:var(--night); }
.strip-row span { color:var(--muted); font-size:13.5px; }

/* ---------------- sections & cards ---------------- */
.section { padding:96px 0; }
.section.alt { background:#fff; }
.cards { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
.card { background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:26px 24px; box-shadow:var(--shadow);
  transition:transform .22s ease, box-shadow .22s ease; }
.card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.card h3 { font-size:17px; margin:16px 0 8px; }
.card p { color:var(--muted); font-size:14px; line-height:1.6; }
.ic { width:46px; height:46px; border-radius:14px; display:grid;
  place-items:center; }
.ic svg { width:23px; height:23px; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; }
.i-blue  { background:#E8F0FB; } .i-blue svg  { stroke:#3D63C9; }
.i-green { background:#EAF6F0; } .i-green svg { stroke:#1B7A52; }
.i-amber { background:#FBF1DC; } .i-amber svg { stroke:#B27A0E; }
.i-purple{ background:#EFE9FD; } .i-purple svg{ stroke:#6D4FC2; }
.i-pink  { background:#FBE7F1; } .i-pink svg  { stroke:#B83A78; }

/* ---------------- steps ---------------- */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.step { position:relative; background:var(--paper); border-radius:var(--radius);
  padding:34px 26px 28px; text-align:center; border:1px solid var(--line); }
.section.alt .step { background:var(--paper); }
.step svg { width:88px; height:88px; margin:6px auto 14px; }
.step h3 { font-size:19px; margin-bottom:6px; }
.step p { color:var(--muted); font-size:14.5px; }
.num { position:absolute; top:16px; left:18px; width:30px; height:30px;
  border-radius:50%; background:var(--soft); color:var(--blue-deep);
  font:800 14px var(--display); display:grid; place-items:center; }

/* ---------------- no-subscription ---------------- */
.noSub { background:linear-gradient(180deg, var(--paper), #EDF3FC); }
.nosub-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:56px;
  align-items:center; }
.checks { list-style:none; margin:0 0 28px; }
.checks li { padding:8px 0 8px 32px; position:relative; color:var(--ink);
  font-size:15.5px; }
.checks li::before { content:"✓"; position:absolute; left:2px; top:8px;
  color:var(--green); font-weight:800; }
.cost-card { background:#fff; border-radius:var(--radius);
  border:1px solid var(--line); box-shadow:var(--shadow-lg); padding:32px; }
.cost-card h3 { font-size:18px; margin-bottom:22px; }
.bar-row { margin-bottom:20px; }
.bar-row span { display:block; font-size:13.5px; color:var(--muted);
  margin-bottom:7px; font-weight:600; }
.cost-bar { display:block; height:38px; border-radius:11px;
  background:linear-gradient(90deg, #E4E9F5, #D4DCF0); position:relative;
  width:var(--w); min-width:110px; transition:width 1.1s cubic-bezier(.2,.7,.2,1); }
.cost-bar.aeora { background:linear-gradient(90deg, var(--green), #1B7A52); }
.cost-bar b { position:absolute; right:12px; top:50%; transform:translateY(-50%);
  font:800 14px var(--display); color:var(--night); }
.cost-bar.aeora b { color:#fff; }
.reveal:not(.in) .cost-bar { width:0 !important; }
.cost-card .fine { margin-top:6px; }

/* ---------------- comparison ---------------- */
.table-scroll { overflow-x:auto; border-radius:var(--radius);
  border:1px solid var(--line); box-shadow:var(--shadow); background:#fff; }
table { border-collapse:collapse; width:100%; min-width:860px;
  font-size:14px; }
th, td { padding:13px 16px; text-align:center; border-bottom:1px solid var(--line); }
thead th { font:700 14px var(--display); color:var(--night);
  background:#FAFBFE; }
tbody th { text-align:left; font-weight:600; color:var(--ink);
  white-space:nowrap; }
td { color:var(--muted); }
.hl { background:#F0F5FE; color:var(--night) !important; }
thead .hl { background:var(--blue); color:#fff !important; }
td.hl b { color:var(--blue-deep); }
tbody tr:last-child th, tbody tr:last-child td { border-bottom:0; }
.section .fine.reveal { margin-top:14px; text-align:center; }

/* ---------------- pricing ---------------- */
.price-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 420px));
  gap:26px; justify-content:center; align-items:stretch; }
.price-card { background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:36px 32px; box-shadow:var(--shadow);
  display:flex; flex-direction:column; position:relative;
  transition:transform .22s, box-shadow .22s; }
.price-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.price-card.featured { border:2px solid var(--blue);
  box-shadow:0 18px 52px rgba(76,127,240,.22); }
.ribbon { position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:linear-gradient(135deg, var(--blue), var(--blue-deep));
  color:#fff; font:800 12px var(--display); letter-spacing:.06em;
  padding:6px 18px; border-radius:99px; text-transform:uppercase; }
.price-card h3 { font-size:20px; }
.price { font:800 46px var(--display); color:var(--night); margin:10px 0 20px; }
.price span { display:block; font:600 14px var(--font); color:var(--muted); }
.price-card ul { list-style:none; margin-bottom:28px; flex:1; }
.price-card li { padding:7px 0 7px 30px; position:relative; font-size:14.5px;
  color:var(--ink); }
.price-card li::before { content:"✓"; position:absolute; left:4px;
  color:var(--green); font-weight:800; }

/* ---------------- testimonials ---------------- */
.quotes { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
blockquote { background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:26px 24px;
  transition:transform .22s, box-shadow .22s; }
blockquote:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
blockquote p { font-size:15px; color:var(--ink); margin-bottom:16px; }
blockquote footer { font:600 13px var(--font); color:var(--muted); }

/* ---------------- FAQ ---------------- */
.faq-list details { background:#fff; border:1px solid var(--line);
  border-radius:var(--radius-sm); margin-bottom:12px; overflow:hidden; }
.faq-list summary { cursor:pointer; padding:18px 52px 18px 22px;
  font:700 15.5px var(--font); color:var(--night); list-style:none;
  position:relative; user-select:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:20px;
  top:50%; transform:translateY(-50%); font:600 22px var(--display);
  color:var(--blue); transition:transform .25s; }
.faq-list details[open] summary::after { transform:translateY(-50%) rotate(45deg); }
.faq-list details p { padding:0 22px 18px; color:var(--muted); font-size:14.5px; }
.faq-list code { background:var(--paper); padding:1px 6px; border-radius:6px;
  font-size:13px; }

/* ---------------- download & footer ---------------- */
.dl { background:linear-gradient(180deg, #fff, var(--paper)); }
body > footer { background:var(--night); color:#C4CCE8; padding:56px 0 26px; }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:28px;
  padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.12); }
footer .logo { color:#fff; margin-bottom:12px; }
footer h4 { color:#fff; font:700 14px var(--display); margin-bottom:12px;
  letter-spacing:.04em; }
footer nav a { display:block; color:#C4CCE8; font-size:14px; padding:5px 0;
  transition:color .18s; }
footer nav a:hover { color:#fff; }
footer .fine { color:#8E97BE; }
.foot-base { display:flex; justify-content:space-between; gap:14px;
  padding-top:22px; font-size:13px; color:#8E97BE; flex-wrap:wrap; }

/* ---------------- sticky mobile CTA ---------------- */
.sticky-cta { display:none; position:fixed; left:14px; right:14px; bottom:14px;
  z-index:60; text-align:center; padding:15px;
  background:linear-gradient(135deg, var(--blue), var(--blue-deep));
  color:#fff; font:800 16px var(--display); border-radius:16px;
  box-shadow:0 10px 30px rgba(44,62,120,.35); }

/* ---------------- reveal animations ---------------- */
.reveal { opacity:0; transform:translateY(26px);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }
.delay-1 { transition-delay:.12s; }
.delay-2 { transition-delay:.24s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  .blob, .btn, .card, .win-frame, .cost-bar { animation:none !important;
    transition:none !important; }
  .reveal:not(.in) .cost-bar { width:var(--w) !important; }
}

/* ---------------- responsive ---------------- */
@media (max-width: 1020px) {
  .cards { grid-template-columns:repeat(3, 1fr); }
  .hero-grid, .nosub-grid { grid-template-columns:1fr; gap:44px; }
  .hero { padding-top:120px; }
  .win-frame { transform:none; }
  .quotes { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .nav-links, .nav-cta { display:none; }
  #burger { display:block; }
  #burger.open span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
  #burger.open span:nth-child(2) { opacity:0; }
  #burger.open span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }
  .cards, .steps, .quotes, .price-grid { grid-template-columns:1fr; }
  .strip-row { grid-template-columns:repeat(2, 1fr); }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .section { padding:66px 0; }
  .sticky-cta { display:block; }
  body { padding-bottom:76px; }
}

/* ============================================================
   Polish pass - announcement, progress, hero details, tabs,
   trust band, avatars, back-to-top, focus states.
   ============================================================ */

.skip { position:absolute; left:-999px; top:0; z-index:100; background:#fff;
  color:var(--night); padding:10px 18px; border-radius:0 0 12px 0;
  font-weight:700; box-shadow:var(--shadow-lg); }
.skip:focus { left:0; }

#progress { position:fixed; inset:0 auto auto 0; height:3px; width:0;
  background:linear-gradient(90deg, var(--blue), var(--green));
  z-index:70; transition:width .1s linear; }

#announce { background:var(--night); color:#DDE4FA; font-size:13.5px; }
.announce-row { display:flex; align-items:center; gap:16px; padding:9px 0; }
.announce-row b { color:#fff; }
#announce-x { margin-left:auto; background:none; border:0; color:#8E97BE;
  font-size:20px; cursor:pointer; line-height:1; padding:2px 6px; }
#announce-x:hover { color:#fff; }
body.has-announce #nav { top:38px; }
body.has-announce #nav.scrolled { top:0; }
#nav { top:0; transition:background .25s, box-shadow .25s, top .3s ease; }

.pill-dot { display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--green); margin-right:9px;
  box-shadow:0 0 0 4px rgba(39,174,122,.16); animation:pulse 2.4s infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 7px rgba(39,174,122,.05); } }
.ver-pill { margin-left:12px; font:700 11px var(--font); letter-spacing:.04em;
  background:#fff; border:1px solid var(--line); color:var(--blue-deep);
  padding:3px 10px; border-radius:99px; text-transform:none;
  box-shadow:var(--shadow); }
.rating { display:flex; align-items:center; gap:10px; margin-top:18px;
  font-size:13.5px; color:var(--muted); font-weight:600; }
.stars { color:var(--amber); letter-spacing:2px; font-size:15px; }
.stars.sm { font-size:12px; display:block; margin:10px 0 2px; }

/* hero grid texture */
.hero::before { content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(76,127,240,.10) 1px, transparent 1.4px);
  background-size:26px 26px;
  mask-image:radial-gradient(70% 70% at 50% 30%, #000 30%, transparent 78%);
  pointer-events:none; }

/* ---------------- screenshot tabs ---------------- */
.shot-tabs { display:flex; gap:8px; justify-content:center; margin-bottom:26px;
  flex-wrap:wrap; }
.shot-tab { border:1.5px solid var(--line); background:#fff; color:var(--muted);
  font:700 14px var(--font); padding:10px 22px; border-radius:99px;
  cursor:pointer; transition:all .2s; }
.shot-tab:hover { color:var(--night); border-color:var(--soft2); }
.shot-tab.active { background:var(--night); border-color:var(--night);
  color:#fff; box-shadow:0 8px 20px rgba(36,44,87,.22); }
.shot-stage { max-width:860px; margin:0 auto; position:relative; }
.shot-pane { animation:paneIn .45s ease; }
.shot-pane[hidden] { display:none; }
@keyframes paneIn { from { opacity:0; transform:translateY(14px) scale(.985); } }
.win-frame.flat { transform:none; }
.child-frame { max-width:480px; margin:0 auto; }

/* ---------------- trust band ---------------- */
.trustband { background:var(--night); padding:34px 0; }
.trust-row { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
.trust-row > div { text-align:center; color:#C4CCE8; }
.trust-row svg { width:26px; height:26px; margin:0 auto 8px; fill:none;
  stroke:#8FB0F5; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.trust-row b { display:block; color:#fff; font:700 14px var(--display); }
.trust-row span { font-size:12px; }

/* ---------------- testimonial avatars ---------------- */
blockquote { position:relative; padding-top:24px; }
.ava { width:42px; height:42px; border-radius:50%; background:var(--a,#DCE7FB);
  color:var(--t,#3D63C9); font:800 14px var(--display); display:grid;
  place-items:center; }

/* ---------------- back-to-top ---------------- */
#totop { position:fixed; right:22px; bottom:22px; z-index:55; width:46px;
  height:46px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--blue-deep); cursor:pointer;
  box-shadow:var(--shadow-lg); display:grid; place-items:center;
  transition:transform .2s, opacity .3s; }
#totop:hover { transform:translateY(-3px); }
#totop[hidden] { display:none; }

/* comparison hover + focus states */
tbody tr { transition:background .15s; }
tbody tr:hover td:not(.hl), tbody tr:hover th { background:#FAFBFE; }
:focus-visible { outline:3px solid rgba(76,127,240,.55); outline-offset:2px;
  border-radius:6px; }
.nav-links a.active { border-color:var(--blue); color:var(--blue-deep); }

@media (max-width:760px) {
  .trust-row { grid-template-columns:repeat(2,1fr); }
  .trust-row > div:last-child { grid-column:1/-1; }
  #totop { bottom:86px; }
  body.has-announce #nav { top:0; }
  #announce { display:none; }
}

/* SEO rich-copy block */
.seoText { padding-top:70px; padding-bottom:70px; background:#fff; }
.seoText h2 { text-align:center; margin-bottom:26px;
  font-size:clamp(22px, 3vw, 30px); }
.seo-cols { columns:2; column-gap:44px; color:var(--muted); font-size:14.5px; }
.seo-cols p { break-inside:avoid; margin-bottom:16px; }
@media (max-width:760px) { .seo-cols { columns:1; } }

/* rotating hero */
.hero-copy h1, .hero-copy .lede { transition: opacity .42s ease; }
.hero-swap { opacity: 0; }
/* nav language switch - quiet text link, still always visible */
.nav-cta .lang-link { font-weight: 600; font-size: 13.5px;
  color: #6B7494; padding: 6px 6px; white-space: nowrap;
  border: 0; background: none; }
.nav-cta .lang-link:hover { color: var(--blue, #3D6EE0);
  text-decoration: underline; text-underline-offset: 3px; }
#mobile-menu .lang-link { font-weight: 700; padding: 10px 2px; }
/* announce stays one line */
#announce .announce-row span:first-child { white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; }
