/* ============================================================
   DRYVA.NG — Design System
   Brand: DRYVA.NG (parent) · Easy Waka (commuter transport)
   · Fleet Management Service — FMS (fleet & security)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

:root{
  /* ---------- Brand: DRYVA parent ---------- */
  --dryva-black:#0A0A0B;
  --dryva-charcoal:#151417;
  --dryva-orange-300:#F4A56E;
  --dryva-orange-400:#F2915C;
  --dryva-orange-500:#E8743B;
  --dryva-orange-600:#C85A25;
  --dryva-orange-glow:rgba(232,116,59,.35);

  /* ---------- Brand: Easy Waka (gold) ---------- */
  --ew-black:#0A0A08;
  --ew-charcoal:#18140A;
  --ew-gold-200:#FBEFC7;
  --ew-gold-300:#F6DC8C;
  --ew-gold-400:#F4C542;
  --ew-gold-500:#E8B32D;
  --ew-gold-600:#C4931D;
  --ew-gold-glow:rgba(232,179,45,.38);

  /* ---------- Brand: Fleet Management (green) ---------- */
  --fms-black:#06140E;
  --fms-dark:#0C2A1D;
  --fms-green-200:#C9F7DE;
  --fms-green-300:#7FE3AE;
  --fms-green-400:#34D399;
  --fms-green-500:#16A34A;
  --fms-green-600:#0E7A38;
  --fms-green-glow:rgba(52,211,153,.32);

  /* ---------- Neutrals / ink ---------- */
  --ink-900:#0B0C0E;
  --ink-700:#3A3D42;
  --ink-500:#6B7076;
  --ink-300:#A7ACB2;
  --ink-150:#D8DBDE;
  --ink-100:#EDEEF0;
  --paper:#FAFAF8;
  --white:#FFFFFF;

  /* ---------- Active theme (default = dryva parent) ---------- */
  --theme-bg:var(--dryva-black);
  --theme-bg-alt:var(--dryva-charcoal);
  --theme-accent-300:var(--dryva-orange-300);
  --theme-accent-400:var(--dryva-orange-400);
  --theme-accent-500:var(--dryva-orange-500);
  --theme-accent-600:var(--dryva-orange-600);
  --theme-glow:var(--dryva-orange-glow);
  --theme-text:var(--white);
  --theme-text-muted:var(--ink-300);

  /* ---------- Type ---------- */
  --font-display:'Sora',system-ui,sans-serif;
  --font-body:'Plus Jakarta Sans',system-ui,sans-serif;

  --fs-xs:.8125rem;
  --fs-sm:.9375rem;
  --fs-base:1.0625rem;
  --fs-lg:1.25rem;
  --fs-xl:clamp(1.375rem,1.2rem + .9vw,1.75rem);
  --fs-2xl:clamp(1.75rem,1.45rem + 1.5vw,2.5rem);
  --fs-3xl:clamp(2.125rem,1.6rem + 2.4vw,3.375rem);
  --fs-hero:clamp(2.5rem,1.85rem + 3.4vw,5.25rem);

  /* ---------- Spacing (8pt) ---------- */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
  --sp-6:1.5rem; --sp-8:2rem; --sp-12:3rem; --sp-16:4rem;
  --sp-24:6rem; --sp-32:8rem;

  /* ---------- Radius / shadow / motion ---------- */
  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-full:999px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-fast:150ms; --dur-base:320ms; --dur-slow:600ms;

  --container:1200px;
}

