/* ==========================================================================
   Exceptions — Resort Kostelec

   Odchylky od standardních komponent pro specifické kontexty.
   Sem patří přepsání chování komponenty v konkrétním místě webu.

   NEPATŘÍ sem:
   - nové komponenty → cards.css
   - změny platné globálně → base.css nebo cards.css
   - inline styly nebo stránkové CSS soubory

   Příklad správného použití:
   .homepage-tiles .stay-type-tile__name { font-size: 26px; }
   ========================================================================== */

/* Relax pas — poznámka pod cenami */
.relax-pas__note {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.6;
}

/* Restaurace — otevírací doba pod popisem karty */
.rest-card__hours {
  margin: 12px 0 0;
  font-size: 13px;
  color: var(--color-text);
}

/* Restaurace — jídelní lístek (denní menu + stálá nabídka) */
.rest-menu {
  max-width: 820px;
  margin: 0 auto;
}

.rest-menu__tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.rest-menu__tab {
  padding: 10px 22px;
  border: 1px solid rgba(131, 20, 39, 0.25);
  border-radius: 999px;
  background: var(--color-white);
  color: var(--color-text);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.rest-menu__tab:hover {
  border-color: var(--color-primary);
}

.rest-menu__tab.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.rest-menu__panel {
  display: none;
}

.rest-menu__panel.is-active {
  display: block;
}

.rest-menu__date {
  margin: 0 0 18px;
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-primary);
}

.rest-menu__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rest-menu__heading {
  margin: 22px 0 8px;
  font-family: "DM Serif Display", serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--color-primary);
}

.rest-menu__heading:first-child {
  margin-top: 0;
}

.rest-menu__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(63, 47, 37, 0.1);
}

.rest-menu__name {
  flex: 0 1 auto;
}

.rest-menu__code {
  color: var(--color-accent);
  font-weight: 600;
}

.rest-menu__weight {
  margin-left: 6px;
  font-size: 13px;
  opacity: 0.55;
}

.rest-menu__price {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--color-primary);
  white-space: nowrap;
}

.rest-menu__empty {
  padding: 28px;
  text-align: center;
  background: var(--color-white);
  border-radius: 10px;
  color: var(--color-text);
}

/* Poznámka pod tlačítkem (otevírací hodiny apod.) */

/* relaxacni-pobyty.html — relax-cta */
#relax-cta { background: #faf5ed; }

#relax-cta .c-card__actions {
  align-items: flex-start;
}

#relax-cta .c-card__actions > div,
#relax-cta .c-card__actions .button {
  min-width: 280px;
}

#relax-cta .c-card__actions > .button {
  text-align: center;
}

#relax-cta .button--stacked {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  line-height: 1.2;
}

#relax-cta .button--stacked span {
  font-size: 12px;
  font-weight: 600;
  opacity: 0.75;
}

@media (max-width: 640px) {
  #relax-cta .c-card__actions > div,
  #relax-cta .c-card__actions .button {
    width: 100%;
    min-width: 0;
  }
}

/* relaxacni-pobyty.html — banner vedle nadpisu balíčků */
.relax-packages__banner {
  flex: 0 0 auto;
  width: clamp(320px, 40vw, 600px);
  align-self: center;
}

.relax-packages__banner img {
  width: 100%;
  height: auto;
  display: block;
}

/* ubytovani.html — cenik: teplé béžové pozadí */
#cenik {
  background: #faf5ed;
}

/* scenic sekce: top, bez overlay, bílý nadpis (ubytovani + index + apartman) */
#rezervace.scenic,
#scenic-rezervace { background-position: center top; }
#rezervace .scenic__overlay,
#scenic-rezervace .scenic__overlay { background: none; }
#rezervace h2,
#scenic-rezervace h2 { color: #ffffff; }


/* ubytovani.html — cross-sell: pozadí béžové */
#cross-sell { background: #faf5ed; }

/* ubytovani.html — relax-pas: bílé pozadí */
.lodging-page #relax-pas { background: #ffffff; }

/* relax-pas: obrázek vždy celý (kompozice s kruhy nesmí být oříznutá) */
#relax-pas .c-card__img,
#relax-pas-sauna .c-card__img {
  overflow: visible;
  background: transparent;
}

#relax-pas .c-card__img img,
#relax-pas-sauna .c-card__img img {
  object-fit: contain;
  height: auto;
  width: 100%;
}

/* Doladění sekcí homepage. Selektory MUSÍ být scopované přes `.home` — holý
   `#ubytovani` přebíjel podbarvení stejně pojmenované kotvy na jiných stránkách
   (kategorie „Ubytování" v častých dotazech zůstávala bílá místo krémové).    */

/* index.html — ubytovani: bílé pozadí, větší odsazení nad h2 */
.home #ubytovani { background: #ffffff; }
.home #ubytovani::before { display: none; }
.home #ubytovani .c-story__copy h2 { margin-top: 24px; }

/* index.html — akce: bílé pozadí, bez dekorativního trojúhelníku */
.home #akce { background: #ffffff; }
.home #akce::before { display: none; }

/* index.html — specialni-nabidky: bez dekorativních tvarů */
.home #specialni-nabidky::before { display: none; }

/* index.html — nabidka: větší odsazení nahoře */
#nabidka { padding-top: 120px; }

/* index.html — nabidka: stay-type-grid napodobuje originální categories-grid layout */
#nabidka .stay-type-grid {
  grid-template-columns: 705px repeat(2, minmax(0, 1fr));
  grid-template-rows: 340px 340px;
}
#nabidka .stay-type-tile--wide {
  grid-column: span 1;
  grid-row: span 2;
  min-height: unset;
}
#nabidka .stay-type-tile {
  min-height: unset;
}

/* restaurace.html — zakládáme: bílé pozadí */
.restaurace-page #zakladame { background: #ffffff; }

/* procedury.html — vypnout dekorativní trojúhelníky */
.procedury-nabidka-page .section::before { display: none; }

/* procedury.html — číslo kroku v ikonovém boxu (Vzor 3) */
.procedury-nabidka-page .c-card__icon--num {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-accent);
}

/* sauna.html — pro-verejnost: odsazení CTA pod textem + menší spodní padding */
.sauna-page #pro-verejnost .section-heading .button { margin-top: 24px; }
.sauna-page #pro-verejnost { padding-bottom: 40px; }

/* procedury.html + balicky-procedur.html + výpis procedur — Důležitá upozornění: bílé pozadí, blok s červeným ohraničením */
.procedury-nabidka-page #upozorneni,
.balicky-procedur-page #upozorneni,
.balicky-procedur-detail-page #upozorneni,
.procedury-vypis-page #upozorneni { background: #ffffff; }

.procedury-nabidka-page #upozorneni .lodging-faq__inner,
.balicky-procedur-page #upozorneni .lodging-faq__inner,
.balicky-procedur-detail-page #upozorneni .lodging-faq__inner,
.procedury-vypis-page #upozorneni .lodging-faq__inner {
  border: 2px solid var(--color-primary);
  border-radius: 14px;
  padding: 28px 32px;
}

.procedury-nabidka-page .procedure-contact-lines {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.procedury-nabidka-page .procedure-contact-lines a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-text);
  font-weight: 700;
  text-decoration: none;
}

