/* ReserveAndPay – vzhled dle grafického manuálu „s lehkou hlavou“ (v1, říjen 2026).
   Vše je řízeno CSS proměnnými – šablona webu je může přepsat (SWD kap. 14.1). */
:root {
	--rap-bg: #faf6ef;          /* podklad */
	--rap-bg-alt: #f0e8da;      /* druhý podklad */
	--rap-ink: #2e2a22;         /* text a nadpisy */
	--rap-ink-soft: #5c5e52;    /* doplňkový text */
	--rap-accent: #8c6423;      /* gold-deep – primární tlačítko, odkazy */
	--rap-accent-hover: #2e2a22;
	--rap-accent-text: #ffffff;
	--rap-accent-2: #6b3f4b;    /* plum – eyebrow, data akcí */
	--rap-line: #d6c3a0;        /* vlasové linky */
	--rap-error: #8a2e2b;
	--rap-error-bg: #f6e6e2;
	--rap-radius: 2px;
	--rap-font: "Work Sans", system-ui, sans-serif;
	--rap-font-heading: "Fraunces", Georgia, serif;
	--rap-max: 1120px;
	--rap-gold-light: #c9a86a;  /* vlny, dekor */
	--rap-gold: #b8862e;        /* sleva, slevový kupón */
	--rap-ok: #2e6b34;
	--rap-card-top: #7a8466;    /* náhradní plocha galerie – přechod tmavé karty */
	--rap-card-bottom: #1e1b16;
	--rap-on-dark: #faf6ef;
}

.rap-details, .rap-booking, .rap-event, .rap-program-view, .rap-calendar, .rap-upcoming { font-family: var(--rap-font); color: var(--rap-ink); }
/* Přehled akcí smí být širší než úzký textový sloupec šablony (až --rap-max), bez vodorovného posuvníku. */
.rap-program-view { --rap-w: max(100%, min(var(--rap-max), calc(100vw - 80px))); width: var(--rap-w); max-width: none; margin-left: calc((100% - var(--rap-w)) / 2); margin-right: calc((100% - var(--rap-w)) / 2); }

/* Eyebrow – verzálky, prostrkání, švestková */
.rap-eyebrow { font-family: var(--rap-font); font-size: 12.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--rap-accent-2); margin: 0 0 .35rem; }

/* Tlačítka: sloveso + šipka, rohy 2 px, hover do ink */
.rap-button { display: inline-block; background: var(--rap-accent); color: var(--rap-accent-text) !important; border: 1px solid var(--rap-accent); border-radius: var(--rap-radius); padding: .7rem 1.25rem; font-family: var(--rap-font); font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none !important; transition: background-color .2s, border-color .2s, color .2s; white-space: nowrap; }
.rap-button:hover, .rap-button:focus-visible { background: var(--rap-accent-hover); border-color: var(--rap-accent-hover); color: var(--rap-accent-text) !important; }
.rap-button--ghost { background: transparent; color: var(--rap-ink) !important; border-color: var(--rap-line); }
.rap-button--ghost:hover, .rap-button--ghost:focus-visible { background: transparent; color: var(--rap-accent) !important; border-color: var(--rap-accent); }
.rap-button:focus-visible, .rap-chip:focus-visible, .rap-switch__btn:focus-visible, .rap-calendar a:focus-visible { outline: 2px solid var(--rap-accent); outline-offset: 2px; }

/* Panel nástrojů: filtr + přepínač */
.rap-toolbar { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin: 0 0 1.5rem; }
.rap-filter { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.25rem; }
.rap-toolbar .rap-filter { margin: 0; }
.rap-chip { display: inline-block; padding: .4rem .85rem; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); font-size: 14px; color: var(--rap-ink) !important; text-decoration: none !important; background: transparent; }
.rap-chip:hover { border-color: var(--rap-accent); color: var(--rap-accent) !important; }
.rap-chip.is-active { background: var(--rap-accent); border-color: var(--rap-accent); color: var(--rap-accent-text) !important; }
.rap-switch { display: inline-flex; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); }
.rap-switch__btn { padding: .4rem 1rem; font-size: 14px; color: var(--rap-ink-soft) !important; text-decoration: none !important; }
.rap-switch__btn + .rap-switch__btn { border-left: 1px solid var(--rap-line); }
.rap-switch__btn.is-active { color: var(--rap-ink) !important; background: var(--rap-bg-alt); font-weight: 600; }

