/* ProstaVive promo — premium, fast, WCAG AA
   Guard rails: no horizontal overflow at 360px */
:root{
  /* Slightly richer background + accents (still light theme) */
  --bg:#F2F7FB;
  --surface:#FFFFFF;
  --text:#0B1F2D;
  --muted:#4B6472;
  --line:rgba(11,31,45,.12);

  --a1:#15B6E8;
  --a2:#0E3F5B;
  --a3:#F0B326;
  --grad:linear-gradient(135deg,var(--a1),var(--a2));

  --radius:22px;
  --shadow:0 14px 40px rgba(11,31,45,.10);
  --shadow2:0 10px 24px rgba(11,31,45,.08);
  --container:1120px;

  --focus: 0 0 0 4px rgba(21,182,232,.30);

  --header-h: 72px;
}
*{box-sizing:border-box}
html,body{height:100%}
html,body{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:
    radial-gradient(980px 560px at 18% 0%, rgba(21,182,232,.42), transparent 58%),
    radial-gradient(980px 560px at 90% 12%, rgba(240,179,38,.34), transparent 58%),
    radial-gradient(980px 560px at 12% 92%, rgba(14,63,91,.26), transparent 60%),
    linear-gradient(180deg, rgba(21,182,232,.12), transparent 36%),
    var(--bg);
  line-height:1.5;
}

.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;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
p{margin:0 0 1rem}
ul{margin:0; padding-left:1.1rem}
li{margin:.35rem 0}
small,.small{font-size:.9rem;color:var(--muted)}
/* skip link */
.skip-link{
  position:absolute; left:-999px; top:8px;
  background:var(--surface); color:var(--text);
  padding:.6rem .8rem; border-radius:12px; border:1px solid var(--line);
  z-index:9999;
}
.skip-link:focus{left:12px; box-shadow:var(--focus)}
/* layout */
.container{
  width:min(var(--container), calc(100% - 32px));
  margin:0 auto;
}
@media (min-width: 980px){
  .container{ margin:0 auto; }
}
.section{padding: clamp(56px, 6vw, 92px) 0; position:relative; }

/* content alignment: container centered; mobile centered content; desktop left content */
@media (max-width: 979px){
  main .container{ text-align:center; }
  .hero-actions{ justify-content:center; }
  .badges, .pill-row{ justify-content:center; }
  /* keep dense components readable */
  .cards, .price-grid, .faq, .steps{ text-align:left; }
}
@media (min-width: 980px){
  main .container{ text-align:left; }
}
.section[data-cv]{content-visibility:auto; contain-intrinsic-size: 900px;}
/* header */
.header{
  position:sticky; top:0; z-index:80;
  backdrop-filter: none;
  background:rgba(247,250,252,.88);
  border-bottom:1px solid rgba(11,31,45,.08);
}
.header-inner{
  height:var(--header-h);
  display:flex; align-items:center; gap:14px;
}
.brand{
  display:flex; align-items:center; gap:10px; flex:0 0 auto;
}
.brand img{width:168px; height:auto}
.nav{
  display:flex; align-items:center; gap:14px;
  margin-left:auto;
}
.nav .link{font-size:.95rem; color:rgba(11,31,45,.82)}
.nav .link:hover{color:rgba(11,31,45,1)}