.procedury-nabidka-page .procedure-contact-lines svg {
  width: 20px;
  height: 20px;
  color: var(--color-primary);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.procedury-nabidka-page .procedure-contact-lines p {
  margin: 2px 0 0 30px;
  color: rgba(63, 47, 37, 0.62);
  font-size: 14px;
  line-height: 1.5;
}

.procedury-nabidka-page .procedure-type-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1080px) {
  .procedury-nabidka-page .procedure-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .procedury-nabidka-page .procedure-type-grid {
    grid-template-columns: 1fr;
  }
}

/* jak-to-u-nas-funguje.html — jak-to-funguje: gradient plynule končí bílou */
#jak-to-funguje {
  background: linear-gradient(180deg, #faf5ed 0%, #ffffff 100%);
}

/* firemni-akce.html — odsazení CTA baru pod výhodami */
#ekonomicka-vyhoda .c-crosssell {
  margin-top: 40px;
}

/* sauna.html — jemné doladění story, cen a facts baru */
#relax-v-arealu .c-story__copy > p:not(.eyebrow):not(.c-card__label),
#relax-pas-sauna .c-story__copy > p:not(.eyebrow):not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#relax-pas-sauna .c-story__img {
  order: 1;
}

#relax-pas-sauna .c-story__copy {
  order: 2;
}


#pro-verejnost .c-facts-bar {
  margin-bottom: 28px;
}

#pro-verejnost .c-card--inline {
  background: #faf5ed;
}

#pro-verejnost .c-card--inline .c-card__title {
  font-size: 15px;
  line-height: 1.35;
}

#faq-sauna .section-heading,
#faq-sauna .section-heading h2 {
  color: var(--color-primary);
}

/* sauna.html — Časté dotazy: krémové pozadí (přebíjí .lodging-faq {white}) */
.sauna-page #faq-sauna { background: #faf5ed; }

#relax-pas-sauna .relax-pass-includes,
#relax-pas .relax-pass-includes {
  list-style: none;
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
}

#relax-pas-sauna .relax-pass-includes li,
#relax-pas .relax-pass-includes li {
  position: relative;
  padding-left: 30px;
  color: #5a4535;
  font-weight: 600;
  line-height: 1.5;
}

#relax-pas-sauna .relax-pass-includes li::before,
#relax-pas .relax-pass-includes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #f7edf0;
  color: var(--color-primary);
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 700;
}

#pobyty-s-relaxem::before {
  display: none;
}

@media (max-width: 760px) {
  #relax-pas-sauna .c-story__img,
  #relax-pas-sauna .c-story__copy {
    order: initial;
  }

  /* relax-pas obrázek musí být vždy celý viditelný (kompozice s kruhy) */
  #relax-pas .c-card__img,
  #relax-pas-sauna .c-card__img {
    height: auto;
  }

  #relax-pas .c-card__img img,
  #relax-pas-sauna .c-card__img img {
    height: auto;
    object-fit: contain;
  }
}

/* bazeny.html — odsazení nad tlačítkem v relax-v-arealu */
#relax-v-arealu .c-story__copy .button {
  margin-top: 24px;
}

/* bazeny.html — odsazení pod galerií */
#galerie-bazeny {
  padding-bottom: 80px;
}

/* bazeny.html — důraz na ceník Relax pasu a napojení na pobyt */
.sauna-page .section::before,
.bazeny-page .section::before,
.koupaliste-page .section::before,
.sirny-pramen-page .section::before,
.golf-page .section::before,
.sportoviste-page .section::before,
.okoli-page .section::before,
.kaple-page .section::before,
.darkove-poukazy-page .section::before,
.faq-page .section::before,
.kontakt-page .section::before,
.aktuality-page .section::before,
.aktualita-detail-page .section::before,
.balicky-procedur-page .section::before,
.balicky-detail-page .section::before,
.procedury-vypis-page .section::before,
.rodiny-page .section::before,
.stay-detail-page .section::before {
  display: none;
}

#relax-v-arealu .c-story__copy > p:not(.eyebrow):not(.c-card__label),
#relax-pas .c-card__text {
  color: #5a4535;
}

#relax-pas .c-card__footer {
  align-items: flex-start;
}

#relax-pas .c-card__footer .button {
  min-height: 48px;
}

#faq-bazeny .section-heading,
#faq-bazeny .section-heading h2 {
  color: var(--color-primary);
}

#pobyty-s-relax-pasem::before {
  display: none;
}

/* special-pro-seniory.html (detail balíčku) — detail balíčku bez klasického hero */
.package-detail-page .package-detail-intro {
  padding-bottom: 64px;
}

.package-detail-page .package-detail-intro > .container {
  width: var(--container);
  max-width: none;
}

.package-detail-page .package-detail-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.95fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.package-detail-page .package-detail-intro .page-intro__media {
  margin-top: 0;
}

.package-detail-page .package-detail-intro .page-intro__media img {
  aspect-ratio: 4 / 3;
}

.package-detail-page .package-detail-intro__contact {
  margin-top: 18px;
  color: #5a4535;
  font-size: 15px;
  line-height: 1.7;
}

.package-detail-page .package-detail-intro__contact a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
}

.package-detail-page #popis-balicku .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
}

.package-detail-page .package-detail-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(194, 145, 89, 0.22);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.06);
}

.package-detail-page .package-detail-summary__item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon label"
    "icon value";
  column-gap: 16px;
  align-items: center;
  padding: clamp(22px, 3vw, 30px);
}

.package-detail-page .package-detail-summary__item + .package-detail-summary__item {
  border-left: 1px solid rgba(194, 145, 89, 0.2);
}

.package-detail-page .package-detail-summary__icon {
  grid-area: icon;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 12px;
  background: #f5eadc;
  color: var(--color-secondary);
}

.package-detail-page .package-detail-summary__icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.package-detail-page .package-detail-summary__label {
  grid-area: label;
  margin-bottom: 4px;
  color: #8b7355;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.package-detail-page .package-detail-summary strong {
  grid-area: value;
  color: #2f241d;
  font-size: clamp(15px, 1.4vw, 20px);
  line-height: 1.15;
}

.package-detail-page .package-detail-includes {
  align-self: center;
  background: #fffdf8;
}

.package-detail-page .package-detail-includes .c-card__body {
  padding: clamp(24px, 4vw, 34px);
}

.package-detail-page .package-detail-includes .c-card__list {
  margin-bottom: 0;
}

.package-detail-page .procedure-detail-grid {
  align-items: stretch;
}

.package-detail-page .procedure-detail-grid .c-card,
.package-detail-page .procedure-detail-grid .c-card__body {
  height: 100%;
}

.package-detail-page .procedure-detail-grid .c-card__text {
  margin-bottom: 0;
}

/* Možnost koupit balíček jako dárkový poukaz — v pravém sloupci pod kontakty */
.package-detail-page #objednani-balicku .package-voucher-aside {
  border: 1px solid #e8ddd3;
  border-radius: 16px;
  background: #faf5ed;
  padding: 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.package-detail-page #objednani-balicku .package-voucher-aside__title {
  margin: 0;
  font-family: "DM Serif Display", serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--color-text);
}

.package-detail-page #objednani-balicku .package-voucher-aside__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: #5a4535;
}

.package-detail-page #objednani-balicku .package-voucher-aside .button {
  margin-top: 6px;
}

