/*
 * MALA DIVADELNI SCENA (divadlo-scena, verze 1.0.0) - "Rampička", styl webu vzoru pro nativni Builder PublicMC.
 *
 * Patri do korene webu jako /style.css (builder_verejna.php ho linkuje pred styly rendereru), proto pravidla zacinaji "body".
 * Vzhled se veze na tridy sekci (customClass), ktere editor pri ulozeni zachovava:
 *   ds-hlavicka ds-paticka ds-hero ds-premiera ds-program ds-soubor ds-galerie ds-media ds-vyzva ds-zahlavi ds-zajezdy
 *   ds-repertoar ds-zprava ds-stazeni ds-cenik ds-nakup ds-sal ds-adresa
 *   ds-pozadi-svestka ds-pozadi-krem ds-pozadi-modra ds-pozadi-rumelka (pozadi sekce; atribut background editor prepisuje)
 * Barvy = tokenPreset divadlo-scena/opona: tmave svestkova, kremovy papir plakatu, rumelka, ultramarin a horcice.
 * Plakatove pismo: uzke bezpatkove verzalky v nadpisech, patkove pismo v textu; ostre rohy, vstupenky s perforaci.
 * Radkovani verzalkovych nadpisu 1.2: hacky a carky (E, Z, A, S, C) ani carka nenarazi do radku nad (kolo 2 po RJ, mereno canvasem).
 * Zadne fotografie osob. Plna sirka okna, na sirokych monitorech (>= 1600 px) vetsi pismo (clamp).
 */
:root {
  --ds-svestka: #1e1024;
  --ds-svestka-2: #2b1734;
  --ds-krem: #f6efe2;
  --ds-papir: #fffaf1;
  --ds-text: #1e1024;
  --ds-text-jemny: #4a3a4f;
  --ds-svetly: #f6efe2;
  --ds-svetly-jemny: #d9cbd6;
  --ds-rumelka: #e8462e;
  --ds-rumelka-tlacitko: #c8361f;
  --ds-rumelka-tmava: #a52a16;
  --ds-modra: #1f3a8a;
  --ds-horcice: #f2c14e;
  --ds-okraj: #d9ccb4;
  --ds-bok: clamp(18px, 4.4vw, 120px);
  --ds-pismo: clamp(17px, 0.62vw + 9px, 24px);
  --ds-text-rodina: Charter, "Bitstream Charter", "Sitka Text", Cambria, Georgia, "Times New Roman", serif;
  --ds-nadpis-rodina: "Bahnschrift SemiCondensed", Bahnschrift, "Roboto Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  --cmc-b-primary: var(--ds-rumelka-tlacitko);
  --cmc-b-ink: var(--ds-svestka);
  --cmc-b-on-ink: #fff;
  --cmc-b-surface: var(--ds-papir);
  --cmc-b-page: var(--ds-krem);
  --cmc-b-surface-muted: #ece2cf;
  --cmc-b-text: var(--ds-text);
  --cmc-b-text-soft: var(--ds-text-jemny);
  --cmc-b-text-muted: #5d4f61;
  --cmc-b-border: var(--ds-okraj);
  --cmc-b-border-strong: var(--ds-text);
}

body { margin: 0; background: var(--ds-krem); color: var(--ds-text); font-family: var(--ds-text-rodina); font-size: var(--ds-pismo); line-height: 1.62; -webkit-font-smoothing: antialiased; }
body a { color: var(--ds-rumelka-tmava); }
body img { max-width: 100%; }
body .cmc-b-document *, body .pmc-hlavicka *, body .pmc-paticka * { box-sizing: border-box; }

/* ---------- plna sirka ---------- */
body .cmc-b-document { max-width: none; margin: 0; padding: 0; }
body section.cmc-b-section { max-width: none; margin: 0; padding-left: var(--ds-bok); padding-right: var(--ds-bok); background: var(--ds-papir); position: relative; }
body .cmc-b-container { max-width: none; margin: 0; position: relative; }
body .cmc-b-padY-sm { padding-top: clamp(10px, 0.8vw, 18px); padding-bottom: clamp(10px, 0.8vw, 18px); }
body .cmc-b-padY-lg { padding-top: clamp(48px, 5vw, 116px); padding-bottom: clamp(48px, 5vw, 116px); }
body .cmc-b-padY-xl { padding-top: clamp(60px, 6.4vw, 150px); padding-bottom: clamp(60px, 6.4vw, 150px); }

