/* ==========================================================================
   Adam Kowalski — Trener Personalny
   Design system: "Editorial Performance" — ivory paper + ink + signal red.
   Sharp edges, hard offset shadows, condensed display type, numbered
   sections, ticker marquee. Deliberately NOT a dark/gold/serif template.
   ========================================================================== */

:root{
  --paper: #efe8d8;        /* warm ivory page background */
  --paper-alt: #e6dcc6;    /* slightly deeper ivory for alternating sections */
  --card: #faf6ec;         /* card surface, lighter than page */
  --ink: #17150f;          /* near-black warm ink for text/borders */
  --ink-soft: #57523f;     /* muted ink for body copy */
  --ink-faint: #8b846c;    /* faint labels */
  --signal: #e8461c;       /* signal red-orange accent */
  --signal-dark: #b8340f;
  --line: rgba(23,21,15,0.16);
  --line-strong: rgba(23,21,15,0.9);
  --success: #2f6d4c;

  --radius: 3px;
  --shadow-hard: 7px 7px 0 var(--ink);
  --shadow-hard-sm: 4px 4px 0 var(--ink);

  --ff-display: 'Anton', 'Arial Narrow', sans-serif;
  --ff-alt: 'Space Grotesk', 'Inter', sans-serif;
  --ff-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --header-h: 92px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--ff-body);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family: inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family: var(--ff-display); font-weight:400; line-height:.95; margin:0 0 .45em;
  color: var(--ink); text-transform: uppercase; letter-spacing:.01em;
}
p{ margin:0 0 1em; }
.container{ width:100%; max-width:1180px; margin:0 auto; padding:0 24px; }

/* ---------- utility ---------- */
.eyebrow{
  display:flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem;
  color: var(--ink); font-weight:600; margin-bottom:16px; font-family: var(--ff-alt);
}
.eyebrow.center{ justify-content:center; }
.eyebrow__num{
  display:inline-flex; align-items:center; justify-content:center;
  font-family: var(--ff-alt); font-weight:700; font-size:.72rem;
  color: var(--card); background: var(--ink); border-radius: 100px;
  padding: 3px 9px;
}
.center{ text-align:center; }
.section{ padding: 120px 0; }
.section--alt{ background: var(--paper-alt); }
.section > .container > h2.center{ max-width: 760px; margin-left:auto; margin-right:auto; }
.section-lead{ max-width: 620px; margin: 0 auto 56px; color: var(--ink-soft); font-size:1.06rem; font-family: var(--ff-alt); }
.section-lead.center{ text-align:center; }

h2{ font-size: clamp(2.1rem, 4.4vw, 3.2rem); }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 16px 30px; border-radius: var(--radius); font-weight:700; font-size:.9rem;
  font-family: var(--ff-alt); text-transform: uppercase; letter-spacing:.04em;
  border: 2px solid var(--ink); transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  box-shadow: var(--shadow-hard-sm);
}
.btn--primary{ background: var(--signal); color: var(--card); border-color: var(--ink); }
.btn--primary:hover{ transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); background: var(--signal-dark); }
.btn--ghost{ background: var(--card); color: var(--ink); }
.btn--ghost:hover{ transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); }
.btn--small{ padding: 11px 18px; font-size:.78rem; box-shadow: 3px 3px 0 var(--ink); }
.btn--small:hover{ transform: translate(1.5px,1.5px); box-shadow: 1.5px 1.5px 0 var(--ink); }
.btn--wide{ width:100%; }
.btn:disabled{ opacity:.35; cursor:not-allowed; transform:none !important; }

.reveal{ opacity:0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- header ---------- */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 500;
  height: var(--header-h); display:flex; align-items:center;
  background: transparent; border-bottom: 2px solid transparent;
  transition: background .25s ease, border-color .25s ease;
}
.site-header.scrolled{ background: var(--paper); border-bottom-color: var(--line-strong); }
.header__row{ display:flex; align-items:center; justify-content:space-between; gap: 24px; }

