/* ============================================================================
   WMB 2026 — About page bundle
   Ported from the Claude "About Wacken Metal Battle" design (about-page.html
   <style> block), scoped to .page-about and enqueued only on /about/. The
   mockup's .ap-nav and .ap-foot are dropped (theme owns header + footer; the
   footer's EN·DE line was removed site-wide). body.opt-* variant classes map to
   the .page-about wrapper (set server-side from the Customizer + ?param JS).
   Tokens + @font-face bundled (the --font-display family names aren't globally
   defined; only "Latin CT" is) — same self-contained pattern as the other pages.
   ========================================================================= */

@font-face {
  font-family: "Latin CT Not Wide";
  src: url('../../fonts/LatinCT-NotWide.otf') format('opentype');
  font-weight: 400 900; font-style: normal; font-display: block;
}
@font-face {
  font-family: "WMB Display";
  src: url('../../fonts/LatinCT-NotWide.otf') format('opentype');
  font-weight: 400 900; font-style: normal; font-display: block;
}
@font-face {
  font-family: "Indubitably";
  src: url('../../fonts/IndubitablyNF.ttf') format('truetype');
  font-weight: 400 900; font-style: normal; font-display: swap;
}

:root {
  --wmb-black:#0a0a0a; --wmb-surface:#141414; --wmb-surface-2:#1c1c1c;
  --wmb-border:#262626; --wmb-border-bold:#3a3a3a; --wmb-white:#f4f4f4;
  --wmb-muted:#9a9a9a; --wmb-muted-2:#6a6a6a;
  --wmb-red:#c8102e; --wmb-red-hover:#e63946; --wmb-red-deep:#8a0a1e;
  --bg:var(--wmb-black); --fg:var(--wmb-white); --fg-muted:var(--wmb-muted); --fg-meta:var(--wmb-muted-2);
  --border:var(--wmb-border); --border-strong:var(--wmb-border-bold);
  --accent:var(--wmb-red); --accent-hover:var(--wmb-red-hover); --accent-press:var(--wmb-red-deep);
  --font-display:"WMB Display","Latin CT Not Wide","Indubitably","Oswald","Impact",sans-serif;
  --font-text:"Bebas Neue","Oswald","Arial Narrow",sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,monospace;
  --ease-out:cubic-bezier(0.2,0.6,0.2,1); --dur-fast:120ms; --dur-base:200ms;
}

.page-about { background: var(--wmb-black); color: var(--wmb-white); font-family: var(--font-text); overflow-x: hidden; }
.page-about * { box-sizing: border-box; }
.page-about img { display: block; max-width: 100%; }
.page-about [hidden] { display: none !important; }

/* ------- HERO ------- */
.ap-hero { position: relative; padding: 48px 20px 40px; border-bottom: 1px solid var(--wmb-border); }
.ap-hero__eyebrow { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; display: inline-block; }
.ap-hero__eyebrow::before { content: "// "; color: var(--accent); }
.ap-hero__title { font-family: var(--font-display); text-transform: uppercase; font-size: 38px; line-height: 0.94; letter-spacing: 0.01em; margin: 18px 0 0; color: var(--fg); text-wrap: balance; }
@media (max-width: 374px) { .ap-hero__title { font-size: 32px; } }
.ap-hero__title em { font-style: normal; color: var(--accent); }
.ap-hero__rule { display: block; width: 64px; height: 4px; background: var(--accent); margin-top: 22px; }
.ap-hero__deck { margin: 26px 0 0; max-width: 640px; font-family: var(--font-text); font-size: 18px; letter-spacing: 0.04em; color: var(--fg-muted); line-height: 1.45; }
.ap-hero__meta { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 16px 28px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; padding-top: 20px; border-top: 1px solid var(--wmb-border); }
.ap-hero__meta span strong { color: var(--fg); font-weight: 400; font-family: var(--font-text); letter-spacing: 0.12em; }