/* Seznam akcí – řádky oddělené vlasovou linkou */
.rap-list { border-top: 1px solid var(--rap-line); }
.rap-item { display: grid; grid-template-columns: 96px 1fr auto; gap: 1.5rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid var(--rap-line); }
.rap-item__date { display: flex; flex-direction: column; align-items: flex-start; color: var(--rap-accent-2); }
.rap-item__day { font-family: var(--rap-font-heading); font-weight: 500; font-size: 30px; line-height: 1; }
.rap-item__month { font-size: 12.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; margin-top: .35rem; }
.rap-item__title { font-family: var(--rap-font-heading); font-weight: 500; font-size: 24px; line-height: 1.2; margin: 0 0 .3rem; }
.rap-item__title a { color: var(--rap-ink) !important; text-decoration: none !important; }
.rap-item__title a:hover { color: var(--rap-accent) !important; }
.rap-item__meta { margin: 0; color: var(--rap-ink-soft); font-size: 15px; }
.rap-item__side { display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; text-align: right; }
.rap-item__price { margin: 0; font-family: var(--rap-font-heading); font-size: 20px; color: var(--rap-ink); }
.rap-item__free { margin: 0 0 .35rem; font-size: 14px; color: var(--rap-ink-soft); }
.rap-item__free--off { color: var(--rap-error); font-weight: 600; }
.rap-item--full .rap-item__title a, .rap-item--cancelled .rap-item__title a { color: var(--rap-ink-soft) !important; }
.rap-empty { color: var(--rap-ink-soft); padding: 1.5rem 0; }
.rap-calendar__services { margin: 0 0 1.5rem; }
/* Krátký přehled [reserveandpay_upcoming] – úvodní stránka */
.rap-upcoming__more { margin: 1.5rem 0 0; text-align: right; }