/* ---------- Theme scopes ---------- */
[data-theme="waka"]{
  --theme-bg:var(--ew-black);
  --theme-bg-alt:var(--ew-charcoal);
  --theme-accent-300:var(--ew-gold-300);
  --theme-accent-400:var(--ew-gold-400);
  --theme-accent-500:var(--ew-gold-500);
  --theme-accent-600:var(--ew-gold-600);
  --theme-glow:var(--ew-gold-glow);
}
[data-theme="fms"]{
  --theme-bg:var(--fms-black);
  --theme-bg-alt:var(--fms-dark);
  --theme-accent-300:var(--fms-green-300);
  --theme-accent-400:var(--fms-green-400);
  --theme-accent-500:var(--fms-green-500);
  --theme-accent-600:var(--fms-green-600);
  --theme-glow:var(--fms-green-glow);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
img,svg,video{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
ul{list-style:none}

body{
  background:var(--theme-bg);
  color:var(--theme-text);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background var(--dur-slow) var(--ease-out);
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  line-height:1.12;
  letter-spacing:-.01em;
  font-weight:700;
}
h1{font-size:var(--fs-hero);font-weight:800;letter-spacing:-.02em}
h2{font-size:var(--fs-3xl)}
h3{font-size:var(--fs-xl)}
p{color:var(--theme-text-muted)}

.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,5vw,48px)}
section{padding-block:clamp(64px,10vw,128px);position:relative}

/* ---------- Focus ---------- */
:focus-visible{outline:2px solid var(--theme-accent-400);outline-offset:3px;border-radius:4px}

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute;top:-100px;left:16px;z-index:1000;
  background:var(--theme-accent-400);color:var(--dryva-black);
  padding:12px 20px;border-radius:var(--r-sm);font-weight:600;
  transition:top var(--dur-fast) var(--ease-out);
}
.skip-link:focus{top:16px}

/* =========================== NAV =========================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:18px 0;
  transition:padding var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),backdrop-filter var(--dur-base);
}
.nav.is-scrolled{
  padding:10px 0;
  background:color-mix(in srgb, var(--theme-bg) 82%, transparent);
  backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav .container{display:flex;align-items:center;justify-content:space-between;gap:24px}
.nav-links{display:flex;align-items:center;gap:clamp(20px,3vw,40px)}
.nav-links a{
  font-size:var(--fs-sm);font-weight:500;color:var(--theme-text-muted);
  position:relative;padding:6px 2px;transition:color var(--dur-fast) var(--ease-out);
}
.nav-links a:hover,.nav-links a.active{color:var(--theme-text)}
.nav-links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--theme-accent-400);border-radius:2px;
}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-toggle{display:none}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);
  padding:14px 26px;border-radius:var(--r-full);border:1px solid transparent;
  min-height:48px;white-space:nowrap;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),border-color var(--dur-base);
}
.btn:active{transform:scale(.97)}
.btn-primary{
  background:linear-gradient(135deg,var(--theme-accent-300),var(--theme-accent-500));
  color:var(--dryva-black);
  box-shadow:0 8px 24px -8px var(--theme-glow);
}
.btn-primary:hover{box-shadow:0 12px 32px -6px var(--theme-glow);transform:translateY(-2px)}
.btn-ghost{
  background:transparent;border-color:rgba(255,255,255,.18);color:var(--theme-text);
}
.btn-ghost:hover{border-color:var(--theme-accent-400);background:rgba(255,255,255,.04)}
.btn-sm{padding:10px 18px;min-height:40px;font-size:var(--fs-xs)}
.btn svg{width:18px;height:18px;flex-shrink:0}

/* =========================== LOGOS =========================== */
.logo-link{display:flex;align-items:center;gap:10px}
.logo-mark{height:34px;width:auto}
.logo-word{font-family:var(--font-display);font-weight:800;font-size:1.05rem;letter-spacing:.01em}
.logo-tag{display:block;font-family:var(--font-body);font-size:.55rem;font-weight:600;letter-spacing:.14em;color:var(--theme-text-muted);text-transform:uppercase;margin-top:-2px}

/* =========================== HERO =========================== */
.hero{
  min-height:100svh;display:flex;align-items:center;
  padding-top:120px;padding-bottom:80px;
  position:relative;overflow:hidden;
}
.hero-bg-glow{
  position:absolute;inset:-20% -10% auto -10%;height:120%;
  background:radial-gradient(60% 60% at 50% 20%,var(--theme-glow),transparent 70%);
  filter:blur(40px);pointer-events:none;z-index:0;
}
.hero .container{position:relative;z-index:2}

