/* VitalDrive — premium landing (Cloudflare Pages) */

:root{
  --radius-xl: 26px;
  --radius-lg: 18px;
  --radius-md: 14px;
  --radius-sm: 12px;

  --container: 1120px;
  --gutter: 20px;

  --shadow: 0 16px 60px rgba(0,0,0,.10);
  --shadow2: 0 10px 40px rgba(0,0,0,.14);

  --a1:#e65f37; /* brand orange */
  --a2:#ff8a4c;
  --a3:#ffb48a;
  --p1:#8cabff;
  --p2:#c7ffe3;
  --p3:#ffd7e7;

  --ctaGrad: linear-gradient(135deg, var(--a1), var(--p1));
  --g1: radial-gradient(900px 520px at 14% 18%, rgba(230,95,55,.22), transparent 60%);
  --g2: radial-gradient(760px 520px at 84% 12%, rgba(140,171,255,.20), transparent 60%);
  --g3: radial-gradient(920px 620px at 74% 76%, rgba(199,255,227,.18), transparent 62%);
}

html[data-theme="light"]{
  --bg:#f6f5fb;
  --surface:rgba(255,255,255,.68);
  --surface2:rgba(255,255,255,.84);
  --text:#0b1220;
  --muted:#445066;
  --border:rgba(14,18,30,.14);
  --border2:rgba(14,18,30,.10);
  --glass:rgba(255,255,255,.54);
  --focus:#0b1220;
  --noiseOpacity:.05;
}
html[data-theme="dark"]{
  --bg:#070a12;
  --surface:rgba(16,19,33,.66);
  --surface2:rgba(16,19,33,.86);
  --text:#f2f4ff;
  --muted:#b6bdd4;
  --border:rgba(242,244,255,.16);
  --border2:rgba(242,244,255,.10);
  --glass:rgba(12,15,25,.52);
  --focus:#f2f4ff;
  --noiseOpacity:.08;
}

*{ box-sizing:border-box; }
html, body{
  height:100%;
  overflow-x:hidden;
  overflow-x:clip;
}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    var(--g1),
    var(--g2),
    var(--g3),
    linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.03));
  background-color: var(--bg);
  line-height:1.45;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  opacity: var(--noiseOpacity);
  z-index:0;
}

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration: underline; }
img{ max-width:100%; height:auto; display:block; }

.container{
  width:min(var(--container), 100% - (var(--gutter) * 2));
  margin-inline:auto;
}

.sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* Header */
.skip-link{
  position:absolute;
  left:-999px;
  top:10px;
  background:var(--surface2);
  border:1px solid var(--border);
  padding:10px 14px;
  border-radius:12px;
  z-index:9999;
}
.skip-link:focus{ left:14px; }

.header{
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid var(--border2);
  background: color-mix(in srgb, var(--glass), transparent 14%);
  backdrop-filter: blur(10px);
}
@supports not (backdrop-filter: blur(10px)){
  .header{ background:var(--surface2); }
}
.header__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 0;
  position:relative;
  z-index:1;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:180px;
}
.brand__mark{
  width:34px; height:34px;
  border-radius:12px;
  background: var(--ctaGrad);
  box-shadow: 0 10px 30px rgba(0,0,0,.22);
  display:grid;
  place-items:center;
}
.brand__mark svg{ width:18px; height:18px; opacity:.94; }
.brand__name{
  font-weight:700;
  letter-spacing:.2px;
}
.brand__tag{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin-top:1px;
}

.nav{
  display:flex;
  align-items:center;
  gap:18px;
}
.nav a{
  font-size:14px;
  color:var(--muted);
  text-decoration:none;
  padding:10px 10px;
  border-radius:12px;
}
.nav a:hover{
  color:var(--text);
  background: color-mix(in srgb, var(--surface2), transparent 36%);
  text-decoration:none;
}

.header__right{
  display:flex;
  align-items:center;
  gap:10px;
}

.icon-btn{
  border:1px solid var(--border);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  color:var(--text);
  padding:10px 12px;
  border-radius:14px;
  cursor:pointer;
  display:inline-flex;
  gap:8px;
  align-items:center;
}
.icon-btn:hover{
  box-shadow: 0 14px 44px rgba(0,0,0,.12);
}
.icon-btn:focus-visible{
  outline:3px solid color-mix(in srgb, var(--a1), var(--p1) 44%);
  outline-offset:2px;
}

#burger{ display:none; }