/* Kalendář */
.rap-calendar__head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 1rem; }
.rap-calendar__title { font-family: var(--rap-font-heading); font-weight: 500; font-size: 28px; margin: 0; text-transform: lowercase; }
.rap-calendar__title em { font-style: italic; color: var(--rap-accent); }
.rap-calendar__nav { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); color: var(--rap-ink) !important; text-decoration: none !important; font-size: 18px; }
.rap-calendar__nav:hover { border-color: var(--rap-accent); color: var(--rap-accent) !important; }
.rap-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--rap-line); border-left: 1px solid var(--rap-line); }
.rap-calendar__wd { padding: .5rem; font-size: 12.5px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: var(--rap-ink-soft); border-right: 1px solid var(--rap-line); border-bottom: 1px solid var(--rap-line); }
.rap-calendar__day { min-height: 104px; padding: .4rem; border-right: 1px solid var(--rap-line); border-bottom: 1px solid var(--rap-line); display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.rap-calendar__num { font-size: 14px; color: var(--rap-ink-soft); }
.rap-calendar__day.is-outside { background: var(--rap-bg-alt); }
.rap-calendar__day.is-outside .rap-calendar__num { opacity: .5; }
.rap-calendar__day.is-today .rap-calendar__num { color: var(--rap-accent-text); background: var(--rap-accent); border-radius: var(--rap-radius); padding: 0 .35rem; align-self: flex-start; font-weight: 600; }
.rap-calendar__ev { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13px; line-height: 1.3; color: var(--rap-accent-2) !important; text-decoration: none !important; border-left: 2px solid var(--rap-accent-2); padding: .15rem .35rem; background: var(--rap-bg); overflow: hidden; }
.rap-calendar__ev:hover { color: var(--rap-accent) !important; border-left-color: var(--rap-accent); }
.rap-calendar__ev.is-cont { opacity: .75; }
.rap-calendar__ev.is-off { color: var(--rap-ink-soft) !important; border-left-color: var(--rap-line); text-decoration: line-through !important; }
.rap-calendar__day.is-past .rap-calendar__ev { opacity: .55; }
.rap-calendar__agenda { display: none; }
.rap-calendar__empty { display: block; }
.rap-agenda__day { padding: 1rem 0; border-bottom: 1px solid var(--rap-line); }
.rap-agenda__day.is-past { opacity: .6; }
.rap-agenda__ev { display: block; color: var(--rap-ink) !important; text-decoration: none !important; padding: .2rem 0; }
.rap-agenda__ev span { font-family: var(--rap-font-heading); font-size: 19px; }
.rap-agenda__ev small { display: block; color: var(--rap-ink-soft); font-size: 14px; }

/* Volné termíny služby */
.rap-slots__info { margin: 0 0 1.25rem; color: var(--rap-ink-soft); }
.rap-slots__info .rap-eyebrow { display: inline; margin-right: .5rem; }
.rap-slots__first { margin: -0.5rem 0 1.25rem; color: var(--rap-ink); font-weight: 500; }
.rap-slots__day { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; align-items: baseline; padding: 1rem 0; border-top: 1px solid var(--rap-line); }
.rap-slots__day:last-of-type { border-bottom: 1px solid var(--rap-line); }
.rap-slots__date { margin: 0; font-family: var(--rap-font-heading); font-size: 19px; color: var(--rap-accent-2); }
.rap-slots__times { display: flex; flex-wrap: wrap; gap: .5rem; }
.rap-slot { min-width: 64px; text-align: center; font-weight: 600; }
.rap-slot--group { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.2; padding-top: .45rem; padding-bottom: .45rem; }
.rap-slot__free { display: block; font-size: 12px; font-weight: 400; color: var(--rap-ink-soft); }
.rap-slot--group:hover .rap-slot__free, .rap-slot--group:focus .rap-slot__free { color: inherit; }
.rap-slots__nav { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 1.25rem; }

/* Detail akce */
.rap-details { background: var(--rap-bg-alt); border: 1px solid var(--rap-line); border-radius: var(--rap-radius); padding: 1.5rem 1.75rem; margin: 0 0 2rem; }
.rap-details__when { font-family: var(--rap-font-heading); font-size: 22px; color: var(--rap-accent-2); margin: 0 0 1rem; }
.rap-details dl, .rap-pay { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.25rem; margin: 0; }
.rap-details dt, .rap-pay dt { color: var(--rap-ink-soft); }
.rap-details dd, .rap-pay dd { margin: 0; }
.rap-details small { color: var(--rap-ink-soft); }
.rap-details__cta { margin: 1.25rem 0 0; }
.rap-program { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--rap-line); }
.rap-program p:last-child { margin-bottom: 0; }
.rap-back { margin: 1.25rem 0 0; font-size: 14px; }
.rap-back a, .rap-check a { color: var(--rap-accent) !important; }

/* Rezervační formulář */
.rap-booking { margin: 2.5rem 0; padding-top: 2rem; border-top: 1px solid var(--rap-line); }
.rap-booking__title, .rap-success h2 { font-family: var(--rap-font-heading); font-weight: 500; color: var(--rap-ink); margin: 0 0 1.25rem; }
.rap-form { display: flex; flex-wrap: wrap; gap: 0 1rem; max-width: 640px; }
.rap-form > p, .rap-form > div { flex: 1 1 100%; margin: 0 0 1rem; }
.rap-company { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.rap-company[hidden] { display: none; }
.rap-company > p { flex: 1 1 100%; margin: 0 0 1rem; }
.rap-field--half { flex: 1 1 calc(50% - .5rem) !important; }
.rap-field label { display: block; font-weight: 600; font-size: 15px; margin-bottom: .3rem; }
.rap-field input, .rap-field textarea { width: 100%; box-sizing: border-box; padding: .65rem .75rem; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); font: inherit; color: var(--rap-ink); background: var(--rap-bg); box-shadow: none; }
.rap-field input:focus, .rap-field textarea:focus { outline: 2px solid var(--rap-accent); outline-offset: 0; border-color: var(--rap-accent); }
.rap-field small, .rap-small { color: var(--rap-ink-soft); font-size: 14px; }
.rap-check label { display: flex; gap: .55rem; align-items: flex-start; font-size: 15px; }
.rap-check input { margin-top: .25em; accent-color: var(--rap-accent); }
.rap-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rap-summary { color: var(--rap-ink-soft); font-size: 15px; }