/* ------- SECTION ------- */
.ap-sec { padding: 64px 20px; border-bottom: 1px solid var(--wmb-border); }
.ap-sec__inner { display: block; }
.ap-sec__eyebrow { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; display: inline-block; margin-bottom: 14px; }
.ap-sec__eyebrow::before { content: "// "; color: var(--accent); }
.ap-sec__h2 { font-family: var(--font-display); text-transform: uppercase; font-size: 30px; line-height: 0.98; letter-spacing: 0.01em; color: var(--fg); margin: 0; text-wrap: balance; }
@media (max-width: 374px) { .ap-sec__h2 { font-size: 26px; } }
.ap-sec__rule { display: block; width: 64px; height: 4px; background: var(--accent); margin-top: 18px; }
.ap-sec__body { margin-top: 28px; max-width: 640px; }
.ap-sec__body p { font-family: var(--font-text); font-size: 17px; letter-spacing: 0.04em; line-height: 1.55; color: var(--fg); margin: 0 0 20px; }
.ap-sec__body p:last-child { margin-bottom: 0; }
.ap-sec__body em { font-style: normal; color: var(--accent); }

/* ------- IMAGE SLOT ------- */
.ap-img { position: relative; aspect-ratio: 4/5; background: var(--wmb-surface); border: 1px solid var(--wmb-border); margin: 32px -20px 0; overflow: hidden; }
.ap-img--filled { border-color: var(--wmb-border); }
.ap-img img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.92) contrast(1.04); }
.ap-img__label { position: absolute; top: 14px; left: 14px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; padding: 6px 10px; border: 1px solid var(--wmb-border); background: rgba(10,10,10,0.82); }
.ap-img--filled .ap-img__label { color: var(--fg); border-color: rgba(244,244,244,0.3); }
.ap-img--empty { background: repeating-linear-gradient(135deg, transparent 0 12px, rgba(255,255,255,0.018) 12px 13px), var(--wmb-surface); border-style: dashed; }
.ap-img--empty::after { content: attr(data-empty-label); position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--fg-meta); text-transform: uppercase; text-align: center; padding: 20px; }

/* ------- FUNNEL ------- */
.ap-funnel { margin-top: 36px; display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--wmb-border); list-style: none; padding: 0; }
.ap-funnel__step { display: flex; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--wmb-border); }
.ap-funnel__n { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--accent); min-width: 36px; }
.ap-funnel__l { font-family: var(--font-display); font-size: 22px; letter-spacing: 0.02em; text-transform: uppercase; color: var(--fg); flex: 1; }
.ap-funnel__d { font-family: var(--font-text); font-size: 12px; letter-spacing: 0.12em; color: var(--fg-muted); text-transform: uppercase; }

/* ------- STATS ------- */
.ap-stats-section { background: var(--wmb-black); }
.ap-stats { margin-top: 36px; }
.ap-stats__grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--wmb-border); }
.ap-stats__cell { padding: 24px 16px; border-right: 1px solid var(--wmb-border); border-bottom: 1px solid var(--wmb-border); min-width: 0; overflow: hidden; }
.ap-stats__cell:nth-child(2n) { border-right: 0; }
.ap-stats__cell:nth-last-child(-n+2) { border-bottom: 0; }
.ap-stats__n { font-family: var(--font-display); font-size: clamp(32px, 9vw, 56px); line-height: 0.92; letter-spacing: 0; color: var(--fg); white-space: nowrap; }
.ap-stats__l { margin-top: 12px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em; color: var(--fg-muted); text-transform: uppercase; }
.ap-stats__l::before { content: "// "; color: var(--accent); }

/* Scroll-snap stats variant */
.page-about.opt-stats-scroll .ap-stats__grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; border: 0; border-top: 1px solid var(--wmb-border); border-bottom: 1px solid var(--wmb-border); margin: 0 -20px; padding: 0; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.page-about.opt-stats-scroll .ap-stats__cell { flex: 0 0 75%; scroll-snap-align: start; border: 0; border-right: 1px solid var(--wmb-border); padding: 28px 20px; min-width: 220px; }
.page-about.opt-stats-scroll .ap-stats__cell:last-child { border-right: 0; }