.lang{
  position:relative;
}
.lang__btn{
  min-width: 148px;
  justify-content:space-between;
}
.lang__panel{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  width: 200px;
  padding:10px;
  border-radius:16px;
  background: var(--surface2);
  border:1px solid var(--border);
  box-shadow: var(--shadow2);
  display:none;
}
.lang__panel[data-open="true"]{ display:block; }
.lang__panel a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 10px;
  border-radius:12px;
  text-decoration:none;
  color:var(--text);
}
.lang__panel a:hover{
  background: color-mix(in srgb, var(--a1), transparent 88%);
  text-decoration:none;
}
.lang__panel small{
  color:var(--muted);
}

.btn{
  border:none;
  cursor:pointer;
  font-weight:700;
  letter-spacing:.2px;
  padding:14px 18px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none;
}
.btn:focus-visible{
  outline:3px solid color-mix(in srgb, var(--a1), var(--p1) 44%);
  outline-offset:3px;
}

.btn--ghost{
  background: color-mix(in srgb, var(--surface2), transparent 10%);
  border:1px solid var(--border);
  color:var(--text);
}
.btn--ghost:hover{
  box-shadow: var(--shadow);
}

.grad-wrap{
  padding:1px;
  border-radius:18px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--a1), white 10%), color-mix(in srgb, var(--p1), white 6%));
  box-shadow: 0 18px 60px rgba(0,0,0,.16);
}
.btn--primary{
  width:100%;
  background: var(--ctaGrad);
  color:#0b0f19;
  border-radius:17px;
}
html[data-theme="dark"] .btn--primary{ color:#0b0f19; }
.btn--primary:hover{
  filter:saturate(1.06);
  box-shadow: 0 16px 70px rgba(0,0,0,.20);
}
.btn--sm{ padding:12px 14px; border-radius:14px; }


/* Progress */
.progress{
  position:absolute;
  left:0; right:0; bottom:0;
  height:2px;
  background: color-mix(in srgb, var(--border2), transparent 10%);
}
.progress__bar{
  height:2px;
  width:0%;
  background: linear-gradient(90deg, var(--a1), var(--p1));
}

/* Language hint (root) */

/* Sections */
main{ position:relative; z-index:1; }
.section{
  padding:30px 0;
}
.section--hero{
  padding-top:24px;
  min-height: calc(100svh - 74px);
  display:flex;
  align-items:center;
}
.section__head{
  max-width: 780px;
  margin-bottom: 18px;
}
.eyebrow{
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background: color-mix(in srgb, var(--surface2), transparent 10%);
  border:1px solid var(--border);
  color:var(--muted);
  font-size:13px;
}
.h1{
  font-size: clamp(32px, 3.4vw, 56px);
  line-height:1.05;
  letter-spacing:-.6px;
  margin:14px 0 12px;
}
.lead{
  font-size: clamp(16px, 1.25vw, 18px);
  color:var(--muted);
  max-width: 62ch;
  margin:0 0 18px;
}
.bullets{
  display:grid;
  gap:10px;
  padding:0;
  list-style:none;
  margin: 0 0 18px;
}
.bullets li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 22%);
}
.dot{
  width:10px; height:10px;
  border-radius:999px;
  background: linear-gradient(135deg, var(--a1), var(--p1));
  margin-top:5px;
  flex:0 0 auto;
}
.hero{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:28px;
  align-items:center;
}
.hero__media{
  display:grid;
  place-items:center;
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  padding:18px;
  box-shadow: var(--shadow);
  overflow:hidden;
}
.hero__media::before{
  content:"";
  position:absolute;
  inset: -2px;
  background: radial-gradient(320px 220px at 50% 0%, rgba(230,95,55,.22), transparent 62%),
              radial-gradient(260px 200px at 0% 60%, rgba(140,171,255,.18), transparent 62%),
              radial-gradient(300px 220px at 100% 80%, rgba(199,255,227,.14), transparent 62%);
  pointer-events:none;
}
.hero__media > *{ position:relative; z-index:1; }
.hero__img{
  width: min(420px, 92%);
  aspect-ratio: 1/1;
  object-fit:contain;
  filter: drop-shadow(0 22px 40px rgba(0,0,0,.24));
}
.hero__ctaRow{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.hero__note{
  font-size:12px;
  color:var(--muted);
  margin:10px 0 0;
}
.badges{
  margin-top:16px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.badge{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 22%);
  color:var(--muted);
  font-size:13px;
}
.badge img{ width:34px; height:34px; object-fit:contain; }

/* Experience */
.section--experience{
  min-height: 100svh;
}
.exp{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap:22px;
  align-items:start;
}
.exp__media{
  position:sticky;
  top:calc(74px + 18px);
}
.exp__frame{
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  padding:18px;
  box-shadow: var(--shadow);
  height: min(62svh, 540px);
  display:grid;
  place-items:center;
  overflow:hidden;
  position:relative;
}
.exp__frame img{
  position:absolute;
  inset:18px;
  width:calc(100% - 36px);
  height:calc(100% - 36px);
  object-fit:contain;
  opacity:0;
  transition: opacity .55s ease;
  filter: drop-shadow(0 22px 42px rgba(0,0,0,.24));
}
.exp__frame img.is-active{ opacity:1; }

.steps{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}
.step{
  border-radius: var(--radius-lg);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 22%);
  padding:14px 14px;
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.step.is-active{
  border-color: color-mix(in srgb, var(--a1), var(--p1) 55%);
  box-shadow: 0 20px 60px rgba(0,0,0,.14);
}
.step h3{
  margin:0 0 6px;
  font-size:16px;
}
.step p{ margin:0; color:var(--muted); }

/* Cards */
.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:14px;
}
.card{
  grid-column: span 4;
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 20%);
  padding:18px;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-height: 220px;
  transition: transform .18s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 80px rgba(0,0,0,.16);
  border-color: color-mix(in srgb, var(--a1), var(--p1) 62%);
}
.card__icon{
  width:44px; height:44px;
  border-radius:16px;
  background: color-mix(in srgb, var(--a1), transparent 88%);
  border:1px solid color-mix(in srgb, var(--a1), transparent 70%);
  display:grid;
  place-items:center;
  margin-bottom:12px;
}
.card__icon svg{ width:20px; height:20px; }
.card h3{ margin:0 0 6px; font-size:17px; }
.card p{ margin:0; color:var(--muted); }