.rap-errors { background: var(--rap-error-bg); border-left: 2px solid var(--rap-error); padding: .85rem 1rem; margin-bottom: 1.25rem; color: var(--rap-ink); }
.rap-errors ul { margin: 0; padding-left: 1.1rem; }
.rap-notice { background: var(--rap-bg-alt); border-left: 2px solid var(--rap-accent-2); padding: .85rem 1rem; }
.rap-success { background: var(--rap-bg-alt); border: 1px solid var(--rap-line); border-radius: var(--rap-radius); padding: 1.5rem 1.75rem; }
.rap-success .rap-pay { margin: 1rem 0; }

/* Pod 860 px vše do jednoho sloupce, kalendář jako seznam dnů */
@media (max-width: 860px) {
	.rap-item { grid-template-columns: 72px 1fr; gap: 1rem; }
	.rap-item__side { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; text-align: left; }
	.rap-item__free { margin: 0; }
	.rap-item__day { font-size: 24px; }
	.rap-item__title { font-size: 21px; }
	.rap-calendar__grid { display: none; }
	.rap-calendar__agenda { display: block; border-top: 1px solid var(--rap-line); }
	.rap-calendar__empty { display: none; }
	.rap-toolbar { flex-direction: column; align-items: flex-start; }
	.rap-details { padding: 1.25rem; }
	.rap-field--half { flex-basis: 100% !important; }
	.rap-slots__day { grid-template-columns: 1fr; gap: .5rem; }
}
@media (prefers-reduced-motion: reduce) { .rap-button, .rap-chip { transition: none; } }

/* Způsob platby (převod předvybraný, hotovost doplňková) */
.rap-pay-choice { border: 1px solid var(--rap-line); border-radius: var(--rap-radius, 2px); padding: .75rem 1rem; margin: 0 0 1rem; }
.rap-pay-choice legend { padding: 0 .35rem; font-weight: 600; }
.rap-radio { display: flex; gap: .6rem; align-items: flex-start; margin: .4rem 0; cursor: pointer; }
.rap-radio input { margin-top: .3rem; accent-color: var(--rap-accent); }
.rap-radio small { display: block; color: var(--rap-ink-soft); font-size: 13px; }