/* ------- AFTERMOVIES ------- */
.ap-after { background: #0f0f0f; }
.ap-after .ap-sec__h2 { max-width: 16ch; }
.ap-after__grid { margin-top: 36px; display: flex; flex-direction: column; gap: 24px; }
.ap-video { position: relative; aspect-ratio: 16/9; width: 100%; background: var(--wmb-black); border: 1px solid var(--wmb-border); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color var(--dur-base) var(--ease-out); padding: 0; }
.ap-video:hover { border-color: var(--accent); }
.ap-video__label { position: absolute; top: 14px; left: 14px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.22em; color: var(--fg); text-transform: uppercase; padding: 6px 10px; background: rgba(10,10,10,0.7); border: 1px solid var(--wmb-border); }
.ap-video__yr { position: absolute; bottom: 14px; left: 14px; font-family: var(--font-display); font-size: 22px; letter-spacing: 0.02em; color: var(--fg); text-transform: uppercase; }
.ap-video__dur { position: absolute; bottom: 14px; right: 14px; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; }
.ap-video__play { width: 64px; height: 64px; background: var(--accent); display: flex; align-items: center; justify-content: center; color: #fff; transition: background var(--dur-fast) var(--ease-out); }
.ap-video:hover .ap-video__play { background: var(--accent-hover); }
.ap-video__play svg { width: 22px; height: 22px; }
.ap-video__frame { position: relative; aspect-ratio: 16/9; width: 100%; }
.ap-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* single-video debug variant: hide the 2nd slot */
.page-about.opt-single .ap-after__grid .ap-video:nth-child(2) { display: none; }

/* ------- CLOSING / PULL QUOTE ------- */
.ap-closing { padding: 80px 20px; border-bottom: 1px solid var(--wmb-border); }
.ap-closing__body { max-width: 640px; }
.ap-closing__body p { font-family: var(--font-text); font-size: 17px; letter-spacing: 0.04em; line-height: 1.55; color: var(--fg); margin: 0 0 20px; }
.ap-pull { margin: 48px 0 0; padding: 24px 0 0; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(34px, 8.5vw, 44px); line-height: 1.0; letter-spacing: 0.01em; color: var(--fg); text-align: center; text-wrap: balance; }
.ap-pull em { font-style: normal; color: var(--accent); }

/* ------- PARTNER ------- */
.ap-partner { padding: 64px 20px; text-align: center; border-bottom: 1px solid var(--wmb-border); }
.ap-partner__eyebrow { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--fg-muted); text-transform: uppercase; }
.ap-partner__eyebrow::before { content: "// "; color: var(--accent); }
.ap-partner__logo { margin: 32px auto 0; height: 128px; display: flex; justify-content: center; }
.ap-partner__logo img { height: 100%; width: auto; max-width: none; }
.ap-partner__caption { margin: 28px auto 0; max-width: 480px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--fg-muted); text-transform: uppercase; line-height: 1.5; }