/* Two-column content blocks */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  align-items:start;
}
.panel{
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  padding:18px;
  box-shadow: var(--shadow);
}
.panel h3{ margin:0 0 8px; }
.panel p, .panel li{ color:var(--muted); }
.panel ul{ margin:10px 0 0; padding-left:18px; }

/* Ingredients */
.ing-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
}
.ing{
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 20%);
  padding:16px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  box-shadow: var(--shadow);
}
.ing img{
  width:100%;
  aspect-ratio: 1/1;
  object-fit:cover;
  border-radius:18px;
  border:1px solid var(--border2);
  margin-bottom:12px;
}
.ing h3{ margin:0 0 6px; font-size:16px; }
.ing p{ margin:0; color:var(--muted); font-size:13px; }

/* Pricing */
.pricing{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:14px;
  align-items:stretch;
}
.plan{
  grid-column: span 4;
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  padding:18px;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  position:relative;
  overflow:hidden;
}
.plan::before{
  content:"";
  position:absolute;
  inset: -2px;
  background: radial-gradient(420px 220px at 50% 0%, rgba(230,95,55,.18), transparent 60%),
              radial-gradient(360px 220px at 0% 90%, rgba(140,171,255,.14), transparent 60%);
  pointer-events:none;
}
.plan > *{ position:relative; z-index:1; }
.plan__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.pill{
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 14%);
  color:var(--muted);
}
.plan h3{ margin:0; font-size:18px; }
.plan__price{
  margin:10px 0 8px;
  font-size:30px;
  letter-spacing:-.4px;
}
.plan__price small{ font-size:14px; color:var(--muted); font-weight:600; }
.plan__list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
}
.plan__list li{ margin:8px 0; }
.plan__media{
  display:grid;
  place-items:center;
  margin:14px 0;
}
.plan__media img{
  width:min(260px, 92%);
  object-fit:contain;
  filter: drop-shadow(0 22px 42px rgba(0,0,0,.22));
}
.plan__cta{
  margin-top:auto;
  display:grid;
  gap:8px;
}
.plan__note{
  color:var(--muted);
  font-size:12px;
  margin:0;
}
.plan--best{
  border-color: color-mix(in srgb, var(--a1), var(--p1) 58%);
}
.ribbon{
  position:absolute;
  top:14px; right:14px;
  padding:8px 10px;
  border-radius:999px;
  background: linear-gradient(135deg, var(--a1), var(--p1));
  color:#0b0f19;
  font-weight:800;
  font-size:12px;
  letter-spacing:.2px;
}

/* Social proof */
.testimonials{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap:14px;
}
.quote{
  grid-column: span 4;
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 20%);
  padding:18px;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
  gap:12px;
}
.quote__top{
  display:flex;
  align-items:center;
  gap:12px;
}
.avatar{
  width:48px; height:48px;
  border-radius:16px;
  object-fit:cover;
  border:1px solid var(--border2);
}
.quote strong{ font-size:14px; }
.quote small{ color:var(--muted); }
.quote p{ margin:0; color:var(--muted); }
.stars{ width:92px; height:auto; opacity:.92; }