.logo{ font-family: var(--ff-display); font-size:1.5rem; letter-spacing:.01em; color: var(--ink); display:flex; flex-direction:column; line-height:1; text-transform:uppercase; }
.logo span{ color: var(--signal); }
.logo small{ font-family: var(--ff-alt); font-size:.58rem; letter-spacing:.22em; color: var(--ink-faint); font-weight:600; margin-top:6px; text-transform:uppercase; }

.nav{ display:flex; gap: 30px; }
.nav a{ font-size:.86rem; font-weight:600; color: var(--ink-soft); position:relative; padding: 4px 0; font-family: var(--ff-alt); text-transform: uppercase; letter-spacing:.03em; }
.nav a:hover{ color: var(--ink); }
.nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:3px; background: var(--signal);
  transition: width .2s ease;
}
.nav a:hover::after{ width:100%; }

.header__cta{ flex-shrink:0; }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; }
.burger span{ width:24px; height:3px; background: var(--ink); display:block; }

/* ---------- hero ---------- */
.hero{ position: relative; padding-top: calc(var(--header-h) + 40px); overflow:hidden; background: var(--paper); }
.hero__grid{
  max-width:1180px; margin: 0 auto; padding: 0 24px 60px;
  display:grid; grid-template-columns: 1.3fr .9fr; gap: 50px; align-items:end;
}
.hero__content{ padding:0; max-width:none; }
.hero .eyebrow{ margin-bottom:22px; }
.hero h1{
  font-size: clamp(3rem, 7.4vw, 6rem); color: var(--ink); margin-bottom:.35em;
}
.hero h1 span{ color: var(--signal); -webkit-text-stroke: 0; }
.hero__lead{ max-width: 480px; font-size: 1.1rem; color: var(--ink-soft); font-family: var(--ff-alt); }
.hero__actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top: 32px; }

.hero__panel{
  background: var(--ink); color: var(--paper); border-radius: var(--radius);
  padding: 30px 28px; box-shadow: var(--shadow-hard); display:flex; flex-direction:column; gap: 22px;
}
.hero__panel-label{ font-family: var(--ff-alt); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color: var(--signal); font-weight:700; }
.hero__stats{ display:grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.stat{ display:flex; flex-direction:column; }
.stat strong{ font-family: var(--ff-display); font-size:2rem; color: var(--paper); line-height:1; }
.stat span{ font-size:.72rem; color: rgba(239,232,216,0.6); text-transform:uppercase; letter-spacing:.04em; font-family: var(--ff-alt); margin-top:4px; }
.hero__panel-cta{
  display:flex; align-items:center; justify-content:space-between; font-family: var(--ff-alt); font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; font-size:.82rem; color: var(--paper); border-top: 1px solid rgba(239,232,216,0.2);
  padding-top: 18px;
}
.hero__panel-cta span{ color: var(--signal); transition: transform .2s ease; }
.hero__panel-cta:hover span{ transform: translateX(4px); }

/* ---------- marquee ---------- */
.marquee{
  border-top: 3px solid var(--ink); border-bottom: 3px solid var(--ink);
  background: var(--signal); overflow:hidden; white-space:nowrap;
}
.marquee__track{ display:inline-flex; animation: marquee 22s linear infinite; }
.marquee__track span{
  font-family: var(--ff-display); font-size: 1.4rem; color: var(--ink); padding: 14px 20px;
  text-transform:uppercase; letter-spacing:.03em; flex-shrink:0;
}
@keyframes marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ---------- about ---------- */
.about{ display:grid; grid-template-columns: 360px 1fr; gap: 76px; align-items:center; }
.about__media{ position:relative; }
.about__frame{
  position:relative; border: 3px solid var(--ink); border-radius: var(--radius); overflow:hidden; aspect-ratio: 3/4;
  background: var(--card); display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-hard);
}
.about__portrait{ font-family: var(--ff-display); font-size: 6rem; color: var(--line-strong); letter-spacing:.02em; }
.about__badge{
  position:absolute; bottom: -22px; right: -22px; background: var(--signal);
  border: 3px solid var(--ink); border-radius: var(--radius); padding: 14px 20px;
  display:flex; flex-direction:column; box-shadow: var(--shadow-hard-sm);
}
.about__badge strong{ color: var(--ink); font-family: var(--ff-display); font-size:1.2rem; }
.about__badge span{ font-size:.68rem; color: var(--ink); text-transform:uppercase; letter-spacing:.05em; font-family: var(--ff-alt); font-weight:700; }

