/* =============================================================================
   MISFITS OF MANUFACTURING — WEBSITE v2
   Ported from "Misfits Website v2.dc.html" into the repo's file structure.
   Fonts are self-hosted (see fonts.css) — no Google Fonts. No inline styles
   anywhere (classes only) so the strict CSP (default-src 'self') holds.
   [v2] markers below trace each design decision back to the comp.
   ============================================================================= */
:root{
  --accent:#ff1493; --cc:#ffed00; --paper:#f1ece1; --ink:#16150f;
  --ink-hero:#14140f; --ink-deep:#0f0e0a; --line-dark:#3a382c; --line-soft:#4a473a;
  --mute-1:#cbc5b2; --mute-2:#b5af9c; --mute-3:#8a8472; --mute-4:#6f6a59;
  --maxw:1320px; --pad:clamp(20px,5vw,64px);
  --ff-display:'Anton',Impact,'Arial Narrow Bold',sans-serif;
  --ff-mono:'Space Mono',ui-monospace,'Courier New',monospace;
  --ff-body:var(--ff-mono); /* [v2.10] body prose stays Space Mono (preferred) */
  /* unified scale */
  --ls-eyebrow:0.3em; --ls-kicker:0.14em; --ls-label:0.12em;
  --lh-body:1.65; --lh-small:1.55; --measure:65ch;
  --space-block:clamp(34px,5vw,52px);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{ background:var(--ink-hero); color:var(--paper); font-family:var(--ff-mono); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.mom-site img{ max-width:100%; display:block; }
.mom-site a{ text-decoration:none; }
.mom-site a:not(.btn):not(.ticket__link){ color:inherit; } /* [fix] plain links inherit; buttons keep their own color (was clobbering button text -> invisible) */
.mom-site :focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }
/* [v2] anchored sections clear the sticky nav when jumped to */
#intro,#program,#behind,#where,#register,#tickets,#footer{ scroll-margin-top:84px; }
.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; }
.shell{ max-width:var(--maxw); margin:0 auto; }

.wordmark{ font-family:var(--ff-display); font-weight:400; line-height:0.82; color:var(--paper); text-shadow:0.045em 0.055em 0 var(--accent), 0 0.012em 0.3em rgba(0,0,0,0.5); } /* [v2.9] single solid pink offset + soft dark halo */
.logo{ display:inline-flex; align-items:baseline; font-family:var(--ff-display); line-height:0.8; color:var(--paper); text-shadow:0.06em 0.06em 0 var(--accent); letter-spacing:0.01em; }