/* ---------- Hero background video ---------- */
.hero-video-wrap{position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--theme-bg)}
.hero-video-wrap video{
  position:absolute;top:50%;left:50%;
  width:100%;height:100%;min-width:100%;min-height:100%;
  transform:translate(-50%,-50%);
  object-fit:cover;display:block;
}
.hero-video-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(10,10,11,.5) 0%,rgba(10,10,11,.62) 45%,rgba(10,10,11,.92) 100%),
    radial-gradient(60% 55% at 50% 15%,var(--theme-glow),transparent 70%);
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:var(--fs-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--theme-accent-400);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  padding:8px 16px;border-radius:var(--r-full);margin-bottom:24px;
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--theme-accent-400);box-shadow:0 0 0 4px var(--theme-glow)}
.hero h1{max-width:16ch;margin-bottom:24px}
.hero h1 .accent{color:var(--theme-accent-400)}
.hero-sub{font-size:var(--fs-lg);max-width:52ch;margin-bottom:40px}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:56px}
.hero-stats{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,64px)}
.hero-stat .num{font-family:var(--font-display);font-weight:800;font-size:var(--fs-2xl);color:var(--theme-text)}
.hero-stat .label{font-size:var(--fs-xs);color:var(--theme-text-muted);text-transform:uppercase;letter-spacing:.08em}

/* split word reveal */
.split-line{overflow:hidden;display:block}
.split-line > span{display:inline-block;will-change:transform}

/* =========================== SECTION HEADER =========================== */
.section-head{max-width:680px;margin-bottom:clamp(40px,6vw,72px)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head h2{margin-block:16px 18px}
.section-head p{font-size:var(--fs-lg)}

/* =========================== CARDS =========================== */
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r-lg);
  padding:clamp(24px,3vw,36px);
  transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-base),box-shadow var(--dur-base);
}
.card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.16);box-shadow:0 20px 48px -20px rgba(0,0,0,.55)}
.card-icon{
  width:52px;height:52px;border-radius:var(--r-md);
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--theme-accent-300),var(--theme-accent-600));
  margin-bottom:20px;
}
.card-icon svg{width:26px;height:26px;color:var(--dryva-black)}
.card h3{margin-bottom:10px}
.card p{font-size:var(--fs-sm)}

/* product split cards on homepage */
.product-card{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  padding:clamp(32px,4vw,48px);min-height:360px;
  display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid rgba(255,255,255,.08);
  isolation:isolate;
}
.product-card::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:.85;
  transition:opacity var(--dur-base) var(--ease-out), transform 700ms var(--ease-out);
}
.product-card:hover::before{transform:scale(1.05)}
.product-card.is-waka::before{background:radial-gradient(120% 100% at 100% 0%,var(--ew-gold-500) 0%,var(--ew-charcoal) 55%,var(--ew-black) 100%)}
.product-card.is-fms::before{background:radial-gradient(120% 100% at 100% 0%,var(--fms-green-500) 0%,var(--fms-dark) 55%,var(--fms-black) 100%)}
.product-card .tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:12px;opacity:.85}
.product-card h3{font-size:var(--fs-2xl);margin-bottom:12px}
.product-card p{color:rgba(255,255,255,.82);max-width:42ch;margin-bottom:24px}
.product-card .link-row{display:flex;align-items:center;gap:10px;font-weight:600;font-family:var(--font-display)}
.product-card .link-row svg{width:18px;height:18px;transition:transform var(--dur-fast) var(--ease-out)}
.product-card:hover .link-row svg{transform:translateX(4px)}

/* =========================== STEPS =========================== */
.steps{counter-reset:step}
.step{display:flex;gap:20px;padding-block:28px;border-top:1px solid rgba(255,255,255,.08)}
.step:last-child{border-bottom:1px solid rgba(255,255,255,.08)}
.step-num{
  counter-increment:step;font-family:var(--font-display);font-weight:800;
  font-size:var(--fs-lg);color:var(--theme-accent-400);flex-shrink:0;width:2ch;
}
.step-num::before{content:counter(step,decimal-leading-zero)}

