/* ────────────────────────────────────────────────────────────────
   UBYTOVÁNÍ POD ROZHLEDNOU — SITE STYLES
   Version: 3.0.0 (Premium Restraint Redesign)

   Architecture:
   - Uses CSS Layers for proper cascade control
   - No !important declarations
   - Cormorant Garamond serif headings + Inter body
   - Two-tone warm parchment palette
   ──────────────────────────────────────────────────────────────── */

/* ─── Self-hosted Cormorant Garamond (no external Google Fonts — CSP safe) ─── */
/* Weights: 400, 500, 600 normal + 400, 500 italic | Subsets: latin, latin-ext  */

/* latin-ext — normal 400 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin — normal 400 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext — normal 500 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin — normal 500 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext — normal 600 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin — normal 600 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-normal-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext — italic 400 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin — italic 400 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext — italic 500 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-500-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin — italic 500 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/cormorant-garamond-italic-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ═══════════════════════════════════════════════════════════════
   LAYER DEFINITION

   Order matters: later layers override earlier ones
   ═══════════════════════════════════════════════════════════════ */

@layer reset, base, modules, components, utilities, overrides;

/* ═══════════════════════════════════════════════════════════════
   RESET LAYER - Normalize browser defaults
   ═══════════════════════════════════════════════════════════════ */

@layer reset {
  *, *::before, *::after {
    box-sizing: border-box;
  }
}

/* ═══════════════════════════════════════════════════════════════
   BASE LAYER - Site foundation (tokens, typography, layout)
   ═══════════════════════════════════════════════════════════════ */