/* mobile menu trigger */
.nav-toggle{
  display:none;
  margin-left:auto;
  width:44px; height:44px;
  border-radius:999px;
  border:1px solid rgba(11,31,45,.12);
  background:rgba(255,255,255,.80);
  align-items:center; justify-content:center;
  box-shadow: none;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.nav-toggle:focus-visible{outline:none; box-shadow:var(--focus)}
.nav-toggle:hover{transform: translateY(-1px); box-shadow:var(--shadow2)}
.nav-toggle i{
  position:relative;
  width:18px; height:2px;
  background:rgba(11,31,45,.88);
  border-radius:2px;
  transition: background .15s ease;
}
.nav-toggle i::before,
.nav-toggle i::after{
  content:"";
  position:absolute; left:0;
  width:18px; height:2px;
  background:rgba(11,31,45,.88);
  border-radius:2px;
  transition: transform .15s ease, top .15s ease;
}
.nav-toggle i::before{top:-6px}
.nav-toggle i::after{top:6px}

/* scrim for mobile menu (inserted via JS) */
.nav-scrim{
  position:fixed;
  inset:0;
  background:rgba(11,31,45,.22);
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease;
  z-index:70;
}
body.nav-open .nav-scrim{
  opacity:1;
  pointer-events:auto;
}
body.nav-open{overflow:hidden}
body.nav-open .nav-toggle i{background:transparent}
body.nav-open .nav-toggle i::before{top:0; transform:rotate(45deg)}
body.nav-open .nav-toggle i::after{top:0; transform:rotate(-45deg)}

@media (max-width: 979px){
  .nav-toggle{display:inline-flex}
  .nav{
    position:fixed;
    top: calc(var(--header-h) + 12px);
    left:12px; right:12px;
    max-width:520px;
    margin:0 auto;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:14px;
    border:1px solid rgba(11,31,45,.12);
    border-radius:20px;
    background:rgba(247,250,252,.96);
    box-shadow:var(--shadow);
    display:none;
    z-index:75;
  }
  body.nav-open .nav{display:flex}

  .nav .link{
    padding:12px 12px;
    border-radius:14px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(11,31,45,.08);
  }
  .lang{width:100%; justify-content:space-between}
  .nav .btn{width:100%}
}
/* language switch */
.lang{
  display:flex; align-items:center; gap:8px;
  padding:8px 10px;
  border:1px solid rgba(11,31,45,.12);
  border-radius:999px;
  background:rgba(255,255,255,.8);
}
.lang label{font-size:.85rem; color:rgba(11,31,45,.70)}
.lang select{
  appearance:none;
  border:0; background:transparent;
  font:inherit; color:var(--text);
  padding-right:16px;
  outline:none;
}
.lang select:focus{outline:none}
.lang:focus-within{box-shadow:var(--focus)}
/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.55rem;
  padding: 12px 16px;
  border-radius: 999px;
  border:1px solid transparent;
  font-weight:650;
  letter-spacing:-.01em;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
  user-select:none;
  max-width:100%;
}
.btn:focus-visible{outline:none; box-shadow:var(--focus)}
.btn:hover{transform: translateY(-1px); box-shadow:var(--shadow2)}
.btn:active{transform: translateY(0px)}
.btn-primary{
  background: var(--grad);
  color:white;
}
.btn-ghost{
  background: rgba(255,255,255,.76);
  border-color: rgba(11,31,45,.14);
  color: var(--text);
}
.btn-small{padding:10px 14px; font-size:.92rem}
.btn-wide{width:100%}
/* progress */
.progress{
  height:2px; width:100%;
  background:rgba(11,31,45,.06);
}
.progress > i{
  display:block; height:100%;
  width:100%;
  transform-origin:left;
  transform: scaleX(var(--scroll, 0));
  background: linear-gradient(90deg, var(--a1), var(--a3));
}
/* hero */
.hero{
  padding-top: clamp(28px, 4vw, 44px);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 26px;
  align-items:start;
}
@media (min-width: 980px){
  .hero-grid{ grid-template-columns: 1.05fr .95fr; gap: 36px; align-items:center;}
}
.kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.92rem; color:rgba(11,31,45,.72);
  padding: 8px 12px;
  border: 1px solid rgba(11,31,45,.10);
  border-radius:999px;
  background: rgba(255,255,255,.70);
}
h1{
  font-size: clamp(2.05rem, 3.4vw, 3.0rem);
  line-height:1.08;
  letter-spacing:-.03em;
  margin: 14px 0 12px;
}
h2{
  font-size: clamp(1.55rem, 2.3vw, 2.1rem);
  line-height:1.12;
  letter-spacing:-.02em;
  margin: 0 0 10px;
}
h3{
  font-size: 1.08rem;
  letter-spacing:-.01em;
  margin:0 0 8px;
}
.lead{
  font-size: 1.06rem;
  color: rgba(11,31,45,.78);
  max-width: 58ch;
}
.bullets{
  margin: 14px 0 18px;
  padding-left: 1.1rem;
  color: rgba(11,31,45,.86);
}
.cta-row{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.hero-media{
  position:relative;
  border-radius: var(--radius);
  border: 1px solid rgba(11,31,45,.10);
  background: rgba(255,255,255,.74);
  box-shadow: var(--shadow);
  padding: 18px;
  overflow:hidden;
}
.hero-media::before{
  content:"";
  position:absolute; inset:-40%;
  background:
    radial-gradient(circle at 30% 30%, rgba(41,173,217,.26), transparent 55%),
    radial-gradient(circle at 70% 40%, rgba(224,177,51,.18), transparent 58%),
    radial-gradient(circle at 55% 80%, rgba(20,76,102,.14), transparent 55%);
  transform: rotate(8deg);
}
.hero-media > *{position:relative}
.hero-media img{width:100%; height:auto}
.fineprint{font-size:.85rem; color:rgba(11,31,45,.62)}
/* cards grid */
.grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
@media (min-width: 720px){
  .grid{grid-template-columns: repeat(2, 1fr);}
}
@media (min-width: 980px){
  .grid.cols-3{grid-template-columns: repeat(3, 1fr);}
}
.card{
  border:1px solid rgba(11,31,45,.10);
  background: rgba(255,255,255,.78);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow2);
  min-width:0;
}
.card p{color:rgba(11,31,45,.78)}
/* experience scrollytelling */
.exp{
  display:grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items:start;
}
@media (min-width: 980px){
  .exp{grid-template-columns: .95fr 1.05fr; gap: 28px;}
}
.sticky{
  position: sticky;
  top: calc(var(--header-h) + 18px);
  border-radius: var(--radius);
  border:1px solid rgba(11,31,45,.10);
  background: rgba(255,255,255,.82);
  box-shadow: var(--shadow);
  padding: 18px;
  overflow:hidden;
}
.media-frame{
  border-radius: calc(var(--radius) - 6px);
  overflow:hidden;
  border:1px solid rgba(11,31,45,.08);
  background: white;
  padding: 14px;
}
.media-caption{
  margin-top: 12px;
  font-weight:650;
  color: rgba(11,31,45,.80);
}
.step{
  padding: 16px 16px 14px;
  border-radius: 18px;
  border:1px solid rgba(11,31,45,.10);
  background: rgba(255,255,255,.70);
  margin-bottom: 12px;
}
.step[aria-current="true"]{
  border-color: rgba(41,173,217,.55);
  box-shadow: 0 16px 44px rgba(41,173,217,.16);
}
/* how */
.how{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 980px){ .how{grid-template-columns: .9fr 1.1fr;} }
.list{
  border:1px solid rgba(11,31,45,.10);
  border-radius: var(--radius);
  padding: 16px 18px;
  background: rgba(255,255,255,.78);
}
/* ingredients chips */
.chips{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
@media(min-width:720px){ .chips{grid-template-columns: repeat(2, 1fr);} }
.chip{
  border:1px solid rgba(11,31,45,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.78);
  padding: 14px 14px 12px;
}
.chip strong{display:block; margin-bottom:4px}
.chip span{color:rgba(11,31,45,.76)}
.chip{display:flex; gap:12px; align-items:flex-start}
.chip-img{
  width:56px; height:auto;
  flex:0 0 auto;
  object-fit:contain;
  filter: drop-shadow(0 10px 18px rgba(11,31,45,.10));
}
.chip-body{min-width:0}
@media(min-width:980px){
  .chip-img{width:64px}
}

/* pricing */
.pricing-grid{align-items:stretch}
.price-card{
  display:flex; flex-direction:column;
  align-items:stretch;
  gap: 10px;
}
.badge{
  display:inline-flex;
  width:max-content;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(11,31,45,.12);
  background: rgba(255,255,255,.70);
  color: rgba(11,31,45,.72);
  font-size:.86rem;
}
.price-card.featured{
  border-color: rgba(41,173,217,.60);
  box-shadow: 0 22px 60px rgba(41,173,217,.18);
}
.price-meta{
  display:flex; flex-wrap:wrap; gap:8px; align-items:baseline;
  color:rgba(11,31,45,.82);
}
.price-meta b{font-size:1.2rem}
.price-img{
  border-radius: 18px;
  border:1px solid rgba(11,31,45,.08);
  background:white;
  padding: 10px;
}
.price-note{color:rgba(11,31,45,.62); font-size:.88rem}
.price-card .btn{margin-top:auto; width:100%}
/* accordion */
.faq details{
  border:1px solid rgba(11,31,45,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.78);
  padding: 14px 14px 12px;
  margin-bottom: 10px;
}
.faq summary{
  cursor:pointer;
  font-weight:650;
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq details[open]{border-color: rgba(41,173,217,.40); box-shadow: 0 16px 44px rgba(41,173,217,.12);}
.faq details p{margin-top:10px; color:rgba(11,31,45,.78)}
/* footer */
.footer{
  padding: 34px 0 42px;
  border-top:1px solid rgba(11,31,45,.10);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media(min-width: 980px){ .footer-grid{grid-template-columns: 1.1fr .9fr;} }
.footer a{color:rgba(11,31,45,.78); text-decoration:underline; text-underline-offset:3px}
.footer p{color:rgba(11,31,45,.72)}
/* sticky cta mobile */
.sticky-cta{
  position:fixed;
  left:12px; right:12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  max-width:520px;
  margin:0 auto;
  z-index:90;
  display:none;
}
.sticky-cta .card{
  padding: 12px;
  border-radius: 20px;
  box-shadow: 0 10px 24px rgba(11,31,45,.12);
}
.sticky-cta .row{
  display:flex; align-items:center; gap:10px;
}
.sticky-cta .row .btn{white-space:nowrap}
.sticky-title{font-weight:700; letter-spacing:-.01em}

@media (max-width: 820px){
  .sticky-cta{display:block}
  .nav .link{display:none}
}

@media (max-width: 420px){
  .sticky-cta .card{padding:10px; border-radius:18px}
  .sticky-cta .row{gap:8px; align-items:flex-start}
  .sticky-cta .sticky-title{font-size:.92rem}
  .sticky-cta .small{font-size:.76rem; line-height:1.25}
  .sticky-cta .row .btn{font-size:.86rem; padding:9px 12px}
}
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important}
  .btn{transition:none}
}
/* reveal */
[data-reveal]{opacity:0; transform: translateY(12px); transition: opacity .7s ease, transform .7s ease}
.is-visible{opacity:1; transform: translateY(0px)}