.about__text p{ color: var(--ink-soft); font-family: var(--ff-body); }
.check-list{ margin: 24px 0 32px; display:flex; flex-direction:column; gap:13px; }
.check-list li{ position:relative; padding-left: 32px; color: var(--ink-soft); font-family: var(--ff-alt); font-size:.95rem; }
.check-list li::before{
  content:""; position:absolute; left:0; top:4px; width:16px; height:16px;
  background: var(--signal); border: 2px solid var(--ink);
}

/* ---------- cards / oferta ---------- */
.cards-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.card{
  background: var(--card); border: 2px solid var(--ink); border-radius: var(--radius);
  padding: 32px 24px; box-shadow: var(--shadow-hard-sm); transition: transform .2s ease, box-shadow .2s ease;
}
.card:hover{ transform: translate(-3px,-3px); box-shadow: 10px 10px 0 var(--ink); }
.card__icon{
  width: 50px; height:50px; border-radius: var(--radius); background: var(--ink); display:flex; align-items:center; justify-content:center;
  margin-bottom: 22px;
}
.card__icon svg{ width:22px; height:22px; fill:none; stroke: var(--signal); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card h3{ font-size:1.1rem; margin-bottom:.5em; font-family: var(--ff-alt); text-transform:none; letter-spacing:0; font-weight:700; }
.card p{ color: var(--ink-soft); font-size:.92rem; margin:0; }

/* ---------- pricing ---------- */
.pricing-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items:stretch; }
.price-card{
  position:relative; background: var(--card); border: 2px solid var(--ink); border-radius: var(--radius);
  padding: 42px 30px; display:flex; flex-direction:column; gap: 20px; box-shadow: var(--shadow-hard-sm);
}
.price-card--featured{ background: var(--ink); color: var(--paper); box-shadow: var(--shadow-hard); }
.price-card--featured h3, .price-card--featured .price span{ color: var(--paper); }
.price-card--featured .price{ color: rgba(239,232,216,0.65); }
.price-card--featured ul li{ color: rgba(239,232,216,0.75); }
.price-card--featured ul li::before{ color: var(--signal); }
.price-card__ribbon{
  position:absolute; top: -15px; left: 28px;
  background: var(--signal); color: var(--ink); font-family: var(--ff-alt); font-size:.7rem; font-weight:700;
  padding: 7px 14px; border-radius: var(--radius); text-transform:uppercase; letter-spacing:.05em; white-space:nowrap;
  border: 2px solid var(--ink);
}
.price-card h3{ font-size:1.3rem; font-family: var(--ff-display); }
.price{ font-family: var(--ff-alt); font-size:.95rem; color: var(--ink-soft); font-weight:600; }
.price span{ font-size: 2.5rem; color: var(--ink); font-weight:700; font-family: var(--ff-display); }
.price-card ul{ display:flex; flex-direction:column; gap:11px; flex:1; }
.price-card ul li{ font-size:.9rem; color: var(--ink-soft); padding-left:24px; position:relative; font-family: var(--ff-alt); }
.price-card ul li::before{ content:"—"; position:absolute; left:0; color: var(--signal); font-weight:700; }
.price-card .btn{ align-self:flex-start; }
.price-card--featured .btn--ghost{ background: var(--paper); }