/* ------- CTA FOOTER ------- */
.ap-cta { padding: 64px 20px 80px; display: flex; flex-direction: column; gap: 14px; }
.ap-btn { display: inline-flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 18px 22px; font-family: var(--font-text); font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; text-decoration: none; background: var(--accent); color: #fff; border: 1px solid var(--accent); transition: background var(--dur-fast) var(--ease-out); }
.ap-btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.ap-btn--ghost { background: transparent; border-color: var(--fg); color: var(--fg); }
.ap-btn--ghost:hover { background: transparent; color: var(--accent-hover); border-color: var(--accent-hover); }
.ap-btn__arrow { font-family: var(--font-display); font-size: 20px; line-height: 1; }

/* =========== TABLET — 768px+ =========== */
@media (min-width: 768px) {
  .ap-hero { padding: 72px 32px 56px; }
  .ap-hero__title { font-size: clamp(56px, 8vw, 72px); }
  .ap-hero__deck { font-size: 20px; max-width: 600px; }

  .ap-sec { padding: 80px 32px; }
  .ap-sec__inner { max-width: 1440px; margin: 0 auto; display: grid; grid-template-columns: 6fr 6fr; grid-template-rows: min-content 1fr; column-gap: 48px; row-gap: 18px; align-items: start; }
  .ap-sec__head { grid-column: 1; align-self: start; }
  .ap-sec__body-wrap { grid-column: 1; align-self: start; }
  .ap-sec__h2 { font-size: clamp(40px, 5vw, 52px); }
  .ap-sec__body { margin-top: 0; max-width: none; font-size: 17px; }
  .ap-sec__body p { font-size: 17px; }

  .ap-sec--img-right .ap-sec__head,
  .ap-sec--img-right .ap-sec__body-wrap { grid-column: 1; }
  .ap-sec--img-right .ap-sec__img-wrap  { grid-column: 2; grid-row: 1 / span 2; align-self: stretch; }

  .ap-sec--alt .ap-sec__head,
  .ap-sec--alt .ap-sec__body-wrap { grid-column: 2; }
  .ap-sec--alt .ap-sec__img-wrap  { grid-column: 1; grid-row: 1 / span 2; align-self: stretch; }

  .ap-img { aspect-ratio: 4/5; margin: 0; height: 100%; min-height: 480px; }
  .ap-sec--img-right .ap-img,
  .ap-sec--alt .ap-img { aspect-ratio: auto; }

  .ap-sec:not(.ap-sec--img-right):not(.ap-sec--alt):not(.ap-stats-section):not(.ap-after) .ap-sec__head { grid-column: 1; align-self: start; padding-top: 8px; }
  .ap-sec:not(.ap-sec--img-right):not(.ap-sec--alt):not(.ap-stats-section):not(.ap-after) .ap-sec__body-wrap { grid-column: 2; }

  .ap-funnel { margin-top: 28px; }
  .ap-funnel__l { font-size: 22px; }

  .ap-stats-section .ap-sec__inner { display: block; max-width: 1440px; }
  .ap-stats__grid { grid-template-columns: repeat(4, 1fr); }
  .ap-stats__cell { border-bottom: 0 !important; padding: 36px 24px; }
  .ap-stats__cell:last-child { border-right: 0; }
  .ap-stats__n { font-size: clamp(64px, 9vw, 96px); }

  .page-about.opt-stats-scroll .ap-stats__grid { display: grid; overflow: visible; margin: 0; }
  .page-about.opt-stats-scroll .ap-stats__cell { flex: initial; border-right: 1px solid var(--wmb-border); }

  .ap-after .ap-sec__inner { display: block; max-width: 1440px; }
  .ap-after__grid { flex-direction: row; gap: 24px; margin-top: 32px; }
  .ap-after__grid .ap-video { flex: 1; }
  .ap-after .ap-sec__h2 { font-size: clamp(40px, 5vw, 52px); }
  .ap-video__yr { font-size: 28px; }
  .ap-video__play { width: 72px; height: 72px; }

  .page-about.opt-after-stacked .ap-after__grid { flex-direction: column; }
  .page-about.opt-after-stacked .ap-after__grid .ap-video { flex: initial; }

  .ap-closing { padding: 96px 32px; }
  .ap-closing__inner { max-width: 1440px; margin: 0 auto; }
  .ap-closing__body { max-width: 720px; }
  .ap-pull { font-size: clamp(44px, 6vw, 60px); padding: 40px 0; max-width: 22ch; margin: 48px auto 0; }

  .ap-partner { padding: 80px 32px; }
  .ap-partner__inner { max-width: 1440px; margin: 0 auto; text-align: center; }
  .ap-partner__logo { height: 160px; }

  .ap-cta { padding: 64px 32px 96px; max-width: 1440px; margin: 0 auto; flex-direction: row; gap: 16px; }
  .ap-btn { flex: 1; }
}

/* =========== DESKTOP — 1280px+ =========== */
@media (min-width: 1280px) {
  .ap-hero { padding: 96px 48px 80px; }
  .ap-hero__title { font-size: clamp(72px, 6.5vw, 96px); max-width: 18ch; }
  .ap-hero__deck { font-size: 22px; max-width: 720px; }

  .ap-sec { padding: 112px 48px; }
  .ap-sec__inner { column-gap: 80px; row-gap: 24px; }
  .ap-sec__h2 { font-size: clamp(48px, 4.5vw, 64px); }
  .ap-sec__body p { font-size: 18px; }

  .ap-funnel__l { font-size: 26px; }

  .ap-stats { margin-top: 48px; }
  .ap-stats__cell { padding: 48px 32px; }
  .ap-stats__n { font-size: clamp(88px, 9vw, 128px); }

  .ap-closing { padding: 128px 48px; }
  .ap-pull { font-size: clamp(56px, 5vw, 76px); padding: 56px 0; }

  .ap-partner { padding: 112px 48px; }
  .ap-partner__logo { height: 196px; }

  .ap-cta { padding: 80px 48px 128px; }
  .ap-btn { padding: 22px 32px; font-size: 15px; }
  .ap-btn__arrow { font-size: 24px; }
}

/* Focus rings + reduced motion */
.page-about a:focus-visible, .page-about button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .page-about *, .page-about *::before, .page-about *::after { transition-duration: 0ms !important; animation-duration: 0ms !important; scroll-behavior: auto; }
}