@media (max-width: 900px) {
  .package-detail-page .package-detail-intro__grid {
    grid-template-columns: 1fr;
  }

  .package-detail-page .package-detail-summary {
    grid-template-columns: 1fr;
  }

  .package-detail-page .package-detail-summary__item + .package-detail-summary__item {
    border-top: 1px solid rgba(194, 145, 89, 0.2);
    border-left: 0;
  }
}

/* koupaliste.html — veřejné koupaliště, vstupné a rodiny */
#otevreno-verejnosti .c-story__copy > p,
#vstupne .c-card__text {
  color: #5a4535;
}

#fakta-koupaliste .c-facts-bar {
  margin: 0;
}

#fakta-koupaliste .koupaliste-facts-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

@media (max-width: 1100px) {
  #fakta-koupaliste .koupaliste-facts-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  #fakta-koupaliste .koupaliste-facts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  #fakta-koupaliste .koupaliste-facts-grid {
    grid-template-columns: 1fr;
  }
}

#co-nabizime .c-card {
  background: #fffdf8;
}

#vstupne .koupaliste-price-cards {
  align-items: stretch;
}

#tip-pro-rodiny .c-card--media-side--flush {
  background: transparent;
}

#tip-pro-rodiny .c-card--media-side--flush .c-card__body {
  border-radius: 12px;
}

#tip-pro-rodiny .button--outline-dark {
  background: rgba(255, 255, 255, 0.5);
}

#faq-koupaliste .section-heading,
#faq-koupaliste .section-heading h2 {
  color: var(--color-primary);
}

/* sirny-pramen.html — klidnější příběhová stránka */

#pobyty-s-procedurami .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#pobyty-s-procedurami .c-card__actions {
  margin-top: 28px;
}

/* balicky-procedur.html — přehled 25 balíčků bez zahlcení */
.balicky-procedur-page .page-hero__text {
  max-width: 720px;
}

#pro-koho-balicky .c-card__text,
#darkovy-poukaz .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#pro-koho-balicky {
  padding-bottom: 40px;
}

#proc-vybrat-balicky {
  padding-top: 40px;
}

#proc-vybrat-balicky .balicky-benefits-card {
  max-width: 920px;
  margin: 34px auto 0;
}

#proc-vybrat-balicky .balicky-benefits-card .c-card__body {
  padding: 36px 40px;
}

#proc-vybrat-balicky .balicky-benefits-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 30px;
  row-gap: 10px;
  margin: 12px 0 0;
}

@media (max-width: 720px) {
  #proc-vybrat-balicky .balicky-benefits-card .c-card__body {
    padding: 28px 24px;
  }

  #proc-vybrat-balicky .balicky-benefits-list {
    grid-template-columns: 1fr;
  }
}

#balicky .package-overview-grid,
#vicedenni-balicky .package-overview-grid {
  align-items: stretch;
}

#balicky .c-card__footer,
#vicedenni-balicky .c-card__footer {
  align-items: flex-start;
}

#balicky .c-card__footer .button,
#vicedenni-balicky .c-card__footer .button {
  min-height: 44px;
  padding-inline: 18px;
}

#vicedenni-balicky .section-heading__text {
  max-width: 760px;
  margin: 16px auto 0;
  color: #5a4535;
  font-size: 17px;
  line-height: 1.7;
}

#darkovy-poukaz .c-story__copy h2 {
  margin-top: 14px;
}

#darkovy-poukaz .button--solid {
  align-self: flex-start;
  margin-top: 12px;
}

#faq-balicky .section-heading,
#faq-balicky .section-heading h2 {
  color: var(--color-primary);
}

/* rodiny.html — letní rodinná stránka bez dekorativních vodoznaků */
#fakta-rodiny.c-facts-bar {
  margin: 0;
}

#animacni-program .c-story__copy > p:not(.c-card__label),
#zoo-okoli .c-story__copy > p:not(.c-card__label),
#ubytovani-pro-rodiny .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#animacni-program .c-story__list ul {
  columns: 2;
  column-gap: 28px;
}

#animacni-program .c-story__list li {
  break-inside: avoid;
  margin-bottom: 8px;
}

#bazeny-pro-rodiny .c-card,
#bezpecne-prostredi .c-card,
#pro-koho-rodiny .c-card {
  background: #fffdf8;
}

#bazeny-pro-rodiny .section-actions {
  display: flex;
  justify-content: center;
  margin-top: 34px;
}

#zoo-okoli .button--outline-dark,
#ubytovani-pro-rodiny .button--outline-dark {
  align-self: flex-start;
  margin-top: 22px;
  background: rgba(255, 255, 255, 0.55);
}

#zoo-okoli .button--outline-dark:hover,
#ubytovani-pro-rodiny .button--outline-dark:hover {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #ffffff;
}

#ubytovani-pro-rodiny .c-card__actions {
  margin-top: 24px;
}

#ubytovani-pro-rodiny .c-card__actions .button {
  margin-top: 0;
}

#faq-rodiny .section-heading,
#faq-rodiny .section-heading h2 {
  color: var(--color-primary);
}

/* golf.html — přehledový rozcestník pro GCLK */
#golf-fakta::before {
  display: none;
}

#golf-fakta.c-facts-bar {
  margin: 0;
}

#o-hristi .c-story__copy > p:not(.c-card__label),
#golf-akademie .c-story__copy > p:not(.c-card__label),
#golfove-pobyty .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#golf-akademie .c-story__img {
  order: 1;
}

#golf-akademie .c-story__copy {
  order: 2;
}

#golf-akademie .c-story__copy .c-card__actions {
  margin-top: 24px;
  padding-top: 0;
}

#green-fee .c-card {
  background: #fffdf8;
}

/* Sekce `#green-fee` je v page builderu rozpadlá na tři navazující sekce
   (nadpis, mřížka karet, poznámka pod ní) — kotvu nese jen ta první, takže
   pravidla scopovaná na `#green-fee` na zbytek nedosáhnou. Doplněno stejným
   způsobem jako u ostatních rozpadlých sekcí (viz konec souboru).           */
#green-fee + .block-section--pad-none .block-section__col--box-price {
  background: #fffdf8;
}

#green-fee + .block-section--pad-none .golf-package-price {
  margin: 0 0 20px;
  color: var(--color-primary);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 700;
  line-height: 1;
}

#green-fee + .block-section--pad-none + .block-section--pad-none .golf-note {
  max-width: 860px;
  margin: 28px auto 0;
  color: #5a4535;
  font-size: 16px;
  line-height: 1.7;
  text-align: center;
}

#green-fee + .block-section--pad-none + .block-section--pad-none .golf-note a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
}

#green-fee + .block-section--pad-none + .block-section--pad-none .golf-note a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

#green-fee .section-heading__sub {
  max-width: 680px;
  margin: 16px auto 0;
  color: #5a4535;
  font-size: 17px;
  line-height: 1.7;
}

#green-fee .golf-fee-grid {
  align-items: stretch;
}

#green-fee .golf-package-price {
  margin: 0 0 20px;
  color: var(--color-primary);
  font-size: clamp(32px, 4vw, 44px);
  font-weight: 700;
  line-height: 1;
}

#green-fee .c-card__footer {
  justify-content: flex-start;
}

#green-fee .golf-note {
  max-width: 860px;
  margin: 28px auto 0;
  color: #5a4535;
  font-size: 16px;
  line-height: 1.7;
  text-align: center;
}

#green-fee .golf-note a,
#faq-golf a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: none;
}