/* =========================== STATS BAR =========================== */
.stats-bar{
  background:var(--theme-bg-alt);border-radius:var(--r-lg);
  padding:clamp(28px,4vw,48px);
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border:1px solid rgba(255,255,255,.06);
}
.stat{text-align:center}
.stat .num{font-family:var(--font-display);font-weight:800;font-size:var(--fs-2xl);color:var(--theme-accent-400)}
.stat .label{font-size:var(--fs-xs);color:var(--theme-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:6px}

/* =========================== TABS =========================== */
.tabs{display:inline-flex;gap:6px;padding:6px;background:var(--theme-bg-alt);border-radius:var(--r-full);border:1px solid rgba(255,255,255,.08);margin-bottom:32px}
.tab-btn{
  padding:10px 22px;border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:600;
  color:var(--theme-text-muted);transition:all var(--dur-fast) var(--ease-out);min-height:44px;
}
.tab-btn.active{background:var(--theme-accent-400);color:var(--dryva-black)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* =========================== ROUTE TABLE =========================== */
.route-card{
  display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;
  padding:20px 24px;border-radius:var(--r-md);
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  margin-bottom:12px;transition:border-color var(--dur-fast),background var(--dur-fast);
}
.route-card:hover{border-color:var(--theme-accent-400);background:rgba(255,255,255,.05)}
.route-endpoints{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600}
.route-endpoints svg{width:16px;height:16px;color:var(--theme-accent-400);flex-shrink:0}
.route-meta{font-size:var(--fs-xs);color:var(--theme-text-muted)}
.route-fare{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);color:var(--theme-accent-400);text-align:right}

/* =========================== DASHBOARD MOCK (FMS) =========================== */
.dash-mock{
  border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.1);
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.015));
  padding:20px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);
}
.dash-mock-bar{display:flex;gap:8px;margin-bottom:16px}
.dash-mock-bar span{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.15)}
.dash-mock-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
.dash-mock-map{
  border-radius:var(--r-md);min-height:220px;
  background:
    radial-gradient(circle at 30% 40%,var(--theme-accent-400) 0,transparent 3%),
    radial-gradient(circle at 65% 65%,var(--theme-accent-300) 0,transparent 3%),
    radial-gradient(circle at 80% 30%,var(--theme-accent-400) 0,transparent 3%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 40px),
    var(--theme-bg-alt);
  position:relative;
}
.dash-mock-side{display:flex;flex-direction:column;gap:14px}
.dash-mock-card{background:rgba(255,255,255,.04);border-radius:var(--r-sm);padding:14px;border:1px solid rgba(255,255,255,.06)}
.dash-mock-card .k{font-size:.7rem;color:var(--theme-text-muted);text-transform:uppercase;letter-spacing:.08em}
.dash-mock-card .v{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);margin-top:4px}
.dash-mock-bars{display:flex;align-items:flex-end;gap:6px;height:60px;margin-top:8px}
.dash-mock-bars span{flex:1;background:var(--theme-accent-400);border-radius:3px 3px 0 0;opacity:.85}

/* =========================== TESTIMONIALS =========================== */
.testimonial{
  background:var(--theme-bg-alt);border-radius:var(--r-lg);padding:clamp(28px,4vw,44px);
  border:1px solid rgba(255,255,255,.06);
}
.testimonial p{font-size:var(--fs-lg);color:var(--theme-text);margin-bottom:24px;font-family:var(--font-display);font-weight:500;line-height:1.5}
.testimonial-author{display:flex;align-items:center;gap:12px}
.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--theme-accent-300),var(--theme-accent-600));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:var(--dryva-black)}
.testimonial-author .name{font-weight:600;font-size:var(--fs-sm)}
.testimonial-author .role{font-size:var(--fs-xs);color:var(--theme-text-muted)}