@layer base {
  /* ─── CSS Custom Properties (Design Tokens) ─────────────────── */
  :root {
    /* ── Unified design tokens (--da-*) ─────────────────────────── */
    --da-bg:              #faf8f4;
    --da-bg-alt:          #f5efe3;
    --da-surface:         rgba(255, 255, 255, 0.22);
    --da-surface-hover:   rgba(255, 255, 255, 0.35);
    --da-fg:              #1a1a1a;
    --da-fg-muted:        #6b6355;
    --da-fg-dim:          #9a9083;
    --da-fg-inverse:      #f0e6d2;
    --da-accent:          #1f4d3a;
    --da-accent-hover:    #2a6b4f;
    --da-accent-soft:     rgba(31, 77, 58, 0.12);
    --da-border:          #c8bfad;
    --da-border-strong:   #a89f8e;
    --da-success:         #22c55e;
    --da-success-soft:    rgba(34, 197, 94, 0.12);
    --da-error:           #ef4444;
    --da-error-soft:      rgba(239, 68, 68, 0.12);
    --da-warning:         #f59e0b;
    --da-warning-soft:    rgba(245, 158, 11, 0.12);
    --da-info:            #3b82f6;
    --da-info-soft:       rgba(59, 130, 246, 0.12);
    --da-font:            Inter, Roboto, sans-serif;
    --da-font-heading:    'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --da-font-mono:       'Fira Code', 'SF Mono', 'Cascadia Code', monospace;
    --da-font-size:       18px;
    --da-line-height:     1.6;
    --da-pad:             16px;
    --da-edge:            48px;
    --da-max-width:       1440px;
    --da-radius:          8px;
    --da-shadow:          0 4px 16px rgba(80, 60, 20, 0.05);
    --da-shadow-lg:       0 8px 24px rgba(80, 60, 20, 0.12);

    /* ── Nature cottage palette ─────────────────────────────── */
    /* Three section backgrounds that rotate: cream → sage → warm */

    --site-bg-cream:  #faf8f4;   /* soft off-white, airy */
    --site-bg-sage:   #eef3ed;   /* gentle sage green, meadow feel */
    --site-bg-warm:   #f5efe3;   /* warm linen, cozy wood tone */
    --site-bg-deep:   #2c5e47;   /* forest green for accent section */
    --site-fg-on-deep: #f0ebe0;

    /* Legacy aliases — keep anything else working */
    --site-bg-surface: var(--site-bg-cream);
    --site-bg-sand:    var(--site-bg-warm);
    --site-bg-white:   var(--site-bg-cream);
    --site-bg-meadow:  var(--site-bg-sage);
    --site-bg-linen:   var(--site-bg-warm);
    --site-accent: var(--da-accent);

    /* Typography scale — 4 sizes, that's it */
    --site-fs-body:       1.05rem;   /* all body text, descriptions, prose */
    --site-fs-small:      0.9rem;    /* meta, badges, labels only */
    --site-fs-card-title: 1.25rem;   /* card/feature headings */
    --site-fs-section-h:  clamp(1.5rem, 2.5vw, 2rem); /* section h2 */
    --site-lh-body:       1.75;
    --site-font-weight-normal: 400;
    --site-font-weight-semibold: 600;

    /* Card tokens — unified across all sections */
    --card-bg: rgba(255, 255, 255, 0.65);
    --card-border: rgba(255, 255, 255, 0.5);
    --card-blur: 8px;
    --card-shadow: 0 2px 12px rgba(60, 50, 30, 0.06);
    --card-radius: 14px;

    /* Spacing — vertical rhythm based on 24px unit */
    --rhythm: 24px;
    --edge: 48px;

    /* Layout */

    /* Divider tokens (override atom defaults for light theme) */
    --ui-divider-color: var(--da-border);
    --ui-divider-margin: 0;
    --ui-divider-thickness: 1px;
  }

  /* ─── Body & HTML ─────────────────────────────────────────────── */
  html,
  body {
    margin: 0;
    padding: 0;
    background: var(--da-bg);
    color: var(--da-fg);
    font-family: var(--da-font);
    font-weight: var(--site-font-weight-normal);
    line-height: var(--da-line-height);
    overflow-y: auto;
  }

  body[data-site="ubytovani"] {
    overflow-y: auto;
  }

  /* ─── Typography Baseline ───────────────────────────────────── */
  body[data-site="ubytovani"] {
    font-size: 18px;
    -webkit-font-smoothing: antialiased;
    hyphens: none;
    -webkit-hyphens: none;
    word-break: normal;
    overflow-wrap: break-word;
    -moz-osx-font-smoothing: grayscale;
  }

  body[data-site="ubytovani"] h1 {
    font-family: var(--da-font-heading);
    font-weight: 500;
    line-height: 1.15;
    margin: 0;
    letter-spacing: -0.02em;
    text-wrap: balance;
    font-size: clamp(2rem, 4vw, 3rem);
  }

  body[data-site="ubytovani"] h2 {
    font-family: var(--da-font-heading);
    font-weight: 500;
    line-height: 1.2;
    margin: 0;
    letter-spacing: -0.01em;
    text-wrap: balance;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
  }

  body[data-site="ubytovani"] h3 {
    font-family: var(--da-font-heading);
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
    letter-spacing: 0;
  }

  body[data-site="ubytovani"] p {
    margin: 0 0 1em 0;
  }

  body[data-site="ubytovani"] p:last-child {
    margin-bottom: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MODULES LAYER - Module-specific customization
   ═══════════════════════════════════════════════════════════════ */

@layer modules {
  /* ─── Navbar ───────────────────────────────────────────────── */
  /* Override navbar border token — site-border is for image frames, not nav chrome */
  body[data-site="ubytovani"] .ui-layout__cell[data-area="header"] {
    background: var(--da-bg);
    backdrop-filter: none;
  }

  body[data-site="ubytovani"] .ui-navbar__wrap {
    --ui-navbar-bd: transparent;
    padding-bottom: 12px;
  }

  body[data-site="ubytovani"] .ui-navbar {
    height: 60px;
    padding-inline: var(--edge);
  }

  body[data-site="ubytovani"] .ui-navbar__brand img,
  body[data-site="ubytovani"] .ui-navbar__logo img {
    height: 50px;
    width: auto;
    max-width: 250px;
    object-fit: contain;
    vertical-align: middle;
    display: inline-block;
  }

  body[data-site="ubytovani"] .ui-navbar__links a,
  body[data-site="ubytovani"] .ui-navbar__menu a {
    font-weight: 500;
    font-size: 0.92rem;
    letter-spacing: 0.01em;
    color: var(--da-fg);
    opacity: 0.7;
    transition: opacity 0.2s ease;
  }

  body[data-site="ubytovani"] .ui-navbar__links a:hover,
  body[data-site="ubytovani"] .ui-navbar__menu a:hover {
    opacity: 1;
    color: var(--da-accent);
  }

  /* Active page link — pure CSS via body[data-page] + href matching */
  body[data-page="home"] .ui-navbar__link[href$="/"],
  body[data-page="ubytovani"] .ui-navbar__link[href$="/ubytovani"],
  body[data-page="rezervace"] .ui-navbar__link[href$="/rezervace"],
  body[data-page="why-visit"] .ui-navbar__link[href$="/why-visit"] {
    opacity: 1;
    color: var(--da-accent);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 2px;
    text-decoration-color: var(--da-accent);
  }

  /* CTA button never gets underline active state */
  body[data-site="ubytovani"][data-page] .ui-navbar__links li:last-child a,
  body[data-site="ubytovani"][data-page] .ui-navbar__menu li:last-child a {
    text-decoration: none;
  }

  /* Navbar CTA — pill button, quietly confident */
  body[data-site="ubytovani"] .ui-navbar__links li:last-child a,
  body[data-site="ubytovani"] .ui-navbar__menu li:last-child a {
    background: var(--da-accent);
    color: #fff;
    padding: 0.6rem 1.25rem;
    border-radius: 999px;
    opacity: 1;
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    transition: background 0.2s ease, transform 0.15s ease;
  }

  body[data-site="ubytovani"] .ui-navbar__links li:last-child a:hover,
  body[data-site="ubytovani"] .ui-navbar__menu li:last-child a:hover {
    background: #2a6349;
    transform: translateY(-1px);
    color: #fff;
  }

  /* Mobile navbar */
  @media (max-width: 720px) {
    body[data-site="ubytovani"] .ui-navbar {
      height: 48px;
    }

    body[data-site="ubytovani"] .ui-navbar__brand img,
    body[data-site="ubytovani"] .ui-navbar__logo img {
      height: 40px;
      max-width: 200px;
    }

    /* Mobile menu — solid background so content behind is hidden */
    body[data-site="ubytovani"] .ui-navbar__menu--open {
      background: var(--da-bg);
      padding: 0.75rem var(--edge);
    }
  }

  body[data-site="ubytovani"] [data-area="header"] {
    min-height: 60px;
    position: sticky;
    top: 0;
    z-index: 2000;
    background: rgba(248, 243, 232, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(31, 36, 33, 0.06);
    box-shadow: none;
  }

  /* ─── Section defaults — clean separators ───────────────────── */
  body[data-site="ubytovani"] .ui-section {
    --ui-border: transparent;
    --section-pad-top: 0;
    --section-margin: 0;
    border-top: none;
    margin-block: 0;
    padding-top: 0;
  }

  /* Generous section padding — 4.5× rhythm unit (108px) for breathing room */
  body[data-site="ubytovani"] .ui-section-body {
    --ui-sec-body-padY: calc(var(--rhythm) * 4.5);
  }

  /* Heading gap — 2× rhythm unit (48px) */
  body[data-site="ubytovani"][data-page="home"] .ui-feature {
    margin-bottom: calc(var(--rhythm) * 2);
  }

  /* Section transitions — clean separation via background alternation + subtle edge */
  body[data-site="ubytovani"][data-page="home"] .ui-section-body + .ui-section-body {
    border-top: none;
    position: relative;
  }

  body[data-site="ubytovani"][data-page="home"] .ui-section-body + .ui-section-body::before {
    content: "";
    position: absolute;
    top: 0;
    left: var(--edge, 48px);
    width: 40px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.15;
    border-radius: 1px;
  }

  /* Non-home pages keep simple border */
  body[data-site="ubytovani"]:not([data-page="home"]) .ui-section-body + .ui-section-body {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }

  /* ─── Divider wrapper — no padding, no overflow clip ──────── */
  body[data-site="ubytovani"] .module-wrapper.module-ui-divider {
    padding: 0;
    margin: 0;
    overflow: visible;
    line-height: 0;
  }

  /* Soften divider SVG — more ambient, less prominent */
  body[data-site="ubytovani"] .module-wrapper.module-ui-divider svg {
    opacity: 0.75;
  }

  /* ─── Sections ─────────────────────────────────────────────── */
  body[data-site="ubytovani"] .ui-section-body {
    padding-inline: var(--edge);
  }

  /* ─── Media Pipeline ───────────────────────────────────────── */
  body[data-site="ubytovani"] .ui-media-pipeline {
    width: 100%;
  }

  /* ─── Columns ──────────────────────────────────────────────── */
  body[data-site="ubytovani"] .ui-columns {
    gap: var(--da-gap);
  }

  /* ─── Login Page — Premium Product-First ─────────────────── */

  /* Layout: main grows, footer absolute at bottom */
  body[data-site="ubytovani"][data-page="login"] .ui-layout {
    min-height: 100vh;
    position: relative;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="main"] {
    flex: 1;
  }

  /* Remove section constraints for full-bleed */
  body[data-site="ubytovani"][data-page="login"] #login-section {
    padding: 0;
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="login"] #login-section .ui-section-body__inner {
    max-width: none;
    padding: 0;
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="login"] .ui-section-body {
    padding: 0;
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="login"] .ssr-page {
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="login"] .module-wrapper.module-ui-section-body {
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="login"] [data-atom="ui.card"],
  body[data-site="ubytovani"][data-page="login"] [data-atom="ui.card"] > [data-module="ui.card"],
  body[data-site="ubytovani"][data-page="login"] [data-atom="ui.card"] .ui-card {
    height: 100%;
  }

  /* Strip card wrapper — invisible container */
  body[data-site="ubytovani"][data-page="login"] [data-atom="ui.card"] .ui-card {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }

  body[data-site="ubytovani"][data-page="login"] [data-atom="ui.card"] {
    max-width: none;
  }

  /* ─── Ghost Footer — all pages (not login, which has its own) ── */
  body[data-site="ubytovani"]:not([data-page="login"]) [data-area="footer"] .ui-footer__inner {
    opacity: 0.4;
    font-size: 12px;
    line-height: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    transition: opacity 0.3s ease;
    padding-inline: var(--edge, 48px);
  }

  body[data-site="ubytovani"]:not([data-page="login"]) [data-area="footer"] .ui-footer__inner:hover {
    opacity: 0.7;
  }

  body[data-site="ubytovani"]:not([data-page="login"]) [data-area="footer"] .ui-footer__credits {
    white-space: nowrap;
  }

  /* Swap order: copyright first (left), DAREAKT second (right) */
  body[data-site="ubytovani"]:not([data-page="login"]) [data-area="footer"] .ui-footer__credits:first-child {
    order: 2;
  }

  body[data-site="ubytovani"]:not([data-page="login"]) [data-area="footer"] .ui-footer__credits:last-child {
    order: 1;
  }

  /* ─── Admin Bookings Page — edge-to-edge, no white frame ── */
  body[data-site="ubytovani"][data-page="admin-bookings"] [data-area="main"] {
    padding: 0;
  }

  body[data-site="ubytovani"][data-page="admin-bookings"] .ui-section-body {
    --ui-sec-body-padY: var(--edge);
    --ui-sec-body-padX: var(--edge);
  }

  body[data-site="ubytovani"][data-page="admin-bookings"] .ui-section-body__inner {
    padding: 0;
  }
}

@layer components {
  /* ─── All Sections ─────────────────────────────────────────── */
  body[data-site="ubytovani"] .ui-section-body {
    padding-inline: var(--edge);
  }

  body[data-site="ubytovani"] .ui-section-body__inner {
    padding-inline: 0;
  }

  /* ─── Hero Section ─────────────────────────────────────────── */
  /* ...existing code... */

  /* ─────────────────────────────────────────────────────────────
     LOGIN PAGE — Premium Warm Glass (auth.login module)
     Frosted card on warm sand, forest green accent.
     ───────────────────────────────────────────────────────────── */

  /* ── Login section — centered card with ambient glow ───── */
  .module-wrapper--login-section {
    min-height: calc(100vh - 80px);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }

  .module-wrapper--login-section::before {
    content: "";
    position: absolute;
    width: 500px;
    height: 500px;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle, rgba(45, 80, 22, 0.05) 0%, transparent 65%);
    border-radius: 50%;
    pointer-events: none;
  }

  .module-wrapper--login-section .ui-section-body__inner {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(40px, 8vh, 100px) 24px;
  }

  /* ── Stack — the card container ─────────────────────────── */
  .module-wrapper--login-stack {
    width: 100%;
    max-width: 420px;
    background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.65) 0%,
      rgba(255, 255, 255, 0.38) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 20px;
    padding: 40px 36px 36px;
    box-shadow:
      0 24px 48px rgba(100, 70, 20, 0.1),
      0 0 0 1px rgba(255, 255, 255, 0.2),
      inset 0 1px 0 rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    position: relative;
  }

  /* Top accent bar — forest green */
  .module-wrapper--login-stack::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 40px;
    right: 40px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--da-accent), transparent);
    border-radius: 2px;
    opacity: 0.4;
  }

  /* ── Heading ────────────────────────────────────────────── */
  .module-wrapper--login-heading .ui-prose {
    font-family: var(--da-font-heading);
    font-size: 1.6rem;
    font-weight: 500;
    color: #1a1a1a;
    letter-spacing: -0.01em;
    margin: 0;
  }

  /* ── Subtitle — serif continuity with heading ────────── */
  .module-wrapper--login-subtitle .ui-prose {
    font-family: var(--da-font-heading);
    font-size: 1.05rem;
    font-style: italic;
    color: #7a7060;
    margin: -0.5rem 0 0.5rem;
  }

  /* ── Form card (auth.login wrapper) ─────────────────────── */
  .module-wrapper--login-form {
    width: 100%;
  }

  .module-wrapper--login-form .ui-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* ── Labels ─────────────────────────────────────────────── */
  .module-wrapper--login-form .ui-field__label {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: #5a5040;
    margin-bottom: 7px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .module-wrapper--login-form .ui-field__req {
    color: var(--da-accent);
  }

  /* ── Inputs ─────────────────────────────────────────────── */
  .module-wrapper--login-form .ui-field__input {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    font-size: 0.93rem;
    font-family: var(--da-font);
    background: rgba(255, 255, 255, 0.55);
    color: #1a1a1a;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    outline: none;
  }

  .module-wrapper--login-form .ui-field__input::placeholder {
    color: #b0a090;
  }

  .module-wrapper--login-form .ui-field__input:focus {
    border-color: rgba(45, 80, 22, 0.4);
    box-shadow: 0 0 0 3px rgba(45, 80, 22, 0.08);
    background: rgba(255, 255, 255, 0.7);
  }

  /* ── Submit button — green gradient CTA ─────────────────── */
  .module-wrapper--login-form .ui-form__actions {
    margin-top: 0.5rem;
  }

  .module-wrapper--login-form .ui-form__submit {
    width: 100%;
    padding: 12px;
    background: linear-gradient(135deg, #2a6349 0%, #1f4d3a 100%);
    color: #ffffff;
    border: none;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 700;
    font-family: var(--da-font);
    cursor: pointer;
    transition: box-shadow 0.25s ease, transform 0.15s ease, background 0.15s ease;
    letter-spacing: 0.02em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
  }

  .module-wrapper--login-form .ui-form__submit:hover {
    background: linear-gradient(135deg, #357a5e 0%, #2a6349 100%);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.15),
      0 8px 32px rgba(45, 80, 22, 0.25),
      0 0 0 1px rgba(45, 80, 22, 0.1);
    transform: translateY(-1px);
  }

  .module-wrapper--login-form .ui-form__submit:active {
    transform: translateY(0);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 2px 8px rgba(45, 80, 22, 0.15);
  }

  .module-wrapper--login-form .ui-form__submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  /* ── Error messages ─────────────────────────────────────── */
  .module-wrapper--login-form .ui-form__global-msg,
  .module-wrapper--login-form .ui-field__msg {
    font-size: 0.78rem;
    color: #c0392b;
    margin-top: 0.3rem;
  }

  /* ── Mobile adjustments ─────────────────────────────────── */
  @media (max-width: 480px) {
    .module-wrapper--login-stack {
      padding: 32px 24px 28px;
      border-radius: 16px;
    }
  }


  /* ── Ghost footer — legal whisper ───────────────────────── */
  body[data-site="ubytovani"][data-page="login"] [data-area="footer"] {
    position: absolute;
    bottom: 12px;
    left: 0;
    right: 0;
    z-index: 2;
    pointer-events: auto;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="footer"] .ui-footer {
    background: none;
    border: none;
    padding: 0;
    min-height: unset;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="footer"] .ui-footer__inner {
    opacity: 0.35;
    font-size: 11px;
    line-height: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: opacity 0.3s ease;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="footer"] .ui-footer__inner:hover {
    opacity: 0.6;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="footer"] .ui-footer__credits {
    white-space: nowrap;
  }

  /* Soften header on login */
  body[data-site="ubytovani"][data-page="login"] [data-area="header"] {
    opacity: 0.7;
    transition: opacity 0.3s ease;
  }

  body[data-site="ubytovani"][data-page="login"] [data-area="header"]:hover {
    opacity: 1;
  }
}

/* ═══════════════════════════════════════════════════════════════
   COMPONENTS LAYER - Page-specific components
   ═══════════════════════════════════════════════════════════════ */

@layer components {
  /* ─── Hero Section ─────────────────────────────────────────── */

  /* ═══ HERO — The Door to the Experience ═══════════════════ */

  body[data-site="ubytovani"][data-page="home"] #hero-image-section {
    padding: 0;
    --ui-sec-body-padY: 0;
    margin-bottom: 0;
    overflow: hidden;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .ui-section-body__inner {
    max-width: 100%;
    padding: 0;
  }

  /* Stack: image full-bleed, text overlaid at bottom */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .ui-stack {
    gap: 0;
    position: relative;
  }

  /* ── Image — full-width, immersive ─────────────────────── */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-image"] {
    max-width: 100%;
    margin-inline: 0;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .ui-media-pipeline {
    max-width: 100%;
    margin-inline: 0;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-image"] figure.ui-image {
    border: none;
    border-radius: 0;
    overflow: hidden;
    background: #2a3a2e;
    box-shadow: none;
    margin-bottom: 0;
    position: relative;
    z-index: 1;
    max-height: 72vh;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-image"] figure.ui-image img {
    filter: saturate(1.05) contrast(1.03) brightness(0.95);
    display: block;
    width: 100%;
    height: 72vh;
    object-fit: cover;
    object-position: center 40%;
  }

  /* Gradient fade at bottom — image melts into text area */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-image"] figure.ui-image::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(
      to top,
      var(--site-bg-cream) 0%,
      rgba(250, 248, 244, 0.85) 25%,
      rgba(250, 248, 244, 0.4) 55%,
      transparent 100%
    );
    pointer-events: none;
    z-index: 2;
  }

  /* Remove the old grain overlay */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-image"] figure.ui-image::before {
    display: none;
  }

  /* ── Text block — floats over the gradient fade ────────── */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-welcome"] {
    position: relative;
    z-index: 3;
    margin-top: -10rem;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-welcome"] .ui-prose {
    --ui-prose-max: 80%;
    --ui-prose-margin-inline: auto;
    padding-top: 0;
    padding-bottom: 0;
    text-align: center;
    position: relative;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-welcome"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: clamp(2.4rem, 4.5vw, 3.6rem);
    font-weight: 600;
    margin: 0;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #1a2a1e;
    text-shadow: 0 1px 2px rgba(250, 248, 244, 0.8);
  }

  @media (max-width: 720px) {
    body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-welcome"] {
      margin-top: -6rem;
    }
    body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-welcome"] .ui-prose__item {
      font-size: clamp(1.5rem, 5vw, 2rem);
    }
  }

  /* ── Subtitle — warm, readable, the promise ────────────── */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-subtitle"] {
    position: relative;
    z-index: 3;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-subtitle"] .ui-prose {
    --ui-prose-max: 80%;
    --ui-prose-margin-inline: auto;
    text-align: center;
    margin-top: 1.25rem;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-subtitle"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
    font-weight: 400;
    font-style: italic;
    color: var(--da-accent);
    letter-spacing: 0.01em;
    margin: 0 auto;
    max-width: none;
  }

  /* ── Meta badges — the facts ───────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] {
    position: relative;
    z-index: 3;
    padding-bottom: 3.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] .ui-prose {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    margin-top: 1.75rem;
  }

  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] .ui-prose__item {
    font-size: 0.88rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: lowercase;
    color: rgba(31, 56, 43, 0.6);
    max-width: none;
    position: relative;
  }

  /* Dot separators */
  body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] .ui-prose__item + .ui-prose__item::before {
    content: "·";
    position: absolute;
    left: -1.4rem;
    color: var(--da-accent);
    opacity: 0.35;
    font-weight: 700;
    font-size: 1.2rem;
    top: 50%;
    transform: translateY(-50%);
  }

  @media (max-width: 520px) {
    body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] .ui-prose {
      flex-direction: column;
      gap: 0.5rem;
      align-items: center;
    }
    body[data-site="ubytovani"][data-page="home"] #hero-image-section .module-wrapper[data-id="hero-meta"] .ui-prose__item + .ui-prose__item::before {
      display: none;
    }
  }

  /* ─── Content Width Discipline — editorial prose measure ───── */
  body[data-site="ubytovani"][data-page="home"] .ui-prose__item,
  body[data-site="ubytovani"][data-page="home"] .ui-feature__intro {
    max-width: 65ch;
  }

  /* ─── Opening Text — premium editorial section ──────────── */

  body[data-site="ubytovani"][data-page="home"] #opening-text-section {
    padding-top: 4.5rem;
    padding-bottom: 5rem;
  }

  body[data-site="ubytovani"][data-page="home"] #opening-text-section .ui-section-body__inner {
    max-width: 1100px;
    margin-inline: auto;
  }

  /* ── Section heading — editorial ─────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-pullquote"] {
    text-align: center;
    margin-bottom: 3rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-pullquote"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 500;
    color: var(--da-accent);
    line-height: 1.3;
  }

  /* Thin green accent line under heading */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-pullquote"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.5rem auto 0;
  }

  /* ── Columns — vertically centered ─────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-room-columns"] {
    align-items: center;
  }

  /* ── Image — premium photo frame ───────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-room-image"] figure.ui-image {
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
      0 20px 60px rgba(40, 30, 10, 0.15),
      0 4px 12px rgba(40, 30, 10, 0.06);
    border: 5px solid rgba(255, 255, 255, 0.8);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-room-image"] figure.ui-image img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    width: 100%;
    display: block;
  }

  /* ── Text paragraphs ───────────────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="opening-text"] .ui-prose__item {
    color: #3a3a3a;
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
    margin-bottom: 0.75em;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="opening-text"] .ui-prose__item:last-child {
    margin-bottom: 0;
  }

  /* ── Highlights checklist ──────────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-highlights"] {
    padding-top: 1rem;
    margin-top: 0.25rem;
    border-top: 1px solid rgba(31, 77, 58, 0.12);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-highlights"] .ui-prose__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-highlights"] .ui-prose__list-item {
    font-size: var(--site-fs-body);
    color: #4a4a4a;
    line-height: 1.5;
  }

  /* Override module's dot bullet → checkmark */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-highlights"] .ui-prose__list-item::before {
    content: "✓";
    width: auto;
    height: auto;
    border-radius: 0;
    background: none;
    opacity: 1;
    margin-top: 0;
    color: var(--da-accent);
    font-weight: 700;
    font-size: 0.85rem;
  }

  /* ── Mobile ────────────────────────────────────────────── */
  @media (max-width: 720px) {
    body[data-site="ubytovani"][data-page="home"] #opening-text-section {
      padding-top: 2.5rem;
      padding-bottom: 3rem;
    }
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="intro-pullquote"] {
      margin-bottom: 2rem;
    }
  }

  /* ─── Intro Section — Highlights Feature Grid ─────────────── */

  /* Highlights grid container — centered, breathing */
  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-section-body__inner {
    max-width: 860px;
    margin-inline: auto;
    padding-inline: var(--edge);
    position: relative;
    z-index: 1;
  }

  /* ─── Highlights section heading ─────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-heading"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* ─── Highlights Grid — 3 columns ─────────────────────────── */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-grid"] .ui-grid {
    gap: 1.5rem;
    align-items: stretch;
  }

  /* Equal-height cards — stretch wrapper to fill grid cell */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-grid"] .module-wrapper {
    height: 100%;
  }

  /* ─── Highlight Cards — unified with site card tokens ──────── */
  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    padding: 1.75rem 1.75rem;
    border-radius: var(--card-radius);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
    box-shadow: var(--card-shadow);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
  }

  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature:hover {
    transform: translateY(-3px);
    box-shadow:
      0 8px 28px rgba(60, 50, 30, 0.1),
      0 2px 8px rgba(60, 50, 30, 0.05);
  }

  /* Icon — circle with accent bg */
  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature__icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    background: rgba(31, 77, 58, 0.10);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--da-accent);
    margin: 0 0 0.75rem 0;
  }

  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature__icon svg {
    width: 20px;
    height: 20px;
    stroke-width: 1.75;
  }

  /* Title — unified token */
  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature__title {
    font-family: var(--da-font-heading);
    font-weight: 600;
    font-size: var(--site-fs-card-title);
    color: var(--da-fg);
    margin-bottom: 0.375rem;
  }

  /* Description — unified token */
  body[data-site="ubytovani"][data-page="home"] #intro-section .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
    margin: 0;
  }

  /* 3-col → 2-col on tablet, 1-col on mobile */
  @media (max-width: 900px) {
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-grid"] {
      --ui-grid-cols: repeat(2, 1fr);
    }
  }
  @media (max-width: 520px) {
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="highlights-grid"] {
      --ui-grid-cols: 1fr;
    }
  }

     /* ─── Location Section ─────────────────────────────────────── */

  /* Section heading — unified with other sections */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-heading"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Map columns — vertically centered */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-columns"] {
    align-items: stretch;
  }

  /* Map — rounded, premium shadow */
  body[data-site="ubytovani"][data-page="home"] .ui-map[data-id="location-map"] {
    border: none;
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
    height: 100%;
    min-height: 380px;
  }

  body[data-site="ubytovani"][data-page="home"] .ui-map[data-id="location-map"] .ui-map-container {
    border-radius: 0;
    box-shadow: none;
    height: 100%;
  }

  /* Right column — unified card tokens */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-details"] {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    padding: 2.25rem 2.5rem;
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
    display: flex;
    align-items: center;
  }

  body[data-site="ubytovani"][data-page="home"] .ui-stack[data-id="location-details"] {
    background: transparent;
    box-shadow: none;
    padding: 0;
    border-radius: 0;
  }

  /* Description text — unified token */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-description"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  /* Address display */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-address"] .ui-prose__item {
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.5;
    font-size: var(--site-fs-body);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-address"] .ui-prose__item:first-child {
    font-weight: 600;
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-card-title);
    color: var(--da-fg);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-address"] .ui-prose__item + .ui-prose__item {
    margin-top: 0.15em;
    color: var(--da-fg-muted);
  }

  /* GPS coordinates — hide visually, keep for SEO */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-address"] .ui-prose__item:last-child {
    display: none;
  }

  /* Button row */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-buttons"] {
    margin-top: 0.5rem;
  }

  /* Buttons: full-width on mobile */
  @media (max-width: 480px) {
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-buttons"] .ui-flex {
      flex-direction: column;
    }
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-google"] .da-btn,
    body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-seznam"] .da-btn {
      width: 100%;
      text-align: center;
    }
  }

  /* Google Maps button — solid green pill */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-google"] .da-btn {
    background: var(--da-accent);
    color: #fff;
    border: none;
    border-radius: 999px;
    font-size: var(--site-fs-small);
    padding: 0.65rem 1.5rem;
    letter-spacing: 0.03em;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-google"] .da-btn:hover {
    background: var(--da-accent-hover);
    box-shadow: 0 4px 16px rgba(45, 80, 22, 0.18);
    transform: translateY(-1px);
  }

  /* Mapy.cz button — outline pill */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-seznam"] .da-btn {
    background: transparent;
    color: var(--da-accent);
    border: 1.5px solid var(--da-accent);
    border-radius: 999px;
    font-size: var(--site-fs-small);
    padding: 0.65rem 1.5rem;
    transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="location-map-seznam"] .da-btn:hover {
    background: var(--da-accent);
    color: #fff;
    transform: translateY(-1px);
  }

  /* ─── Image Styling (all images on home page) ─────────────── */

  /* Reset wrapper to not interfere with image styling */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper.module-ui-image {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }

  /* Common image styling — clean, let spacing separate */
  body[data-site="ubytovani"][data-page="home"] figure.ui-image {
    border: none;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: none;
  }

  body[data-site="ubytovani"][data-page="home"] figure.ui-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
    image-rendering: auto;
    transform: translateZ(0);
  }

  /* ─── Mushroom Section — Premium Dark ──────────────────────── */

  /* Extra vertical breathing room */
  body[data-site="ubytovani"][data-page="home"] #mushroom-section {
    padding-block: 5rem;
  }

  /* Wider content area */
  body[data-site="ubytovani"][data-page="home"] #mushroom-section .ui-section-body__inner {
    max-width: 1020px;
    margin-inline: auto;
  }

  /* Heading — centered, light on dark, unified style */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-heading"] {
    text-align: center;
    margin-bottom: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--site-fg-on-deep);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: #a8d5b8;
    opacity: 0.4;
    margin: 1.25rem auto 0;
  }

  /* Subtitle — italic editorial intro */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-subtitle"] {
    text-align: center;
    margin: 1rem auto 3rem;
    max-width: 500px;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-subtitle"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: 1.15rem;
    font-style: italic;
    color: rgba(168, 213, 184, 0.65);
    line-height: 1.6;
  }

  /* Columns — vertically centered */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-columns"] {
    align-items: center;
  }

  /* Image — premium framed with glow */
  body[data-site="ubytovani"][data-page="home"] #mushroom-section figure.ui-image {
    max-width: 100%;
  }

  body[data-site="ubytovani"][data-page="home"] #mushroom-section figure.ui-image img {
    border-radius: var(--card-radius);
    border: 3px solid rgba(168, 213, 184, 0.15);
    box-shadow:
      0 12px 40px rgba(0, 0, 0, 0.35),
      0 4px 12px rgba(0, 0, 0, 0.2);
  }

  /* Right side — glassmorphism card on dark */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="mushroom-content"] {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(168, 213, 184, 0.12);
    border-radius: var(--card-radius);
    padding: 2.25rem 2.5rem;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  body[data-site="ubytovani"][data-page="home"] .ui-stack[data-id="mushroom-content"] {
    background: transparent;
    border: none;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
  }

  /* Text — light on dark, generous spacing */
  body[data-site="ubytovani"][data-page="home"] #mushroom-section [data-area="right"] p {
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
    color: rgba(240, 235, 224, 0.82);
  }

  body[data-site="ubytovani"][data-page="home"] #mushroom-section [data-area="right"] strong,
  body[data-site="ubytovani"][data-page="home"] #mushroom-section [data-area="right"] em {
    font-weight: 600;
    color: #f0ebe0;
    font-style: normal;
  }

  /* Badge — seasonal, elegant pill on dark */
  body[data-site="ubytovani"][data-page="home"] .ui-badge[data-variant="seasonal"] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.25rem;
    background: rgba(168, 213, 184, 0.1);
    color: #a8d5b8;
    font-size: var(--site-fs-small);
    font-weight: 500;
    border-radius: 999px;
    border: 1px solid rgba(168, 213, 184, 0.18);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: 0.25rem;
  }

  /* ─── Features Section — icon-only, no cards ──────────────── */

  /* (why-visit rules removed — highlights use #intro-section) */

  /* ─── Attractions Grid — card treatment for features ──────── */

  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    padding: 24px 24px 0;
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
    overflow: hidden;
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
  }

  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:hover {
    box-shadow:
      0 8px 28px rgba(100, 70, 20, 0.12),
      0 20px 60px rgba(100, 70, 20, 0.08),
      inset 0 1px 0 rgba(255, 255, 255, 0.6);
    transform: translateY(-4px);
    border-color: rgba(31, 77, 58, 0.15);
  }

  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:hover .ui-feature__image {
    transform: scale(1.03);
    transition: transform 0.4s ease;
  }

  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:hover .ui-feature__icon {
    opacity: 1;
    color: var(--da-accent);
  }

  /* Last odd card spans full width */
  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .module-wrapper--attractions-grid .ui-feature {
    margin-bottom: 0;
  }

  .module-wrapper--attractions-grid .ui-feature__icon {
    color: var(--da-accent);
    opacity: 0.7;
  }

  .module-wrapper--attractions-grid .ui-feature__title {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-card-title);
    font-weight: 500;
  }

  .module-wrapper--attractions-grid .ui-feature__text {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
  }

  .module-wrapper--attractions-grid .ui-feature__image-wrap {
    margin: 20px -24px -1px;
  }

  .module-wrapper--attractions-grid .ui-feature__image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    border-radius: 0 0 15px 15px;
  }

  /* Odd last card — center in 2-col grid, full-width on mobile */
  .ui-grid[data-id="attractions-grid"] {
    justify-items: center;
  }

  .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    max-width: calc(50% - 16px);
  }

  @media (max-width: 1024px) {
    .ui-grid[data-id="attractions-grid"] {
      justify-items: stretch;
    }
    .module-wrapper--attractions-grid .module-wrapper.module-ui-feature:last-child:nth-child(odd) {
      max-width: none;
    }
  }

  /* ─── Attractions Heading — unified section heading ──────── */

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-heading"] {
    text-align: center;
    margin-bottom: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Attractions subtitle — centered blurb */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-subtitle"] {
    text-align: center;
    max-width: 680px;
    margin: 1.25rem auto 2rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-subtitle"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  /* ─── Attractions Excursions — editorial prose columns ───── */

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-excursions"] {
    max-width: 900px;
    margin: 0 auto 3rem;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    padding: 2.25rem 2.75rem;
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-excursions"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="attractions-excursions"] .ui-prose__item + .ui-prose__item {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(44, 94, 71, 0.08);
  }

  /* ─── Nearby Section — Premium Compact Card Grid ──────────── */

  /* Section heading — unified centered */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-heading"] {
    text-align: center;
    margin-bottom: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Subtitle — centered blurb */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-subtitle"] {
    text-align: center;
    max-width: 580px;
    margin: 1.25rem auto 2.5rem;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-subtitle"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  /* Card grid */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-grid"] {
    max-width: 960px;
    margin-inline: auto;
  }

  /* Cards — clean, simple, clickable */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .module-wrapper.module-ui-feature {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    padding: 1.25rem 1.5rem;
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
    position: relative;
  }

  body[data-site="ubytovani"][data-page="home"] #nearby-section .module-wrapper.module-ui-feature:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(60, 50, 30, 0.1);
    border-color: rgba(44, 94, 71, 0.2);
  }

  /* Strip inner feature styles */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature {
    padding: 0;
    border-radius: 0;
    background: none;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }

  /* Card link — just reset, no grid */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature__card-link {
    text-decoration: none;
    color: inherit;
  }

  /* Hide icons — not needed, title is enough */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature__icon {
    display: none;
  }

  /* Title */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature__title {
    font-weight: 600;
    color: var(--da-fg);
    font-size: var(--site-fs-card-title);
    font-family: var(--da-font-heading);
    margin-bottom: 0.15rem;
    transition: color 0.2s ease;
  }

  body[data-site="ubytovani"][data-page="home"] #nearby-section .module-wrapper.module-ui-feature:hover .ui-feature__title {
    color: var(--da-accent);
  }

  /* Subtitle — distance metadata */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature__subtitle {
    font-size: 0.8rem;
    color: var(--da-fg-muted);
    opacity: 0.55;
    margin-bottom: 0.4rem;
  }

  /* Description */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-small);
    line-height: 1.5;
  }

  /* Arrow → bottom-right of wrapper */
  body[data-site="ubytovani"][data-page="home"] #nearby-section .module-wrapper.module-ui-feature::after {
    content: "→";
    position: absolute;
    bottom: 1rem;
    right: 1.25rem;
    font-size: 0.9rem;
    color: var(--da-accent);
    opacity: 0.25;
    transition: opacity 0.2s ease, transform 0.2s ease;
  }

  body[data-site="ubytovani"][data-page="home"] #nearby-section .module-wrapper.module-ui-feature:hover::after {
    opacity: 0.7;
    transform: translateX(3px);
  }

  /* Tip paragraph — centered, global tokens */
  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-tip"] {
    margin-top: 2.5rem;
    max-width: 600px;
    margin-inline: auto;
    text-align: center;
  }

  body[data-site="ubytovani"][data-page="home"] .module-wrapper[data-id="nearby-tip"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-style: italic;
    color: var(--da-fg);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  /* ─── Service Block Images (consistent aspect ratio) ─────── */

  /* Fix aspect ratio for service block images to eliminate empty space in grid */
  body[data-site="ubytovani"] .ui-feature__image-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
  }

  body[data-site="ubytovani"] .ui-feature__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* Add visual feedback for clickable images */
  body[data-site="ubytovani"] .ui-feature__image-wrap[role="button"] {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }

  body[data-site="ubytovani"] .ui-feature__image-wrap[role="button"]:hover {
    transform: scale(1.02);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
  }

  body[data-site="ubytovani"] .ui-feature__image-wrap[role="button"]:active {
    transform: scale(0.98);
  }

  /* ─── Lightbox Modal (Image Viewer) ─────────────────────── */

  /* Base modal shell (standalone - no ui.modal dependency) */
  #image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    transition: opacity 0.25s ease;
  }

  #image-lightbox[hidden] {
    display: none;
  }

  /* Lighter backdrop with blur - you can see the site behind */
  #image-lightbox .ui-modal__backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(12px) saturate(0.8);
    -webkit-backdrop-filter: blur(12px) saturate(0.8);
  }

  #image-lightbox .ui-modal__dialog {
    position: relative;
    z-index: 1;
    max-width: min(95vw, 1400px);
    max-height: 95vh;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    transform: translateY(-8px);
    opacity: 0;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  #image-lightbox.is-open .ui-modal__dialog {
    transform: translateY(0);
    opacity: 1;
  }

  #image-lightbox .ui-modal__body {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
  }

  /* Image with subtle shadow */
  #image-lightbox .lightbox-image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    display: block;
    margin: 0 auto;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  }

  /* Close button - elegant X in top right */
  #image-lightbox .lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.95);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    color: #333;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  }

  #image-lightbox .lightbox-close:hover {
    transform: scale(1.1);
    background: #fff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
  }

  #image-lightbox .lightbox-close:active {
    transform: scale(0.95);
  }

  #image-lightbox .lightbox-close svg {
    width: 24px;
    height: 24px;
  }

  /* Mobile adjustments */
  @media (max-width: 768px) {
    #image-lightbox .lightbox-close {
      top: 12px;
      right: 12px;
      width: 40px;
      height: 40px;
    }

    #image-lightbox .lightbox-close svg {
      width: 20px;
      height: 20px;
    }
  }

  /* ═══════════════════════════════════════════════════════════
     UBYTOVANI PAGE - Accommodation & Prices
     ═══════════════════════════════════════════════════════════ */

  /* ─── Image Styling (ubytovani page) ─────────────────────── */

  /* Reset wrapper to not interfere with image styling */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper.module-ui-image {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }

  /* Common image styling — borderless premium */
  body[data-site="ubytovani"][data-page="ubytovani"] figure.ui-image {
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  }

  body[data-site="ubytovani"][data-page="ubytovani"] figure.ui-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
  }

  /* ─── Intro Section (opener — image left, heading + text right) ── */

  body[data-site="ubytovani"][data-page="ubytovani"] #accom-intro {
    padding-block: 4rem;
  }

  /* Columns — vertically centered */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-columns"] {
    align-items: center;
  }

  /* Image — premium shadow + border */
  body[data-site="ubytovani"][data-page="ubytovani"] #accom-intro figure.ui-image {
    border-radius: var(--card-radius);
    box-shadow:
      0 12px 40px rgba(60, 50, 30, 0.12),
      0 4px 12px rgba(60, 50, 30, 0.08);
  }

  /* Right column — vertically center heading + text */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-columns"] [data-area="right"] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5rem;
  }

  /* Heading — Cormorant, green, accent line */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
    margin: 0;
    line-height: 1.3;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin-top: 1rem;
  }

  /* Description text — unified tokens */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-text"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  @media (max-width: 720px) {
    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-intro-heading"] .ui-prose__item {
      font-size: clamp(1.375rem, 4vw, 1.875rem);
    }
  }

  /* ─── Pricing Section ────────────────────────────────────── */

  /* Left column — tighter vertical rhythm */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-columns"] [data-area="left"] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* Section heading — unified centered style */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-heading"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Daily price card — frosted glass with centered content */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] {
    padding: 1.5rem 1.75rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 20px rgba(100, 70, 20, 0.06);
    text-align: center;
  }

  /* Price card icon — large, centered */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] .ui-feature__icon {
    width: 52px;
    height: 52px;
    margin-inline: auto;
    margin-bottom: 0.75rem;
    opacity: 0.65;
    background: rgba(45, 80, 22, 0.08);
    border-radius: 50%;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] .ui-feature__icon svg {
    width: 26px;
    height: 26px;
  }

  /* Daily price — large bold number */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] .ui-feature__title {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--da-accent);
    margin-bottom: 0.5rem;
  }

  /* Daily price description — muted multi-line */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: 0.95rem;
    line-height: 1.6;
    white-space: pre-line;
  }

  /* Weekly price cards — frosted glass */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-single"],
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-both"] {
    padding: 1.25rem 1.25rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 4px 20px rgba(100, 70, 20, 0.06);
    text-align: center;
  }

  /* Weekly prices — medium bold number */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-single"] .ui-feature__title,
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-both"] .ui-feature__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--da-accent);
    margin-bottom: 0.375rem;
  }

  /* Weekly price labels */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-single"] .ui-feature__description,
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-both"] .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: 0.875rem;
    line-height: 1.5;
  }

  /* Weekly price grid — tighter spacing */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-weekly-grid"] {
    margin-top: 0;
  }

  /* ─── Reservation Button ─────────────────────────────────── */

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-reservation-btn"] {
    margin-top: 0.5rem;
    text-align: center;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-reservation-btn"] .da-btn {
    background: linear-gradient(135deg, #2a6349 0%, #1f4d3a 100%);
    color: #fff;
    border: none;
    width: 100%;
    padding: 16px 28px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 12px;
    letter-spacing: 0.03em;
    transition: box-shadow 0.2s ease, transform 0.15s ease;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-reservation-btn"] .da-btn:hover {
    background: linear-gradient(135deg, #357a5e 0%, #2a6349 100%);
    box-shadow: 0 6px 24px rgba(45, 80, 22, 0.2);
    transform: translateY(-1px);
  }

  /* ─── Pricing Notes — bullet list ────────────────────────── */

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-notes"] {
    margin-top: 0.75rem;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-notes"] .ui-list__item {
    color: var(--da-fg-muted);
    font-size: 0.9rem;
    line-height: 1.6;
    padding-left: 1rem;
    position: relative;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-pricing-notes"] .ui-list__item::before {
    content: "•";
    display: inline;
    position: absolute;
    left: 0;
    color: var(--da-accent);
    opacity: 0.6;
  }

  /* ─── Deposit Text ───────────────────────────────────────── */

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-deposit-text"] {
    margin-top: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-deposit-text"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: 0.875rem;
    font-style: italic;
    line-height: 1.6;
    opacity: 0.85;
  }

  /* ─── Photo Galleries (ui.media.pipeline) ─────────────────── */
  /* Images live inside .ui-media-inner (child of .ui-media-pipeline),
     so the grid layout must be applied on .ui-media-inner, not the pipeline root. */

  /* Room photos — 2 columns */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-room-photos"] .ui-media-inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  /* Common area photos — 3 columns */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-common-photos"] .ui-media-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
  }

  /* Outdoor photos — 2 columns */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-outdoor-photos"] .ui-media-inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  /* Gallery images — borderless premium */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-room-photos"] .ui-media,
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-common-photos"] .ui-media,
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-outdoor-photos"] .ui-media {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: none;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 100%;
    background: transparent;
  }

  /* ─── Discounts Card (serviceBlock in left column) ──────── */

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] {
    padding: 1.5rem 1.75rem;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    backdrop-filter: blur(var(--card-blur));
    -webkit-backdrop-filter: blur(var(--card-blur));
    margin-top: 0.5rem;
  }

  /* Hide the big % icon */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__icon {
    display: none;
  }

  /* Title — compact, uses heading font */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__title {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-card-title);
    font-weight: 600;
    color: var(--da-accent);
    margin-bottom: 0.75rem;
  }

  /* KV list — vertical stack of pill cards */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  /* Each item — frosted glass pill */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item--kv {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.625rem 0.875rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    transition: background 0.15s ease;
  }

  /* Per-item icon — small, muted circle */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    opacity: 0.6;
    background: rgba(45, 80, 22, 0.06);
    border-radius: 50%;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item-icon svg {
    width: 16px;
    height: 16px;
  }

  /* Label — left, fills space */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__label {
    flex: 1;
    font-size: 0.925rem;
    font-weight: 500;
    color: var(--da-fg);
  }

  /* Value — right-aligned badge */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__value {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--da-accent);
    background: rgba(45, 80, 22, 0.08);
    padding: 0.2rem 0.6rem;
    border-radius: 6px;
    white-space: nowrap;
    letter-spacing: 0.2px;
  }

  /* Highlighted item — slightly stronger card */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item--highlight {
    background: rgba(45, 80, 22, 0.06);
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item--highlight .ui-feature__value {
    background: #234012;
    color: #fff;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] .ui-feature__item--highlight .ui-feature__item-icon {
    opacity: 0.7;
    background: rgba(45, 80, 22, 0.1);
  }

  /* ─── Common Areas Section ───────────────────────────────── */

  body[data-site="ubytovani"][data-page="ubytovani"] #accom-common-areas .ui-feature__title {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
  }

  body[data-site="ubytovani"][data-page="ubytovani"] #accom-common-areas .ui-feature__blurb {
    color: var(--da-fg-muted);
    line-height: 1.65;
    max-width: 680px;
    margin-bottom: 1.5rem;
  }

  /* Common area photos grid — breathing room below */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-common-photos"] {
    margin-bottom: 1.5rem;
  }

  /* ─── Ubytovani Page — Responsive ────────────────────────── */

  @media (max-width: 720px) {
    body[data-site="ubytovani"][data-page="ubytovani"] #accom-pricing .ui-feature__title {
      font-size: 1.4rem;
    }

    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"] .ui-feature__title {
      font-size: 1.75rem;
    }

    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-single"] .ui-feature__title,
    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-both"] .ui-feature__title {
      font-size: 1.25rem;
    }

    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-discounts"] {
      max-width: 100%;
    }
  }
}

  /* ═══════════════════════════════════════════════════════════
     REZERVACE PAGE - Booking & Contact
     ═══════════════════════════════════════════════════════════ */

  /* ─── Hero Section ─────────────────────────────────────── */

  body[data-site="ubytovani"][data-page="rezervace"] #rez-hero {
    padding-block: 3.5rem 4rem;
  }

  /* Heading — centered, Cormorant, accent, with accent line */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-heading"] {
    text-align: center;
    margin-bottom: 0.5rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
    margin: 0;
    line-height: 1.3;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Description — centered, max-width for readability */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-text"] {
    text-align: center;
    max-width: 580px;
    margin-inline: auto;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-text"] .ui-prose__item {
    color: var(--da-fg);
    font-size: var(--site-fs-body);
    line-height: var(--site-lh-body);
  }

  /* Warmth line — centered italic editorial */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-warmth"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-warmth"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-style: italic;
    color: var(--da-accent);
    font-size: 1.1rem;
    line-height: 1.6;
    opacity: 0.7;
  }

  /* Columns — photos left, info stack right */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-columns"] {
    align-items: start;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-columns"] [data-area="right"] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* Hero photos — 2×2 grid */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-photos"] .ui-media-inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-photos"] .ui-media {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: none;
    border-radius: 12px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 100%;
    background: transparent;
  }

  /* Check-in/out timing cards — frosted glass */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkin"],
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkout"] {
    padding: 1.25rem;
    border-radius: var(--card-radius);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    backdrop-filter: var(--card-blur);
    -webkit-backdrop-filter: var(--card-blur);
    box-shadow: var(--card-shadow);
    text-align: center;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkin"] .ui-feature__icon,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkout"] .ui-feature__icon {
    width: 36px;
    height: 36px;
    margin-inline: auto;
    margin-bottom: 0.5rem;
    opacity: 0.6;
    background: rgba(45, 80, 22, 0.08);
    border-radius: 50%;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkin"] .ui-feature__title,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkout"] .ui-feature__title {
    font-size: 1.1rem;
    font-weight: 650;
    color: var(--da-accent);
    margin-bottom: 0.25rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkin"] .ui-feature__description,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkout"] .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-small);
    line-height: 1.5;
    white-space: pre-line;
  }

  /* Timing grid spacing */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-timing-grid"] {
    margin-top: 0;
  }

  /* Price card — prominent, centered */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-price-daily"] {
    padding: 1.5rem;
    border-radius: var(--card-radius);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    backdrop-filter: var(--card-blur);
    box-shadow: var(--card-shadow);
    text-align: center;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-price-daily"] .ui-feature__icon {
    display: none;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-price-daily"] .ui-feature__title {
    font-family: var(--da-font-heading);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--da-accent);
    margin-bottom: 0.25rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-price-daily"] .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-small);
    line-height: 1.5;
    white-space: pre-line;
  }

  /* Deposit card — compact info */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-deposit-hero"] {
    padding: 1rem 1.25rem;
    border-radius: var(--card-radius);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    backdrop-filter: var(--card-blur);
    box-shadow: var(--card-shadow);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-deposit-hero"] .ui-feature__icon {
    display: none;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-deposit-hero"] .ui-feature__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--da-fg);
    margin-bottom: 0.2rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-deposit-hero"] .ui-feature__description {
    color: var(--da-fg-muted);
    font-size: var(--site-fs-small);
    line-height: 1.5;
  }

  /* Cancellation in hero — reuse same styles as the old standalone */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] {
    padding: 0;
    background: transparent;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] > .ui-feature > .ui-feature__icon {
    display: none;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--da-fg);
    margin-bottom: 0.75rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__item--kv {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(6px);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__item-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    opacity: 0.6;
    background: rgba(45, 80, 22, 0.06);
    border-radius: 50%;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__item-icon svg {
    width: 14px;
    height: 14px;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__label {
    flex: 1;
    font-size: var(--site-fs-small);
    color: var(--da-fg);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__value {
    font-weight: 600;
    font-size: var(--site-fs-small);
    color: var(--da-accent);
    padding: 0.15rem 0.5rem;
    border-radius: 6px;
    background: rgba(45, 80, 22, 0.06);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__item--highlight {
    background: rgba(140, 40, 30, 0.04);
    border-color: rgba(140, 40, 30, 0.1);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-cancellation-hero"] .ui-feature__item--highlight .ui-feature__value {
    background: #6b2920;
    color: #fff;
  }

  /* ─── Calendar Section ──────────────────────────────────── */

  body[data-site="ubytovani"][data-page="rezervace"] #rez-calendar-section {
    padding-block: 3rem 3.5rem;
  }

  /* Calendar heading — unified section heading */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-calendar-heading"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-calendar-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-calendar-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Calendar — constrain width, center */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-availability-calendar"] {
    max-width: 900px;
    margin-inline: auto;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    padding: 2rem;
    box-shadow: var(--card-shadow);
    backdrop-filter: var(--card-blur);
  }

  /* ─── Gallery Section ─────────────────────────────────── */

  body[data-site="ubytovani"][data-page="rezervace"] #rez-gallery {
    padding-block: 3rem 3.5rem;
  }

  /* Gallery heading — unified section heading */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-heading"] {
    text-align: center;
    margin-bottom: 0.5rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* Gallery subtitle — italic editorial */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-subtitle"] {
    text-align: center;
    margin-bottom: 2rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-subtitle"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-style: italic;
    font-size: 1.05rem;
    color: var(--da-fg-muted);
  }

  /* Gallery photos — 3-column masonry-like grid */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-photos"] .ui-media-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-photos"] .ui-media {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: none;
    border-radius: var(--card-radius);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    width: 100%;
    max-width: 100%;
    background: transparent;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-gallery-photos"] .ui-media:hover {
    transform: scale(1.02);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  }

  /* ─── Booking Form Section ─────────────────────────────── */

  /* Heading — unified centered style */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-booking-heading"],
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-heading"] {
    text-align: center;
    margin-bottom: 2.5rem;
  }

  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-booking-heading"] .ui-prose__item,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-heading"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-size: var(--site-fs-section-h);
    font-weight: 500;
    color: var(--da-accent);
  }

  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-booking-heading"]::after,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-heading"]::after {
    content: "";
    display: block;
    width: 50px;
    height: 2px;
    background: var(--da-accent);
    opacity: 0.3;
    margin: 1.25rem auto 0;
  }

  /* ─── Contact Section ──────────────────────────────────── */

  /* Image styling for rezervace page */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper.module-ui-image {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
  }

  body[data-site="ubytovani"][data-page="rezervace"] figure.ui-image {
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  }

  body[data-site="ubytovani"][data-page="rezervace"] figure.ui-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
  }

  /* Contact image — max width */
  /* Contact image — rounded, full width */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-image"] figure.ui-image {
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  }

  /* Contact subtitle — italic editorial */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-subtitle"] {
    text-align: center;
    margin-bottom: 2rem;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-subtitle"] .ui-prose__item {
    font-family: var(--da-font-heading);
    font-style: italic;
    font-size: 1.05rem;
    color: var(--da-fg-muted);
  }

  /* Contact columns — vertically centered */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-columns"] {
    align-items: center;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-columns"] [data-area="right"] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  /* Contact cards — frosted glass, clickable */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"],
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"],
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"] {
    padding: 1.25rem 1.5rem;
    border-radius: var(--card-radius);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    backdrop-filter: var(--card-blur);
    box-shadow: var(--card-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"]:hover,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"]:hover,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"]:hover {
    box-shadow: 0 8px 28px rgba(100, 70, 20, 0.12);
    transform: translateY(-2px);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"] .ui-feature__icon,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"] .ui-feature__icon,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"] .ui-feature__icon {
    width: 36px;
    height: 36px;
    margin-bottom: 0.5rem;
    opacity: 0.6;
    background: rgba(45, 80, 22, 0.08);
    border-radius: 50%;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"] .ui-feature__title,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"] .ui-feature__title,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"] .ui-feature__title {
    font-size: var(--site-fs-small);
    font-weight: 600;
    color: var(--da-fg-muted);
    margin-bottom: 0.15rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"] .ui-feature__description,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"] .ui-feature__description,
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"] .ui-feature__description {
    color: var(--da-accent);
    font-size: 1.05rem;
    font-weight: 500;
  }

  /* ─── Legal / Business Identification Section ──────────── */

  body[data-site="ubytovani"][data-page="rezervace"] #rez-legal {
    padding-block: 2rem 2.5rem;
  }

  /* Business ID — centered card */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] {
    max-width: 640px;
    margin-inline: auto;
    padding: 2rem 2.5rem;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    backdrop-filter: var(--card-blur);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] > .ui-feature > .ui-feature__icon {
    display: none;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__title {
    font-family: var(--da-font-heading);
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--da-accent);
    margin-bottom: 1rem;
    text-align: center;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__item--kv {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.5rem 0;
    border-radius: 0;
    background: transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__item-icon {
    display: none;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__label {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--da-fg-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__value {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--da-fg);
    background: transparent;
    padding: 0;
    border-radius: 0;
  }

  /* EET legal text — quiet, centered under card */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-legal-text"] {
    max-width: 640px;
    margin-inline: auto;
  }
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-legal-text"] .ui-prose__item {
    color: var(--da-fg-muted);
    font-size: 0.775rem;
    line-height: 1.6;
    opacity: 0.65;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px dashed rgba(0, 0, 0, 0.08);
    text-align: center;
  }

  /* ─── Rezervace Page — Responsive ──────────────────────── */

  @media (max-width: 720px) {
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-hero-heading"] .ui-prose__item {
      font-size: clamp(1.375rem, 4vw, 1.875rem);
    }

    body[data-site="ubytovani"][data-page="rezervace"] #rez-contact .ui-feature__title {
      font-size: 1.4rem;
    }

    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__list {
      grid-template-columns: 1fr;
    }
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-business-id"] .ui-feature__label {
      min-width: 90px;
    }
  }
}