/* Potvrzení: platební údaje s QR kódem */
.rap-paybox { display: flex; gap: 1.5rem; align-items: flex-start; flex-wrap: wrap; background: var(--rap-bg); border: 1px solid var(--rap-line); padding: 1.25rem; margin: 1rem 0; }
.rap-paybox .rap-pay { margin: 0; flex: 1 1 240px; min-width: 0; }
.rap-paybox .rap-pay dd { overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.rap-success { padding: 1.25rem 1rem; }
	.rap-paybox { padding: 1rem; justify-content: center; }
	.rap-paybox .rap-pay { grid-template-columns: 1fr; gap: 0; }
	.rap-paybox .rap-pay dt { font-size: 13px; margin-top: .5rem; }
}
.rap-qr { margin: 0; text-align: center; }
.rap-qr img { display: block; width: 180px; height: 180px; background: #fff; }
.rap-qr figcaption { font-size: 12px; color: var(--rap-ink-soft); margin-top: .35rem; }
.rap-qr-full { flex: 1 1 100%; display: flex; gap: 1rem; align-items: center; border-top: 1px solid var(--rap-line); padding-top: 1rem; }
.rap-qr-full img { flex: 0 0 auto; background: #fff; }
.rap-qr-full p { margin: 0; }

/* ==========================================================================
   Detail akce – vzhled s galerií (Nastavení → Detail akce)
   Záhlaví: text vlevo, fotky vpravo. Pod dechovou linkou popis vlevo a rezervační karta vpravo.
   Pod 860 px jeden sloupec, fotky nahoře.
   ========================================================================== */
.rap-event { --rap-w: max(100%, min(var(--rap-max), calc(100vw - 64px))); width: var(--rap-w); max-width: none; margin-left: calc((100% - var(--rap-w)) / 2); margin-right: calc((100% - var(--rap-w)) / 2); line-height: 1.6; }
.rap-event *, .rap-event *::before, .rap-event *::after { box-sizing: border-box; }
.rap-detail-full .featured-image.page-header-image-single, .rap-detail-full .page-header-image-single { display: none; }

.rap-event__hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: start; }
.rap-event__intro { display: flex; flex-direction: column; gap: 18px; min-width: 0; padding-top: 8px; }
.rap-event__intro > * { margin: 0; }
.rap-event .rap-back { margin: 0; }
.rap-event__title { font-family: var(--rap-font-heading); font-weight: 500; font-size: clamp(34px, 5vw, 56px); line-height: 1.06; color: var(--rap-ink); text-wrap: balance; margin: 0; }
.rap-event__lead { font-size: 18px; color: var(--rap-ink-soft); max-width: 36ch; }
.rap-event__facts { display: grid; grid-template-columns: max-content 1fr; gap: 10px 18px; margin: 4px 0 0; padding: 18px 0; border-top: 1px solid var(--rap-line); border-bottom: 1px solid var(--rap-line); }
.rap-event__facts dt { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--rap-ink-soft); padding-top: 3px; }
.rap-event__facts dd { margin: 0; font-variant-numeric: tabular-nums; min-width: 0; }
.rap-event__facts dd small { display: block; color: var(--rap-ink-soft); font-size: 14px; }
.rap-event__facts a { color: var(--rap-accent) !important; }
.rap-event__when { color: var(--rap-accent-2); font-weight: 500; }
.rap-event__cta { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.rap-event__price { margin: 0; font-family: var(--rap-font-heading); font-size: 30px; line-height: 1.1; color: var(--rap-ink); font-variant-numeric: tabular-nums; }
.rap-event__price small { font-family: var(--rap-font); font-size: 14px; color: var(--rap-ink-soft); }
.rap-event__full { font-weight: 600; color: var(--rap-accent-2); letter-spacing: .14em; text-transform: uppercase; font-size: 12.5px; }
.rap-event--cancelled .rap-event__when { text-decoration: line-through; color: var(--rap-ink-soft); }

/* Galerie – velká fotka 4:3 a čtvercové náhledy; fotky z Knihovny médií */
.rap-gallery { display: grid; gap: 10px; min-width: 0; }
.rap-gallery__main { position: relative; margin: 0; aspect-ratio: 4 / 3; max-width: 100%; border-radius: var(--rap-radius); overflow: hidden; background: linear-gradient(180deg, var(--rap-card-top), var(--rap-card-bottom)); }
.rap-gallery__main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rap-gallery__main figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 14px 10px; font-size: 13px; color: var(--rap-on-dark); background: linear-gradient(transparent, rgba(30, 27, 22, .6)); }
.rap-gallery__main figcaption[hidden] { display: none; }
.rap-gallery__waves { position: absolute; right: -6%; bottom: -6%; width: 72%; fill: none; stroke: var(--rap-gold-light); stroke-width: 1.3; stroke-linecap: round; opacity: .55; }
.rap-gallery__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 10px; }
.rap-gallery__thumb { display: block; aspect-ratio: 1 / 1; border-radius: var(--rap-radius); overflow: hidden; opacity: .7; transition: opacity .2s; }
.rap-gallery__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rap-gallery__thumb:hover, .rap-gallery__thumb[aria-current="true"] { opacity: 1; }
.rap-gallery__thumb[aria-current="true"] { box-shadow: 0 0 0 1px var(--rap-accent); }
.rap-gallery__thumb:focus-visible { outline: 2px solid var(--rap-accent); outline-offset: 2px; opacity: 1; }

/* Dechová linka – podpis značky, dýchá v cyklu 6,5 s */
.rap-breath { display: flex; justify-content: center; padding: 56px 0 0; }
.rap-breath svg { width: 220px; height: 28px; overflow: visible; }
.rap-breath path { fill: none; stroke: var(--rap-accent); stroke-width: 1.4; stroke-linecap: round; transform-origin: center; animation: rap-breathe 6.5s ease-in-out infinite; }
@keyframes rap-breathe { 0%, 100% { transform: scaleY(.55); } 50% { transform: scaleY(1); } }