#green-fee .golf-note a:hover,
#faq-golf a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

#golf-firmy .c-card {
  background: #fffdf8;
}

#golf-firmy .c-card__title {
  max-width: 640px;
}

#golfove-pobyty .golf-stay-list {
  display: grid;
  gap: 10px;
  margin-top: 28px;
  max-width: 620px;
}

#golfove-pobyty .golf-stay-list p {
  margin: 0;
  padding: 16px 18px;
  border-left: 4px solid var(--color-primary);
  background: #faf5ed;
  color: #5a4535;
  font-size: 15px;
  line-height: 1.55;
}

#golfove-pobyty .c-card__actions {
  margin-top: 24px;
}

#faq-golf .section-heading,
#faq-golf .section-heading h2 {
  color: var(--color-primary);
}

#golf-pobyty-cta::before {
  display: none;
}

@media (max-width: 760px) {
  #golf-akademie .c-story__img,
  #golf-akademie .c-story__copy {
    order: initial;
  }
}

/* sportoviste.html — aktivity v areálu a sportovní karta */
#sporty::before {
  display: none;
}

#sporty .c-card,
#sport-firmy .c-card {
  background: #fffdf8;
}

#sportovni-karta .section-heading__sub {
  max-width: 720px;
  margin: 16px auto 0;
  color: #5a4535;
  font-size: 17px;
  line-height: 1.7;
}

#sportovni-karta .sport-card-includes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  max-width: 920px;
  margin: 0 auto 34px;
}

#sportovni-karta .sport-card-includes span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 14px;
  border-radius: 999px;
  background: #faf5ed;
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 700;
}

#sportovni-karta .sport-card-grid {
  align-items: stretch;
}

#sportovni-karta .sport-card-price {
  margin: 0 0 8px;
  color: var(--color-primary);
  font-size: clamp(30px, 3.6vw, 42px);
  font-weight: 700;
  line-height: 1;
}

#sportovni-karta .sport-card-price span {
  color: #8b7355;
  font-size: 15px;
  font-weight: 700;
}

#sportovni-karta .sport-card-child {
  margin: 0 0 18px;
  color: #5a4535;
  font-size: 16px;
  font-weight: 700;
}

#sportovni-karta .c-card__footer {
  justify-content: flex-start;
}

/* Švy rozpadlých sekcí. Mezeru mezi bloky nese v návrhu `margin` samotného
   obsahu (výčet 34px, poznámka 28px). Odsazení sekcí builderu — spodní padding
   nadpisové sekce a 24px mezi navazujícími `--pad-none` — se s ním sčítá,
   proto se na těchhle švech ruší.                                            */
#sportovni-karta > .block-section__inner {
  padding-bottom: 0;
}

/* Nadpis → karty je v návrhu 44px (`.section-heading { margin-bottom: 44px }`),
   z toho 20px dá podnadpis sám.                                              */
#green-fee > .block-section__inner {
  padding-bottom: 24px;
}

#sportovni-karta + .block-section--pad-none + .block-section--pad-none > .block-section__inner,
#green-fee + .block-section--pad-none + .block-section--pad-none > .block-section__inner {
  padding-top: 0;
}

/* Sekce `#sportovni-karta` je v page builderu rozpadlá na tři navazující sekce
   (nadpis + výčet sportovišť, mřížka karet, poznámka pod ní). Kotvu nese jen
   ta první, proto pravidla pro karty a poznámku musí sáhnout i na sourozence. */
#sportovni-karta + .block-section--pad-none .block-section__col--box-price,
#sportovni-karta + .block-section--pad-none .block-section__col--box-price-featured {
  background: var(--color-white, #ffffff);
}

#sportovni-karta + .block-section--pad-none .sport-card-price {
  margin: 0 0 8px;
  color: var(--color-primary);
  font-size: clamp(30px, 3.6vw, 42px);
  font-weight: 700;
  line-height: 1;
}

#sportovni-karta + .block-section--pad-none .sport-card-price span {
  color: #8b7355;
  font-size: 15px;
  font-weight: 700;
}

#sportovni-karta + .block-section--pad-none .sport-card-child {
  margin: 0;
  color: #5a4535;
  font-size: 16px;
  font-weight: 700;
}

#sportovni-karta + .block-section--pad-none + .block-section--pad-none .sport-card-note,
#sportovni-karta .sport-card-note,
#cenik-sportu .sport-price-note {
  max-width: 820px;
  margin: 28px auto 0;
  color: #5a4535;
  font-size: 16px;
  line-height: 1.7;
  text-align: center;
}

#cenik-sportu .sport-price-table-wrap {
  max-width: 900px;
  margin: 0 auto;
  overflow-x: auto;
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

#cenik-sportu .sport-price-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 620px;
}

#cenik-sportu .sport-price-table th,
#cenik-sportu .sport-price-table td {
  padding: 16px 20px;
  border-bottom: 1px solid rgba(131, 20, 39, 0.08);
  color: #3f2f25;
  font-size: 15px;
  line-height: 1.45;
  text-align: left;
}

#cenik-sportu .sport-price-table th {
  background: rgba(131, 20, 39, 0.06);
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#cenik-sportu .sport-price-table td:last-child {
  width: 220px;
  font-weight: 700;
  white-space: nowrap;
}

#cenik-sportu .sport-price-table tr:last-child td {
  border-bottom: 0;
}

#cyklostezka .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#cyklostezka .c-story__img {
  order: 2;
}

#cyklostezka .c-story__copy {
  order: 1;
}

#cyklostezka .button--outline-dark {
  align-self: flex-start;
  margin-top: 22px;
  background: rgba(255, 255, 255, 0.55);
}

#faq-sportoviste .section-heading,
#faq-sportoviste .section-heading h2 {
  color: var(--color-primary);
}

#sportovni-cta::before {
  display: none;
}

/* okoli.html — sloučený přehled okolí a výletů */
#u-hotelu::before {
  display: none;
}

#u-hotelu .c-card,
#aktivni-okoli .c-card {
  background: #fffdf8;
}

#u-hotelu .c-card__label {
  margin-bottom: 10px;
  color: var(--color-primary);
  font-size: 12px;
  letter-spacing: 0.12em;
}

#zlin .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
}

#zlin .c-story__img {
  order: 2;
}

#zlin .c-story__copy {
  order: 1;
}

#zlin .c-story__img img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

#vylety .trip-card-grid {
  align-items: stretch;
}

#vylety .c-card {
  background: #fffdf8;
}

#vylety .c-card__body {
  min-height: 260px;
}

/* Sekce „Kam vyrazit na celý den" je v page builderu rozpadlá na čtyři dvojice
   karet, každá s vlastní mřížkou — karty se proto srovnávají jen v rámci své
   dvojice a poslední řada (jako v návrhu bez odkazů) vycházela nižší než
   ostatní. Návrh to řeší rezervou v těle karty (`min-height` výše); u nás je
   kartou celý sloupec, takže se rezervuje přesně místo, které by zabral odkaz.
   Selektor míří jen na tyhle čtyři sekce — ostatní mřížky na stránce jsou
   třísloupcové.                                                              */
#vylety ~ .block-section--cols-1-1.block-section--pad-none .block-section__col--card:not(:has(.block-link))::after {
  content: "";
  display: block;
  margin-top: 24px;
  height: 55px;
}

#vylety .c-card__meta {
  margin-bottom: 2px;
  color: var(--color-primary);
}

