/* ===========================================================================
   Reform — Moldova landing (page-specific layout CSS)
   LIGHT theme — white/grey surfaces, ink text, ultraviolet-purple highlights,
   neon-lime as the punchy CTA/accent fill.
   =========================================================================== */

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-sans);
  background:var(--white);
  color:var(--text-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent-lime); color:var(--graphite-900); }

/* layout helpers ---------------------------------------------------------- */
.container{ width:100%; max-width:1200px; margin:0 auto; padding:0 32px; }
.section{ padding:104px 0; position:relative; }
.section--tight{ padding:80px 0; }

/* eyebrow ----------------------------------------------------------------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-size:13px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--brand);
}
.eyebrow__dot{ width:8px; height:8px; border-radius:50%; background:var(--brand);
  box-shadow:0 0 0 4px rgba(96,109,237,0.16); }
.eyebrow--muted{ color:var(--text-muted); }
.eyebrow--muted .eyebrow__dot{ background:var(--text-muted); box-shadow:0 0 0 4px rgba(108,106,130,0.14); }

/* headings ---------------------------------------------------------------- */
.h-display{
  margin:0; color:var(--text-strong); font-weight:800; letter-spacing:-0.03em; line-height:1.04;
  font-size:clamp(30px, 8vw, 66px); overflow-wrap:break-word;
}
.h-section{
  margin:0; color:var(--text-strong); font-weight:700; letter-spacing:-0.025em; line-height:1.08;
  font-size:clamp(28px, 3.6vw, 46px); overflow-wrap:break-word;
}
.lime{ color:var(--brand); }
.lead{
  color:var(--text-body); line-height:1.62; font-weight:500;
  font-size:clamp(16px,1.25vw,19px);
}

/* buttons (lime primary detonator per brief) ------------------------------ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:60px; padding:0 28px; border:none; border-radius:12px; cursor:pointer;
  font-family:var(--font-sans); font-weight:700; font-size:16px; letter-spacing:0.005em;
  white-space:nowrap; line-height:1;
  transition:transform .14s var(--ease-out), box-shadow .2s var(--ease-out), background .2s var(--ease-out);
}
.btn:active{ transform:scale(.98); }
.btn--lime{
  background:var(--accent-lime); color:var(--graphite-900);
  box-shadow:0 10px 26px rgba(180,225,70,0.45);
}
.btn--lime:hover{ background:var(--lime-400); box-shadow:0 16px 38px rgba(180,225,70,0.55); transform:translateY(-2px); }
.btn--ghost{
  background:var(--white); color:var(--text-strong); box-shadow:inset 0 0 0 1.5px var(--border-default);
}
.btn--ghost:hover{ box-shadow:inset 0 0 0 1.5px var(--brand); color:var(--brand); }
.btn--sm{ height:46px; padding:0 20px; font-size:14.5px; border-radius:10px; }
.btn--full{ width:100%; }

/* generic card on light --------------------------------------------------- */
.card{
  background:var(--white);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out), border-color .25s var(--ease-out);
}
.card--hover:hover{
  transform:translateY(-4px);
  border-color:rgba(96,109,237,0.35);
  box-shadow:var(--shadow-lg);
}

/* pill chip --------------------------------------------------------------- */
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px; border-radius:999px; font-size:13px; font-weight:600;
  background:var(--purple-50); color:var(--purple-700);
  border:1px solid var(--border-subtle);
}

/* marquee — full-bleed ultraviolet divider -------------------------------- */
.marquee{
  overflow:hidden;
  background:var(--brand);
  padding:22px 0;
}
.marquee__track{ display:flex; align-items:center; gap:30px; width:max-content; animation:marquee 38s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__item{
  display:inline-flex; align-items:center;
  font-size:clamp(18px,1.9vw,26px); font-weight:700; letter-spacing:-0.01em; color:#fff; white-space:nowrap;
}
.marquee__item span.dim{ color:rgba(255,255,255,0.7); font-weight:500; }
.marquee__sep{ color:var(--accent-lime); font-size:0.7em; line-height:1; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* reveal-on-scroll — opacity stays 1 (never blank if compositor frozen) ---- */
.reveal{ transform:translateY(16px); transition:transform .6s var(--ease-out); will-change:transform; }
.reveal.in{ transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ transform:none !important; }
  .marquee__track{ animation:none !important; }
}

/* footer link ------------------------------------------------------------- */
.flink{ position:relative; transition:color .2s var(--ease-out); }
.flink:hover{ color:var(--brand); }

/* tweak: swap primary CTA accent lime -> purple --------------------------- */
body.cta-purple .btn--lime{ background:var(--brand); color:#fff; box-shadow:var(--shadow-brand); }
body.cta-purple .btn--lime:hover{ background:var(--brand-hover); box-shadow:0 18px 44px rgba(96,109,237,0.45); }
body.cta-purple .stamp{ background:var(--brand); color:#fff; box-shadow:0 14px 32px rgba(96,109,237,0.4); }
body.cta-purple .stamp:hover{ background:var(--brand-hover); }

/* tweak: ambient glow toggle ---------------------------------------------- */
body.no-glow .glow{ display:none !important; }

/* responsive -------------------------------------------------------------- */
@media (max-width: 900px){
  .section{ padding:72px 0; }
  .container{ padding:0 22px; }
}