/* Popis a rezervační karta */
.rap-event__body { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 64px; align-items: start; padding: 56px 0 0; }
.rap-event__desc { min-width: 0; }
.rap-event__desc > :first-child { margin-top: 0; }
.rap-event__desc p, .rap-event__desc li { max-width: 65ch; }
.rap-event__desc .rap-program { margin-top: 2rem; }
.rap-event__aside { position: sticky; top: 24px; min-width: 0; }
.admin-bar .rap-event__aside { top: 56px; }
.rap-booking--card { margin: 0; padding: 28px; border: 1px solid var(--rap-line); border-top: 1px solid var(--rap-line); border-radius: var(--rap-radius); background: var(--rap-bg-alt); }
.rap-booking--card .rap-booking__title { font-size: 28px; line-height: 1.15; margin: 0 0 1.25rem; }
.rap-booking--card .rap-eyebrow { margin-bottom: .25rem; }
.rap-booking--card .rap-form { max-width: none; }
.rap-booking--card .rap-field input, .rap-booking--card .rap-field textarea { background: var(--rap-bg); }
.rap-booking--card .rap-summary { padding: 12px 14px; border: 1px solid var(--rap-accent); border-radius: var(--rap-radius); background: var(--rap-bg); color: var(--rap-ink); }
.rap-booking--card .rap-button[type="submit"] { width: 100%; text-align: center; white-space: normal; padding-top: .85rem; padding-bottom: .85rem; }
.rap-booking--card .rap-success { padding: 0; border: 0; background: none; }
.rap-booking--card .rap-paybox { justify-content: center; }
.rap-booking--card .rap-success .rap-button { white-space: normal; }
.rap-seats { margin: 0 0 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--rap-line); }
.rap-seats__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; margin: 0 0 .6rem; font-size: 15px; }
.rap-seats__row strong { color: var(--rap-accent-2); font-weight: 600; }
.rap-seats__dots { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.rap-seats__dots i { width: 12px; height: 12px; border-radius: 50%; border: 1px solid var(--rap-accent); }
.rap-seats__dots i.is-taken { background: var(--rap-accent); }

@media (max-width: 860px) {
	.rap-event { --rap-w: 100%; }
	.rap-event__hero, .rap-event__body { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.rap-gallery { order: -1; }
	.rap-event__aside { position: static; }
	.rap-breath { padding-top: 40px; }
	.rap-event__body { padding-top: 40px; }
}
@media (max-width: 480px) {
	.rap-booking--card { padding: 20px 16px; }
	.rap-event__facts { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.rap-event__facts dd { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) { .rap-breath path { animation: none; } .rap-gallery__thumb { transition: none; } }

/* Slevy (0.8.0) */
/* Sleva za včasnou rezervaci: cena po slevě zlatě a stejně velkým písmem jako základní cena, podmínka menším písmem – vše ke slevě zlatě (gold-deep, kontrast 4,9 : 1). */
.rap-early-price { color: var(--rap-accent); font: inherit; font-weight: inherit; white-space: nowrap; }
.rap-early { color: var(--rap-accent); font-family: var(--rap-font); font-size: .85em; font-weight: 500; white-space: normal; }
.rap-item__price .rap-early-price, .rap-event__price .rap-early-price, .rap-details .rap-early-price { display: block; margin-top: .15rem; }
.rap-item__price .rap-early, .rap-event__price .rap-early, .rap-details .rap-early { display: block; font-size: 14px; line-height: 1.4; margin-top: .1rem; }
.rap-summary--early .rap-early-price { font-weight: 600; }
.rap-pay .rap-is-discount { color: var(--rap-accent); }
.rap-pay dd.rap-early-price { font-weight: 600; }
.rap-summary.rap-summary--early, .rap-booking--card .rap-summary.rap-summary--early { color: var(--rap-accent); border-color: var(--rap-gold); }
.rap-early-dot { display: inline-block; margin-left: .25em; color: var(--rap-gold); font-weight: 700; }
.rap-coupon__row { display: flex; gap: .5rem; align-items: stretch; flex-wrap: wrap; }
.rap-coupon__row input { flex: 1 1 10rem; min-width: 0; text-transform: uppercase; letter-spacing: .04em; }
.rap-coupon__row .rap-button { padding-top: .45rem; padding-bottom: .45rem; }
.rap-coupon__msg { display: block; min-height: 1.2em; margin-top: .3rem; }
.rap-coupon__msg.is-ok { color: var(--rap-ok); }
.rap-coupon__msg.is-err { color: var(--rap-error); }
/* Externí rezervační systém (SWD kap. 3.11) */
.rap-external__facts { display: grid; grid-template-columns: auto 1fr; gap: .35rem 1rem; margin: 1rem 0; }
.rap-external__facts dt { color: var(--rap-ink-soft); }
.rap-external__facts dd { margin: 0; }
.rap-external__facts .rap-early-price, .rap-external__facts .rap-early { display: block; }
.rap-external__note { color: var(--rap-ink-soft); font-size: 15px; margin: 0 0 1rem; }
.rap-external__cta .rap-button { display: block; width: 100%; text-align: center; box-sizing: border-box; }
/* Statistika – dashboard (SWD kap. 15.1, R1) */
.rap-stats { font-family: var(--rap-font); color: var(--rap-ink); max-width: var(--rap-max); margin: 0 auto; }
.rap-stats__filter { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; margin: 0 0 1.25rem; padding: 1rem; background: var(--rap-bg-alt); border-radius: var(--rap-radius); }
.rap-stats__filter label { display: flex; flex-direction: column; gap: .25rem; font-size: 13px; color: var(--rap-ink-soft); }
.rap-stats__filter input, .rap-stats__filter select { font: inherit; font-size: 15px; color: var(--rap-ink); padding: .45rem .6rem; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); background: var(--rap-bg); min-width: 0; max-width: 100%; }
.rap-stats__filter select { max-width: 22rem; }
.rap-stats__export { margin-left: auto; font-size: 14px; color: var(--rap-ink-soft); }
.rap-stats__export a { color: var(--rap-accent); }
.rap-stats__summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .75rem; margin: 0 0 1.25rem; }
.rap-stats__card { border: 1px solid var(--rap-line); border-radius: var(--rap-radius); padding: .75rem 1rem; background: var(--rap-bg); }
.rap-stats__card span { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--rap-accent-2); }
.rap-stats__card strong { display: block; font-family: var(--rap-font-heading); font-weight: 500; font-size: 1.5rem; margin-top: .2rem; font-variant-numeric: tabular-nums; }
.rap-stats__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 1px solid var(--rap-line); }
.rap-stats__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rap-stats__table th, .rap-stats__table td { padding: .55rem .6rem; border-bottom: 1px solid var(--rap-line); text-align: left; vertical-align: top; }
.rap-stats__table thead th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.rap-stats__table thead th a { color: var(--rap-accent-2); text-decoration: none; }
.rap-stats__table .is-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rap-stats__table tfoot th { font-weight: 600; background: var(--rap-bg-alt); }
.rap-stats__title small { display: block; color: var(--rap-ink-soft); font-size: 12px; }
.rap-stats__when { white-space: nowrap; }
.rap-stats__row.is-cancelled td { color: var(--rap-ink-soft); text-decoration: line-through; }
.rap-stats__row.is-cancelled .rap-stats__tag { text-decoration: none; }
.rap-stats__tag { display: inline-block; font-size: 11px; padding: 0 .4em; border: 1px solid var(--rap-gold); color: var(--rap-accent); border-radius: var(--rap-radius); margin-left: .3em; text-decoration: none; }
.rap-stats__tag--off { border-color: var(--rap-error); color: var(--rap-error); }
.rap-stats__tog { width: 1.8rem; padding-right: 0 !important; }
.rap-stats__toggle { background: none; border: 1px solid var(--rap-line); border-radius: var(--rap-radius); color: var(--rap-accent); cursor: pointer; width: 1.6rem; height: 1.6rem; line-height: 1; padding: 0; }
.rap-stats__bar { display: inline-block; vertical-align: middle; width: 3rem; height: .4rem; margin-right: .4rem; border-radius: 1px; background: linear-gradient(90deg, var(--rap-accent) var(--rap-occ), var(--rap-bg-alt) var(--rap-occ)); }
.rap-stats__detail > td { background: var(--rap-bg-alt); }
.rap-stats__sub { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--rap-bg); }
.rap-stats__sub th, .rap-stats__sub td { padding: .35rem .5rem; border-bottom: 1px solid var(--rap-line); text-align: left; }
.rap-stats__sub .is-free td { color: var(--rap-ink-soft); font-style: italic; }
.rap-stats__st { white-space: nowrap; }
.rap-stats__st--paid { color: var(--rap-ok); }
.rap-stats__st--overdue { color: var(--rap-error); }
.rap-stats__note { font-size: 13px; color: var(--rap-ink-soft); margin-top: .75rem; }
@media (max-width: 640px) {
	.rap-stats__export { margin-left: 0; width: 100%; }
	.rap-stats__filter label, .rap-stats__filter select { width: 100%; max-width: none; }
}
.rap-stats__table td code { white-space: nowrap; }