/* ---------- pismo: plakatove verzalky ---------- */
body .cmc-b-heading { font-family: var(--ds-nadpis-rodina); font-stretch: 80%; font-weight: 700; text-transform: uppercase; letter-spacing: 0.005em; line-height: 1.2; color: var(--ds-text); margin: 0 0 0.45em; text-wrap: balance; }
body h1.cmc-b-heading { font-size: clamp(46px, 6.4vw, 168px); line-height: 1.2; }
body h2.cmc-b-heading { font-size: clamp(34px, 3.6vw, 92px); }
body h3.cmc-b-heading { font-size: clamp(22px, 1.5vw, 36px); line-height: 1.2; letter-spacing: 0.01em; }
body .cmc-b-paragraph { font-family: var(--ds-text-rodina); font-size: var(--ds-pismo); line-height: 1.62; color: var(--ds-text-jemny); margin: 0 0 1em; }
body .cmc-b-paragraph strong { color: var(--ds-text); font-weight: 700; }
body figcaption, body .cmc-b-caption { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.8em; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ds-text-jemny); margin-top: 0.7em; }

/* stitek: rumelkovy obdelnik s verzalkami */
body :is(.ds-program, .ds-galerie, .ds-zahlavi) > .cmc-b-container > p.cmc-b-paragraph:first-child,
body :is(.ds-hero) > .cmc-b-container > p.cmc-b-paragraph:nth-child(2),
body :is(.ds-premiera .cmc-b-column:last-child, .ds-soubor .cmc-b-column:first-child, .ds-zajezdy .cmc-b-column:first-child, .ds-cenik .cmc-b-column:first-child) > p.cmc-b-paragraph:first-child {
  display: inline-block; margin: 0 0 1.1em; padding: 0.42em 0.85em 0.36em; background: var(--ds-rumelka-tlacitko); color: #fff;
  font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.78em; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.4;
}