/* =========================== PHOTO FEATURE =========================== */
.photo-feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
.photo-frame{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  aspect-ratio:5/4;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.65);
}
.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center 15%;display:block}
.photo-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.4) 100%);
  pointer-events:none;
}
.photo-badge{
  position:absolute;left:18px;bottom:18px;z-index:1;
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(10,10,11,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.16);
  padding:9px 16px;border-radius:var(--r-full);
  font-size:var(--fs-xs);font-weight:600;color:var(--white);
}
.photo-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--theme-accent-400);box-shadow:0 0 0 4px var(--theme-glow);flex-shrink:0}
.photo-feature-copy .list{margin-top:24px;display:grid;gap:14px}
.photo-feature-copy .list-item{display:flex;gap:12px;align-items:flex-start}
.photo-feature-copy .list-item svg{width:20px;height:20px;color:var(--theme-accent-400);flex-shrink:0;margin-top:2px}
.photo-feature-copy .list-item p{font-size:var(--fs-sm);margin:0}
@media (max-width:860px){
  .photo-feature{grid-template-columns:1fr}
  .photo-frame{aspect-ratio:4/3}
}

/* =========================== FORMS =========================== */
.form-field{margin-bottom:22px}
.form-field label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:8px}
.form-field .req{color:var(--theme-accent-400)}
.form-field input,.form-field select,.form-field textarea{
  width:100%;padding:14px 16px;border-radius:var(--r-sm);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);
  color:var(--theme-text);font-size:var(--fs-base);min-height:48px;
  transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast);
}
.form-field textarea{min-height:120px;resize:vertical}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  border-color:var(--theme-accent-400);background:rgba(255,255,255,.06);outline:none;
}
.form-field .hint{font-size:var(--fs-xs);color:var(--theme-text-muted);margin-top:6px}
.form-field .error{font-size:var(--fs-xs);color:#FF8A80;margin-top:6px;display:none}
.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:#FF8A80}
.form-field.has-error .error{display:block}
.form-status{
  margin-top:16px;padding:14px 18px;border-radius:var(--r-sm);font-size:var(--fs-sm);display:none;
}
.form-status.show{display:block}
.form-status.success{background:rgba(52,211,153,.12);color:var(--fms-green-300);border:1px solid rgba(52,211,153,.3)}

/* =========================== ACCORDION =========================== */
.accordion-item{border-bottom:1px solid rgba(255,255,255,.08)}
.accordion-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px 4px;text-align:left;background:none;border:none;
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);color:var(--theme-text);
}
.accordion-trigger svg{width:20px;height:20px;flex-shrink:0;transition:transform var(--dur-base) var(--ease-out);color:var(--theme-accent-400)}
.accordion-trigger[aria-expanded="true"] svg{transform:rotate(45deg)}
.accordion-panel{max-height:0;overflow:hidden;transition:max-height var(--dur-slow) var(--ease-out)}
.accordion-panel p{padding-bottom:22px;font-size:var(--fs-sm)}

/* =========================== FOOTER =========================== */
.footer{background:var(--dryva-black);border-top:1px solid rgba(255,255,255,.08);padding-block:64px 32px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.footer-brand p{font-size:var(--fs-sm);max-width:32ch;margin-top:16px}
.footer-col h4{font-family:var(--font-display);font-size:var(--fs-sm);margin-bottom:18px;color:var(--ink-300);text-transform:uppercase;letter-spacing:.08em}
.footer-col a{display:block;font-size:var(--fs-sm);color:var(--ink-300);padding-block:6px;transition:color var(--dur-fast)}
.footer-col a:hover{color:var(--white)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:32px;border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom p{font-size:var(--fs-xs)}
.social-row{display:flex;gap:12px}
.social-row a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;transition:border-color var(--dur-fast),background var(--dur-fast)}
.social-row a:hover{border-color:var(--dryva-orange-400);background:rgba(255,255,255,.04)}
.social-row svg{width:18px;height:18px}

/* =========================== MOBILE MENU =========================== */
.mobile-menu{
  position:fixed;inset:0;z-index:99;background:var(--theme-bg);
  display:flex;flex-direction:column;padding:100px 24px 40px;
  transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-in-out);
}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;padding-block:14px;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-menu .btn{margin-top:32px}

