/* Parma Marathon 2027 · shared interior visual system. Content remains untouched. */
:root { --pm-red:#d00020; --pm-black:#070707; --pm-ink:#111; --pm-paper:#f1efe9; }

/* Shared chrome */
body:not(.home-body) .site-head { background:rgba(5,5,5,.96); }
body:not(.home-body) .site-footer { padding:42px var(--pad) 22px; }
body:not(.home-body) .site-footer-grid { grid-template-columns:120px repeat(3,minmax(0,1fr)); gap:clamp(24px,3vw,48px); }
body:not(.home-body) .site-footer .site-footer-brand img { width:86px; }
body:not(.home-body) .site-footer .site-footer-title { margin-bottom:10px; }
body:not(.home-body) .site-footer-bottom { margin-top:32px; padding-top:16px; }

/* Main distance pages: cinematic hero, compact information, alternating story rhythm. */
.marathon-page { background:var(--pm-black); }
.marathon-page .marathon-hero { min-height:680px; }
.marathon-page .marathon-hero::before {
  content:""; position:absolute; z-index:1; inset:0 0 0 64%;
  background:linear-gradient(112deg,transparent 0 35%,rgba(208,0,32,.45) 35.2% 54%,transparent 54.2%);
  pointer-events:none;
}
.marathon-page .marathon-hero h1 { font-style:italic; text-shadow:0 12px 42px rgba(0,0,0,.5); }
.marathon-page .marathon-info {
  max-width:none; padding:34px var(--pad) 54px; gap:12px;
  background:linear-gradient(120deg,rgba(208,0,32,.12),transparent 38%),#090909;
  background-clip:border-box;
}
.marathon-page .marathon-info-card {
  min-height:285px; padding:30px; color:#fff; background:#141414;
  border-top:4px solid var(--pm-red); box-shadow:0 18px 42px rgba(0,0,0,.22);
}
.marathon-page .marathon-info-card p,.marathon-page .marathon-info-card li { color:#bbb; }
.marathon-page .marathon-info-card>a:not(.marathon-button) { color:#fff; border-color:#777; }
/* Compact registration tiers, without turning the page into a card wall. */
.entry-fees { padding:clamp(52px,5vw,74px) var(--pad); background:#f2f0eb; color:#0a0a0a; border-top:7px solid var(--pm-red); }
.fees-head { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr); gap:12px clamp(32px,6vw,92px); align-items:end; margin-bottom:28px; }
.fees-head .marathon-kicker { grid-column:1/-1; color:var(--pm-red); margin:0; }
.fees-head h2 { font:italic 900 clamp(48px,5vw,76px)/.82 'Barlow Condensed',Impact,sans-serif; text-transform:uppercase; letter-spacing:-.035em; }
.fees-head h2 span { color:var(--pm-red); }
.fees-head>p:last-child { max-width:520px; margin:0; color:#555; line-height:1.55; }
.fees-table-wrap { overflow-x:auto; border:1px solid #d6d2ca; background:#fff; scrollbar-color:var(--pm-red) #e5e1da; }
.fees-company-note { margin:12px 0 0; color:#666; font-size:12px; line-height:1.5; }
.fees-company-note a { color:inherit; font-weight:700; overflow-wrap:anywhere; text-underline-offset:2px; }
.fees-table { width:max-content; min-width:100%; border-collapse:collapse; table-layout:auto; }
.fees-table th,.fees-table td { min-width:122px; padding:13px 14px; border-right:1px solid #ddd9d2; border-bottom:1px solid #ddd9d2; text-align:center; white-space:nowrap; }
.fees-table tr:last-child>* { border-bottom:0; }
.fees-table tr>*:last-child { border-right:0; }
.fees-table thead th { color:#666; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.fees-table th:first-child { width:150px; min-width:150px; text-align:left; color:#111; font-weight:800; }
.fees-table tbody td { font:800 22px/1 'Barlow Condensed',Impact,sans-serif; }
.fees-table .is-active { background:#d00020; color:#fff; }
.fees-table .is-expired { opacity:.48; }
.fees-table .is-future { opacity:1; }
.fees-table thead .is-active span { display:block; width:max-content; margin:0 auto 5px; padding:4px 7px; background:#fff; color:#d00020; font-size:9px; line-height:1; }
.fees-table tbody .is-active strong { font-size:26px; }
.fees-note { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-top:16px; }
.fees-note p { margin:0; color:#666; font-size:12px; line-height:1.45; }
.fees-note a { flex:none; color:#111; font-size:12px; font-weight:800; text-transform:uppercase; text-decoration:none; border-bottom:2px solid var(--pm-red); padding-bottom:4px; }
.marathon-page .route-section { max-width:none; padding-block:clamp(68px,7vw,98px); background:var(--pm-paper); }
.marathon-page .route-section h2,.marathon-page .marathon-story h2 { font-style:italic; }
.marathon-page .route-map { border:0; box-shadow:0 22px 54px rgba(0,0,0,.14); }
.marathon-page .marathon-story { border-top:7px solid var(--pm-red); }
.marathon-page .site-footer {
  position:relative;
  padding-top:56px;
  background:#030303;
  box-shadow:inset 0 22px 42px rgba(0,0,0,.34);
}
.marathon-page .site-footer::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:min(58vw,820px);
  height:8px;
  background:var(--pm-red);
  clip-path:polygon(0 0,100% 0,96% 100%,0 100%);
}

/* Information subpages: strong title, clear editorial reading, cards only for real data. */
.detail-page { background:var(--pm-paper); }
.detail-page .detail-hero {
  position:relative; overflow:hidden; min-height:500px;
  background:radial-gradient(circle at 85% 20%,rgba(208,0,32,.24),transparent 28%),#080808;
}
.detail-page .detail-hero::after {
  content:""; position:absolute; right:-8%; bottom:-22%; width:44%; height:120%;
  background:rgba(208,0,32,.22); transform:skewX(-18deg); pointer-events:none;
}
.detail-page .detail-hero>div { position:relative; z-index:1; }
.detail-page .detail-hero h1 { font-style:italic; }
.detail-page .detail-nav { position:sticky; top:0; z-index:10; background:#0d0d0d; border:0; }
.detail-page .detail-nav a { color:#fff; border-bottom-color:var(--pm-red); }
.detail-page .detail-content { padding-block:clamp(54px,6vw,84px); }
.detail-page .detail-section { padding-block:clamp(42px,5vw,68px); }
.detail-page .detail-section h2 { font-style:italic; }
.detail-page .detail-prices,.detail-page .detail-facts,.detail-page .detail-services { gap:8px; background:transparent; }
.detail-page .detail-prices div,.detail-page .detail-facts div,.detail-page .detail-services li {
  border-top:3px solid var(--pm-red); box-shadow:0 8px 24px rgba(0,0,0,.045);
}
.detail-page .detail-callout { background:#e4e0d8; }

/* Programme */
.program-body { background:var(--pm-black); }
.program-body .program-page {
  position:relative; overflow:hidden; padding-block:clamp(64px,7vw,100px);
  background:linear-gradient(120deg,rgba(208,0,32,.18),transparent 36%);
}
.program-body .program-page::before {
  content:"16 — 17"; position:absolute; right:-2vw; top:9vw; color:rgba(255,255,255,.025);
  font:italic 900 clamp(150px,25vw,380px)/.8 'Barlow Condensed',Impact,sans-serif;
}
.program-body .program-hero,.program-body .program-days,.program-body .program-note { position:relative; z-index:1; }
.program-body .program-hero { margin-bottom:48px; }
.program-body .program-hero h1,.program-body .program-day h2 { font-style:italic; }
.program-body .program-days { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.program-body .program-day { min-height:300px; border-top-width:4px; background:rgba(255,255,255,.045); }

/* Kids: preserve its playful photo identity while aligning type and red geometry. */
.kids-page .kids-hero { border-bottom:7px solid var(--pm-red); }
.kids-page.home-body .site-head { height:112px; padding:18px var(--pad); background:rgba(5,5,5,.96); border-bottom:1px solid rgba(255,255,255,.2); }
.kids-page.home-body .site-head .brand { position:relative; width:123px; height:96px; overflow:hidden; align-self:auto; }
.kids-page.home-body .site-head .brand .header-mark { position:absolute; left:-22px; top:-38px; width:169px!important; height:169px!important; max-height:none; object-fit:cover; transform:none; }
@media(min-width:851px) { .kids-page.home-body .kids-hero { padding-top:150px; } }
.kids-page .kids-content h1 { font-style:italic; }
.kids-page .kids-cards { gap:12px; }
.kids-page .kids-cards article { min-height:210px; border:0; border-top:4px solid var(--pm-red); background:rgba(20,20,20,.94); }

/* Arrival: urban route page, no decorative numbering. */
.arrival-page .arrival-hero { min-height:620px; border-bottom:7px solid var(--pm-red); }
.arrival-page .arrival-hero h1,.arrival-page .arrival-intro h2,.arrival-page .arrival-parking h2 { font-style:italic; }
.arrival-page .arrival-intro { padding-block:clamp(68px,7vw,96px) 48px; }
.arrival-page .arrival-methods { padding-bottom:clamp(68px,7vw,96px); }
.arrival-page .arrival-methods article { min-height:440px; border:0; border-top:4px solid var(--pm-red); box-shadow:0 16px 36px rgba(0,0,0,.06); }
.arrival-page .arrival-parking { padding-block:clamp(68px,7vw,96px); }
.arrival-page .arrival-parking article { border-top:4px solid var(--pm-red); }

/* Legal pages remain highly readable, with the same brand rhythm. */
.privacy-page .privacy-hero { position:relative; overflow:hidden; border-bottom:7px solid var(--pm-red); }
.privacy-page .privacy-hero::after {
  content:""; position:absolute; right:-5%; top:0; width:38%; height:100%;
  background:linear-gradient(120deg,transparent 0 38%,rgba(208,0,32,.25) 38.2% 55%,transparent 55.2%);
}
.privacy-page .privacy-hero h1 { position:relative; z-index:1; font-style:italic; }
.privacy-page .privacy-layout { padding-block:clamp(52px,6vw,82px); }
.privacy-page .privacy-section { padding-bottom:clamp(44px,5vw,66px); }
.privacy-page .privacy-section + .privacy-section { padding-top:clamp(44px,5vw,66px); }

@media(max-width:900px) {
  .program-body .program-days { grid-template-columns:1fr; }
  .program-body .program-day { min-height:230px; }
}

@media(max-width:767px) {
  body:not(.home-body) .site-footer { padding:34px 18px 18px; }
  body:not(.home-body) .site-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
  body:not(.home-body) .site-footer .site-footer-brand { grid-column:auto; }
  body:not(.home-body) .site-footer .site-footer-brand img { width:76px; }
  body:not(.home-body) .site-footer-bottom { display:grid; grid-template-columns:1fr auto; gap:14px; margin-top:26px; }
  body:not(.home-body) .site-footer-bottom>p,body:not(.home-body) .site-footer-legal { grid-column:1; }
  body:not(.home-body) .site-footer .to-top { grid-column:2; grid-row:1 / span 3; align-self:end; }
  .marathon-page .marathon-hero::before { inset:0 -20% 0 68%; }
  .marathon-page .marathon-info { padding:18px 18px 48px; }
  .entry-fees { padding:44px 18px; }
  .fees-head { grid-template-columns:1fr; margin-bottom:22px; }
  .fees-head .marathon-kicker { grid-column:auto; }
  .fees-table { min-width:100%; }
  .fees-note { display:block; }
  .fees-note a { display:inline-block; margin-top:14px; }
  .marathon-page .site-footer { padding-top:46px; }
  .marathon-page .site-footer::before { width:72vw; height:6px; }
  .detail-page .detail-hero { min-height:0; padding-block:112px 58px; }
  .detail-page .detail-nav { position:static; }
  .kids-page.home-body .site-head { height:88px; padding:18px 20px; }
  .kids-page.home-body .site-head .brand { width:90px; height:70px; }
  .kids-page.home-body .site-head .brand .header-mark { left:-16px; top:-28px; width:123px!important; height:123px!important; }
  .kids-page .kids-cards article { min-height:0; }
  .arrival-page .arrival-methods article { min-height:0; }
  .privacy-page .privacy-hero::after { width:55%; right:-20%; }
}
