/* =====================================================================
   HOTHESS Rally — veřejný vzhled
   Každý web má vlastní identitu (data-theme), společný je jen konstrukční jazyk:
   šikmé řezy (záklon vpřed jako na logu ČMPR), těžká úzká písma, plné barevné plochy.
   Barvy a písma dodává web přes proměnné (tabulka sites + cmThemeFonts):
     --c-accent hlavní  --cm-accent2 signální  --c-black inkoust  --paper podklad  --tint tmavší podklad
   Načítá se PO starém style.css: nahoře ho přebíjí, dole je vrstva pro staré stránky.
   ===================================================================== */

:root {
    --ink: var(--c-black);
    --blue: var(--c-accent);
    --hot: var(--cm-accent2);
    --line: color-mix(in srgb, var(--ink) 13%, var(--paper));
    --muted: color-mix(in srgb, var(--ink) 62%, var(--paper));
    --lean: -12deg;
    --c-accent-soft: color-mix(in srgb, var(--c-accent) 10%, var(--paper));
    --f-display: var(--fd);
    --f-body: var(--fb);
    --f-mono: var(--fb);
}

/* ---------- základ ---------- */
html body { background: var(--paper); background-image: none; color: var(--ink); font-family: var(--fb); font-size: 17px; line-height: 1.55; }
body::before { display: none; }
h1, h2, h3, h4, h5 { font-family: var(--fd); text-transform: none; letter-spacing: 0; color: var(--ink); line-height: 1.02; font-weight: 800; }
p, li { color: inherit; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--hot); }
:focus-visible { outline: 3px solid var(--hot); outline-offset: 3px; }
::selection { background: var(--hot); color: #fff; }
.muted, .text-muted { color: var(--muted) !important; }
.container { max-width: 1240px; }
[data-theme="roadbook"] h1, [data-theme="roadbook"] h2, [data-theme="roadbook"] h3 { font-style: italic; font-weight: 900; letter-spacing: -.005em; }
[data-theme="alpine"] h1, [data-theme="alpine"] h2, [data-theme="alpine"] h3 { font-weight: 700; letter-spacing: -.01em; }
[data-theme="slovacko"] h1, [data-theme="slovacko"] h2, [data-theme="slovacko"] h3 { font-weight: 800; font-stretch: 125%; letter-spacing: -.01em; line-height: 1.04; }

/* ---------- hlavička ---------- */
.cm-header { position: sticky; top: 0; z-index: 100; background: var(--paper); }
.cm-header .container { display: flex; align-items: center; gap: 28px; height: 76px; }
.cm-logo { display: flex; align-items: center; color: var(--ink); font-family: var(--fd); font-weight: 900; font-size: 1.5rem; }
.cm-logo img { height: 48px; width: auto; max-width: 200px; object-fit: contain; }
.cm-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.cm-nav a { position: relative; padding: 10px 14px; color: var(--ink); font-weight: 600; font-size: .98rem; }
.cm-nav a::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 3px; height: 4px; background: var(--hot); transform: scaleX(0) skewX(var(--lean)); transform-origin: left; transition: transform .2s; }
.cm-nav a:hover::after, .cm-nav a.active::after { transform: scaleX(1) skewX(var(--lean)); }
.cm-nav a:hover { color: var(--ink); }
.cm-nav .cm-cta { --b: var(--hot); margin-left: 12px; padding: 12px 24px; color: #fff; isolation: isolate; }
.cm-nav .cm-cta::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--b); transform: skewX(var(--lean)); transition: background .15s; }
.cm-nav .cm-cta::after { display: none; }
.cm-nav .cm-cta:hover { --b: var(--ink); color: #fff; }
.cm-burger { display: none; margin-left: auto; background: none; border: 0; padding: 8px; color: var(--ink); cursor: pointer; }
.cm-burger svg { width: 28px; height: 28px; display: block; }
@media (max-width: 1060px) {
    .cm-burger { display: block; }
    .cm-nav { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; align-items: stretch; background: var(--paper); padding: 8px 24px 24px; border-bottom: 4px solid var(--hot); }
    .cm-nav.open { display: flex; }
    .cm-nav a { padding: 15px 0; border-bottom: 1px solid var(--line); }
    .cm-nav a::after { display: none; }
    .cm-nav .cm-cta { margin: 16px 0 0; text-align: center; }
}

/* ---------- tlačítka: kosodélníky (kosí se jen pozadí, ne text) ---------- */
.btn, .cm-skew { --b: var(--ink); position: relative; isolation: isolate; display: inline-block; border: 0; border-radius: 0; background: none; color: #fff; font-family: var(--fb); font-size: 1rem; font-weight: 700; padding: 15px 32px; text-transform: none; letter-spacing: 0; box-shadow: none; cursor: pointer; transition: color .15s; }
.btn::before, .cm-skew::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--b); transform: skewX(var(--lean)); transition: background .15s; }
.btn:hover { --b: var(--hot); color: #fff; }
.btn--sm { padding: 10px 20px; font-size: .9rem; }
.btn--hot { --b: var(--hot); }
.btn--hot:hover { --b: var(--ink); }
.btn--outline, .btn--ghost { color: var(--ink); }
.btn--outline::before, .btn--ghost::before { background: transparent; box-shadow: inset 0 0 0 2px var(--ink); }
.btn--outline:hover, .btn--ghost:hover { color: #fff; }
.btn--outline:hover::before, .btn--ghost:hover::before { background: var(--ink); }
.btn--light { --b: #fff; color: var(--ink); }
.btn--light:hover { --b: var(--ink); color: #fff; }
.btn--danger { --b: #b3261e; }

/* ---------- sekce ---------- */
.cm-sec { padding: 96px 0 88px; position: relative; }
.cm-sec--tint { background: var(--tint); }
.cm-sec--blue { background: var(--blue); color: #fff; }
.cm-sec--blue h2, .cm-sec--blue p { color: #fff; }
.cm-sec--cut::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 64px; background: var(--paper); clip-path: polygon(0 0, 100% 0, 0 100%); }
.cm-sec--cut-r::before { clip-path: polygon(0 0, 100% 0, 100% 100%); }
.cm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
.cm-head h2 { font-size: clamp(2.6rem, 6vw, 4.8rem); margin: 0; }
.cm-head p { color: var(--muted); max-width: 52ch; margin: 12px 0 0; }
.cm-more { font-weight: 700; color: var(--ink); border-bottom: 3px solid var(--hot); padding-bottom: 2px; }
.cm-more:hover { color: var(--hot); }

/* ---------- patička ---------- */
.cm-footer { background: var(--ink); color: color-mix(in srgb, #fff 70%, var(--ink)); margin-top: 0; position: relative; overflow: hidden; }
.cm-footer::before { content: ''; display: block; height: 10px; background: linear-gradient(100deg, var(--blue) 0 55%, var(--hot) 55% 70%, #fff 70% 100%); }
.cm-footer .container { padding-top: 64px; padding-bottom: 32px; position: relative; z-index: 1; }
.cm-footer a { color: #fff; }
.cm-footer a:hover { color: var(--hot); }
.cm-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 56px; }
.cm-footer h4 { color: #fff; font-size: 1.3rem; margin-bottom: 14px; }
.cm-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.cm-footer__bottom { margin-top: 48px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.18); font-size: .88rem; display: flex; gap: 12px; justify-content: space-between; flex-wrap: wrap; }
.cm-footer__mark { font-family: var(--fd); font-weight: 900; font-style: italic; font-size: clamp(5rem, 19vw, 17rem); line-height: .78; white-space: nowrap; color: rgba(255,255,255,.055); margin: 30px 0 -1.6vw; user-select: none; }
.cm-demo-pill { position: relative; isolation: isolate; color: #fff; padding: 4px 16px; font-weight: 700; font-size: .78rem; display: inline-block; }
.cm-demo-pill::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--hot); transform: skewX(var(--lean)); }
@media (max-width: 800px) { .cm-footer__grid { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- HERO — společné ---------- */
.cm-hero { position: relative; color: #fff; overflow: hidden; background: var(--ink); isolation: isolate; }
.cm-hero__bg { position: absolute; inset: 0; z-index: -3; background-size: cover; background-position: center 30%; filter: grayscale(1) contrast(1.2) brightness(.85); transform: scale(1.06); animation: cm-settle 2.4s ease-out forwards; }
.cm-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--blue); mix-blend-mode: multiply; }
.cm-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(95deg, color-mix(in srgb, var(--ink) 94%, transparent) 0%, color-mix(in srgb, var(--ink) 58%, transparent) 52%, transparent 100%); }
.cm-hero--gen::before { mix-blend-mode: normal; background: radial-gradient(90% 130% at 88% 0%, var(--blue), var(--ink) 72%); }
.cm-hero__in { max-width: 1240px; margin: 0 auto; padding: 120px 24px 150px; position: relative; }
.cm-hero__title { font-family: var(--fd); font-weight: 900; line-height: .84; color: #fff; margin: 0 0 28px; font-size: clamp(3.4rem, 9.5vw, 8.4rem); }
.cm-hero__title .l { display: block; overflow: hidden; line-height: .95; padding: .3em 0 .14em; margin: -.3em 0 -.14em; }
.cm-hero__title .l > span { display: block; animation: cm-rise .85s cubic-bezier(.2,.8,.2,1) both; }
.cm-hero__title .l:nth-child(2) > span { animation-delay: .12s; }
.cm-hero__title .l:nth-child(3) > span { animation-delay: .24s; }
.cm-hero__lead { font-size: 1.25rem; color: rgba(255,255,255,.88); max-width: 46ch; margin: 0 0 36px; }
.cm-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.cm-hero .btn { --b: #fff; color: var(--ink); }
.cm-hero .btn:hover { --b: var(--hot); color: #fff; }
.cm-hero .btn--hot { --b: var(--hot); color: #fff; }
.cm-hero .btn--hot:hover { --b: #fff; color: var(--ink); }
.cm-hero .btn--outline { color: #fff; }
.cm-hero .btn--outline::before { background: transparent; box-shadow: inset 0 0 0 2px #fff; }
.cm-hero .btn--outline:hover { color: var(--ink); }
.cm-hero .btn--outline:hover::before { background: #fff; }
.cm-hero__edge { position: absolute; left: 0; right: 0; bottom: -1px; height: 74px; background: var(--paper); clip-path: polygon(0 100%, 100% 0, 100% 100%); z-index: 1; }

/* ---------- HERO — ČMPR: živý žebříček poháru ---------- */
.cm-hero--board .cm-hero__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(420px, .9fr); gap: 56px; align-items: center; }
.cm-hero--board .cm-hero__title { font-size: clamp(3.2rem, 8vw, 7.4rem); }
.cm-hero--board .cm-hero__title em { font-style: inherit; color: #fff; -webkit-text-stroke: 0; }
.cm-board { position: relative; isolation: isolate; padding: 30px 36px 24px 92px; background: color-mix(in srgb, var(--ink) 86%, transparent); backdrop-filter: blur(6px); clip-path: polygon(56px 0, 100% 0, 100% 100%, 0 100%); }
.cm-board::before { content: ''; position: absolute; inset: 0; background: var(--hot); clip-path: polygon(56px 0, 68px 0, 12px 100%, 0 100%); }
.cm-board h3 { color: #fff; font-size: 1.5rem; margin: 0 0 4px; }
.cm-board__sub { color: rgba(255,255,255,.65); font-size: .9rem; margin: 0 0 18px; }
.cm-board ol { list-style: none; margin: 0; padding: 0; }
.cm-board li { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px 12px; padding: 9px 0; }
.cm-board .p { font-family: var(--fd); font-style: italic; font-weight: 900; font-size: 1.8rem; line-height: 1; color: var(--hot); }
.cm-board .n { font-weight: 700; line-height: 1.15; }
.cm-board .n small { display: block; font-weight: 400; color: rgba(255,255,255,.6); font-size: .78rem; }
.cm-board .pts { font-family: var(--fd); font-weight: 800; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.cm-board .bar { grid-column: 2 / -1; height: 6px; background: rgba(255,255,255,.14); margin-top: -2px; }
.cm-board .bar i { display: block; height: 100%; width: calc(var(--w) * 1%); background: linear-gradient(90deg, #fff, var(--hot)); transform-origin: left; animation: cm-grow .9s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(.5s + var(--i) * .12s); }
.cm-board__foot { margin-top: 12px; font-size: .88rem; }
.cm-board__foot a { color: #fff; font-weight: 700; border-bottom: 3px solid var(--hot); }
@media (max-width: 960px) { .cm-hero--board .cm-hero__in { grid-template-columns: 1fr; gap: 44px; padding-bottom: 120px; } }

/* ---------- HERO — Králíky: profil hřebene ---------- */
.cm-hero--ridge .cm-hero__in { padding-top: 130px; padding-bottom: 210px; }
.cm-hero--ridge .cm-hero__title { font-style: normal; font-weight: 700; line-height: .9; }
.cm-hero--ridge .cm-place { display: block; font-family: var(--fd); font-weight: 700; font-style: italic; font-size: clamp(1.4rem, 3vw, 2.2rem); color: var(--cm-accent2); margin-bottom: 14px; }
.cm-ridge { position: absolute; left: 0; right: 0; bottom: -2px; width: 100%; height: 190px; z-index: 1; display: block; }
.cm-ridge .back { fill: color-mix(in srgb, var(--paper) 22%, transparent); }
.cm-ridge .mid { fill: color-mix(in srgb, var(--paper) 55%, transparent); }
.cm-ridge .front { fill: var(--paper); }
.cm-ridge .trace { fill: none; stroke: var(--hot); stroke-width: 4; stroke-dasharray: 2400; stroke-dashoffset: 2400; animation: cm-trace 2.6s .4s ease-out forwards; }
.cm-hero--ridge .cm-hero__edge { display: none; }
.cm-days { display: inline-block; margin: 0 0 34px; padding: 14px 22px; background: var(--hot); color: #fff; font-family: var(--fd); font-weight: 700; font-size: 1.5rem; line-height: 1.1; }
.cm-days b { font-size: 2.6rem; font-weight: 700; margin-right: 8px; }

/* ---------- HERO — Slovácká rally: plná barevná fotografie ---------- */
.cm-hero--photo .cm-hero__bg { filter: saturate(1.15) contrast(1.05); background-position: center 40%; }
.cm-hero--photo::before { display: none; }
.cm-hero--photo::after { background: linear-gradient(0deg, color-mix(in srgb, var(--ink) 92%, transparent) 0%, color-mix(in srgb, var(--ink) 40%, transparent) 42%, transparent 70%), linear-gradient(90deg, color-mix(in srgb, var(--ink) 55%, transparent), transparent 60%); }
.cm-hero--photo .cm-hero__in { min-height: 86vh; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 140px; padding-bottom: 130px; }
.cm-hero--photo .cm-hero__title { font-stretch: 135%; font-size: clamp(2.6rem, 7vw, 6.4rem); line-height: .92; max-width: 14ch; }
.cm-when { position: relative; isolation: isolate; display: inline-block; align-self: flex-start; margin: 0 0 22px; font-family: var(--fd); font-weight: 800; font-size: 1.2rem; padding: 8px 22px; color: #fff; }
.cm-when::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--hot); transform: skewX(var(--lean)); }
.cm-clock { position: relative; isolation: isolate; display: flex; gap: 0; margin: 0 0 34px; align-self: flex-start; padding: 0 10px; }
.cm-clock::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--blue); transform: skewX(var(--lean)); }
.cm-clock div { padding: 10px 22px; text-align: center; border-right: 1px solid rgba(255,255,255,.25); }
.cm-clock div:last-child { border: 0; }
.cm-clock b { display: block; font-family: var(--fd); font-weight: 800; font-size: 2.2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.cm-clock small { font-size: .78rem; opacity: .85; }

/* ---------- pruh s nejbližším podnikem ---------- */
.cm-strip { background: var(--ink); color: #fff; }
.cm-strip .container { display: flex; gap: 12px 40px; align-items: center; padding-top: 22px; padding-bottom: 22px; flex-wrap: wrap; }
.cm-strip b { font-family: var(--fd); font-size: 1.5rem; font-weight: 800; }
.cm-strip span { color: rgba(255,255,255,.75); }
.cm-strip a { margin-left: auto; color: #fff; font-weight: 700; border-bottom: 3px solid var(--hot); }

/* ---------- kalendář ---------- */
.cm-cal { display: grid; gap: 10px; }
.cm-cal__row { display: grid; grid-template-columns: 120px 1fr 110px 150px; align-items: center; gap: 28px; padding: 14px 22px 14px 0; background: #fff; color: inherit; position: relative; }
a.cm-cal__row { transition: transform .18s; }
a.cm-cal__row:hover { transform: translateX(8px); color: inherit; }
.cm-cal__date { align-self: stretch; display: grid; place-content: center; text-align: center; background: var(--blue); color: #fff; line-height: .9; padding: 10px 6px 10px 10px; clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%); }
.cm-cal__date b { font-family: var(--fd); font-weight: 900; font-style: italic; font-size: 3.2rem; }
.cm-cal__date small { font-weight: 700; font-size: .95rem; }
.cm-cal__name { font-family: var(--fd); font-weight: 800; font-size: 1.7rem; line-height: 1.08; }
[data-theme="roadbook"] .cm-cal__name { font-style: italic; font-weight: 900; }
.cm-cal__meta { color: var(--muted); font-size: .95rem; margin-top: 4px; }
.cm-cal__meta span + span { margin-left: 16px; padding-left: 16px; border-left: 2px solid var(--line); }
.cm-coef { font-family: var(--fd); font-weight: 800; font-size: 1.5rem; text-align: right; }
.cm-coef small { display: block; font-family: var(--fb); font-weight: 500; font-size: .75rem; color: var(--muted); }
.cm-stamp { justify-self: end; font-weight: 700; font-size: .92rem; color: var(--ink); }
.cm-stamp::before { content: ''; display: inline-block; width: 12px; height: 12px; margin-right: 8px; background: var(--blue); transform: skewX(var(--lean)); }
.cm-stamp--open { color: var(--hot); } .cm-stamp--open::before { background: var(--hot); }
.cm-stamp--off { color: var(--muted); } .cm-stamp--off::before { background: var(--muted); }
.cm-cal__row--cancelled { opacity: .55; }
.cm-cal__row--cancelled .cm-cal__date { background: var(--muted); }
.cm-cal__row--cancelled .cm-cal__name { text-decoration: line-through; text-decoration-thickness: 3px; text-decoration-color: var(--hot); }
.cm-cal__row--next { outline: 3px solid var(--hot); }
@media (max-width: 800px) { .cm-cal__row { grid-template-columns: 88px 1fr; gap: 14px; padding: 12px 14px 12px 0; } .cm-cal__row > :nth-child(n+3) { grid-column: 2; justify-self: start; text-align: left; } .cm-cal__date b { font-size: 2.3rem; } .cm-cal__name { font-size: 1.3rem; } }

/* ---------- tabulky ---------- */
.cm-tablewrap { overflow-x: auto; background: #fff; }
.cm-table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.cm-table th { text-align: left; font-weight: 700; font-size: .85rem; color: var(--muted); padding: 16px 16px 12px; border-bottom: 3px solid var(--ink); white-space: nowrap; }
.cm-table td { padding: 15px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.cm-table tr:last-child td { border-bottom: 0; }
.cm-table tbody tr:hover { background: var(--c-accent-soft); }
.cm-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 500; }
.cm-table .pos { width: 70px; font-family: var(--fd); font-style: italic; font-weight: 900; font-size: 2rem; line-height: 1; }
.cm-table tbody tr:first-child td { background: color-mix(in srgb, var(--hot) 9%, #fff); }
.cm-table tbody tr:first-child .pos { color: var(--hot); }
.cm-table strong { font-weight: 700; }
.cm-table .sub { display: block; color: var(--muted); font-size: .85rem; margin-top: 2px; font-weight: 400; }
.cm-table .dns { color: color-mix(in srgb, var(--ink) 28%, #fff); }
.cm-table .dnf { color: var(--hot); font-weight: 600; }
.cm-table .total { font-family: var(--fd); font-weight: 800; font-size: 1.4rem; }
.cm-chip { display: inline-block; position: relative; isolation: isolate; color: #fff; font-weight: 700; font-size: .8rem; padding: 2px 10px; }
.cm-chip::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--ink); transform: skewX(var(--lean)); }

/* Montserrat je široký — velikosti nadpisů pro téma ČMPR */
[data-theme="roadbook"] .cm-hero__title { font-size: clamp(2.4rem, 5.6vw, 5rem); line-height: 1; letter-spacing: -.025em; font-weight: 900; }
[data-theme="roadbook"] .cm-hero--board .cm-hero__title { font-size: clamp(2.4rem, 5.2vw, 4.6rem); }
[data-theme="roadbook"] .cm-head h2 { font-size: clamp(2rem, 4.2vw, 3.4rem); letter-spacing: -.025em; }
[data-theme="roadbook"] .cm-cal__date b { font-size: 2.4rem; letter-spacing: -.04em; }
[data-theme="roadbook"] .cm-cal__name { font-size: 1.3rem; letter-spacing: -.02em; }
[data-theme="roadbook"] .cm-news__title { font-size: clamp(1.15rem, 2vw, 1.55rem); letter-spacing: -.02em; }
[data-theme="roadbook"] .cm-partner b { font-size: 1.6rem; }
[data-theme="roadbook"] .cm-pagehead h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); letter-spacing: -.03em; }
[data-theme="roadbook"] .cm-table .pos { font-size: 1.5rem; }
[data-theme="roadbook"] .cm-table .total, [data-theme="roadbook"] .cm-coef { font-size: 1.15rem; }
[data-theme="roadbook"] .cm-board h3 { font-size: 1.2rem; }
[data-theme="roadbook"] .cm-board .p { font-size: 1.4rem; }
[data-theme="roadbook"] .cm-board .pts { font-size: 1.2rem; }
[data-theme="roadbook"] .cm-footer__mark { font-size: clamp(4rem, 15vw, 12rem); }
[data-theme="roadbook"] .cm-auth__name { font-size: clamp(2.2rem, 4vw, 3.4rem); }
[data-theme="roadbook"] .cm-auth__box h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); }

/* ---------- novinky ---------- */
.cm-news { display: grid; }
.cm-news__item { display: grid; grid-template-columns: 120px 1fr; gap: 24px; align-items: baseline; padding: 24px 0; border-top: 1px solid var(--line); color: inherit; }
.cm-news__item:last-child { border-bottom: 1px solid var(--line); }
.cm-news__date { color: var(--hot); font-weight: 700; font-size: .95rem; }
.cm-news__title { font-family: var(--fd); font-weight: 800; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.12; }
[data-theme="roadbook"] .cm-news__title { font-style: italic; font-weight: 900; }
a.cm-news__item:hover .cm-news__title { color: var(--hot); }
@media (max-width: 640px) { .cm-news__item { grid-template-columns: 1fr; gap: 6px; } }

/* ---------- novinky s fotkou ---------- */
.cm-newsgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 24px; }
.cm-ncard { display: flex; flex-direction: column; color: inherit; background: #fff; }
.cm-ncard__img { display: block; aspect-ratio: 16 / 10; background: var(--tint) center / cover no-repeat; position: relative; overflow: hidden; }
.cm-ncard__img::after { content: ''; position: absolute; left: 0; bottom: 0; width: 38%; height: 8px; background: var(--hot); transform-origin: left; transition: width .25s; }
.cm-ncard:hover .cm-ncard__img::after { width: 100%; }
.cm-ncard__txt { display: flex; flex-direction: column; gap: 8px; padding: 18px 22px 24px; }
.cm-ncard__title { font-family: var(--fd); font-weight: 800; font-size: 1.3rem; line-height: 1.18; }
[data-theme="roadbook"] .cm-ncard__title { font-size: 1.05rem; letter-spacing: -.01em; }
.cm-ncard:hover .cm-ncard__title { color: var(--hot); }
.cm-ncard--lead { grid-column: span 2; grid-row: span 2; }
.cm-ncard--lead .cm-ncard__img { aspect-ratio: auto; flex: 1; min-height: 340px; }
.cm-ncard--lead .cm-ncard__title { font-size: clamp(1.6rem, 3vw, 2.4rem); }
[data-theme="roadbook"] .cm-ncard--lead .cm-ncard__title { font-size: clamp(1.3rem, 2.4vw, 1.9rem); }
@media (max-width: 900px) { .cm-newsgrid { grid-template-columns: 1fr 1fr; } .cm-ncard--lead { grid-column: span 2; grid-row: auto; } .cm-ncard--lead .cm-ncard__img { aspect-ratio: 16/9; min-height: 0; flex: none; } }
@media (max-width: 560px) { .cm-newsgrid { grid-template-columns: 1fr; } .cm-ncard--lead { grid-column: auto; } }

/* ---------- článek ---------- */
.cm-article { max-width: 860px; margin: 0 auto; padding: 0 24px 80px; }
.cm-article__cover { margin: 0 -24px 36px; aspect-ratio: 16 / 8; background: var(--tint) center / cover no-repeat; position: relative; }
.cm-article__cover::after { content: ''; position: absolute; left: 0; bottom: 0; width: 120px; height: 10px; background: var(--hot); }
.cm-article h1 { font-size: clamp(2rem, 4.6vw, 3.4rem); margin: 0 0 12px; }
.cm-article__date { color: var(--hot); font-weight: 700; margin-bottom: 28px; }
.cm-article__body p { font-size: 1.12rem; line-height: 1.7; margin: 0 0 1.1em; }
.cm-article__body h3 { font-size: 1.6rem; margin: 1.6em 0 .6em; }
.cm-article__body img { max-width: 100%; height: auto; }

/* ---------- partneři ---------- */
.cm-partners { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0; background: var(--ink); }
.cm-partner { display: block; padding: 40px 30px; color: #fff; border-right: 1px solid rgba(255,255,255,.14); }
a.cm-partner:hover { background: var(--hot); color: #fff; }
.cm-partner b { display: block; font-family: var(--fd); font-weight: 900; font-size: 2.2rem; line-height: 1; margin-bottom: 10px; }
[data-theme="roadbook"] .cm-partner b { font-style: italic; }
.cm-partner small { color: rgba(255,255,255,.72); font-size: .92rem; }

/* ---------- pás výzvy ---------- */
.cm-band { position: relative; overflow: hidden; }
.cm-band .container { display: flex; gap: 32px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.cm-band h2 { font-size: clamp(2.2rem, 5vw, 4rem); margin: 0; max-width: 16ch; color: #fff; }
.cm-band p { margin: 14px 0 0; opacity: .9; max-width: 46ch; font-size: 1.1rem; }

/* ---------- záložky ---------- */
.cm-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 32px; }
.cm-tabs a { --b: var(--tint); position: relative; isolation: isolate; padding: 11px 24px; font-weight: 700; color: var(--ink); }
.cm-tabs a::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--b); transform: skewX(var(--lean)); }
.cm-tabs a.active { --b: var(--ink); color: #fff; }
.cm-tabs a:hover:not(.active) { --b: var(--hot); color: #fff; }

/* ---------- dokumenty ---------- */
.cm-docs { display: grid; gap: 8px; }
.cm-doc { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 20px; padding: 0 22px 0 0; background: #fff; color: var(--ink); font-family: var(--fd); font-weight: 800; font-size: 1.35rem; }
.cm-doc i { align-self: stretch; display: grid; place-items: center; font-style: normal; font-family: var(--fb); font-weight: 800; font-size: .85rem; background: var(--blue); color: #fff; clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%); padding-right: 8px; }
.cm-doc span { padding: 16px 0; }
.cm-doc small { font-family: var(--fb); color: var(--muted); font-weight: 500; font-size: .88rem; }
.cm-doc:hover { color: var(--hot); }

/* ---------- údaje o závodě ---------- */
.cm-info { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; background: var(--ink); color: #fff; }
.cm-info div { padding: 28px 30px; border-right: 1px solid rgba(255,255,255,.16); }
.cm-info div:last-child { border-right: 0; }
.cm-info small { display: block; color: rgba(255,255,255,.65); font-size: .88rem; margin-bottom: 4px; }
.cm-info b { font-family: var(--fd); font-weight: 800; font-size: 1.9rem; line-height: 1.1; }
@media (max-width: 760px) { .cm-info { grid-template-columns: 1fr; } .cm-info div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16); } }

/* ---------- hlavička stránky závodu ---------- */
.cm-pagehead { background: var(--blue); color: #fff; position: relative; overflow: hidden; }
.cm-pagehead::after { content: ''; position: absolute; right: -6%; top: -30%; bottom: -30%; width: 22%; background: var(--hot); transform: skewX(var(--lean)); opacity: .9; }
.cm-pagehead .container { position: relative; z-index: 1; padding-top: 56px; padding-bottom: 44px; }
.cm-pagehead h1 { color: #fff; font-size: clamp(2.8rem, 7vw, 5.6rem); margin: 0 0 10px; line-height: .95; }
.cm-pagehead__when { font-weight: 700; font-size: 1.15rem; margin: 0 0 10px; color: rgba(255,255,255,.9); }
.cm-pagehead__meta { margin: 0; display: flex; gap: 22px; font-weight: 600; }
.cm-pagehead__meta span + span { padding-left: 22px; border-left: 2px solid rgba(255,255,255,.4); }
.cm-tabs--page { margin: 28px 0 8px; }

/* ---------- animace: jen úvodní sestava hero ---------- */
@keyframes cm-rise { from { transform: translateY(108%); } to { transform: none; } }
@keyframes cm-grow { from { transform: scaleX(0); } to { transform: none; } }
@keyframes cm-settle { to { transform: scale(1); } }
@keyframes cm-trace { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } .cm-ridge .trace { stroke-dashoffset: 0; } }

/* =====================================================================
   Vrstva pro starší stránky (přihláška, profil, detail závodu, přihlášení…)
   ===================================================================== */
main { color: var(--ink); }
.section, .section--dark, .section--alt, .section--light { background: transparent; color: var(--ink); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark p { color: var(--ink); }
.hero { background: var(--ink); }
.race-hero { background: var(--blue); color: #fff; }
.race-hero h1, .race-hero h2, .race-hero p, .race-hero a { color: #fff; }
.info-panel, .race-card, .crew-card, .archive-card, .media-card, .gallery-card, .video-card, .payment-box, .prof-card, .prof-side, .prof-entry, .prof-car, .stat, .fieldset, .wa-banner, .empty-state, .table-wrap, .admin-panel {
    background: #fff !important; color: var(--ink) !important; border: 0 !important; border-left: 6px solid var(--blue) !important; border-radius: 0 !important; box-shadow: none; backdrop-filter: none !important;
}
.info-panel *, .race-card *, .crew-card *, .payment-box *, .prof-card *, .prof-side *, .prof-entry *, .fieldset * { color: inherit; }
.info-panel a, .race-card a, .crew-card a, .payment-box a, .prof-card a { color: var(--blue); }
.info-panel dt, .info-panel .label { color: var(--muted) !important; font-weight: 600; }
.tabs { border-bottom: 3px solid var(--ink); gap: 0; }
.tabs a { font-weight: 700; color: var(--ink); border-radius: 0; background: transparent; }
.tabs a.active { background: var(--ink); color: #fff; }
.tabs a:hover { color: var(--hot); }
.tag { background: var(--tint); color: var(--ink); border: 0; border-radius: 0; font-weight: 600; }
.tag--accent { background: var(--blue); color: #fff; }
.tag--success { background: #1f7a43; color: #fff; }
.table, .standings-table, .results-table, .points-table { background: #fff; color: var(--ink); border-collapse: collapse; width: 100%; }
.table th, .standings-table th, .results-table th, .points-table th { background: transparent; color: var(--muted); border-bottom: 3px solid var(--ink); font-weight: 700; font-size: .85rem; text-transform: none; letter-spacing: 0; }
.table td, .standings-table td, .results-table td, .points-table td { color: var(--ink); border-bottom: 1px solid var(--line); background: transparent; }
.table tbody tr:hover td, .standings-table tbody tr:hover td, .results-table tbody tr:hover td { background: var(--c-accent-soft); }
.form__input, .form__select, .form__textarea, input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number], input[type=date], input[type=datetime-local], select, textarea {
    background: #fff; color: var(--ink); border: 2px solid var(--line); border-radius: 0; font-family: var(--fb);
}
.form__input:focus, .form__select:focus, .form__textarea:focus, input:focus, select:focus, textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 4px var(--c-accent-soft); }
.form__label, label { color: var(--ink); font-weight: 600; font-size: .95rem; text-transform: none; letter-spacing: 0; }
.form__hint { color: var(--muted); }
.flash { border-radius: 0; }
.cookie-banner { background: #fff; color: var(--ink); border: 0; border-top: 6px solid var(--hot); border-radius: 0; box-shadow: 0 -10px 40px rgba(0,0,0,.12); }
.cookie-banner .cookie-banner__text, .cookie-banner .cookie-banner__text strong, .cookie-banner .cookie-banner__text p { color: var(--ink); }
.cookie-banner .cookie-banner__text a { color: var(--blue); }
.cookie-banner__btn--secondary { background: transparent; color: var(--ink) !important; box-shadow: inset 0 0 0 2px var(--ink); border: 0; border-radius: 0; }
.cookie-banner__btn--primary { background: var(--ink); color: #fff !important; border-radius: 0; }
.file-list a { color: var(--blue); font-weight: 600; }
hr { border: 0; border-top: 2px solid var(--line); }

/* ---------- přihlášení / registrace ---------- */
.cm-auth { display: grid; grid-template-columns: minmax(280px, 5fr) 7fr; min-height: calc(100vh - 76px); }
.cm-auth__side { position: relative; background: var(--blue); color: #fff; display: flex; align-items: flex-end; padding: 56px 64px 72px 40px; isolation: isolate; clip-path: polygon(0 0, 100% 0, calc(100% - 72px) 100%, 0 100%); margin-right: -36px; z-index: 1; }
.cm-auth__side--photo::before { content: ''; position: absolute; inset: 0; z-index: -2; background: var(--photo) center/cover; filter: grayscale(1) contrast(1.15); }
.cm-auth__side--photo::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, color-mix(in srgb, var(--ink) 92%, transparent), color-mix(in srgb, var(--blue) 82%, transparent)); mix-blend-mode: multiply; }
.cm-auth__logo { height: 56px; width: auto; margin-bottom: 22px; background: #fff; padding: 6px 12px; }
.cm-auth__name { font-family: var(--fd); font-weight: 900; font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: .92; }
[data-theme="roadbook"] .cm-auth__name { font-style: italic; }
.cm-auth__brand p { margin: 14px 0 0; color: rgba(255,255,255,.85); font-weight: 500; }
.cm-auth__main { display: grid; place-items: center; padding: 64px 40px 64px 80px; }
.cm-auth__box { width: 100%; max-width: 460px; }
.cm-auth__box h1 { font-size: clamp(2.6rem, 5vw, 4rem); margin: 0 0 8px; white-space: normal !important; }
.cm-auth__lead { margin: 0 0 26px; }
@media (max-width: 860px) {
    .cm-auth { grid-template-columns: 1fr; }
    .cm-auth__side { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 28px)); margin: 0; padding: 36px 24px 56px; min-height: 0; }
    .cm-auth__name { font-size: 2.4rem; }
    .cm-auth__main { padding: 32px 24px 56px; }
}

/* ---------- formuláře: přihláška, profil ---------- */
.form--wide, .form { color: var(--ink); }
.fieldset { padding: 28px 30px 24px !important; margin-bottom: 22px; }
.fieldset__title, .fieldset legend { font-family: var(--fd); font-weight: 800; font-size: 1.5rem; color: var(--ink); margin: 0 0 18px; padding: 0; text-transform: none; letter-spacing: 0; }
.form__radios, .form__checks { display: grid; gap: 8px; }
.form__radio, .form__check { display: flex; gap: 12px; align-items: flex-start; background: #fff !important; color: var(--ink) !important; border: 2px solid var(--line) !important; border-radius: 0 !important; padding: 13px 16px !important; cursor: pointer; transition: border-color .12s, background .12s; }
.form__radio:hover, .form__check:hover { border-color: var(--ink) !important; background: #fff !important; }
.form__radio:has(input:checked), .form__check:has(input:checked) { border-color: var(--blue) !important; background: var(--c-accent-soft) !important; box-shadow: inset 6px 0 0 var(--blue); }
.form__radio span, .form__check span { color: inherit; }
.form__radio input, .form__check input { accent-color: var(--blue); width: 18px; height: 18px; }
.form__row { gap: 18px; }
.form__group { margin-bottom: 18px; }
.form__label--required::after { color: var(--hot); }
.payment-box, .reg-closed { padding: 24px 28px !important; }
.btn--lg { padding: 18px 40px; font-size: 1.1rem; }
.btn--block { display: block; text-align: center; }
a.back, .back-link { font-weight: 700; color: var(--ink); }

/* ---------- profil jezdce ---------- */
.prof-hero__name, .prof-hero__email { color: var(--ink) !important; }
.prof-hero__name { font-family: var(--fd); text-transform: none; }
.prof-hero__avatar { background: var(--ink); color: #fff; border: 4px solid var(--blue); }
.prof-hero__badge { background: var(--hot); color: #fff; border-radius: 0; }
.prof-stat { background: #fff !important; border: 0 !important; border-top: 6px solid var(--blue) !important; border-radius: 0 !important; }
.prof-stat__value { color: var(--blue) !important; font-family: var(--fd); font-weight: 900; }
.prof-stat__label { color: var(--muted) !important; }
.prof-side a { color: var(--ink) !important; border-radius: 0 !important; font-weight: 700; }
.prof-side a.active, .prof-side a:hover { background: var(--c-accent-soft) !important; color: var(--blue) !important; box-shadow: inset 6px 0 0 var(--blue); }
.prof h2, .prof h3, .prof-card h2, .prof-card h3, .prof-card label, .prof-entry h3, .prof-car h3 { color: var(--ink); }
.prof-card label { text-transform: none; }
.prof-btn, .prof-cta { border-radius: 0; }
.prof-tag { border-radius: 0; background: var(--tint); color: var(--ink); }
.prof-cta { background: var(--ink) !important; color: #fff !important; border: 0 !important; border-left: 8px solid var(--hot) !important; }
.prof-cta__main, .prof-cta__main *, .prof-cta a { color: #fff !important; }

/* ---------- partneři s logy ---------- */
.cm-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.cm-logo-tile { display: grid; place-items: center; background: #fff; min-height: 130px; padding: 20px 26px; box-shadow: 0 0 0 1px var(--line); color: var(--ink); }
.cm-logo-tile img { max-width: 100%; max-height: 78px; width: auto; height: auto; object-fit: contain; }
a.cm-logo-tile:hover { box-shadow: 0 0 0 3px var(--hot); }
.cm-sec--white { background: #fff; }

/* ---------- údaje o závodu, plakát ---------- */
.cm-facts-list { margin: 26px 0 8px; display: grid; gap: 0; max-width: 60ch; }
.cm-facts-list > div { display: grid; grid-template-columns: 11rem 1fr; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); }
.cm-facts-list > div:last-child { border-bottom: 1px solid var(--line); }
.cm-facts-list dt { color: var(--muted); font-weight: 600; }
.cm-facts-list dd { margin: 0; font-weight: 700; }
.cm-poster { display: block; background: #fff; padding: 10px; box-shadow: 0 0 0 1px var(--line); }
.cm-poster img { width: 100%; height: auto; display: block; }
@media (max-width: 900px) { .cm-facts-list > div { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- harmonogram ---------- */
.cm-sched { width: 100%; border-collapse: collapse; background: #fff; }
.cm-sched th { text-align: left; font-size: .85rem; color: var(--muted); padding: 14px 16px 10px; border-bottom: 3px solid var(--ink); }
.cm-sched td { padding: 11px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.cm-sched .t { font-family: var(--fd); font-weight: 800; font-size: 1.25rem; white-space: nowrap; width: 130px; font-variant-numeric: tabular-nums; }
.cm-sched .d { color: var(--muted); font-size: .92rem; }
.cm-sched tr.rz td { background: color-mix(in srgb, var(--hot) 11%, #fff); font-weight: 700; }
.cm-sched tr.rz .t { color: var(--hot); }
.cm-sched tr.rz td:first-child { box-shadow: inset 6px 0 0 var(--hot); }
.cm-sched tr.service td { background: color-mix(in srgb, var(--blue) 9%, #fff); }
.cm-sched tr.start td, .cm-sched tr.ceremony td { background: var(--tint); font-weight: 700; }
.cm-sched__day { font-family: var(--fd); font-weight: 900; font-size: 1.9rem; margin: 40px 0 14px; }
.cm-sched__day:first-of-type { margin-top: 0; }

/* ---------- mapy ---------- */
.cm-maps { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 22px; }
.cm-map { display: block; background: #fff; color: var(--ink); box-shadow: 0 0 0 1px var(--line); }
.cm-map span { display: block; aspect-ratio: 4 / 3; background: #e8ece8 center / cover no-repeat; }
.cm-map b { display: block; padding: 16px 20px 18px; font-family: var(--fd); font-size: 1.25rem; }
.cm-map:hover b { color: var(--hot); }

/* ---------- akreditace médií ---------- */
.cm-accr { display: grid; gap: 4px; padding: 18px 22px; margin-bottom: 14px; background: #fff; box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 var(--muted); }
.cm-accr b { font-family: var(--fd); font-size: 1.3rem; }
.cm-accr em { color: var(--muted); font-style: normal; }
.cm-accr--approved { box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 #1f8a4c; } .cm-accr--approved b { color: #1f8a4c; }
.cm-accr--pending { box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 var(--hot); } .cm-accr--pending b { color: var(--hot); }
.cm-accr--rejected { box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 #b3261e; } .cm-accr--rejected b { color: #b3261e; }
.cm-box { background: #fff; padding: 26px 28px; box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 var(--blue); max-width: 640px; }
.cm-form { display: grid; gap: 18px; max-width: 760px; background: #fff; padding: 30px 32px; box-shadow: 0 0 0 1px var(--line), inset 8px 0 0 var(--blue); }
.cm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cm-form label { display: grid; gap: 6px; font-weight: 700; font-size: .95rem; }
.cm-form input[type=text], .cm-form input[type=email], .cm-form input[type=tel], .cm-form select, .cm-form textarea { font: inherit; font-weight: 500; padding: 12px 14px; border: 2px solid var(--line); background: #fff; color: var(--ink); border-radius: 0; width: 100%; }
.cm-form input:focus, .cm-form select:focus, .cm-form textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 4px var(--c-accent-soft); }
.cm-form .cm-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.cm-form .cm-check input { margin-top: 4px; accent-color: var(--blue); }
.cm-form .btn { justify-self: start; }
@media (max-width: 700px) { .cm-form__row { grid-template-columns: 1fr; } }