/* ═══════════════════════════════════════════════════════════════
   UTILITIES LAYER - Helper classes and responsive adjustments
   ═══════════════════════════════════════════════════════════════ */

@layer utilities {
  /* ─── Backdrop-filter fallback ─────────────────────────────── */
  @supports not (backdrop-filter: blur(1px)) {
    body[data-site="ubytovani"] [data-area="header"] {
      background: rgba(240, 230, 210, 0.95);
    }

    .module-wrapper--login-stack {
      background: rgba(255, 255, 255, 0.75);
    }

    /* nearby section is now editorial list — no card fallback needed */

    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-daily"],
    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-single"],
    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-price-weekly-both"] {
      background: rgba(255, 255, 255, 0.5);
    }

    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkin"],
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-checkout"],
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-deposit"],
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-email"],
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone"],
    body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-contact-phone2"] {
      background: rgba(255, 255, 255, 0.5);
    }
  }
}

/* ═══════════════════════════════════════════════════════════════
   OVERRIDES LAYER - Selective overrides (use sparingly)
   ═══════════════════════════════════════════════════════════════ */

@layer overrides {
  /* ─── Weekly Price Grid — keep 2-col on tablet ──────────── */
  body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-weekly-grid"].ui-grid[data-module="ui.grid"] {
    --ui-grid-cols: repeat(2, 1fr);
  }

  /* ─── Photo Galleries — responsive column collapse ──────── */
  @media (max-width: 480px) {
    body[data-site="ubytovani"][data-page="ubytovani"] .module-wrapper[data-id="accom-common-photos"] .ui-media-inner {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* ─── Rezervace — Timing grid keep 2-col on tablet ─────── */
  body[data-site="ubytovani"][data-page="rezervace"] .module-wrapper[data-id="rez-timing-grid"].ui-grid[data-module="ui.grid"] {
    --ui-grid-cols: repeat(2, 1fr);
  }
}

/* ═══════════════════════════════════════════════════════════════
   UNLAYERED — Beats all @layer declarations including module layers
   ═══════════════════════════════════════════════════════════════ */

/* Login page: kill module-layer backgrounds — body owns the color */
body[data-site="ubytovani"][data-page="login"] .ui-canvas[data-module="ui.canvas"],
body[data-site="ubytovani"][data-page="login"] .ui-canvas[data-mod="ui_canvas"],
body[data-site="ubytovani"][data-page="login"] .ui-canvas[data-module="ui.canvas"][data-theme="light"],
body[data-site="ubytovani"][data-page="login"] .ui-canvas[data-mod="ui_canvas"][data-theme="light"] {
  background: #f0e6d2;
}

body[data-site="ubytovani"][data-page="login"] .ui-footer[data-mod="ui_section_footer"] {
  background: transparent;
  border-top: none;
  padding: 0;
  min-height: 0;
}

/* Admin pages: tight layout, no white frame */
body[data-site="ubytovani"][data-page="admin-bookings"] [data-area="main"] {
  padding: 0;
}

body[data-site="ubytovani"][data-page="admin-bookings"] .ui-section-body {
  padding: var(--edge) var(--edge) 2rem;
}

body[data-site="ubytovani"][data-page="admin-bookings"] .ui-section-body__inner {
  padding: 0;
}

/* ─── Responsive overrides (unlayered — must beat layered module CSS) ─── */
@media (max-width: 1024px) {
  body[data-site="ubytovani"] .ui-grid[data-module="ui.grid"] {
    --ui-grid-cols: 1fr;
  }
  body[data-site="ubytovani"] .ui-columns {
    grid-template-columns: 1fr;
    row-gap: calc(var(--da-pad) * 2);
  }
}
@media (max-width: 768px) {
  :root { --edge: 24px; }
  body[data-site="ubytovani"] .ui-grid[data-module="ui.grid"] {
    gap: var(--da-pad);
  }
  body[data-site="ubytovani"] .ui-columns {
    row-gap: var(--da-pad);
  }
  .module-wrapper--login-stack {
    max-width: 380px;
  }
}
@media (max-width: 480px) {
  :root { --edge: 12px; }
}
