/* Approved brown catalogue design. Opt-in on the ten CZ/EN catalogue pages only. */
body.catalog-theme {
  --catalog-brown: #211c19;
  --catalog-panel: #251f1b;
  --catalog-cream: #f8f0e2;
  --catalog-gold: #cead70;
  --catalog-border: #514537;
  background: var(--catalog-brown);
  color: var(--catalog-cream);
}
.catalog-theme .site-header { position: relative; background: var(--catalog-brown); border-bottom: 0; }
.catalog-theme .header-inner { height: 94px; }
.catalog-theme .brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.catalog-theme .brand img { width: 64px; height: 64px; flex: 0 0 auto; }
.catalog-theme .catalog-brand-name { display: grid; font: 500 1.55rem/1.2 var(--serif); color: var(--catalog-cream); }
.catalog-theme .massages-hero { min-height: 0; padding: 30px 0 32px; background: var(--catalog-brown); border-bottom: 0; }
.catalog-theme .massages-hero h1 { font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: 1.1; }
.catalog-theme .massages-hero-content > p:last-child { font-size: 1rem; color: #e6dcd0; }
.catalog-theme .massage-catalog { background: var(--catalog-brown); padding: 28px 0 52px; }
.catalog-theme .offers-main { padding: 30px 0 52px; }
.catalog-theme .offers-heading h1 { color: var(--catalog-cream); }
.catalog-theme .booking-assurance, .catalog-theme .happy-hours-rules { background: #f0e5d5; }
.catalog-theme .booking-assurance-item strong { white-space: normal; font-size: .95rem; letter-spacing: 0; }
.catalog-theme :is(.massage-grid, .offers-grid) { gap: 24px; align-items: stretch; }
.catalog-theme :is(.massage-card, .offer-card) {
  display: flex; flex-direction: column; min-width: 0; min-height: 0;
  border: 1px solid var(--catalog-border); border-radius: 8px;
  background: var(--catalog-panel); overflow: hidden; transform: none;
}
.catalog-theme :is(.massage-card, .offer-card):hover { border-color: #a88c60; transform: none; }
.catalog-theme :is(.massage-photo, .offer-photo) {
  width: calc(100% - 24px); height: auto; aspect-ratio: 16 / 8;
  margin: 12px 12px 0; border-radius: 5px; overflow: hidden; background: #302820;
}
.catalog-theme :is(.massage-photo, .offer-photo) img { display: block; width: 100%; height: 100%; object-fit: cover; transform: none; }
.catalog-theme :is(.massage-content, .offer-content) { display: flex; flex: 1; flex-direction: column; min-width: 0; padding: 16px 14px 14px; }
.catalog-theme :is(.massage-content h3, .offer-name) { min-height: 0; margin: 0 0 10px; font: 500 clamp(1.35rem, 2vw, 1.65rem)/1.25 var(--serif); color: var(--catalog-cream); overflow-wrap: anywhere; }
.catalog-theme :is(.massage-content > p, .offer-description) { min-height: 0; margin: 0 0 16px; color: #e4dbcf; font-size: 1rem; line-height: 1.5; }
.catalog-theme .massage-badges { min-height: 0; margin-bottom: 8px; }
.catalog-theme .massage-badges:empty { display: none; }
.catalog-theme :is(.massage-badge, .offer-family-label) { align-self: flex-start; width: fit-content; min-height: 0; margin: 0 0 10px; padding: 4px 7px; border: 1px solid #806a49; border-radius: 3px; color: #e5c48c; font: 500 .73rem/1.4 var(--sans); }
.catalog-theme .massage-badges .massage-badge { margin-bottom: 0; }
.catalog-theme .massage-content > .massage-couple-note { padding: 10px; border-left-color: var(--catalog-gold); font-size: .9rem; line-height: 1.5; }
.catalog-theme .massage-section-switch { width: min(100%, 540px); gap: 0; padding: 0; overflow: hidden; border: 1px solid var(--catalog-gold); background: transparent; }
.catalog-theme .massage-section-switch.offer-filters { width: min(100%, 780px); }
.catalog-theme .massage-section-switch button { min-height: 50px; border-radius: 0; color: var(--catalog-cream); font-size: 1rem; }
.catalog-theme .massage-section-switch button[aria-pressed="true"] { background: var(--catalog-gold); color: #211c19; }
.catalog-theme .massage-filter { border-radius: 5px; color: #e5c48c; }
.catalog-theme .massage-filter[aria-pressed="true"] { background: var(--catalog-gold); color: #211c19; }

/* The original lists remain a readable fallback if JS is unavailable. */
.catalog-theme .massage-content > ul, .catalog-theme .offer-variants {
  display: grid; grid-template-columns: repeat(var(--catalog-columns, 3), minmax(0, 1fr));
  gap: 8px; list-style: none; margin: auto 0 12px; padding: 12px 0 0; border: 0;
}
.catalog-theme .massage-content > ul > li, .catalog-theme .offer-variants > li {
  display: flex; flex-direction: column; justify-content: center; gap: 6px; min-width: 0;
  padding: 10px 4px; border: 1px solid #b89a66; border-radius: 6px; text-align: center;
}
.catalog-theme .massage-content > ul > li:only-child { grid-column: 1 / -1; }
.catalog-theme .massage-content > ul:has(> li:nth-child(2):last-child) { --catalog-columns: 2; }
.catalog-theme .massage-content .catalog-price-options { margin: auto 0 12px; padding: 12px 0 0; border: 0; }
.catalog-theme .massage-content .catalog-price-options:not(.catalog-price-static) > li { display: block; padding: 0; border: 0; border-radius: 0; }
.catalog-theme .catalog-price-option {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  width: 100%; height: 100%; min-height: 76px; padding: 10px 4px; border: 1px solid #b89a66;
  border-radius: 6px; background: transparent; color: var(--catalog-cream); font: 400 .95rem/1.2 var(--sans); cursor: pointer;
}
.catalog-theme .catalog-price-option:hover { border-color: #efd8af; background: #352c21; }
.catalog-theme .catalog-price-option[aria-pressed="true"] { border-color: var(--catalog-gold); background: var(--catalog-gold); color: #211c19; }
.catalog-theme .massage-content li strong { color: var(--catalog-cream); font: 600 1.1rem/1.25 var(--sans); white-space: nowrap; text-align: center; }
.catalog-theme .catalog-price-option > span { color: inherit; }
.catalog-theme .catalog-price-option[aria-pressed="true"] :is(strong, .happy-saving) { color: #211c19; }
.catalog-theme .happy-price { text-align: center; gap: 6px; }
.catalog-theme .happy-saving { color: #e5c48c; font-size: .75rem; white-space: normal; }
.catalog-theme :is(.catalog-book, .offer-package-book, .massage-book) {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: none;
  min-width: 0; min-height: 50px; margin: 0; padding: 12px 10px; border: 1px solid var(--catalog-gold); border-radius: 6px;
  background: var(--catalog-gold); color: #211c19; font: 600 1rem/1.4 var(--sans); letter-spacing: 0; text-transform: none; text-align: center;
}
.catalog-theme :is(.catalog-book, .offer-package-book, .massage-book):hover { background: #e0c28d; border-color: #e0c28d; color: #211c19; }
.catalog-theme :is(.catalog-price-option, .catalog-book, .offer-package-book):focus-visible { outline: 3px solid #fff4df; outline-offset: 3px; }
.catalog-theme .offer-package-price { flex-direction: column; align-items: flex-start; gap: 7px; padding: 14px; border: 1px solid #b89a66; border-radius: 6px; color: var(--catalog-cream); }
.catalog-theme .offer-package-price-label { margin: 6px 0 8px; }
.catalog-theme .offer-package-price strong { font-size: 1.45rem; }
.catalog-theme .offer-per-visit { margin-top: 8px; color: #e5c48c; }
.catalog-theme .offer-coverage { flex: 1; margin-bottom: 18px; }
.catalog-theme .offer-coverage summary { color: #e5c48c; }
.catalog-theme .offer-package-book { margin-top: auto; }
.catalog-theme .loyalty-section-number { border-radius: 6px; background: var(--catalog-gold); }
.catalog-theme .site-footer { background: #191511; }
.catalog-theme :is(.massage-card, .offer-card)[hidden] { display: none; }

/* Match the existing public-site backgrounds on opted-in catalogue pages.
   Content: Vouchers; header: Contact; footer: the shared public footer.
   Card styling is unchanged, including on Happy Hours. */
body.catalog-theme.catalog-site-background { --catalog-brown: #34261e; }
.catalog-theme.catalog-site-background .site-header { background: #21160f; }
.catalog-theme.catalog-site-background .site-footer { background: #0f0c0a; }

@media (max-width: 1120px) {
  .catalog-theme :is(.massage-grid, .offers-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .catalog-theme .header-inner { height: 82px; gap: 10px; }
  .catalog-theme .header-menu-ready > .brand { flex: 0 1 auto; }
  .catalog-theme .brand { gap: 10px; }
  .catalog-theme .brand img { width: 52px; height: 52px; }
  .catalog-theme .catalog-brand-name { font-size: clamp(1.05rem, 5vw, 1.45rem); }
  .catalog-theme .header-menu-ready .menu-toggle { flex: 0 0 44px; }
  .catalog-theme .massages-hero { padding: 18px 0 24px; }
  .catalog-theme .massages-hero h1 { font-size: 2.65rem; }
  .catalog-theme .massages-hero-content > p:last-child { font-size: 1rem; line-height: 1.5; }
  .catalog-theme .massage-catalog { padding: 22px 0 40px; }
  .catalog-theme .offers-main { padding: 20px 0 40px; }
  .catalog-theme :is(.massage-grid, .offers-grid) { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .catalog-theme .massage-section-switch { width: 100%; }
  .catalog-theme .massage-section-switch button { font-size: .95rem; padding-inline: 7px; }
  .catalog-theme .booking-assurance-item { padding: 10px 0; }
  .catalog-theme .booking-assurance-item strong { font-size: .94rem; }
  .catalog-theme :is(.massage-content h3, .offer-name) { font-size: 1.55rem; }
  .catalog-theme .massage-content .catalog-price-options { margin-bottom: 12px; }
  .catalog-theme .massage-content li strong { font-size: 1.1rem; }
}
@media (max-width: 360px) {
  .catalog-theme .brand img { width: 44px; height: 44px; }
  .catalog-theme :is(.massage-content, .offer-content) { padding-inline: 12px; }
  .catalog-theme .catalog-price-options { gap: 6px; }
  .catalog-theme .massage-content li strong { font-size: .97rem; }
}