/* Karty jsou v builderu v navazujících sekcích, na které kotva nedosáhne. */
#vylety ~ .block-section--pad-none .block-section__col--card > .block-richtext:has(> .c-card__meta) {
  margin-bottom: 12px;
}

/* Návrh má tělo karty s `min-height: 260px`, odkaz s `margin-top: auto` se tak
   odsune o 13px níž. U nás je kartou celý sloupec, rezerva se proto doplňuje
   přímo nad odkaz (ve dvojici jsou vždy obě karty s odkazem, auto nic neodsune). */
#vylety ~ .block-section--cols-1-1.block-section--pad-none .block-section__col--card > .block-richtext:has(> p > .block-link) {
  margin-top: 9px;
}

#aktivni-okoli .c-card__text {
  color: #5a4535;
}

#mapa-okoli .okoli-map {
  overflow: hidden;
  max-width: 1040px;
  margin: 0 auto;
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

#mapa-okoli .okoli-map iframe {
  display: block;
  width: 100%;
  height: 400px;
  border: 0;
}

#mapa-okoli .okoli-map-note {
  max-width: 740px;
  margin: 20px auto 0;
  color: #5a4535;
  font-size: 15px;
  line-height: 1.7;
  text-align: center;
}

#okoli-cta::before {
  display: none;
}

/* kaple.html - klidna intro stranka bez full-screen hero */
.kaple-page .kaple-hero {
  padding-top: clamp(72px, 9vw, 118px);
  padding-bottom: clamp(56px, 7vw, 90px);
  background: linear-gradient(180deg, #faf5ed 0%, #ffffff 100%);
}

.kaple-page .kaple-hero > .container {
  width: var(--container);
  max-width: none;
}

.kaple-page .kaple-hero .page-intro__body {
  max-width: 680px;
}

.kaple-page .kaple-hero .lead {
  max-width: 620px;
  color: #5a4535;
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.75;
}

.kaple-page .kaple-hero .page-intro__media {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(61, 36, 17, 0.14);
}

.kaple-page .kaple-hero .page-intro__media img {
  min-height: 440px;
  object-position: center center;
}

#kaple-pribeh .c-story__copy > p:not(.c-card__label),
#obnova-kaple .c-story__copy > p:not(.c-card__label) {
  color: #5a4535;
  font-size: 17px;
  line-height: 1.75;
}

#kaple-pribeh .c-story__img {
  order: 2;
}

#kaple-pribeh .c-story__copy {
  order: 1;
}

#kaple-pribeh .c-story__img img,
#obnova-kaple .c-story__img img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

#obnova-kaple blockquote {
  margin: 28px 0 0;
  padding: 22px 26px;
  border-left: 4px solid var(--color-secondary);
  border-radius: 0 8px 8px 0;
  background: #fffdf8;
  color: var(--color-primary);
  font-family: "DM Serif Display", serif;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.35;
}

#obnova-kaple blockquote p {
  margin: 0;
}

#obnova-kaple blockquote cite {
  display: block;
  margin-top: 14px;
  color: #8b7355;
  font-family: "Montserrat", sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-transform: uppercase;
}

#kaple-fakta .kaple-facts-grid {
  align-items: stretch;
}

#kaple-fakta .c-card {
  background: #fffdf8;
}

#kaple-fakta .c-card__text {
  color: #5a4535;
}

#galerie-kaple .c-gallery-grid__item {
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
}

/* faq.html - centralni obsahova FAQ stranka bez hero */
.faq-page .site-header--light {
  position: relative;
}

.faq-intro {
  padding-top: clamp(70px, 8vw, 112px);
}

.faq-intro__content {
  max-width: 820px;
}

.faq-intro__content h1 {
  margin-top: 14px;
}

.faq-intro__content p:not(.eyebrow) {
  max-width: 680px;
  color: #5a4535;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.7;
}

.faq-intro__content a {
  color: var(--color-primary);
  font-weight: 700;
}

.faq-anchor-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  max-width: 1080px;
  margin-top: 34px;
}

.faq-anchor-list .button {
  min-height: 46px;
  padding-inline: 20px;
  background: #fffdf8;
}

.faq-section .section-heading {
  margin-bottom: 28px;
}

#pobyty.faq-section,
#lazne.faq-section,
#prakticke.faq-section {
  background: #ffffff;
  background-image: none;
}

#ubytovani.faq-section,
#koupaliste.faq-section,
#restaurace.faq-section {
  background: #faf5ed;
  background-image: none;
}

.faq-section .lodging-faq-item button {
  font-size: 17px;
}

.faq-section .lodging-faq-item p {
  color: #5a4535;
}

#faq-kontakt::before {
  display: none;
}

#faq-kontakt .c-crosssell__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

#faq-kontakt .button--solid {
  border-color: #ffffff;
  background: #ffffff;
  color: var(--color-primary);
}

#faq-kontakt .button--solid:hover,
#faq-kontakt .button--solid:focus-visible {
  border-color: var(--color-secondary);
  background: var(--color-secondary);
  color: #ffffff;
}

#faq-kontakt .button--outline {
  border-color: rgba(255, 255, 255, 0.72);
  color: #ffffff;
}

#faq-kontakt .button--outline:hover,
#faq-kontakt .button--outline:focus-visible {
  background: #ffffff;
  color: var(--color-primary);
}

/* kontakt.html - primarne mobilni kontaktni stranka bez hero */
.kontakt-page .site-header--light {
  position: relative;
}

.kontakt-quick {
  padding-top: clamp(64px, 7vw, 104px);
}

.kontakt-quick .section-heading h1 {
  margin-top: 14px;
}

.kontakt-quick-grid {
  align-items: stretch;
}

.kontakt-quick-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 100%;
  padding: clamp(24px, 2.4vw, 34px);
  background: #fffdf8;
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

.kontakt-quick-card--primary {
  border-color: rgba(131, 20, 39, 0.22);
  box-shadow: 0 22px 64px rgba(131, 20, 39, 0.12);
}

.kontakt-quick-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #f5eadc;
  color: var(--color-secondary);
}

.kontakt-quick-card__icon svg,
.kontakt-provoz-grid svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.kontakt-phone,
.kontakt-email {
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.15;
}

.kontakt-phone {
  font-family: "DM Serif Display", serif;
  font-size: clamp(34px, 4vw, 48px);
}

.kontakt-email {
  overflow-wrap: anywhere;
  font-size: clamp(18px, 1.7vw, 22px);
}

.kontakt-quick-card .button {
  margin-top: auto;
  align-self: flex-start;
}

.kontakt-form-grid,
.kontakt-map-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.kontakt-form-intro {
  max-width: 520px;
}

.kontakt-form-intro h2,
.kontakt-address h2 {
  margin-top: 14px;
}

.kontakt-form-intro p {
  color: #5a4535;
  font-size: 17px;
  line-height: 1.75;
}

.kontakt-form-intro a,
.kontakt-address dd a,
.kontakt-person-card a {
  color: var(--color-primary);
  font-weight: 700;
}

.kontakt-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 14px;
  background: #faf5ed;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

.kontakt-form__field {
  display: grid;
  gap: 7px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700;
}

.kontakt-form__field--wide,
.kontakt-form__consent,
.kontakt-form .button {
  grid-column: 1 / -1;
}

