/* ── Design Tokens ── */
:root {
  --bg: #ffffff; --bg-alt: #f4f6f9; --bg-dark: #0b1525; --bg-dark2: #112038;
  --text: #0b1525; --body: #1e2d3d; --muted: #5a6b7d; --faint: #94a3b8;
  --accent: #f97316; --accent-d: #e56200; --accent-l: #fff4ed;
  --navy: #0b1525; --navy-mid: #162236; --navy-light: #1e3254;
  --green: #059669; --green-bg: #d1fae5;
  --amber: #f97316; --amber-bg: #fff4ed;
  --red: #dc2626; --red-bg: #fee2e2;
  --border: #e8edf3; --border-d: #d0d9e4;
  --r: 12px; --rsm: 8px; --rxs: 6px;
  --shadow: 0 1px 4px rgba(11,21,37,.06),0 1px 2px rgba(11,21,37,.04);
  --shadow-md: 0 4px 20px rgba(11,21,37,.10),0 2px 8px rgba(11,21,37,.06);
  --shadow-lg: 0 16px 56px rgba(11,21,37,.16),0 4px 16px rgba(11,21,37,.08);
  --font: 'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display: 'Space Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono: 'JetBrains Mono','Consolas','Menlo',monospace;
  --max: 1280px;
  --ease-out: cubic-bezier(0.16,1,0.3,1);
  --ease-in-out: cubic-bezier(0.4,0,0.2,1);
  --ease-spring: cubic-bezier(0.34,1.56,0.64,1);
  --ease-decel: cubic-bezier(0,0,0.2,1);
  --t-fast: 150ms; --t-base: 220ms; --t-slow: 380ms;
  /* Z-index scale */
  --z-base:0; --z-raised:10; --z-float:50; --z-nav:300; --z-modal:500; --z-toast:600;
}

/* ── Keyframes ── */
@keyframes fadeUp    { from{opacity:0;transform:translateY(14px)}  to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn    { from{opacity:0}  to{opacity:1} }
@keyframes slideDown { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
@keyframes scaleIn   { from{opacity:0;transform:scale(.96)} to{opacity:1;transform:scale(1)} }
@keyframes shimmer   { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes spin      { to{transform:rotate(360deg)} }
@keyframes pulse-ring{ 0%{transform:scale(.9);opacity:.7} 70%{transform:scale(1.2);opacity:0} 100%{transform:scale(1.2);opacity:0} }
@keyframes countUp   { from{opacity:0} to{opacity:1} }
@keyframes sfadeIn   { from{opacity:0;transform:translateX(8px)} to{opacity:1;transform:translateX(0)} }
/* Scroll-driven reveals */
@keyframes viewEnter  { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
@keyframes revealLeft { from{opacity:0;transform:translateX(-32px)} to{opacity:1;transform:none} }
@keyframes revealRight{ from{opacity:0;transform:translateX(32px)}  to{opacity:1;transform:none} }
@keyframes revealScale{ from{opacity:0;transform:scale(.93)}         to{opacity:1;transform:none} }
@keyframes floatY     { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes accentGrow { from{transform:scaleX(0);opacity:0} to{transform:scaleX(1);opacity:1} }
/* Service ticker */
@keyframes ticker     { from{transform:translateX(0)} to{transform:translateX(-50%)} }
/* Glow pulse for CTA buttons */
@keyframes glowPulse  { 0%,100%{box-shadow:0 4px 20px rgba(249,115,22,.35),0 1px 4px rgba(249,115,22,.15)} 50%{box-shadow:0 6px 32px rgba(249,115,22,.55),0 1px 6px rgba(249,115,22,.2)} }

/* ── Reset & Base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; width: 100%; overscroll-behavior-x: none; }
body {
  font-family: var(--font); color: var(--text); background: var(--bg);
  font-size: 15px; line-height: 1.68; -webkit-font-smoothing: antialiased;
  letter-spacing: -.015em; font-weight: 400;
  overflow-x: hidden; width: 100%; overscroll-behavior-x: none;
  touch-action: pan-y; /* block horizontal swipe scroll in mobile browsers */
}
/* Apply mono font to data/numbers that benefit from tabular spacing */
.stat-num, .dm-val, .dc-val, .d-rating-num, .d-b-price, .pf-price, .p-price,
[data-count] { font-family: var(--font-mono); }
h1,h2,h3,h4,
.nav-logo,.hero h1,.sec-title,.prof-name,.p-price,
.stat-num,.dp-title,.dm-val,.d-b-price,.pf-price,
.d-rating-num,.card-name,.faq-q {
  font-family: var(--font-display); letter-spacing: -.03em;
}
.container { max-width: var(--max); margin: 0 auto; padding: 0 20px; }
.hidden { display: none !important; }

/* ── Skip link (keyboard a11y) ── */
.skip-link {
  position: absolute; top: -100px; left: 16px; z-index: 9999;
  background: var(--accent); color: #fff; padding: 8px 16px;
  border-radius: 0 0 var(--rsm) var(--rsm); font-size: .87rem;
  font-weight: 600; font-family: var(--font-display); text-decoration: none;
  transition: top .15s;
}
.skip-link:focus { top: 0; }

/* ── Focus ring ── */
* { outline: none; }
*:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 3px;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none; border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(249,115,22,.15) !important;
}
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 2px; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html { scroll-behavior: auto; }
}