/* FAQ */
.faqs{
  display:grid;
  gap:12px;
}
details.faq{
  border-radius: var(--radius-xl);
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 20%);
  box-shadow: var(--shadow);
  overflow:hidden;
}
details.faq summary{
  cursor:pointer;
  padding:16px 18px;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
details.faq summary::-webkit-details-marker{ display:none; }
details.faq summary span{
  font-weight:700;
}
details.faq summary em{
  font-style:normal;
  color:var(--muted);
}
details.faq .faq__body{
  padding:0 18px 16px;
  color:var(--muted);
}

/* Footer */
.footer{
  border-top:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 14%);
  padding:24px 0;
}
.footer__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:start;
}
.footer p{ margin:0; color:var(--muted); }
.footer a{ color:var(--text); }
.footer__links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}
.footer__links a{
  padding:8px 10px;
  border-radius:12px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 16%);
  text-decoration:none;
  font-size:13px;

.footer__meta{
  display:grid;
  gap:12px;
  justify-items:end;
}
.footer__langs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  color:var(--muted);
  font-size:13px;
}
.footer__langsLabel{ color:var(--muted); }
.footer__langsLinks{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.footer__langsLinks a{
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  text-decoration:none;
  font-size:12px;
}
.footer__langsLinks a:hover{
  background: color-mix(in srgb, var(--a1), transparent 88%);
}
}

/* Drawer (mobile nav) */
.drawer{
  border:none;
  padding:0;
  width:100%;
  height:100%;
  max-width:none;
  background: transparent;
}
.drawer::backdrop{
  background: rgba(0,0,0,.56);
}
.drawer__panel{
  position:fixed;
  inset:0;
  padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)) 18px;
  background: var(--bg);
  display:grid;
  grid-template-rows: auto 1fr auto;
  gap:14px;
}
.drawer__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.drawer__nav{
  display:grid;
  gap:10px;
}
.drawer__nav a{
  padding:14px 14px;
  border-radius:16px;
  border:1px solid var(--border2);
  background: color-mix(in srgb, var(--surface2), transparent 18%);
  text-decoration:none;
}
.drawer__nav a:hover{
  background: color-mix(in srgb, var(--a1), transparent 88%);
  text-decoration:none;
}
.drawer__bottom{
  display:grid;
  gap:10px;
}

/* Floating CTA (mobile) */
.float-cta{
  position:fixed;
  left:16px;
  right:16px;
  bottom: calc(env(safe-area-inset-bottom) + 12px);
  z-index:45;
  display:none;
}
.float-cta .grad-wrap{ border-radius: 22px; }
.float-cta .btn--primary{ border-radius: 21px; padding:16px 18px; }

/* Reveal */
[data-reveal]{
  opacity:0;
  transform: translateY(10px);
  transition: opacity .6s ease, transform .6s ease;
  will-change: opacity, transform;
}
.revealed{
  opacity:1;
  transform:none;
}

/* Responsive alignment rules */
@media (max-width: 900px){
  :root{ --gutter: 16px; }
  .nav{ display:none; }
  #burger{ display:inline-flex; }
  .float-cta{ display:block; }
  .hero{ grid-template-columns: 1fr; }
  .hero__media{ order:-1; }
  .container{ text-align:center; }
  .lead{ margin-inline:auto; }
  .bullets{ justify-items:center; }
  .bullets li{ text-align:left; width:100%; }
  .hero__ctaRow{ justify-content:center; }
  .badges{ justify-content:center; }
  .exp{ grid-template-columns:1fr; }
  .exp__media{ position:relative; top:auto; }
  .exp__frame{ height: min(44svh, 360px); }
  .grid .card, .pricing .plan, .testimonials .quote{ grid-column: span 12; }
  .split{ grid-template-columns:1fr; }
  .ing-grid{ grid-template-columns: 1fr 1fr; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__meta{ justify-items:center; }
  .footer__links{ justify-content:center; }
  .footer__langs{ justify-content:center; }
  .footer__langsLinks{ justify-content:center; }
}
@media (max-width: 420px){
  .ing-grid{ grid-template-columns: 1fr; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ scroll-behavior:auto !important; }
  [data-reveal]{ transition:none !important; transform:none !important; }
  .card:hover{ transform:none; }
  .exp__frame img{ transition:none !important; }
}