.kontakt-form input,
.kontakt-form select,
.kontakt-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1.5px solid #dfd3c5;
  border-radius: 10px;
  background: #ffffff;
  color: var(--color-text);
  outline: none;
}

.kontakt-form textarea {
  min-height: 132px;
  resize: vertical;
}

.kontakt-form input:focus,
.kontakt-form select:focus,
.kontakt-form textarea:focus {
  border-color: var(--color-primary);
}

.kontakt-form__consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
  color: #5a4535;
  font-size: 14px;
  line-height: 1.55;
}

.kontakt-form__consent input {
  width: 18px;
  min-height: 18px;
  margin-top: 3px;
}

.kontakt-form .button {
  justify-self: start;
}

.kontakt-map-grid {
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  align-items: stretch;
}

.kontakt-map {
  overflow: hidden;
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 14px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

.kontakt-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 520px;
  border: 0;
}

.kontakt-address dl {
  display: grid;
  gap: 14px;
  margin: 24px 0;
}

.kontakt-address dt {
  color: #8b7355;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.kontakt-address dd {
  margin: 4px 0 0;
  color: #5a4535;
  line-height: 1.65;
}

.kontakt-address__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

#doprava .c-card__text,
#provoz .c-card__text {
  color: #5a4535;
}

/* Odsazení mezi po sobě jdoucími odstavci v kartách dopravy (text + telefony/linky) */
#doprava .c-card__text + .c-card__text {
  margin-top: 14px;
}

/* Jeden kontakt — vycentrovat místo 3sloupcového gridu */
.kontakt-people-grid--single {
  display: block;
  max-width: 420px;
  margin: 0 auto;
}

.kontakt-person-card {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 18px;
  align-items: center;
  min-height: 100%;
  padding: 22px;
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

.kontakt-person-card img {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
}

.kontakt-person-card h3 {
  color: var(--color-text);
  font-size: 24px;
}

.kontakt-person-card p {
  margin: 6px 0 0;
  color: #5a4535;
  font-size: 14px;
  line-height: 1.5;
}

.kontakt-person-card__role {
  color: #8b7355;
  font-weight: 700;
}

.kontakt-provoz-grid .c-card {
  background: #fffdf8;
}

#kontakt-cta::before {
  display: none;
}

/* aktuality.html - prehled novinek bez hero */
.aktuality-page .site-header--light {
  position: relative;
}

.aktuality-intro {
  padding-top: clamp(70px, 8vw, 112px);
}

.aktuality-intro__content {
  max-width: 760px;
}

.aktuality-intro__content h1 {
  margin-top: 14px;
}

.aktuality-intro__content p:not(.eyebrow) {
  max-width: 680px;
  color: #5a4535;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.7;
}

.aktuality-intro__content .button {
  margin-top: 18px;
}

.aktuality-grid {
  align-items: stretch;
}

.aktuality-card {
  height: 100%;
}

.aktuality-card .c-card__meta {
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.aktuality-card .c-card__title {
  font-size: clamp(22px, 2vw, 28px);
}

.aktuality-card .c-card__text {
  color: #5a4535;
}

.aktuality-card__visual {
  display: flex;
  align-items: flex-end;
  padding: 22px;
  color: #ffffff;
}

.aktuality-card__visual span {
  font-family: "DM Serif Display", serif;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
}

.aktuality-card__visual--akce { background: var(--color-primary); }
.aktuality-card__visual--slevy { background: var(--color-secondary); }
.aktuality-card__visual--provoz { background: var(--color-text); }
.aktuality-card__visual--tipy { background: var(--color-accent); }

.aktuality-archive {
  display: flex;
  justify-content: center;
  margin-top: 42px;
}

.aktuality-newsletter {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}

.aktuality-newsletter__copy h2 {
  margin-top: 14px;
}

.aktuality-newsletter__copy p:not(.eyebrow) {
  color: #5a4535;
  font-size: 17px;
  line-height: 1.75;
}

.aktuality-newsletter__form {
  display: grid;
  gap: 16px;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(131, 20, 39, 0.1);
  border-radius: 14px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.08);
}

.aktuality-newsletter__form label {
  display: grid;
  gap: 7px;
  color: var(--color-text);
  font-size: 13px;
  font-weight: 700;
}

.aktuality-newsletter__form input[type="email"] {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1.5px solid #dfd3c5;
  border-radius: 10px;
  background: #ffffff;
  color: var(--color-text);
  outline: none;
}

.aktuality-newsletter__form input[type="email"]:focus {
  border-color: var(--color-primary);
}

.aktuality-newsletter__consent {
  grid-template-columns: auto 1fr;
  align-items: start;
  color: #5a4535;
  font-weight: 500;
}

.aktuality-newsletter__consent input {
  margin-top: 3px;
}

.aktuality-newsletter__form > p {
  margin: 0;
  color: #8b7355;
  font-size: 12px;
  line-height: 1.6;
}

#aktuality-social::before,
#aktualita-cta::before {
  display: none;
}

#aktuality-social .c-crosssell__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-end;
}

#aktuality-social .button--outline {
  border-color: rgba(255, 255, 255, 0.72);
  color: #ffffff;
}

#aktuality-social .button--outline:hover,
#aktuality-social .button--outline:focus-visible {
  background: #ffffff;
  color: var(--color-primary);
}

.aktualita-article__inner {
  max-width: 820px;
}

.aktualita-article__inner p {
  color: #5a4535;
  font-size: 18px;
  line-height: 1.85;
}

.aktualita-article__inner h2 {
  margin-top: 34px;
  font-size: 34px;
}

@media (max-width: 760px) {
  #cyklostezka .c-story__img,
  #cyklostezka .c-story__copy {
    order: initial;
  }

  #cenik-sportu .sport-price-table-wrap {
    border-radius: 8px;
  }

  #zlin .c-story__img,
  #zlin .c-story__copy {
    order: initial;
  }

  .kaple-page .kaple-hero .page-intro__media img {
    min-height: unset;
  }

  #kaple-pribeh .c-story__img,
  #kaple-pribeh .c-story__copy {
    order: initial;
  }

  .faq-anchor-list .button,
  #faq-kontakt .c-crosssell__actions,
  #faq-kontakt .button {
    width: 100%;
  }

  #faq-kontakt .c-crosssell__actions {
    justify-content: stretch;
  }

  .kontakt-quick-card .button,
  .kontakt-form .button,
  .kontakt-address__actions .button,
  #kontakt-cta .button {
    width: 100%;
  }

  .kontakt-form-grid,
  .kontakt-map-grid,
  .kontakt-form {
    grid-template-columns: 1fr;
  }

  .kontakt-person-card {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .kontakt-map iframe {
    height: 420px;
    min-height: 420px;
  }

  .aktuality-newsletter {
    grid-template-columns: 1fr;
  }

  .aktuality-newsletter__form .button,
  #aktuality-social .button,
  #aktuality-social .c-crosssell__actions {
    width: 100%;
  }
}

@media (max-width: 760px) {
  #animacni-program .c-story__list ul {
    columns: 1;
  }

  /* Hlavička je na mobilu position:fixed — intro musí vyčistit její výšku,
     jinak se eyebrow/nadpis překrývá s logem. */
  .aktuality-intro {
    padding-top: 120px;
  }
}

/* =========================================================
   stay-detail-page — parametry pobytu (stejný styl jako package-detail-summary)
   ========================================================= */

