/* ============================================================
   ZorneGYM — Base: Reset, Typografie, Grundlayout, Motion
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;}
*{margin:0;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 18px);}
body{
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto;}
img{font-style:italic;color:var(--muted);}        /* Alt-Text dezent falls Bild fehlt */
a{color:inherit;text-decoration:none;}
button,input,textarea,select{font:inherit;color:inherit;}
ul,ol{list-style:none;padding:0;}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px;}
::selection{background:var(--gold-bright);color:var(--ink);}

/* ---------- Headings ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.018em;
  color:var(--ink);
  text-wrap:balance;
}
h2{font-size:var(--fs-h2);font-weight:800;}
h3{font-size:var(--fs-h3);letter-spacing:-.01em;}
p{text-wrap:pretty;}

/* ---------- Layout-Helfer ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.container--wide{max-width:var(--maxw-wide);}
.container--narrow{max-width:var(--maxw-narrow);}
.section{padding-block:var(--space-section);position:relative;}
.section--sand{background:var(--sand);}
.section--ink{background:var(--ink);color:var(--paper);}
.section--tight{padding-block:clamp(3rem,6vw,5rem);}
.section--ink h1,.section--ink h2,.section--ink h3{color:var(--paper);}

/* ---------- Wiederkehrende Bausteine ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.55em;
  font-size:var(--fs-eyebrow);font-weight:600;
  text-transform:uppercase;letter-spacing:.18em;
  color:var(--gold-deep);
}
.section--ink .eyebrow{color:var(--gold-bright);}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--grad-gold);border-radius:2px;}

.section-head{max-width:46rem;margin-bottom:clamp(2.2rem,4vw,3.4rem);}
.section-head--center{margin-inline:auto;text-align:center;}
.section-head .lead{margin-top:1rem;}

.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--muted);}
.section--ink .lead{color:var(--muted-on-ink);}
.muted{color:var(--muted);}
.text-center{text-align:center;}
.text-gold{color:var(--gold-deep);}
.section--ink .text-gold{
  background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.nowrap{white-space:nowrap;}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* Gold-Unterstreichung als Signature-Detail */
.u-mark{position:relative;white-space:nowrap;}
.u-mark::after{
  content:"";position:absolute;left:0;right:0;bottom:.04em;height:.34em;z-index:-1;
  background:var(--grad-gold-soft);border-radius:4px;opacity:.85;
}

/* Skip-Link */
.skip-link{
  position:fixed;top:-100%;left:1rem;z-index:1000;
  background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;border-radius:var(--r-sm);
  font-weight:600;
}
.skip-link:focus{top:1rem;}

/* ---------- Scroll-Reveal (transform/opacity) ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);will-change:opacity,transform;}
[data-reveal].is-visible{opacity:1;transform:none;}
[data-reveal-delay="1"]{transition-delay:.08s;}
[data-reveal-delay="2"]{transition-delay:.16s;}
[data-reveal-delay="3"]{transition-delay:.24s;}
[data-reveal-delay="4"]{transition-delay:.32s;}
[data-reveal-delay="5"]{transition-delay:.40s;}

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
  [data-reveal]{opacity:1;transform:none;}
}