/* ---------- booking ---------- */
.booking{ display:flex; flex-direction:column; gap: 40px; }
.booking__step{
  background: var(--card); border: 2px solid var(--ink); border-radius: var(--radius); padding: 32px 34px;
  box-shadow: var(--shadow-hard-sm);
}
.booking__step-head{ display:flex; align-items:center; gap: 14px; margin-bottom: 24px; flex-wrap:wrap; }
.booking__step-head h3{ margin:0; font-size:1.2rem; font-family: var(--ff-display); }
.step-num{
  width: 32px; height:32px; border-radius: var(--radius); background: var(--ink); color: var(--signal);
  display:flex; align-items:center; justify-content:center; font-family: var(--ff-display); font-size:1rem; flex-shrink:0;
}
.booking__hint{ margin-left:auto; font-size:.8rem; color: var(--ink-faint); font-family: var(--ff-alt); font-weight:600; }

.calendar{ display:grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.day-card{
  background: var(--paper); border: 2px solid var(--line); border-radius: var(--radius);
  padding: 14px 6px; text-align:center; display:flex; flex-direction:column; gap:4px; transition: all .15s ease;
}
.day-card:not(.day-card--disabled){ cursor:pointer; border-color: var(--ink); }
.day-card:not(.day-card--disabled):hover{ background: var(--signal); transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--ink); }
.day-card .dow{ font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; color: var(--ink-faint); font-family: var(--ff-alt); font-weight:700; }
.day-card .dom{ font-family: var(--ff-display); font-size:1.4rem; color: var(--ink); }
.day-card .mon{ font-size:.63rem; color: var(--ink-faint); font-family: var(--ff-alt); }
.day-card--disabled{ opacity:.3; border-color: var(--line); }
.day-card--selected{ background: var(--ink); border-color: var(--ink); }
.day-card--selected .dow, .day-card--selected .mon{ color: rgba(239,232,216,0.6); }
.day-card--selected .dom{ color: var(--signal); }
.day-card--selected:hover{ background: var(--ink); transform:none; box-shadow:none; }

.slots{ display:grid; grid-template-columns: repeat(auto-fill, minmax(96px,1fr)); gap:10px; }
.slots__placeholder{ color: var(--ink-faint); font-size:.9rem; grid-column: 1/-1; margin:0; font-family: var(--ff-alt); }
.slot-btn{
  background: var(--paper); border: 2px solid var(--ink); border-radius: var(--radius); color: var(--ink);
  padding: 12px 8px; font-weight:700; font-size:.9rem; transition: all .15s ease; font-family: var(--ff-alt);
}
.slot-btn:hover:not(:disabled){ background: var(--signal); transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--ink); }
.slot-btn--selected{ background: var(--ink); color: var(--signal); }
.slot-btn--selected:hover{ transform:none; box-shadow:none; background: var(--ink); }
.slot-btn:disabled{ opacity:.3; border-color: var(--line); text-decoration: line-through; cursor:not-allowed; }

.booking-form{ display:flex; flex-direction:column; gap: 18px; max-width: 640px; }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-size:.8rem; color: var(--ink-soft); font-weight:700; font-family: var(--ff-alt); text-transform:uppercase; letter-spacing:.03em; }
.field input, .field select, .field textarea{
  background: var(--paper); border: 2px solid var(--ink); border-radius: var(--radius);
  padding: 12px 14px; color: var(--ink); font-family: var(--ff-body); font-size:.95rem; resize: vertical;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; box-shadow: 3px 3px 0 var(--signal); }

.booking-summary{
  background: var(--paper); border: 2px dashed var(--ink); border-radius: var(--radius);
  padding: 14px 16px; font-size:.88rem; color: var(--ink-soft); font-family: var(--ff-alt);
}
.booking-summary strong{ color: var(--signal-dark); }