.stay-detail-page .stay-detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(194, 145, 89, 0.22);
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 18px 50px rgba(61, 36, 17, 0.06);
  margin-bottom: 48px;
}

.stay-detail-page .stay-detail-summary__item {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon label"
    "icon value";
  column-gap: 14px;
  align-items: center;
  padding: clamp(12px, 1.6vw, 18px);
}

.stay-detail-page .stay-detail-summary__item + .stay-detail-summary__item {
  border-left: 1px solid rgba(194, 145, 89, 0.2);
}

.stay-detail-page .stay-detail-summary__icon {
  grid-area: icon;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #f5eadc;
  color: var(--color-secondary);
}

.stay-detail-page .stay-detail-summary__icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stay-detail-page .stay-detail-summary__label {
  grid-area: label;
  margin-bottom: 4px;
  color: #8b7355;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.stay-detail-page .stay-detail-summary strong {
  grid-area: value;
  color: #2f241d;
  font-size: clamp(13px, 1.1vw, 16px);
  line-height: 1.15;
}

.stay-detail-page .stay-detail-summary strong.price {
  color: var(--color-primary);
}

@media (max-width: 760px) {
  .stay-detail-page .stay-detail-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stay-detail-page .stay-detail-summary__item:nth-child(odd) {
    border-left: none;
  }

  .stay-detail-page .stay-detail-summary__item:nth-child(3),
  .stay-detail-page .stay-detail-summary__item:nth-child(4) {
    border-top: 1px solid rgba(194, 145, 89, 0.2);
  }
}

/* =========================================================
   stay-detail-page — intro sekce (full width, jako package-detail-intro)
   ========================================================= */

.stay-detail-page .stay-detail-intro {
  padding-bottom: 56px;
}

.stay-intro-zoo-banner {
  display: block;
  width: 100%;
  max-width: 700px;
  height: auto;
  margin-top: 28px;
}

.stay-detail-page .stay-detail-intro + .section {
  padding-top: 0;
  padding-bottom: 32px;
}

/* Přebij 1200px limit z .page-intro > .container na plnou šířku */
.stay-detail-page .stay-detail-intro > .container {
  width: var(--container);
  max-width: none;
}

.stay-detail-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.95fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

.stay-detail-page .stay-detail-intro .page-intro__media {
  margin-top: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(61, 36, 17, 0.14);
}

.stay-detail-page .stay-detail-intro .page-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  aspect-ratio: unset;
  border-radius: 0;
}

@media (max-width: 900px) {
  .stay-detail-intro__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .stay-detail-page .stay-detail-intro .page-intro__media img {
    min-height: unset;
    aspect-ratio: 16 / 9;
    height: auto;
  }
}

/* pobyt-detail — krémové pozadí sekce s dlaždicemi */
#co-je-zahrnuto {
  background: #faf5ed;
}

/* pobyt-detail — dlaždice na krémovém pozadí: bílé, bez stínu */
#co-je-zahrnuto .stay-checklist-group {
  background: #ffffff;
  box-shadow: none;
}

/* sirny-pramen-v2.html — druhá obsahová verze sirného pramene */
#historie-pramene .c-story__copy > p:not(.c-card__label),
#vyuziti-pramene .section-heading p:not(.eyebrow),
#vedeli-jste .spring-facts-list p {
  color: #5a4535;
  font-size: 17px;
}

.c-story__img--stack {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.c-story__img--stack img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.spring-benefit-grid .c-card {
  min-height: 100%;
}

.spring-use-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 44px;
}

.spring-use-card {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 18px 45px rgba(61, 36, 17, 0.12);
  color: #ffffff;
  text-decoration: none;
}

.spring-use-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.spring-use-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(34, 18, 12, 0.08) 0%, rgba(34, 18, 12, 0.72) 100%);
}

.spring-use-card span {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 26px;
  z-index: 1;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.2;
}

.spring-use-card:hover img {
  transform: scale(1.04);
}

.spring-facts-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  gap: 44px;
  align-items: stretch;
}

.spring-facts-photo {
  display: grid;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 18px;
  height: 100%;
}

.spring-facts-photo img {
  width: 100%;
  height: 100%;
  min-height: 0;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 20px 55px rgba(61, 36, 17, 0.12);
}

.spring-facts-list {
  display: grid;
  gap: 18px;
  height: 100%;
}

.spring-facts-list article {
  padding: 24px 26px;
  border: 1px solid rgba(142, 17, 42, 0.12);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 38px rgba(61, 36, 17, 0.06);
}

.spring-facts-list span {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--color-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.spring-facts-list h3 {
  margin: 0 0 10px;
  color: var(--color-primary);
  font-size: 22px;
}

.spring-facts-list p {
  margin: 0;
  line-height: 1.7;
}

@media (max-width: 1080px) {
  .spring-use-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .spring-facts-layout {
    grid-template-columns: 1fr;
  }

  .spring-facts-photo {
    grid-template-rows: none;
    height: auto;
  }
}

@media (max-width: 760px) {
  .spring-use-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 32px;
  }

  .spring-use-card {
    min-height: 240px;
  }

  .spring-use-card span {
    left: 22px;
    right: 22px;
    bottom: 22px;
    font-size: 21px;
  }

  .spring-facts-list article {
    padding: 22px;
  }

  .spring-facts-list h3 {
    font-size: 20px;
  }
}
/* okoli.html — BAŤAPAS tip box v sekci Zlín */
.okoli-batapas {
  margin-top: 20px;
  padding: 16px 20px;
  border-left: 3px solid var(--color-primary);
  background: #faf5ed;
  border-radius: 8px;
}
.okoli-batapas p { margin: 0; }
.okoli-batapas p + p { margin-top: 6px; font-size: 15px; line-height: 1.6; color: #5a4535; }
.okoli-batapas strong { color: var(--color-primary); }

/* oslavy.html — rodinné oslavy */
.oslavy-hero {
  background-image: url("../images/svatby-hero.jpg");
  background-position: center 42%;
}

.oslavy-page .page-hero .nav a[aria-current="page"] {
  color: #ffffff;
}

.oslavy-page #ubytovani-hostu,
.oslavy-page #kapacity-oslavy,
.oslavy-page #poptavka {
  background: var(--color-cream);
}

.oslavy-page #kapacity-oslavy {
  padding-top: 112px;
  padding-bottom: 112px;
  background-image: none;
}

.oslavy-page #poptavka {
  padding-top: 112px;
  padding-bottom: 112px;
  background-image: none;
}

.oslavy-page #kapacity-oslavy::before,
.oslavy-page #poptavka::before {
  display: none;
}

.oslavy-event-types {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-top: 36px;
}

.oslavy-event-types span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 0 24px;
  border: 1px solid rgba(142, 17, 42, 0.16);
  border-radius: 8px;
  background: #fffdf8;
  color: var(--color-text);
  font-weight: 800;
  box-shadow: 0 14px 36px rgba(61, 36, 17, 0.06);
}

.oslavy-event-types span::before {
  content: "✓";
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #f8eef2;
  color: var(--color-primary);
  font-size: 13px;
}

.oslavy-page #poptavka .svatby-form {
  background: #ffffff;
}

.oslavy-page #galerie-oslavy .c-gallery-grid__item img {
  object-fit: cover;
}