.site-nav{ position:sticky; top:0; z-index:50; background:rgba(20,20,15,0.82); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line-dark); }
.site-nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px var(--pad); }
.site-nav .logo{ font-size:30px; }
.nav-links{ display:flex; align-items:center; gap:clamp(18px,2.4vw,34px); list-style:none; margin:0; padding:0; font-size:13px; letter-spacing:var(--ls-label); color:var(--mute-1); }
.nav-links a:hover{ color:var(--paper); }
.btn{ display:inline-block; font-family:var(--ff-mono); font-weight:700; letter-spacing:0.04em; border-radius:3px; cursor:pointer; border:0; transition:transform .12s ease, background .15s ease, color .15s ease; }
.btn:active{ transform:translateY(1px); }
.btn--accent{ background:var(--accent); color:var(--ink-hero); padding:11px 22px; }
.btn--accent:hover{ background:#ff47a8; }
.btn--invert{ background:var(--ink-hero); color:var(--paper); font-family:var(--ff-display); font-weight:400; font-size:20px; letter-spacing:0.02em; padding:18px 40px; border-radius:3px; } /* [v2] now used by CTA */
.btn--invert:hover{ background:#000; }
.nav-toggle{ display:none; background:none; border:1px solid var(--line-soft); border-radius:3px; color:var(--paper); width:44px; height:40px; font-size:18px; cursor:pointer; }

.hero{ position:relative; background:var(--ink-hero); overflow:hidden; padding:clamp(48px,8vw,96px) 0 clamp(84px,10vw,132px); }
.grid-bg::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:0.5; background-image:linear-gradient(rgba(180,170,140,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(180,170,140,0.05) 1px,transparent 1px); background-size:48px 48px; } /* [v2] reusable grid texture */
.hero__inner{ position:relative; padding:0 var(--pad); max-width:1560px; margin:0 auto; } /* [v2.5] hero runs wider than the 1320 content grid */
.eyebrow{ font-size:clamp(11px,1.3vw,14px); letter-spacing:var(--ls-eyebrow); color:var(--accent); margin:0 0 clamp(16px,3vw,26px); }
.hero__wordmark{ font-size:clamp(2.5rem,11vw,118px); white-space:nowrap; margin:0; display:flex; flex-direction:column; align-items:flex-start; }
.hero__wordmark .wm-1{ font-size:0.8em; }   /* [v2.7] MISFITS OF smaller */
.hero__wordmark .wm-2{ font-size:1em; }      /* [v2.7] MANUFACTURING dominant */
.hero__foot{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:28px; margin-top:clamp(28px,4vw,46px); }
.hero__tagline{ font-family:var(--ff-display); font-size:clamp(1.8rem,3.4vw,44px); line-height:0.92; margin:0; }
.hero__date{ font-family:var(--ff-mono); font-size:clamp(12px,1.3vw,15px); letter-spacing:var(--ls-label); color:var(--mute-1); margin:16px 0 0; } /* [v2.6] date echoed under the tagline */
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; }
.btn--lg{ background:var(--accent); color:var(--ink-hero); font-family:var(--ff-display); font-size:20px; padding:16px 30px; border-radius:3px; }
.btn--lg:hover{ background:#ff47a8; }
.btn--ghost{ border:1px solid var(--line-soft); color:var(--paper); font-family:var(--ff-display); font-size:20px; letter-spacing:0.02em; padding:16px 30px; border-radius:3px; } /* uses APPLY TO SPEAK (.btn--invert) as template: Anton 20px, paper text, 0.02em — kept as outline so it doesn't vanish on the dark hero */
.btn--ghost:hover{ border-color:var(--accent); color:var(--paper); }

.ticker{ background:var(--accent); color:var(--ink-hero); padding:14px 0; overflow:hidden; white-space:nowrap; }
.ticker__track{ display:inline-flex; align-items:center; font-family:var(--ff-display); font-size:22px; letter-spacing:0.04em; animation:ticker-scroll 28s linear infinite; will-change:transform; }
.ticker__group{ display:inline-block; }
.ticker__group > span{ padding:0 28px; }
@keyframes ticker-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.ticker:hover .ticker__track{ animation-play-state:paused; }

.intro{ background:var(--paper); color:var(--ink); padding:clamp(48px,8vw,74px) var(--pad) clamp(80px,11vw,120px); }
.intro__grid{ display:flex; flex-wrap:wrap; gap:clamp(36px,5vw,64px); align-items:flex-start; }
.intro__lede{ flex:1 1 420px; max-width:60ch; font-family:var(--ff-body); font-size:clamp(17px,1.7vw,20px); line-height:1.65; margin:0; }
.intro__lede b{ color:var(--ink); font-weight:700; }
/* [v2.1] intro lede moved into WHEN — stats now a horizontal 3-up band */
.stats{ flex:1 1 100%; display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid var(--ink); }
.stats__row{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:22px 28px; border-right:1px solid rgba(22,21,15,0.2); }
.stats__row:first-child{ padding-left:0; }
.stats__row:last-child{ border-right:0; }
.stats__num{ font-family:var(--ff-display); font-size:clamp(36px,4vw,46px); color:var(--accent); line-height:1; }
.stats__label{ font-size:12px; letter-spacing:var(--ls-label); }

.program{ position:relative; background:var(--ink); color:var(--paper); padding:clamp(52px,8vw,70px) var(--pad) clamp(60px,9vw,80px); overflow:hidden; }
.program__head{ position:relative; display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--line-dark); padding-bottom:16px; margin-bottom:36px; }
.program__title{ font-family:var(--ff-display); font-size:clamp(28px,4vw,40px); margin:0; }
.program__kicker{ font-size:13px; letter-spacing:var(--ls-kicker); color:var(--accent); }
.program__grid{ position:relative; display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.card{ border:2px solid var(--line-soft); padding:clamp(24px,3vw,32px); display:flex; flex-direction:column; gap:12px; } /* [v2] 2px to match day-cards */
.card--feature{ border-color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); }
.card__top{ display:flex; justify-content:space-between; align-items:flex-start; }
.card__num{ font-family:var(--ff-display); font-size:clamp(40px,5vw,54px); color:var(--accent); line-height:0.8; }
.card__day{ font-size:11px; letter-spacing:var(--ls-label); color:var(--mute-3); }
.card--feature .card__day{ color:var(--accent); }
.card__name{ font-family:var(--ff-display); font-size:clamp(22px,2.6vw,28px); }
.card__desc{ font-family:var(--ff-body); font-size:14px; line-height:1.6; color:var(--mute-2); margin:0; } /* [v2] body face */

/* ===== Agenda (timeline) — replaces the program section (Agenda Website B) ===== */
.agenda{ background:var(--paper); color:var(--ink); padding:0 var(--pad); margin:var(--space-block) 0; }
.agenda__inner{ } /* uses .shell */
.agenda__head{ display:flex; flex-wrap:wrap; gap:12px; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:16px; margin-bottom:30px; }
.agenda__title{ font-family:var(--ff-display); font-size:clamp(28px,4vw,40px); margin:0; }
.agenda__kicker{ font-size:13px; letter-spacing:var(--ls-kicker); color:var(--accent); }
.agenda__day{ display:flex; flex-wrap:wrap; align-items:baseline; gap:16px; background:var(--ink); color:var(--paper); padding:12px 20px; margin:0 0 6px; }
.agenda__day--2{ margin-top:26px; }
.agenda__day-name{ font-family:var(--ff-display); font-size:clamp(18px,2.4vw,22px); }
.agenda__day-date{ font-family:var(--ff-mono); font-size:12px; letter-spacing:var(--ls-kicker); color:var(--accent); }
.agenda__row{ display:flex; gap:clamp(16px,3vw,28px); align-items:baseline; padding:14px 0; border-bottom:1px solid rgba(20,20,18,0.16); }
.agenda__time{ flex:none; width:clamp(74px,12vw,128px); font-family:var(--ff-display); font-size:clamp(26px,3.4vw,34px); color:var(--accent); line-height:0.8; }
.agenda__time--muted{ color:#9a948a; font-size:clamp(18px,2.4vw,22px); }
.agenda__row--break{ padding:10px 0; }
.agenda__break{ font-family:var(--ff-mono); font-size:12px; letter-spacing:var(--ls-kicker); color:#9a948a; }
.agenda__item-title{ font-family:var(--ff-display); font-size:clamp(18px,2.2vw,21px); }
.agenda__item-desc{ font-family:var(--ff-body); font-size:12.5px; line-height:var(--lh-small); color:#2c2a20; margin:4px 0 0; max-width:var(--measure); }
/* --- Day-1 block programme --- */
.agenda__day-sub{ font-family:var(--ff-mono); font-size:12px; letter-spacing:var(--ls-kicker); color:#6b665a; margin:10px 0 2px; }
.agenda__block{ margin-top:24px; }
.agenda__block-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 16px; border-top:2px solid var(--ink); padding-top:12px; margin-bottom:2px; }
.agenda__block-title{ font-family:var(--ff-display); font-size:clamp(18px,2.6vw,24px); }
.agenda__block-no{ color:var(--accent); margin-right:12px; }
.agenda__block-time{ font-family:var(--ff-mono); font-size:12px; letter-spacing:var(--ls-kicker); color:#6b665a; }
.agenda__block-desc{ font-family:var(--ff-body); font-size:12.5px; line-height:var(--lh-small); color:#2c2a20; margin:2px 0; max-width:var(--measure); }
.agenda__row--talk{ padding:10px 0; }
.agenda__row--talk .agenda__time{ font-size:clamp(17px,2vw,21px); }
.agenda__row--talk .agenda__item-title{ font-size:clamp(15px,1.9vw,18px); }
.agenda__note{ font-family:var(--ff-mono); font-size:11.5px; letter-spacing:0.04em; color:#9a948a; margin:10px 0 0; }
.agenda__tag{ display:inline-block; background:var(--accent); color:var(--paper); font-family:var(--ff-mono); font-size:10px; letter-spacing:var(--ls-kicker); padding:3px 8px; border-radius:2px; vertical-align:middle; margin-right:10px; }
.agenda__org{ color:#6b665a; font-family:var(--ff-mono); font-size:12px; letter-spacing:var(--ls-kicker); }

/* ===================== GETTING THERE ===================== */
.gt{ background:var(--paper); color:var(--ink); padding:0 var(--pad); margin:var(--space-block) 0; }
.gt__head{ display:flex; flex-wrap:wrap; gap:14px; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:10px; margin-bottom:18px; }
.gt__title{ font-family:var(--ff-display); font-weight:400; text-transform:uppercase; font-size:clamp(22px,3vw,30px); line-height:1; margin:0; }
.gt__kicker{ font-size:11px; letter-spacing:var(--ls-kicker); color:var(--accent); }
.gt__venue{ display:flex; align-items:center; gap:clamp(14px,2vw,20px); background:var(--ink); color:var(--paper); padding:clamp(14px,2vw,18px) clamp(16px,2.4vw,22px); }
.gt__venue-badge{ flex:none; width:52px; height:52px; background:var(--accent); color:var(--paper); border:2px solid var(--paper); display:grid; place-items:center; font-family:var(--ff-display); font-size:30px; line-height:1; box-shadow:4px 5px 0 rgba(0,0,0,0.35); }
.gt__venue-name{ font-family:var(--ff-display); font-size:clamp(17px,2.4vw,22px); margin:0; }
.gt__venue-addr{ font-family:var(--ff-mono); font-size:12.5px; letter-spacing:0.03em; color:#cbc7ba; margin:4px 0 0; }
.gt__map{ display:block; width:100%; height:auto; margin:22px 0 6px; border:2px solid var(--ink); }
.gt__map-cap{ font-family:var(--ff-mono); font-size:11.5px; letter-spacing:0.06em; color:var(--accent); margin:0 0 30px; }
.gt__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,34px); }
.gt__block{ border-top:2px solid var(--ink); padding-top:14px; }
.gt__block-title{ font-family:var(--ff-display); font-size:clamp(18px,2.2vw,22px); margin:0 0 8px; }
.gt__n{ color:var(--accent); margin-right:9px; }
.gt__p{ font-family:var(--ff-body); font-size:12.5px; line-height:var(--lh-body); margin:0 0 9px; }
.gt__p:last-child{ margin-bottom:0; }
.gt__pink{ color:var(--accent); }
.gt__beds{ margin-top:clamp(30px,4vw,46px); border-top:2px solid var(--ink); padding-top:16px; }
.gt__beds-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 16px; margin-bottom:14px; }
.gt__beds-title{ font-family:var(--ff-display); font-size:clamp(18px,2.2vw,22px); margin:0; }
.gt__beds-note{ font-family:var(--ff-mono); font-size:11.5px; letter-spacing:0.04em; color:#6b665a; }
.gt__beds-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(20px,3vw,40px); }
.gt__bed{ display:flex; gap:12px; align-items:baseline; padding:11px 0; border-bottom:1px solid rgba(20,20,18,0.16); }
.gt__bed-mark{ color:var(--accent); font-family:var(--ff-display); font-size:15px; line-height:1; flex:none; }
.gt__bed-name{ font-family:var(--ff-display); font-size:15.5px; }
.gt__bed-addr{ font-family:var(--ff-mono); font-size:11.5px; color:#6b665a; margin-top:2px; }
@media (max-width:820px){ .gt__grid{ grid-template-columns:1fr; } .gt__beds-list{ grid-template-columns:1fr; } }

.cta{ background:var(--accent); color:var(--ink-hero); padding:clamp(44px,7vw,64px) var(--pad); }
.cta__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:32px; }
.cta__title{ font-family:var(--ff-display); font-size:clamp(40px,6vw,64px); line-height:0.92; margin:0; } /* matched to .hero__tagline spacing (was 0.86, too tight for 3 lines) */
.cta__aside{ text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:0; }
.cta__date{ font-family:var(--ff-display); font-size:clamp(20px,2.4vw,28px); line-height:0.95; letter-spacing:0.01em; margin:0 0 8px; } /* [v2.2] clearer event date in the pink block */
.cta__note{ font-size:14px; letter-spacing:var(--ls-label); margin:0 0 18px; }

.ticket{ background:var(--cc); color:#141414; border-top:clamp(40px,5vw,56px) solid var(--ink-hero); padding:clamp(44px,7vw,72px) var(--pad); }
.ticket__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:32px; }
.ticket__brand{ display:flex; align-items:center; gap:clamp(16px,2.4vw,24px); }
.ticket__logo{ height:clamp(64px,9vw,90px); width:auto; flex:none; }
.ticket__eyebrow{ font-size:11px; letter-spacing:var(--ls-label); margin:0 0 5px; }
.ticket__title{ font-family:var(--ff-display); font-size:clamp(36px,6vw,58px); line-height:0.9; margin:0; }
.ticket__aside{ text-align:right; }
.ticket__link{ display:inline-flex; align-items:center; gap:10px; background:#141414; color:var(--cc); font-family:var(--ff-display); font-size:clamp(19px,2.6vw,27px); padding:18px 36px; border-radius:3px; white-space:nowrap; transition:transform .12s ease, background .15s ease; }
.ticket__link:hover{ background:#000; }
.ticket__link:active{ transform:translateY(1px); }
.ticket__link-text{ line-height:1; }
.ticket__arrow{ line-height:1; display:inline-block; transform:translateY(-0.13em); } /* [fix] lift arrow onto the caps' optical middle */
.ticket__sub{ font-family:var(--ff-body); font-size:12.5px; margin:12px 0 0; }

.site-footer{ background:var(--ink-deep); color:var(--mute-1); padding:clamp(36px,6vw,46px) var(--pad); }
.site-footer__inner{ display:flex; flex-wrap:wrap; gap:28px; justify-content:space-between; align-items:flex-end; }
.site-footer .logo{ font-size:30px; }
.footer__meta{ font-size:12px; line-height:1.9; letter-spacing:var(--ls-label); margin:14px 0 0; color:var(--mute-4); }
.footer__right{ font-size:12px; letter-spacing:var(--ls-label); text-align:right; line-height:1.9; color:var(--mute-4); }
.footer__right .accent{ color:var(--accent); }
.footer__credits{ margin-top:8px; opacity:0.7; }
.footer__legal{ display:flex; flex-wrap:wrap; gap:10px; margin-top:clamp(20px,3vw,32px); font-size:12px; letter-spacing:var(--ls-label); color:var(--mute-4); }
.footer__legal a:hover{ color:var(--accent); }

@media (max-width:860px){
  .nav-toggle{ display:inline-block; }
  .nav-links{ position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start; gap:0; background:var(--ink-hero); border-bottom:0; padding:0 var(--pad); max-height:0; overflow:hidden; transition:max-height .28s ease; } /* [fix] collapsed = truly 0 height: vertical padding/border live only in the open state (box-sizing:border-box wouldn't shrink them under max-height:0) */
  .nav-links li{ width:100%; }
  .nav-links a, .nav-links .btn--accent{ display:block; width:100%; padding:14px 0; }
  .nav-links .btn--accent{ margin-top:8px; text-align:center; padding:14px; }
  .site-nav[data-open="true"] .nav-links{ max-height:360px; padding:8px var(--pad) 20px; border-bottom:1px solid var(--line-dark); }
}
@media (max-width:680px){
  .program__grid{ grid-template-columns:1fr; }
  .hero__foot{ align-items:stretch; }
  .hero__actions{ width:100%; }
  .btn--lg, .btn--ghost{ flex:1 1 auto; text-align:center; }
  .cta__inner{ flex-direction:column; align-items:flex-start; }
  .cta__aside{ text-align:left; align-items:flex-start; }
  .ticket__aside{ text-align:left; }
  .stats{ grid-template-columns:1fr; }
  .stats__row{ border-right:0; border-bottom:1px solid rgba(22,21,15,0.2); padding:16px 0; }
  .stats__row:first-child{ padding-left:0; }
  .stats__row:last-child{ border-bottom:0; }
  .footer__right{ text-align:left; }
  .site-footer__inner{ align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .ticker__track{ animation:none; transform:translateX(0); }
}

/* ===== Announcement (.mom) ===== */
.mom{ --mom-accent:var(--accent); --mom-ink:var(--ink); --mom-paper:var(--paper); --mom-measure:var(--maxw); width:100%; margin:0 auto; background:var(--mom-paper); color:var(--mom-ink); font-family:var(--ff-mono); }
.mom__body{ max-width:calc(var(--maxw) + var(--pad) * 2); margin:0 auto; padding:clamp(32px,5vw,56px) var(--pad) clamp(40px,6vw,72px); } /* [v2.1] content box = 1320, edges match the .shell sections */
.mom__body--tight{ padding-top:0; }
.mom__body--flush-b{ padding-bottom:0; }
.mom__lead{ max-width:var(--measure); font-family:var(--ff-body); font-size:clamp(16px,1.7vw,19px); line-height:var(--lh-body); margin:0 0 var(--space-block); text-wrap:pretty; } /* [v2.3] ragged + balanced line endings */
.mom__lead .mom__home{ color:var(--mom-accent); font-weight:700; }
.mom__h{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; border-bottom:2px solid var(--mom-ink); padding-bottom:10px; margin:0 0 18px; }
.mom__h h2{ font-family:var(--ff-display); font-weight:400; text-transform:uppercase; font-size:clamp(22px,3vw,30px); line-height:1; margin:0; }
.mom__h .mom__kicker{ font-size:11px; letter-spacing:var(--ls-kicker); color:var(--mom-accent); }
.mom__p{ max-width:var(--measure); font-family:var(--ff-body); font-size:clamp(14px,1.4vw,16px); line-height:var(--lh-body); color:#2c2a20; margin:0 0 16px; text-wrap:pretty; } /* [v2.3] ragged + balanced line endings */
.mom__p:last-child{ margin-bottom:0; }
.mom__line{ font-family:var(--ff-body); font-weight:700; font-size:clamp(16px,1.8vw,21px); line-height:1.3; color:var(--mom-ink); margin:18px 0 0; text-wrap:balance; } /* [v2.4] closing line stands on its own */
.mom__block{ margin-bottom:var(--space-block); }
.mom__pull{ background:var(--mom-accent); color:var(--mom-ink); font-family:var(--ff-display); text-transform:uppercase; font-size:clamp(18px,2.6vw,28px); line-height:1.05; letter-spacing:0.01em; padding:clamp(16px,2.2vw,22px) var(--pad); margin:var(--space-block) 0; display:flex; align-items:center; min-height:clamp(104px,11vw,132px); } /* uniform band height, content vertically centred */
.mom__pull-inner{ width:100%; max-width:var(--mom-measure); margin:0 auto; }
.mom__pull--cta .mom__pull-inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:clamp(16px,3vw,32px); }
.mom__pull-text{ margin:0; flex:1 1 16ch; }
.mom__days{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.mom__day{ border:2px solid var(--mom-ink); padding:20px 22px; }
.mom__day-tag{ font-size:11px; letter-spacing:var(--ls-label); color:var(--mom-accent); font-weight:700; }
.mom__day-title{ font-family:var(--ff-display); font-size:clamp(22px,2.6vw,26px); margin:6px 0 10px; text-transform:uppercase; }
.mom__day-text{ font-family:var(--ff-body); font-size:14px; line-height:var(--lh-small); color:#2c2a20; } /* [v2] body face */
.mom__tracks{ list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.mom__tracks li{ font-size:13px; }
.mom__tracks li::before{ content:"\203A"; color:var(--mom-accent); font-weight:700; margin-right:8px; }
.mom__people{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.mom__person{ display:flex; flex-direction:column; gap:12px; min-height:96px; }
.mom__person-name{ font-family:var(--ff-display); font-size:16px; text-transform:uppercase; }
.mom__person-logos{ flex:1; display:flex; align-items:center; gap:20px; }
.mom__person-logos img{ object-fit:contain; object-position:left; max-width:100%; }
.mom__logo--herding{ height:40px; max-width:200px; }
.mom__logo--vektornode{ height:20px; max-width:210px; }
.mom__logo--skeno{ height:42px; max-width:150px; }
.mom__logo--scawo{ height:22px; max-width:150px; position:relative; top:8px; }
.mom__logo--raven{ height:64px; max-width:130px; }  /* kept from your sizing fix (v2 comp had 54) */
.mom__logo--timo{ height:30px; max-width:170px; }   /* kept from your sizing fix (v2 comp had 56, which renders oversized) */
.mom__logo--oth{ height:26px; max-width:150px; }
.mom__logo--cc{ height:46px; width:46px; }
@media (max-width:760px){ .mom__days{ grid-template-columns:1fr; } .mom__people{ grid-template-columns:1fr 1fr; } }
@media (max-width:460px){ .mom__people{ grid-template-columns:1fr; } }

/* =============================================================
   LEGAL PAGES (Impressum / Datenschutz) — carried over from v1
   (v2 comp didn't include these; impressum.html / datenschutz.html need them)
   ============================================================= */
body.legal-page { background: var(--paper); color: var(--ink); }

.legal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px var(--pad);
  border-bottom: 2px solid var(--ink);
}
.legal-header .logo {
  font-size: 30px;
  color: var(--ink);
  text-shadow: 0.06em 0.06em 0 var(--accent);
}
.legal-header .back {
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--ink);
}
.legal-header .back:hover { color: var(--accent); }

.legal {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(32px, 6vw, 56px) var(--pad) 72px;
}
.legal h1 {
  font-family: var(--ff-display);
  font-size: clamp(34px, 7vw, 56px);
  line-height: 0.95;
  margin: 0 0 8px;
}
.legal h2 {
  font-family: var(--ff-display);
  font-size: clamp(20px, 3.4vw, 27px);
  margin: 40px 0 10px;
}
.legal h3 {
  font-family: var(--ff-mono);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  margin: 24px 0 6px;
}
.legal p,
.legal li { font-size: 15px; line-height: 1.75; }
.legal ul { padding-left: 1.1em; }
.legal a { color: var(--accent); text-decoration: underline; }
.legal address { font-style: normal; line-height: 1.85; }
.legal .lede {
  font-size: 13px;
  letter-spacing: 0.03em;
  color: #5a574a;
  margin: 0 0 30px;
}
.legal__updated {
  margin-top: 44px;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: #6b6757;
}

.legal-footer {
  border-top: 1px solid rgba(22, 21, 15, 0.2);
  padding: 24px var(--pad);
  text-align: center;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #6b6757;
}
.legal-footer a:hover { color: var(--accent); }