.booking-confirm{ max-width: 640px; text-align:center; padding: 20px 0; }
.booking-confirm__icon{
  width:58px; height:58px; border-radius: var(--radius); background: var(--success); color: var(--paper);
  display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin: 0 auto 20px;
  border: 3px solid var(--ink); box-shadow: var(--shadow-hard-sm);
}
.booking-confirm__note{ font-size:.82rem; color: var(--ink-faint); font-family: var(--ff-alt); }

/* ---------- testimonials ---------- */
.testimonials{ max-width: 740px; margin: 0 auto; overflow:hidden; }
.testimonial-track{ display:flex; transition: transform .5s ease; }
.testimonial{
  min-width:100%; background: var(--card); border: 2px solid var(--ink); border-radius: var(--radius);
  padding: 48px 50px; text-align:center; margin:0; box-shadow: var(--shadow-hard-sm); position:relative;
}
.testimonial::before{
  content:"\201C"; font-family: var(--ff-display); font-size: 4rem; color: var(--signal); position:absolute;
  top: 4px; left: 24px; line-height:1;
}
.testimonial p{ font-family: var(--ff-alt); font-size:1.25rem; color: var(--ink); font-weight:500; margin-bottom:.6em; }
.testimonial footer{ color: var(--signal-dark); font-size:.85rem; font-family: var(--ff-alt); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.testimonial-dots{ display:flex; justify-content:center; gap:10px; margin-top: 28px; }
.testimonial-dots button{
  width:10px; height:10px; border-radius: 2px; border: 2px solid var(--ink); background: var(--paper); padding:0;
}
.testimonial-dots button.active{ background: var(--signal); }

/* ---------- contact ---------- */
.contact{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items:start; }
.contact-list{ display:flex; flex-direction:column; gap:12px; margin: 26px 0 34px; color: var(--ink-soft); font-family: var(--ff-alt); }
.contact-list strong{ color: var(--ink); }

.map-block{ margin-top: 10px; }
.map-frame{ position:relative; border-radius: var(--radius); overflow:hidden; border: 3px solid var(--ink); aspect-ratio: 4/3; background: var(--card); box-shadow: var(--shadow-hard); }
.map-frame iframe{ width:100%; height:100%; }
.map-locked{
  position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap: 14px; padding: 30px; background: var(--ink); color: var(--paper);
}
.map-locked__icon{ font-size:2rem; }
.map-locked p{ color: rgba(239,232,216,0.75); font-size:.92rem; margin:0; font-family: var(--ff-alt); }

.contact-form{
  background: var(--card); border: 2px solid var(--ink); border-radius: var(--radius); padding: 36px;
  display:flex; flex-direction:column; gap: 18px; box-shadow: var(--shadow-hard-sm);
}
.contact-form h3{ margin-bottom:.3em; font-family: var(--ff-display); }
.form-note{ color: var(--success); font-size:.88rem; margin:0; font-family: var(--ff-alt); font-weight:600; }

/* ---------- footer ---------- */
.site-footer{ background: var(--ink); color: var(--paper); border-top: 3px solid var(--ink); padding-top: 64px; }
.footer__row{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap: 30px; padding-bottom: 40px; border-bottom: 1px solid rgba(239,232,216,0.18); }
.footer__brand .logo{ color: var(--paper); }
.footer__brand p{ color: rgba(239,232,216,0.55); font-size:.88rem; margin-top:10px; font-family: var(--ff-alt); }
.logo--footer{ flex-direction:row; gap:6px; }
.footer__nav{ display:flex; align-items:center; gap: 26px; flex-wrap:wrap; }
.footer__nav a{ color: rgba(239,232,216,0.75); font-size:.86rem; font-family: var(--ff-alt); font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.footer__nav a:hover{ color: var(--signal); }
.footer__cookie-link{ background:none; border:none; color: rgba(239,232,216,0.75); font-size:.86rem; padding:0; font-family: var(--ff-alt); font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.footer__cookie-link:hover{ color: var(--signal); }

.footer__bottom{ padding: 26px 0 34px; display:flex; flex-direction:column; gap:7px; }
.footer__bottom p{ margin:0; font-size:.82rem; color: rgba(239,232,216,0.5); font-family: var(--ff-alt); }
.footer__demo-note{ color: var(--signal) !important; font-weight:600; }
.footer__credit{ font-size:.82rem; }
.footer__credit strong{ color: var(--paper); }

/* ---------- cookie banner ---------- */
.cookie-banner{
  position: fixed; left: 20px; right:20px; bottom: 20px; z-index: 800; max-width: 920px; margin: 0 auto;
  background: var(--card); border: 3px solid var(--ink); border-radius: var(--radius);
  box-shadow: var(--shadow-hard); padding: 22px 26px; display:flex; align-items:center; gap: 26px; flex-wrap:wrap;
  transform: translateY(140%); transition: transform .5s ease;
}
.cookie-banner.is-visible{ transform: translateY(0); }
.cookie-banner__text strong{ display:block; margin-bottom:5px; color: var(--ink); font-family: var(--ff-alt); text-transform:uppercase; letter-spacing:.02em; font-size:.95rem; }
.cookie-banner__text p{ margin:0; font-size:.85rem; color: var(--ink-soft); font-family: var(--ff-alt); }
.cookie-banner__actions{ display:flex; gap: 12px; margin-left:auto; flex-shrink:0; }

/* ---------- demo overlay ---------- */
.demo-overlay{
  position: fixed; inset:0; z-index: 1000; background: rgba(23,21,15,0.82);
  display:flex; align-items:center; justify-content:center; padding: 20px;
  opacity:1; visibility:visible; transition: opacity .3s ease, visibility .3s ease;
}
.demo-overlay.is-hidden{ opacity:0; visibility:hidden; }
.demo-modal{
  background: var(--card); border: 3px solid var(--ink); border-radius: var(--radius);
  max-width: 520px; padding: 42px; text-align:center; box-shadow: var(--shadow-hard);
}
.demo-modal__icon{
  width:52px; height:52px; margin: 0 auto 16px; background: var(--signal); border: 2px solid var(--ink);
  border-radius: var(--radius); display:flex; align-items:center; justify-content:center; font-size:1.5rem;
}
.demo-modal h2{ font-size:1.6rem; }
.demo-modal p{ color: var(--ink-soft); font-size:.92rem; font-family: var(--ff-alt); }
.demo-modal .btn{ margin-top: 10px; }

/* ---------- scrollbar accent ---------- */
::selection{ background: var(--signal); color: var(--paper); }

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .about, .contact{ grid-template-columns: 1fr; }
  .about__media{ max-width: 320px; margin: 0 auto 60px; }
  .cards-grid{ grid-template-columns: repeat(2,1fr); }
  .pricing-grid{ grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .nav{ display:none; }
  .header__cta{ display:none; }
  .burger{ display:flex; }
  .hero__grid{ grid-template-columns: 1fr; }
  .hero__panel{ order:-1; }
}

@media (max-width: 980px){
  .nav.is-open{
    display:flex; position: fixed; top: var(--header-h); left:0; right:0; bottom:0;
    background: var(--paper); flex-direction:column; align-items:center; justify-content:center; gap: 30px;
    z-index: 400; border-top: 2px solid var(--ink);
  }
  .nav.is-open a{ font-size:1.3rem; }
}

@media (max-width: 640px){
  .section{ padding: 84px 0; }
  .cards-grid{ grid-template-columns: 1fr; }
  .form-row{ grid-template-columns: 1fr; }
  .hero__stats{ gap: 22px; }
  .cookie-banner{ flex-direction:column; align-items:flex-start; }
  .cookie-banner__actions{ margin-left:0; width:100%; }
  .cookie-banner__actions .btn{ flex:1; }
}