/* =========================== UTILITIES =========================== */
.text-center{text-align:center}
.mx-auto{margin-inline:auto}
.reveal{opacity:0;transform:translateY(28px)}
.badge{
  display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;
  padding:6px 14px;border-radius:var(--r-full);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
}
.marquee{display:flex;gap:64px;white-space:nowrap;will-change:transform;animation:marquee-scroll 32s linear infinite}
.marquee-track{display:flex;overflow:hidden;padding-block:8px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee span{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--theme-text-muted);opacity:.6}
@keyframes marquee-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee{animation:none}}

/* Divider glow */
.divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);margin-block:8px}

/* =========================== BRAND MARKS =========================== */
.grad-text-gold{background:linear-gradient(135deg,var(--ew-gold-200),var(--ew-gold-500) 55%,var(--ew-gold-600));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-text-orange{background:linear-gradient(135deg,var(--dryva-orange-300),var(--dryva-orange-600));-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-text-green{background:linear-gradient(135deg,var(--fms-green-300),var(--fms-green-600));-webkit-background-clip:text;background-clip:text;color:transparent}

.brand-badge{
  position:relative;flex-shrink:0;overflow:hidden;
  width:38px;height:38px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px -6px rgba(0,0,0,.5);
}
.brand-badge::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 28%,rgba(255,255,255,0) 72%,rgba(255,255,255,.25) 100%);
  mix-blend-mode:soft-light;
}
.brand-badge.badge-orange{background:linear-gradient(150deg,var(--dryva-orange-300),var(--dryva-orange-600) 80%)}
.brand-badge.badge-gold{background:linear-gradient(150deg,var(--ew-gold-300),var(--ew-gold-600) 80%)}
.brand-badge.badge-green{background:linear-gradient(150deg,var(--fms-green-300),var(--fms-green-600) 80%)}
.brand-badge svg{width:20px;height:20px;position:relative;z-index:1}
.brand-badge .mono{font-family:var(--font-display);font-weight:800;font-size:.95rem;color:var(--dryva-black);position:relative;z-index:1;letter-spacing:-.02em}

.brand-lockup{display:flex;align-items:center;gap:12px}
.brand-lockup .word{font-family:var(--font-display);font-weight:800;font-size:1.05rem;line-height:1.1;letter-spacing:-.01em}
.brand-lockup .tag{display:block;font-size:.58rem;font-weight:700;letter-spacing:.14em;color:var(--theme-text-muted);text-transform:uppercase;margin-top:2px}

/* Large hero lockups */
.hero-logo{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.hero-logo .brand-badge{width:56px;height:56px;border-radius:15px}
.hero-logo .brand-badge svg{width:30px;height:30px}
.hero-logo .brand-badge .mono{font-size:1.35rem}
.hero-logo .word{font-size:1.5rem}

/* =========================== REAL LOGO ASSETS =========================== */
.logo-dryva{height:28px;width:auto;display:block;flex-shrink:0}
.logo-icon{height:30px;width:auto;display:block;flex-shrink:0}
.hero-logo .logo-icon{height:46px}
.footer-brand .logo-dryva{height:30px}

/* =========================== RESPONSIVE =========================== */
@media (max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stats-bar{grid-template-columns:repeat(2,1fr)}
  .dash-mock-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  .grid-3{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr}
  .nav-links{display:none}
  .nav-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm)}
  .nav-toggle svg{width:20px;height:20px}
  .hero-stats{gap:24px}
  .route-card{grid-template-columns:1fr;text-align:left}
  .route-fare{text-align:left}
}
@media (max-width:600px){
  .grid-3,.grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  section{padding-block:56px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