@media (max-width: 760px) {
  .oslavy-event-types {
    justify-content: stretch;
  }

  .oslavy-event-types span {
    width: 100%;
  }
}
/* ubytovani.html — odkaz na virtuální prohlídku pod galerií */
.lodging-gallery__vr {
  text-align: center;
  margin-top: 32px;
}

/* procedura-sirna-koupel — parametry jen 2 (délka + cena) */
.procedury-vypis-page .package-detail-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ===========================================================================
   Poptávkový formulář — doplňky proti dodanému návrhu
   Dodávka měla formulář napojený na `mailto:`; u nás odesílá na server, takže
   potřebuje skrytou past na roboty a řádek s výsledkem odeslání.
   =========================================================================== */

.svatby-form .dispNone {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.svatby-form__status {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

.svatby-form__status:empty {
  display: none;
}

.svatby-form__status.is-error {
  color: var(--color-primary);
  font-weight: 600;
}

.svatby-form__status.is-success {
  color: #2f7a41;
  font-weight: 600;
}

/* ===========================================================================
   Doladění stránek složených v page builderu
   Pravidla výše nastavují odsazení a pozadí na `<section>`. Builder má odsazení
   na vnitřním kontejneru a jednu sekci návrhu často skládá z několika
   navazujících — obojí je tu potřeba dorovnat.
   =========================================================================== */

/* Odsazení nastavené na sekci se nesmí sčítat s odsazením vnitřního kontejneru. */

.oslavy-page #kapacity-oslavy > .block-section__inner,
.oslavy-page #poptavka > .block-section__inner,
.bazeny-page #galerie-bazeny > .block-section__inner {
  padding-top: 0;
  padding-bottom: 0;
}

/* „Ubytování pro hosty" je v návrhu celý krémový, bez přechodu do bílé.
   V builderu jsou z něj tři navazující sekce — přebarvit se musí všechny,
   ne jen ta, která nese kotvu. */

.oslavy-page #ubytovani-hostu ~ .block-section--soft.block-section--pad-none {
  background: var(--color-cream);
}


/* --- Podbarvení navazujících sekcí builderu ------------------------------ */
/* Jedna sekce návrhu se do builderu rozpadne na několik navazujících
   (`--pad-none`). Pravidla podbarvení v `styles.css` míří na sekci s kotvou,
   takže pokračování zůstalo bílé a blok uprostřed „vybledl". Následující
   pravidla podbarvení dotáhnou na celý běh — vygenerováno ze struktury
   stránek, přesně podle počtu navazujících sekcí.                          */

.firmy-page #prostory + .block-section--pad-none,
.firmy-page #prostory + .block-section--pad-none + .block-section--pad-none,
.firmy-page #prostory + .block-section--pad-none + .block-section--pad-none + .block-section--pad-none {
	background: #ffffff;
	background-image: none;
}

.firmy-page #teambuilding + .block-section--pad-none {
	background: #ffffff;
	background-image: none;
}

.firmy-page #ekonomicka-vyhoda + .block-section--pad-none,
.firmy-page #ekonomicka-vyhoda + .block-section--pad-none + .block-section--pad-none {
	background: #faf5ed;
	background-image: none;
}

.svatby-page #prostory,
.svatby-page #prostory + .block-section--pad-none {
	background: #faf5ed;
	background-image: none;
}

.svatby-page #prostory + .block-section--pad-none + .block-section--pad-none {
	background: linear-gradient(180deg, #faf5ed 0%, #faf5ed 72%, #ffffff 100%);
}

.svatby-page #ubytovani-hostu + .block-section--pad-none,
.svatby-page #ubytovani-hostu + .block-section--pad-none + .block-section--pad-none {
	background: #faf5ed;
	background-image: none;
}

.svatby-page #menu-raut + .block-section--pad-none {
	background: #ffffff;
	background-image: none;
}

.svatby-page #galerie-svatby + .block-section--pad-none {
	background: #faf5ed;
	background-image: none;
}



/* --- Galerie, přílohy a související u stránek a aktualit ------------------ */
/* Nahrané fotky a soubory se dřív vypisovaly ve třídách (`gallery`,
   `galleryItem`, `attachments`), ke kterým v novém designu žádné CSS
   neexistuje — působily proto jako zbytek po staré verzi webu. Bloky nově
   vycházejí z názvosloví návrhu: mřížka `c-gallery-grid` z `components/gallery.css`
   a karty `c-card--icon c-card--inline` jako v pruhu faktů pod hlavičkami.   */

.page-gallery,
.page-files,
.page-related {
  margin-top: 56px;
}

.page-gallery:first-child,
.page-files:first-child,
.page-related:first-child {
  margin-top: 0;
}

.page-gallery__title,
.page-related__title {
  margin: 10px 0 28px;
  font-size: 32px;
}

/* Uvnitř úzkého sloupce článku mřížka respektuje jeho šířku. */
.aktualita-article__inner .page-gallery .c-gallery-grid {
  grid-template-columns: repeat(2, 1fr);
}

/* --- Ke stažení ---------------------------------------------------------- */

.page-files__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.page-files__item {
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
}

.page-files__item:hover {
  background: #f3ebdd;
  transform: translateY(-2px);
}

.page-files__item .c-card__title {
  color: var(--color-text, #3f2f25);
  word-break: break-word;
}

.page-files__item .c-card__text {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* --- Kam dál? ------------------------------------------------------------ */

.page-related__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-related__list a {
  display: inline-block;
  padding: 10px 18px;
  border: 1px solid rgba(131, 20, 39, 0.18);
  border-radius: 999px;
  color: var(--color-primary, #831427);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}

.page-related__list a:hover {
  background: rgba(131, 20, 39, 0.06);
  border-color: var(--color-primary, #831427);
}


/* --- Odsazení sekcí s vlastním pravidlem v styles.css --------------------- */
/* Odsazení z návrhu sedí na `<section>`, builder ho má na `.block-section__inner`
   — u sekcí, kterým `styles.css` nastavuje vlastní `padding`, se obojí sčítalo
   a sekce vyšla o desítky pixelů vyšší.                                     */

.firmy-page #co-usporadat > .block-section__inner {
  padding-top: 0;
}


/* Stránky, kterým `styles.css` střídá podbarvení sekcí (Svatby, Firemní akce),
   nesmí půlit odsazení mezi sousedními sekcemi. Pravidlo z mapovací vrstvy
   („dva bílé bloky za sebou mají poloviční mezeru") se totiž řídí třídou
   builderu `--default`, jenže tady jsou sousedé pokaždé jinak podbarvení
   a mezera pak byla o 80 px menší, než má návrh.                           */

.svatby-page .block-section--default:not(.block-section--pad-none):has(+ .block-section--default:not(.block-section--pad-none)) > .block-section__inner,
.firmy-page .block-section--default:not(.block-section--pad-none):has(+ .block-section--default:not(.block-section--pad-none)) > .block-section__inner {
  padding-bottom: 5rem;
}

.svatby-page .block-section--default:not(.block-section--pad-none) + .block-section--default:not(.block-section--pad-none) > .block-section__inner,
.firmy-page .block-section--default:not(.block-section--pad-none) + .block-section--default:not(.block-section--pad-none) > .block-section__inner {
  padding-top: 5rem;
}

/* Výjimka: `#co-usporadat` má vlastní odsazení z `styles.css` (32 px nahoře). */
.firmy-page #co-usporadat > .block-section__inner {
  padding-top: 0;
}