/* ---------- tlacitka: ostre rohy, rumelka ---------- */
body :where(p).cmc-b-button { margin: 1.4em 1em 0 0; display: inline-block; max-width: 100%; }
body a.cmc-b-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.6em; min-height: 52px; padding: 0.7em 1.5em 0.62em; border-radius: 0;
  font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.92em; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
  border: 2px solid var(--ds-rumelka-tlacitko); background: var(--ds-rumelka-tlacitko); color: #fff; box-shadow: none;
  box-sizing: border-box; max-width: 100%; white-space: normal; text-align: center; overflow-wrap: anywhere; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body a.cmc-b-button:hover, body a.cmc-b-button:focus-visible { background: var(--ds-rumelka-tmava); border-color: var(--ds-rumelka-tmava); color: #fff; }
body a.cmc-b-button:focus-visible { outline: 3px solid var(--ds-horcice); outline-offset: 3px; }
body a.cmc-b-button-outline { background: transparent; color: var(--ds-text); border-color: var(--ds-text); }
body a.cmc-b-button-outline:hover { background: var(--ds-text); border-color: var(--ds-text); color: var(--ds-krem); }
body a.cmc-b-button-link { background: none; border-color: transparent; color: var(--ds-rumelka-tmava); padding-left: 0; padding-right: 0.2em; min-height: 44px; }
body a.cmc-b-button-link::after { content: ""; width: 1.4em; height: 2px; background: currentColor; flex: none; transition: width .2s ease; }
body a.cmc-b-button-link:hover { background: none; border-color: transparent; color: var(--ds-text); }
body a.cmc-b-button-link:hover::after { width: 2em; }

/* ---------- sloupce, obrazky ---------- */
body .cmc-b-columns { gap: clamp(20px, 2.6vw, 72px); margin: clamp(28px, 2.6vw, 60px) 0 0; }
body .cmc-b-columns.cmc-b-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .cmc-b-columns.cmc-b-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body .cmc-b-columns.cmc-b-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .cmc-b-column { background: none; border: 0; padding: 0; min-width: 0; }
body .cmc-b-column > :last-child { margin-bottom: 0; }
body .cmc-b-image { margin: 0; }
body .cmc-b-image img { width: 100%; height: auto; border-radius: 0; display: block; }

/* ---------- pozadi ---------- */
body section.ds-pozadi-svestka { background: var(--ds-svestka); }
body section.ds-pozadi-krem { background: var(--ds-krem); }
body section.ds-pozadi-modra { background: var(--ds-modra); }
body section.ds-pozadi-rumelka { background: var(--ds-rumelka-tlacitko); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra, .ds-pozadi-rumelka) .cmc-b-heading { color: var(--ds-svetly); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra) .cmc-b-paragraph { color: var(--ds-svetly-jemny); }
body .ds-pozadi-rumelka .cmc-b-paragraph { color: #fff1ea; }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra, .ds-pozadi-rumelka) .cmc-b-paragraph strong { color: var(--ds-svetly); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra) a.cmc-b-button-outline { color: var(--ds-svetly); border-color: var(--ds-svetly); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra) a.cmc-b-button-outline:hover { background: var(--ds-svetly); color: var(--ds-svestka); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra) a.cmc-b-button-link { color: var(--ds-horcice); }
body :is(.ds-pozadi-svestka, .ds-pozadi-modra) a.cmc-b-button-link:hover { color: var(--ds-svetly); }
body :is(.ds-pozadi-svestka) figcaption { color: var(--ds-svetly-jemny); }

/* ---------- hlavicka: kremova lista, logo s rampou svetel, podtitulek, ctyri odkazy, vstupenka ---------- */
body .pmc-hlavicka { position: sticky; top: 0; z-index: 50; background: var(--ds-krem); border-bottom: 2px solid var(--ds-text); }
body section.ds-hlavicka { background: transparent; }
body .ds-hlavicka > .cmc-b-container { display: grid; grid-template-columns: auto minmax(0, 1fr) repeat(4, auto) auto; grid-template-rows: auto auto; align-items: center; column-gap: clamp(14px, 1.9vw, 44px); }
body .ds-hlavicka :where(p).cmc-b-button { margin: 0; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(1) { grid-column: 1; grid-row: 1; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(2) { grid-column: 1; grid-row: 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(3) { grid-column: 3; grid-row: 1 / span 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(4) { grid-column: 4; grid-row: 1 / span 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(5) { grid-column: 5; grid-row: 1 / span 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(6) { grid-column: 6; grid-row: 1 / span 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(7) { grid-column: 7; grid-row: 1 / span 2; }
body .ds-hlavicka > .cmc-b-container > p:nth-child(1) a.cmc-b-button-link {
  min-height: 0; padding: 0 0 0.16em; font-size: clamp(30px, 2.3vw, 54px); font-stretch: 75%; font-weight: 800; letter-spacing: 0.02em; line-height: 1; color: var(--ds-text);
  background: radial-gradient(circle, var(--ds-horcice) 0 2.5px, transparent 3px) 0 100% / 12px 6px repeat-x;
}
body .ds-hlavicka > .cmc-b-container > p:nth-child(1) a.cmc-b-button-link::after { display: none; }
body .ds-hlavicka > .cmc-b-container > p.cmc-b-paragraph { margin: 0.25em 0 0; font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.66em; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.2; color: var(--ds-text-jemny); }
body .ds-hlavicka a.cmc-b-button-link { font-size: 0.86em; letter-spacing: 0.1em; color: var(--ds-text); }
body .ds-hlavicka a.cmc-b-button-link::after { display: none; }
body .ds-hlavicka a.cmc-b-button-link:hover { color: var(--ds-rumelka-tmava); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
/* tlacitko ve tvaru vstupenky: vykrojene pulkruhy na bocich */
body .ds-hlavicka a.cmc-b-button-primary {
  min-height: 50px; padding: 0.5em 1.6em 0.44em;
  -webkit-mask: radial-gradient(circle at 0 50%, transparent 8px, #000 8.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 50%, transparent 8px, #000 8.5px) right / 51% 100% no-repeat;
  mask: radial-gradient(circle at 0 50%, transparent 8px, #000 8.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 50%, transparent 8px, #000 8.5px) right / 51% 100% no-repeat;
}

/* ---------- hero: jeviste s oponou jako kulisa, obri verzalky, nejblizsi predstaveni ---------- */
body section.ds-hero { overflow: hidden; min-height: clamp(560px, 84vh, 1080px); display: flex; flex-direction: column; justify-content: flex-end; }
body .ds-hero > .cmc-b-container { position: static; }
body .ds-hero > .cmc-b-container > figure { position: absolute; inset: 0; margin: 0; z-index: 0; }
body .ds-hero > .cmc-b-container > figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
body .ds-hero > .cmc-b-container > figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(30, 16, 36, .97) 0, rgba(30, 16, 36, .82) 34%, rgba(30, 16, 36, .35) 70%, rgba(30, 16, 36, .2) 100%); }
body .ds-hero > .cmc-b-container > :not(figure) { position: relative; z-index: 2; }
body .ds-hero > .cmc-b-container > p.cmc-b-paragraph:nth-child(2) { background: var(--ds-horcice); color: var(--ds-svestka); }
body .ds-hero h1.cmc-b-heading { max-width: 11ch; font-size: clamp(56px, 8.2vw, 210px); color: var(--ds-svetly); text-shadow: 0 4px 30px rgba(0, 0, 0, .45); margin-bottom: 0.25em; }
body .ds-hero .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
body .ds-hero .cmc-b-column:first-child > p.cmc-b-paragraph:first-child { font-size: clamp(19px, 1.25vw, 30px); font-style: italic; line-height: 1.5; color: var(--ds-svetly); max-width: 46ch; }
body .ds-hero .cmc-b-column:last-child { background: rgba(30, 16, 36, .86); border-top: 5px solid var(--ds-rumelka); padding: clamp(20px, 1.8vw, 40px) clamp(20px, 2vw, 44px); }
body .ds-hero .cmc-b-column:last-child h3.cmc-b-heading { color: var(--ds-horcice); margin-bottom: 0.5em; }
body .ds-hero .cmc-b-column:last-child > p.cmc-b-paragraph { display: grid; grid-template-columns: 6.6em minmax(0, 1fr); gap: 0.8em; margin: 0; padding: 0.7em 0; border-top: 1px dashed rgba(246, 239, 226, .3); color: var(--ds-svetly); line-height: 1.4; }
body .ds-hero .cmc-b-column:last-child > p.cmc-b-paragraph strong { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ds-horcice); white-space: nowrap; }
body .ds-hero .cmc-b-column:last-child :where(p).cmc-b-button { margin-top: 0.6em; }

/* ---------- premiera: plakat se stinem, datum ve verzalkach ---------- */
body .ds-premiera .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); align-items: center; gap: clamp(28px, 6vw, 160px); }
body .ds-premiera .cmc-b-image img { box-shadow: clamp(10px, 1vw, 22px) clamp(10px, 1vw, 22px) 0 var(--ds-rumelka); border: 2px solid var(--ds-text); }
body .ds-premiera h2.cmc-b-heading { font-size: clamp(46px, 5.6vw, 150px); line-height: 1.2; }
body .ds-premiera .cmc-b-column:last-child > p.cmc-b-paragraph:nth-child(3) { font-size: clamp(19px, 1.2vw, 28px); max-width: 44ch; color: var(--ds-text); }
body .ds-premiera .cmc-b-column:last-child > p.cmc-b-paragraph:nth-child(4) { margin: 1.2em 0 0.5em; padding: 0.8em 0; border-top: 2px solid var(--ds-text); border-bottom: 2px solid var(--ds-text); font-family: var(--ds-nadpis-rodina); font-stretch: 85%; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ds-text); }
body .ds-premiera .cmc-b-column:last-child > p.cmc-b-paragraph:nth-child(4) strong { color: var(--ds-rumelka-tmava); font-size: 1.5em; margin-right: 0.4em; }
body .ds-premiera .cmc-b-column:last-child > p.cmc-b-paragraph:nth-child(5) { font-size: 0.78em; }

/* ---------- program: vstupenky s perforaci ---------- */
body .ds-program > .cmc-b-container > .cmc-b-columns {
  margin: clamp(12px, 1vw, 20px) 0 0; gap: 0; grid-template-columns: minmax(150px, 2fr) minmax(0, 7fr) auto; align-items: stretch;
  background: var(--ds-papir); border: 2px solid var(--ds-text);
  -webkit-mask: radial-gradient(circle at 0 50%, transparent 12px, #000 12.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 50%, transparent 12px, #000 12.5px) right / 51% 100% no-repeat;
  mask: radial-gradient(circle at 0 50%, transparent 12px, #000 12.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 50%, transparent 12px, #000 12.5px) right / 51% 100% no-repeat;
}
body .ds-program > .cmc-b-container > h2.cmc-b-heading + .cmc-b-columns { margin-top: clamp(20px, 1.8vw, 40px); }
body section.ds-program.ds-pozadi-krem > .cmc-b-container > .cmc-b-columns { background: #fff; }
body .ds-program .cmc-b-column { padding: clamp(16px, 1.4vw, 30px) clamp(20px, 1.8vw, 40px); display: flex; flex-direction: column; justify-content: center; }
body .ds-program .cmc-b-column:first-child { border-right: 2px dashed var(--ds-text); }
body .ds-program .cmc-b-column:first-child > p.cmc-b-paragraph { margin: 0; font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.82em; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ds-text-jemny); line-height: 1.2; }
body .ds-program .cmc-b-column:first-child > p.cmc-b-paragraph strong { display: block; font-size: 2.2em; font-stretch: 75%; letter-spacing: 0.01em; color: var(--ds-rumelka-tmava); line-height: 1; margin-bottom: 0.1em; }
body .ds-program .cmc-b-column:nth-child(2) h3.cmc-b-heading { margin-bottom: 0.25em; }
body .ds-program .cmc-b-column:nth-child(2) > p.cmc-b-paragraph { margin: 0; font-size: 0.92em; }
body .ds-program .cmc-b-column:last-child { padding-right: clamp(28px, 2.4vw, 52px); }
body .ds-program .cmc-b-column:last-child :where(p).cmc-b-button { margin: 0; }
body .ds-program > .cmc-b-container > p.cmc-b-paragraph:not(:first-child) { margin: 1.4em 0 0; font-size: 0.8em; }
body .ds-program > .cmc-b-container > h2.cmc-b-heading:first-child { margin-bottom: 0; }

/* ---------- soubor: cisla na tmavem ---------- */
body .ds-soubor .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); align-items: center; }
body .ds-soubor .cmc-b-column:nth-child(2) > p.cmc-b-paragraph { margin: 0; padding: 0.55em 0; border-bottom: 1px solid rgba(246, 239, 226, .22); font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.86em; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1.2; color: var(--ds-svetly-jemny); }
body .ds-soubor .cmc-b-column:nth-child(2) > p.cmc-b-paragraph strong { display: block; font-size: clamp(44px, 3.8vw, 96px); font-stretch: 75%; letter-spacing: 0; line-height: 1.1; margin-bottom: 0.08em; color: var(--ds-horcice); }
body .ds-soubor .cmc-b-image img { border: 2px solid var(--ds-svetly); }

/* ---------- galerie ---------- */
body .cmc-b-gallery { display: grid; grid-template-columns: repeat(var(--cmc-gallery-cols, 3), minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 32px); margin: clamp(22px, 2.2vw, 48px) 0 0; }
body .cmc-b-gallery figure { margin: 0; padding: 0; border: 0; background: none; }
body .cmc-b-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border: 2px solid var(--ds-text); border-radius: 0; }
body .cmc-b-gallery figcaption { display: flex; align-items: center; gap: 0.6em; }
body .cmc-b-gallery figcaption::before { content: ""; width: 0.7em; height: 0.7em; background: var(--ds-rumelka); flex: none; }
body .ds-galerie > .cmc-b-container > h2.cmc-b-heading { max-width: 18ch; }

/* ---------- pas pro media (ultramarin) ---------- */
body .ds-media .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; }
body .ds-media .cmc-b-column:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 16px; }
body .ds-media .cmc-b-column:last-child :where(p).cmc-b-button { margin: 0; }
body .ds-media a.cmc-b-button-primary { background: var(--ds-horcice); border-color: var(--ds-horcice); color: var(--ds-svestka); }
body .ds-media a.cmc-b-button-primary:hover { background: var(--ds-svetly); border-color: var(--ds-svetly); color: var(--ds-svestka); }
body .ds-media .cmc-b-paragraph { max-width: 56ch; margin: 0; }

/* ---------- vyzva (rumelka) ---------- */
body .ds-vyzva { text-align: center; }
body .ds-vyzva h2.cmc-b-heading { font-size: clamp(44px, 5.8vw, 156px); line-height: 1.2; max-width: 16ch; margin-left: auto; margin-right: auto; }
body .ds-vyzva > .cmc-b-container > p.cmc-b-paragraph { max-width: 52ch; margin-left: auto; margin-right: auto; font-size: clamp(19px, 1.2vw, 28px); font-style: italic; }
body .ds-vyzva :where(p).cmc-b-button { margin-right: 0; }
body .ds-vyzva a.cmc-b-button-primary { background: var(--ds-svestka); border-color: var(--ds-svestka); color: var(--ds-svetly); }
body .ds-vyzva a.cmc-b-button-primary:hover { background: var(--ds-svetly); border-color: var(--ds-svetly); color: var(--ds-svestka); }

/* ---------- zahlavi podstranek: tmave s rampou svetel ---------- */
body section.ds-zahlavi::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background: radial-gradient(circle, var(--ds-horcice) 0 3px, transparent 3.5px) 0 50% / 22px 12px repeat-x; opacity: .9; }
body .ds-zahlavi h1.cmc-b-heading { max-width: 16ch; }
body .ds-zahlavi > .cmc-b-container > p.cmc-b-paragraph:nth-child(3) { max-width: 60ch; font-size: clamp(19px, 1.2vw, 28px); font-style: italic; }

/* ---------- zajezdy ---------- */
body .ds-zajezdy .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: start; }
body .ds-zajezdy .cmc-b-column:first-child > p.cmc-b-paragraph:nth-child(3) { max-width: 50ch; }
body .ds-zajezdy .cmc-b-column:last-child { border-left: 2px solid var(--ds-rumelka); padding-left: clamp(20px, 2.4vw, 56px); }
body .ds-zajezdy .cmc-b-column:last-child h3.cmc-b-heading { color: var(--ds-horcice); margin-bottom: 0.2em; }
body .ds-zajezdy .cmc-b-column:last-child > p.cmc-b-paragraph { padding-bottom: 1em; border-bottom: 1px dashed rgba(246, 239, 226, .28); }
body .ds-zajezdy .cmc-b-column:last-child > p.cmc-b-paragraph:last-child { border-bottom: 0; padding-bottom: 0; }

/* ---------- repertoar a soubory ke stazeni: karty s ramem ---------- */
body :is(.ds-repertoar, .ds-stazeni) .cmc-b-columns { gap: clamp(14px, 1.6vw, 36px); }
body :is(.ds-repertoar, .ds-stazeni) .cmc-b-column { background: var(--ds-krem); border: 2px solid var(--ds-text); border-top-width: 8px; padding: clamp(20px, 1.8vw, 40px); }
body .ds-repertoar .cmc-b-column { border-top-color: var(--ds-rumelka); }
body .ds-stazeni .cmc-b-column { border-top-color: var(--ds-modra); display: flex; flex-direction: column; }
body .ds-stazeni .cmc-b-column > p.cmc-b-paragraph { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.82em; letter-spacing: 0.08em; text-transform: uppercase; }
body .ds-stazeni .cmc-b-column :where(p).cmc-b-button { margin: auto 0 0; padding-top: 0.6em; }
body :is(.ds-repertoar, .ds-stazeni) > .cmc-b-container > p.cmc-b-paragraph { margin: 1.4em 0 0; font-size: 0.8em; }

/* ---------- tiskova zprava ---------- */
body .ds-zprava .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: start; gap: clamp(28px, 5vw, 140px); }
body .ds-zprava .cmc-b-column:first-child > p.cmc-b-paragraph { max-width: 68ch; color: var(--ds-text); }
body .ds-zprava .cmc-b-column:first-child > p.cmc-b-paragraph:first-child { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.8em; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ds-text-jemny); padding-bottom: 0.8em; border-bottom: 2px solid var(--ds-text); }
body .ds-zprava .cmc-b-column:first-child > p.cmc-b-paragraph:nth-child(3) { font-size: 1.1em; font-weight: 700; }
body .ds-zprava .cmc-b-column:first-child > p.cmc-b-paragraph:last-child strong { overflow-wrap: anywhere; }
body .ds-zprava .cmc-b-image img { border: 2px solid var(--ds-text); box-shadow: clamp(8px, 0.8vw, 18px) clamp(8px, 0.8vw, 18px) 0 var(--ds-modra); }

/* ---------- vstupne: radky s teckovanou linkou ---------- */
body .ds-cenik .cmc-b-columns { margin: 0; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
body .ds-cenik .cmc-b-column:first-child > p.cmc-b-paragraph:last-child { font-size: 0.8em; }
body .ds-cenik .cmc-b-column:last-child { background: #fff; border: 2px solid var(--ds-text); padding: clamp(8px, 0.8vw, 18px) clamp(20px, 2vw, 44px); }
body .ds-cenik .cmc-b-column:last-child > p.cmc-b-paragraph { display: flex; justify-content: space-between; align-items: baseline; gap: 1.2em; margin: 0; padding: 0.95em 0; border-top: 2px dotted var(--ds-okraj); color: var(--ds-text); }
body .ds-cenik .cmc-b-column:last-child > p.cmc-b-paragraph:first-child { border-top: 0; }
body .ds-cenik .cmc-b-column:last-child > p.cmc-b-paragraph strong { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 1.3em; letter-spacing: 0.02em; white-space: nowrap; color: var(--ds-rumelka-tmava); }

/* ---------- jak koupit: velka obrysova cisla ---------- */
body .ds-nakup .cmc-b-column > p.cmc-b-paragraph:first-child { margin: 0 0 0.1em; font-family: var(--ds-nadpis-rodina); font-stretch: 75%; font-size: clamp(64px, 5.6vw, 140px); font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--ds-rumelka-tlacitko); }
body .ds-nakup .cmc-b-column { border-top: 2px solid var(--ds-text); padding-top: 1em; }
body .ds-nakup .cmc-b-column > p.cmc-b-paragraph:last-child { overflow-wrap: anywhere; }
body .ds-nakup > .cmc-b-container > p.cmc-b-paragraph { margin: 1.6em 0 0; font-size: 0.8em; }

/* ---------- sal a adresa: obrazek a text ---------- */
body :is(.ds-sal, .ds-adresa) .cmc-b-columns { margin: 0; align-items: center; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
body .ds-sal .cmc-b-image img { border: 2px solid var(--ds-svetly); }
body .ds-sal .cmc-b-column:last-child > p.cmc-b-paragraph { position: relative; margin: 0; padding: 0.8em 0 0.8em 1.6em; border-top: 1px solid rgba(246, 239, 226, .22); max-width: 52ch; }
body .ds-sal .cmc-b-column:last-child > p.cmc-b-paragraph::before { content: ""; position: absolute; left: 0; top: 1.3em; width: 0.6em; height: 0.6em; background: var(--ds-horcice); }
body .ds-adresa .cmc-b-columns { align-items: start; }
body .ds-adresa .cmc-b-column:first-child > p.cmc-b-paragraph strong { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: clamp(22px, 1.6vw, 40px); letter-spacing: 0.02em; color: var(--ds-rumelka-tmava); overflow-wrap: anywhere; }
body .ds-adresa .cmc-b-column:first-child > p.cmc-b-paragraph:last-child { font-size: 0.8em; }
body .ds-adresa .cmc-b-column:last-child { border-left: 2px solid var(--ds-text); padding-left: clamp(20px, 2.4vw, 56px); }
body .ds-adresa .cmc-b-column:last-child > p.cmc-b-paragraph { overflow-wrap: anywhere; }

/* ---------- paticka: tmave svestkova s obrim nazvem ---------- */
body .pmc-paticka { background: var(--ds-svestka); }
body section.ds-paticka { border-top: 6px solid var(--ds-rumelka); }
body .ds-paticka > .cmc-b-container { display: flex; flex-wrap: wrap; align-items: center; column-gap: clamp(18px, 2.4vw, 48px); }
body .ds-paticka > .cmc-b-container > p.cmc-b-paragraph:first-child { flex: 0 0 100%; margin: 0 0 0.1em; font-size: clamp(64px, 12vw, 300px); line-height: 1; }
body .ds-paticka > .cmc-b-container > p.cmc-b-paragraph:first-child strong { font-family: var(--ds-nadpis-rodina); font-stretch: 75%; font-size: 1em; line-height: 1; font-weight: 800; text-transform: uppercase; letter-spacing: 0.01em; color: var(--ds-svetly); }
body .ds-paticka > .cmc-b-container > .cmc-b-columns { flex: 0 0 100%; margin: clamp(16px, 1.6vw, 36px) 0 clamp(24px, 2.4vw, 52px); padding: clamp(24px, 2.4vw, 52px) 0; border-top: 1px solid rgba(246, 239, 226, .2); border-bottom: 1px solid rgba(246, 239, 226, .2); grid-template-columns: minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr); }
body .ds-paticka .cmc-b-paragraph { font-size: 0.88em; }
body .ds-paticka .cmc-b-column > p.cmc-b-paragraph:first-child { margin-bottom: 0.5em; }
body .ds-paticka .cmc-b-column > p.cmc-b-paragraph:first-child strong { font-family: var(--ds-nadpis-rodina); font-stretch: 85%; font-size: 0.9em; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ds-horcice); }
body .ds-paticka .cmc-b-column:nth-child(2) > p.cmc-b-paragraph:last-child { overflow-wrap: anywhere; }
body .ds-paticka :where(p).cmc-b-button { margin: 0.3em 0; }
body .ds-paticka a.cmc-b-button-link { font-size: 0.86em; color: var(--ds-svetly); }
body .ds-paticka a.cmc-b-button-link::after { display: none; }
body .ds-paticka a.cmc-b-button-link:hover { color: var(--ds-horcice); }
body .ds-paticka > .cmc-b-container > p.cmc-b-paragraph:last-child { flex: 0 0 100%; margin: 1.6em 0 0; padding-right: max(0px, calc(100% - 110ch)); font-size: 0.74em; color: #bfaebb; }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  body .cmc-b-columns.cmc-b-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  body .ds-hlavicka > .cmc-b-container { display: flex; flex-wrap: wrap; align-items: center; column-gap: 22px; row-gap: 2px; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(1) { flex: 1 1 auto; }
  body .ds-hlavicka > .cmc-b-container > p.cmc-b-paragraph { display: none; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(7) { order: 1; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(n+3):nth-child(-n+6) { order: 2; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(3) { flex-basis: auto; }
  body .ds-hlavicka > .cmc-b-container::after { content: ""; order: 1; flex: 0 0 100%; }
  body .ds-hero .cmc-b-columns, body .ds-soubor .cmc-b-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body .ds-soubor .cmc-b-column:last-child { grid-column: 1 / -1; }
  body .cmc-b-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .ds-paticka > .cmc-b-container > .cmc-b-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body .ds-media .cmc-b-columns { grid-template-columns: minmax(0, 1fr); }
  body .ds-media .cmc-b-column:last-child { justify-content: flex-start; }
}

/* ---------- mobil ---------- */
@media (max-width: 760px) {
  body .cmc-b-columns.cmc-b-cols-2, body .cmc-b-columns.cmc-b-cols-3, body .cmc-b-columns.cmc-b-cols-4,
  body :is(.ds-hero, .ds-premiera, .ds-soubor, .ds-zajezdy, .ds-zprava, .ds-cenik, .ds-sal, .ds-adresa, .ds-media) .cmc-b-columns,
  body .ds-paticka > .cmc-b-container > .cmc-b-columns { grid-template-columns: 1fr; }
  body .cmc-b-columns { row-gap: 24px; }
  body .cmc-b-gallery { grid-template-columns: 1fr; }
  body .pmc-hlavicka { position: relative; }
  body .ds-hlavicka > .cmc-b-container { column-gap: 18px; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(1) { flex: 1 0 100%; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(1) a.cmc-b-button-link { font-size: 34px; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(7) { flex: 1 0 100%; margin: 6px 0 4px; }
  body .ds-hlavicka > .cmc-b-container > p:nth-child(7) a.cmc-b-button-primary { width: 100%; font-size: 15px; }
  body .ds-hlavicka a.cmc-b-button-link { font-size: 15px; }
  body section.ds-hero { min-height: 0; display: block; padding-top: 0; }
  body .ds-hero > .cmc-b-container > figure { position: relative; inset: auto; margin: 0 calc(-1 * var(--ds-bok)) 28px; }
  body .ds-hero > .cmc-b-container > figure img { height: auto; aspect-ratio: 16 / 10; }
  body .ds-hero > .cmc-b-container > figure::after { background: linear-gradient(to top, rgba(30, 16, 36, 1) 0, rgba(30, 16, 36, 0) 45%); }
  body .ds-hero .cmc-b-column:last-child > p.cmc-b-paragraph { grid-template-columns: 1fr; gap: 0.1em; }
  body .ds-program > .cmc-b-container > .cmc-b-columns { grid-template-columns: 1fr; row-gap: 0; -webkit-mask: none; mask: none; }
  body .ds-program .cmc-b-column:first-child { border-right: 0; border-bottom: 2px dashed var(--ds-text); padding-bottom: 12px; }
  body .ds-program .cmc-b-column:first-child > p.cmc-b-paragraph strong { display: inline; font-size: 1.7em; margin-right: 0.3em; }
  body .ds-program .cmc-b-column:last-child { padding-top: 0; padding-right: clamp(20px, 1.8vw, 40px); }
  body .ds-zajezdy .cmc-b-column:last-child, body .ds-adresa .cmc-b-column:last-child { border-left: 0; padding-left: 0; border-top: 2px solid currentColor; padding-top: 20px; }
  body .ds-cenik .cmc-b-column:last-child > p.cmc-b-paragraph { flex-wrap: wrap; gap: 0.2em 1em; }
  body .ds-cenik .cmc-b-column:last-child > p.cmc-b-paragraph strong { white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  body a.cmc-b-button, body a.cmc-b-button-link::after { transition: none; }
}
