

@layer reset, base, primitives;

@layer reset {
  *, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
  }

  body {
    min-height: 100vh;
    min-height: 100dvh;
    line-height: 1.5;
    text-rendering: optimizeLegibility;
  }

  img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
    height: auto;
  }

  input, button, textarea, select {
    font: inherit;
    color: inherit;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
  }

  button {
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }

  ul, ol {
    list-style: none;
  }

  a {
    text-decoration: none;
    color: inherit;
  }

  table {
    border-collapse: collapse;
    border-spacing: 0;
  }

  blockquote, q {
    quotes: none;
  }

  blockquote::before, blockquote::after,
  q::before, q::after {
    content: '';
    content: none;
  }

  hr {
    border: none;
    height: 1px;
    background: currentColor;
    opacity: 0.15;
  }

  address {
    font-style: normal;
  }

  fieldset {
    border: none;
  }

  legend {
    padding: 0;
  }

  summary {
    list-style: none;
    cursor: pointer;
  }

  summary::-webkit-details-marker {
    display: none;
  }

  [hidden] {
    display: none !important;
  }
}

@layer base {
  :root {
    --color-terracotta: #E2725B;
    --color-terracotta-dark: #C95A45;
    --color-light-blue: #A8D8EA;
    --color-light-blue-dark: #7FB8D0;
    --color-cream: #FFFDD0;
    --color-cream-dark: #F0E6C8;
    --color-dark-pine: #4A3B32;
    --color-dark-pine-light: #6B5A4E;

    --color-primary: var(--color-terracotta);
    --color-primary-hover: var(--color-terracotta-dark);
    --color-secondary: var(--color-light-blue);
    --color-secondary-hover: var(--color-light-blue-dark);
    --color-background: var(--color-cream);
    --color-background-alt: var(--color-cream-dark);
    --color-text: var(--color-dark-pine);
    --color-text-muted: var(--color-dark-pine-light);
    --color-text-on-dark: var(--color-cream);
    --color-text-on-primary: var(--color-cream);

    --font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
    --font-body: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

    --text-display: clamp(2rem, 4vw, 2.5rem);
    --text-h1: clamp(1.75rem, 3.5vw, 2rem);
    --text-h2: clamp(1.25rem, 2.5vw, 1.5rem);
    --text-h3: 1.25rem;
    --text-body-large: 1.125rem;
    --text-body: 1rem;
    --text-small: 0.875rem;
    --text-caption: 0.75rem;

    --leading-display: 1.2;
    --leading-h1: 1.25;
    --leading-h2: 1.333;
    --leading-h3: 1.4;
    --leading-body-large: 1.444;
    --leading-body: 1.5;
    --leading-small: 1.428;
    --leading-caption: 1.333;

    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --space-7: 48px;
    --space-8: 64px;
    --space-9: 96px;

    --container-max: 1200px;
    --container-gutter: 24px;
    --section-padding: var(--space-8);
    --section-padding-mobile: var(--space-6);

    --radius-small: 4px;
    --radius-medium: 8px;
    --radius-large: 12px;
    --radius-pill: 24px;

    --border-width: 1px;
    --border-color: var(--color-light-blue);
    --border-color-strong: var(--color-terracotta);

    --shadow-soft: 0 2px 8px rgba(74, 59, 50, 0.1);
    --shadow-hover: 0 4px 16px rgba(74, 59, 50, 0.14);

    --transition-fast: 0.2s ease-in-out;
    --transition-base: 0.3s ease-in-out;

    --focus-ring: 3px solid var(--color-light-blue);
    --focus-ring-offset: 2px;
  }

  body {
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-text);
    background-color: var(--color-background);
    overflow-x: hidden;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-text);
    font-weight: 600;
    letter-spacing: 0.01em;
    text-wrap: balance;
  }

  h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
    margin-block-end: var(--space-5);
  }

  h2 {
    font-size: var(--text-h2);
    line-height: var(--leading-h2);
    margin-block-end: var(--space-4);
  }

  h3 {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    margin-block-end: var(--space-3);
  }

  h4, h5, h6 {
    font-size: var(--text-body);
    line-height: var(--leading-body);
    margin-block-end: var(--space-2);
  }

  p {
    font-size: var(--text-body);
    line-height: var(--leading-body);
    margin-block-end: var(--space-4);
  }

  ul, ol {
    margin-block-end: var(--space-4);
    padding-inline-start: var(--space-5);
  }

  ul {
    list-style: disc;
  }

  ol {
    list-style: decimal;
  }

  li {
    margin-block-end: var(--space-1);
  }

  ul ul, ol ol, ul ol, ol ul {
    margin-block-start: var(--space-1);
    margin-block-end: 0;
  }

  blockquote {
    margin-block-end: var(--space-4);
    padding-inline-start: var(--space-5);
    border-inline-start: 3px solid var(--color-terracotta);
    color: var(--color-text-muted);
  }

  blockquote p:last-child {
    margin-block-end: 0;
  }

  figure {
    margin-block-end: var(--space-4);
  }

  figcaption {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    color: var(--color-text-muted);
    margin-block-start: var(--space-2);
  }

  address {
    margin-block-end: var(--space-4);
  }

  pre {
    margin-block-end: var(--space-4);
    overflow-x: auto;
  }

  code, kbd, samp {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.9em;
  }

  hr {
    margin-block: var(--space-6);
  }

  small {
    font-size: var(--text-small);
    line-height: var(--leading-small);
  }

  strong {
    font-weight: 700;
  }

  em {
    font-style: italic;
  }

  a {
    color: var(--color-primary);
    transition: color var(--transition-fast);
  }

  a:hover {
    color: var(--color-primary-hover);
  }

  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  textarea:focus-visible,
  select:focus-visible,
  summary:focus-visible,
  [tabindex]:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-ring-offset);
  }

  ::selection {
    background-color: var(--color-terracotta);
    color: var(--color-text-on-primary);
  }

  label {
    display: inline-block;
    font-size: var(--text-small);
    line-height: var(--leading-small);
    font-weight: 600;
    margin-block-end: var(--space-1);
  }

  input,
  textarea,
  select {
    display: block;
    width: 100%;
    max-width: 100%;
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-text);
    background-color: var(--color-cream);
    border: var(--border-width) solid var(--color-dark-pine);
    border-radius: var(--radius-small);
    padding: var(--space-2) var(--space-3);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  }

  input::placeholder,
  textarea::placeholder {
    color: var(--color-text-muted);
    opacity: 0.7;
  }

  input:focus,
  textarea:focus,
  select:focus {
    border-color: var(--color-light-blue);
    box-shadow: 0 0 0 2px rgba(168, 216, 234, 0.35);
  }

  textarea {
    min-height: 120px;
    resize: vertical;
  }

  select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234A3B32' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--space-3) center;
    padding-inline-end: var(--space-6);
  }

  input[type="checkbox"],
  input[type="radio"] {
    display: inline-block;
    width: auto;
    max-width: none;
    margin-inline-end: var(--space-2);
    vertical-align: middle;
  }

  input[type="checkbox"]:focus,
  input[type="radio"]:focus {
    box-shadow: none;
  }

  input[type="submit"],
  input[type="reset"],
  input[type="button"] {
    width: auto;
    cursor: pointer;
  }

  input:disabled,
  textarea:disabled,
  select:disabled {
    opacity: 0.6;
    cursor: not-allowed;
  }

  fieldset {
    margin-block-end: var(--space-4);
  }

  legend {
    font-family: var(--font-heading);
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    margin-block-end: var(--space-3);
  }

  img {
    border-radius: var(--radius-small);
    border: var(--border-width) solid var(--color-light-blue);
  }

  h1:last-child,
  h2:last-child,
  h3:last-child,
  h4:last-child,
  h5:last-child,
  h6:last-child,
  p:last-child,
  ul:last-child,
  ol:last-child,
  blockquote:last-child,
  figure:last-child,
  address:last-child,
  pre:last-child,
  fieldset:last-child {
    margin-block-end: 0;
  }

  @media (max-width: 767px) {
    :root {
      --section-padding: var(--section-padding-mobile);
      --container-gutter: 16px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }

    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      transition-delay: 0ms !important;
    }
  }
}

@layer primitives {
  .container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-gutter);
  }

  .section {
    padding-block: var(--section-padding);
  }

  .section--alt {
    background-color: var(--color-background-alt);
  }

  .section--dark {
    background-color: var(--color-dark-pine);
    color: var(--color-text-on-dark);
  }

  .section--dark h1,
  .section--dark h2,
  .section--dark h3,
  .section--dark h4,
  .section--dark h5,
  .section--dark h6 {
    color: var(--color-text-on-dark);
  }

  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    font-weight: 600;
    padding: var(--space-2) var(--space-5);
    border-radius: var(--radius-small);
    border: var(--border-width) solid transparent;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
    text-align: center;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .btn:active {
    transform: scale(0.98);
  }

  .btn--primary {
    background-color: var(--color-terracotta);
    color: var(--color-text-on-primary);
    border-color: var(--color-terracotta);
  }

  .btn--primary:hover {
    background-color: var(--color-terracotta-dark);
    border-color: var(--color-terracotta-dark);
    color: var(--color-text-on-primary);
  }

  .btn--secondary {
    background-color: var(--color-light-blue);
    color: var(--color-dark-pine);
    border-color: var(--color-light-blue);
  }

  .btn--secondary:hover {
    background-color: var(--color-light-blue-dark);
    border-color: var(--color-light-blue-dark);
    color: var(--color-dark-pine);
  }

  .btn--outline {
    background-color: transparent;
    color: var(--color-terracotta);
    border-color: var(--color-terracotta);
  }

  .btn--outline:hover {
    background-color: var(--color-terracotta);
    color: var(--color-text-on-primary);
    border-color: var(--color-terracotta);
  }

  .btn--ghost {
    background-color: transparent;
    color: var(--color-text);
    border-color: transparent;
  }

  .btn--ghost:hover {
    background-color: var(--color-background-alt);
    color: var(--color-text);
  }

  .btn--small {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    padding: var(--space-1) var(--space-3);
  }

  .btn--large {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    padding: var(--space-3) var(--space-6);
  }

  .card {
    background-color: var(--color-cream);
    border: var(--border-width) solid var(--color-light-blue);
    border-radius: var(--radius-medium);
    padding: var(--space-5);
    box-shadow: none;
    transition: box-shadow var(--transition-base), transform var(--transition-base);
  }

  .card:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-2px);
  }

  .card--compact {
    padding: var(--space-4);
  }

  .card--large {
    padding: var(--space-6);
  }

  .badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-caption);
    line-height: var(--leading-caption);
    font-weight: 600;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    background-color: var(--color-light-blue);
    color: var(--color-dark-pine);
    white-space: nowrap;
  }

  .badge--primary {
    background-color: var(--color-terracotta);
    color: var(--color-text-on-primary);
  }

  .badge--outline {
    background-color: transparent;
    border: var(--border-width) solid var(--color-terracotta);
    color: var(--color-terracotta);
  }

  .badge--dark {
    background-color: var(--color-dark-pine);
    color: var(--color-text-on-dark);
  }

  .flex {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
  }

  .flex > * {
    min-width: 0;
    flex-shrink: 1;
  }

  .flex--nowrap {
    flex-wrap: nowrap;
  }

  .flex--column {
    flex-direction: column;
  }

  .flex--center {
    align-items: center;
    justify-content: center;
  }

  .flex--between {
    align-items: center;
    justify-content: space-between;
  }

  .flex--start {
    align-items: flex-start;
    justify-content: flex-start;
  }

  .flex--end {
    align-items: flex-end;
    justify-content: flex-end;
  }

  .flex--gap-sm {
    gap: var(--space-2);
  }

  .flex--gap-md {
    gap: var(--space-4);
  }

  .flex--gap-lg {
    gap: var(--space-6);
  }

  .flex--gap-xl {
    gap: var(--space-7);
  }

  .flex--gap-none {
    gap: 0;
  }

  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-4);
    z-index: 9999;
    background-color: var(--color-dark-pine);
    color: var(--color-text-on-dark);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-small);
    font-weight: 600;
    transition: top var(--transition-fast);
  }

  .skip-link:focus {
    top: var(--space-4);
  }

  .content-list {
    list-style: disc;
    padding-inline-start: var(--space-5);
    margin-block-end: var(--space-4);
  }

  .content-list li {
    margin-block-end: var(--space-2);
  }

  .content-list li:last-child {
    margin-block-end: 0;
  }

  .content-list ul,
  .content-list ol {
    margin-block-start: var(--space-2);
    margin-block-end: 0;
  }

  .content-list--none {
    list-style: none;
    padding-inline-start: 0;
  }

  .content-list--none li {
    margin-block-end: var(--space-2);
  }

  .content-list--none li:last-child {
    margin-block-end: 0;
  }

  .content-list--check {
    list-style: none;
    padding-inline-start: 0;
  }

  .content-list--check li {
    position: relative;
    padding-inline-start: var(--space-5);
    margin-block-end: var(--space-2);
  }

  .content-list--check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--color-terracotta);
    font-weight: 700;
  }

  .content-list--check li:last-child {
    margin-block-end: 0;
  }

  .divider {
    border: none;
    height: 1px;
    background-color: var(--color-light-blue);
    margin-block: var(--space-6);
  }

  .divider--strong {
    background-color: var(--color-terracotta);
  }

  .divider--dark {
    background-color: var(--color-dark-pine);
    opacity: 0.2;
  }

  .image-frame {
    display: inline-block;
    border: var(--border-width) solid var(--color-light-blue);
    border-radius: var(--radius-small);
    padding: var(--space-1);
    background-color: var(--color-cream);
  }

  .image-frame img {
    border: none;
    border-radius: 0;
  }

  .image-frame--terracotta {
    border-color: var(--color-terracotta);
  }

  .image-frame--offset {
    transform: rotate(-1deg);
  }

  .image-frame--offset-right {
    transform: rotate(1deg);
  }
}


/* Header component styles */
.site-header {
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  position: relative;
  z-index: 1000;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 64px;
  padding-block: var(--space-2);
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
  color: var(--color-text-on-dark);
  text-decoration: none;
}

.site-header__brand:hover {
  color: var(--color-text-on-dark);
}

.site-header__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border: none;
  border-radius: 0;
}

.site-header__brand-text {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 600;
  white-space: nowrap;
}

.site-header__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--color-text-on-dark);
  border-radius: var(--radius-small);
  transition: background-color var(--transition-fast);
}

.site-header__toggle:hover {
  background-color: rgba(255, 253, 208, 0.1);
}

.site-header__toggle:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

.site-header__toggle-line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: currentColor;
  border-radius: 1px;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(2) {
  opacity: 0;
}

.site-header__toggle[aria-expanded="true"] .site-header__toggle-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.site-header__nav {
  display: flex;
  align-items: center;
}

.site-header__nav-list {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-header__nav-item {
  margin: 0;
  padding: 0;
}

.site-header__nav-link {
  display: inline-block;
  padding: var(--space-2) var(--space-1);
  color: var(--color-text-on-dark);
  text-decoration: none;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  font-weight: 600;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.site-header__nav-link:hover {
  color: var(--color-light-blue);
}

.site-header__nav-link[aria-current="page"] {
  color: var(--color-terracotta);
  border-bottom-color: var(--color-terracotta);
}

.site-header__nav-link:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

@media (max-width: 1023px) {
  .site-header__inner {
    flex-wrap: wrap;
  }

  .site-header__toggle {
    display: flex;
  }

  .site-header__nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background-color: var(--color-dark-pine);
    padding: var(--space-4);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    box-shadow: var(--shadow-soft);
    z-index: 1001;
  }

  .site-header__nav.is-open {
    display: block;
  }

  .site-header__nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .site-header__nav-item {
    width: 100%;
  }

  .site-header__nav-link {
    display: block;
    padding: var(--space-3) var(--space-2);
    border-bottom: none;
    border-left: 3px solid transparent;
  }

  .site-header__nav-link:hover {
    background-color: rgba(255, 253, 208, 0.05);
    border-left-color: var(--color-terracotta);
  }

  .site-header__nav-link[aria-current="page"] {
    border-left-color: var(--color-terracotta);
    border-bottom: none;
  }
}

@media (max-width: 767px) {
  .site-header__inner {
    min-height: 56px;
  }

  .site-header__logo {
    width: 36px;
    height: 36px;
  }

  .site-header__brand-text {
    display: none;
  }

  .site-header__toggle {
    width: 40px;
    height: 40px;
  }

  .site-header__nav {
    max-height: calc(100vh - 56px);
  }
}


/* Footer, consent, and age modal styles */
.site-footer {
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  padding-block: var(--space-8) var(--space-6);
}

.site-footer__inner {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--space-6);
}

.site-footer__brand {
  grid-column: span 4;
}

.site-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-text-on-dark);
  text-decoration: none;
  margin-bottom: var(--space-4);
}

.site-footer__brand-link:hover {
  color: var(--color-text-on-dark);
}

.site-footer__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border: none;
  border-radius: 0;
}

.site-footer__brand-text {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 600;
}

.site-footer__description {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-text-on-dark);
  opacity: 0.8;
  max-width: 30ch;
}

.site-footer__nav {
  grid-column: span 4;
}

.site-footer__contact {
  grid-column: span 4;
}

.site-footer__heading {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-text-on-dark);
  margin-bottom: var(--space-4);
}

.site-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.site-footer__nav-list a {
  color: var(--color-text-on-dark);
  text-decoration: none;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  transition: color var(--transition-fast);
}

.site-footer__nav-list a:hover {
  color: var(--color-light-blue);
}

.site-footer__address {
  font-style: normal;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-text-on-dark);
  opacity: 0.9;
}

.site-footer__address a {
  color: var(--color-text-on-dark);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.site-footer__address a:hover {
  color: var(--color-light-blue);
}

.site-footer__legal {
  grid-column: span 12;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  border-top: 1px solid rgba(255, 253, 208, 0.2);
  padding-top: var(--space-4);
  margin-top: var(--space-4);
}

.site-footer__legal-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.site-footer__legal-list a {
  color: var(--color-text-on-dark);
  text-decoration: none;
  font-size: var(--text-small);
  line-height: var(--leading-small);
  transition: color var(--transition-fast);
}

.site-footer__legal-list a:hover {
  color: var(--color-light-blue);
}

.site-footer__copyright {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-text-on-dark);
  opacity: 0.7;
  margin: 0;
}

/* Cookie consent */
.cookie-consent {
  position: fixed;
  bottom: var(--space-4);
  left: var(--space-4);
  right: var(--space-4);
  max-width: 600px;
  margin-inline: auto;
  background-color: var(--color-cream);
  color: var(--color-text);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-4);
  box-shadow: var(--shadow-soft);
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.cookie-consent[hidden] {
  display: none !important;
}

.cookie-consent__text {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  margin: 0;
}

.cookie-consent__text a {
  color: var(--color-terracotta);
  text-decoration: underline;
}

.cookie-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.cookie-consent__accept,
.cookie-consent__reject {
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-small);
  font-weight: 600;
  font-size: var(--text-small);
  line-height: var(--leading-small);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.cookie-consent__accept {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  border: 1px solid var(--color-terracotta);
}

.cookie-consent__accept:hover {
  background-color: var(--color-terracotta-dark);
  border-color: var(--color-terracotta-dark);
}

.cookie-consent__reject {
  background-color: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-dark-pine);
}

.cookie-consent__reject:hover {
  background-color: var(--color-background-alt);
}

.cookie-consent__accept:focus-visible,
.cookie-consent__reject:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

/* Age modal */
.age-modal {
  position: fixed;
  inset: 0;
  z-index: 3000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
}

.age-modal[hidden] {
  display: none !important;
}

.age-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(74, 59, 50, 0.8);
  backdrop-filter: blur(2px);
}

.age-modal__dialog {
  position: relative;
  background-color: var(--color-cream);
  color: var(--color-text);
  border: 2px solid var(--color-terracotta);
  border-radius: var(--radius-large);
  padding: var(--space-6);
  max-width: 480px;
  width: 100%;
  box-shadow: var(--shadow-hover);
  text-align: center;
}

.age-modal__title {
  font-family: var(--font-heading);
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  color: var(--color-text);
  margin-bottom: var(--space-3);
}

.age-modal__description {
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: var(--color-text-muted);
  margin-bottom: var(--space-5);
}

.age-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: center;
}

.age-modal__confirm,
.age-modal__decline {
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-small);
  font-weight: 600;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.age-modal__confirm {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  border: 1px solid var(--color-terracotta);
}

.age-modal__confirm:hover {
  background-color: var(--color-terracotta-dark);
  border-color: var(--color-terracotta-dark);
}

.age-modal__decline {
  background-color: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-dark-pine);
}

.age-modal__decline:hover {
  background-color: var(--color-background-alt);
}

.age-modal__confirm:focus-visible,
.age-modal__decline:focus-visible {
  outline: var(--focus-ring);
  outline-offset: var(--focus-ring-offset);
}

@media (max-width: 767px) {
  .site-footer__inner {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .site-footer__brand,
  .site-footer__nav,
  .site-footer__contact {
    grid-column: span 1;
  }

  .site-footer__legal {
    flex-direction: column;
    align-items: flex-start;
  }

  .cookie-consent {
    left: var(--space-2);
    right: var(--space-2);
    bottom: var(--space-2);
  }

  .age-modal__dialog {
    padding: var(--space-4);
  }
}


/* Page-owned styles for soukromi page */
.soukromi-page {
  background-color: var(--color-background);
  color: var(--color-text);
}

.soukromi-section {
  padding-block: var(--section-padding);
  position: relative;
  overflow: hidden;
}

.soukromi-section-alt {
  background-color: var(--color-background-alt);
}

/* Subtle tile pattern for visual separation */
.soukromi-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(45deg, rgba(226, 114, 91, 0.04) 25%, transparent 25%, transparent 75%, rgba(226, 114, 91, 0.04) 75%),
    linear-gradient(45deg, rgba(168, 216, 234, 0.04) 25%, transparent 25%, transparent 75%, rgba(168, 216, 234, 0.04) 75%);
  background-size: 48px 48px;
  pointer-events: none;
  z-index: 0;
}

.soukromi-container {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

.soukromi-text-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: left;
}

.soukromi-text-block h1,
.soukromi-text-block h2,
.soukromi-text-block p,
.soukromi-text-block ul,
.soukromi-text-block .soukromi-table-wrapper,
.soukromi-text-block .soukromi-controller-card,
.soukromi-text-block .soukromi-contact-card {
  margin-block: 0;
}

.soukromi-text-block h1 {
  font-size: var(--text-h1);
  line-height: var(--leading-h1);
  margin-block-end: var(--space-3);
}

.soukromi-text-block h2 {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  margin-block-end: var(--space-2);
}

.soukromi-lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-text);
}

.soukromi-list {
  list-style: disc;
  padding-inline-start: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.soukromi-list li {
  margin-block-end: 0;
}

.soukromi-list-rights li {
  margin-block-end: var(--space-2);
}

.soukromi-controller-card,
.soukromi-contact-card {
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  box-shadow: var(--shadow-soft);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.soukromi-controller-title {
  margin-block-end: var(--space-2);
}

.soukromi-table-wrapper {
  overflow-x: auto;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  background-color: var(--color-cream);
}

.soukromi-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  min-width: 560px;
}

.soukromi-table th,
.soukromi-table td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: top;
  border-bottom: var(--border-width) solid var(--color-light-blue);
}

.soukromi-table thead th {
  background-color: var(--color-light-blue);
  color: var(--color-dark-pine);
  font-weight: 600;
}

.soukromi-table tbody tr:last-child td {
  border-bottom: none;
}

.soukromi-table tbody tr:hover {
  background-color: var(--color-cream-dark);
}

/* Responsive table on mobile */
@media (max-width: 767px) {
  .soukromi-table-wrapper {
    overflow-x: visible;
    border: none;
    background: transparent;
  }

  .soukromi-table {
    min-width: 0;
    display: block;
    border: none;
  }

  .soukromi-table thead {
    display: none;
  }

  .soukromi-table tbody {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }

  .soukromi-table tr {
    display: block;
    background-color: var(--color-cream);
    border: var(--border-width) solid var(--color-light-blue);
    border-radius: var(--radius-medium);
    padding: var(--space-3);
  }

  .soukromi-table td {
    display: block;
    border: none;
    padding: var(--space-1) 0;
  }

  .soukromi-table td::before {
    content: attr(data-label);
    display: block;
    font-weight: 600;
    color: var(--color-text-muted);
    font-size: var(--text-small);
    margin-block-end: var(--space-1);
  }

  .soukromi-table td:first-child {
    padding-block-start: 0;
  }

  .soukromi-table td:last-child {
    padding-block-end: 0;
  }
}

@media (max-width: 479px) {
  .soukromi-container {
    padding-inline: var(--space-4);
  }

  .soukromi-text-block h1 {
    font-size: 1.75rem;
    line-height: 1.3;
  }

  .soukromi-text-block h2 {
    font-size: 1.25rem;
    line-height: 1.4;
  }

  .soukromi-controller-card,
  .soukromi-contact-card {
    padding: var(--space-4);
  }
}


/* Rezervace & Kontakt page styles */

.contact-section {
  background-color: var(--color-cream);
}

.contact-lead {
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-6);
}

.contact-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  max-width: var(--container-max);
  margin-inline: auto;
}

.contact-card {
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  box-shadow: none;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.contact-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.contact-card__icon {
  color: var(--color-terracotta);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--color-light-blue);
  flex-shrink: 0;
}

.contact-card__title {
  margin-block-end: 0;
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
}

.contact-card__message {
  margin-block-end: 0;
  color: var(--color-text-muted);
  max-width: 40ch;
}

.contact-card__link {
  font-weight: 600;
  color: var(--color-terracotta);
  text-decoration: none;
  transition: color var(--transition-fast);
  word-break: break-word;
}

.contact-card__link:hover {
  color: var(--color-terracotta-dark);
}

.contact-card__address {
  font-style: normal;
  color: var(--color-text);
  max-width: 40ch;
}

.contact-card__detail {
  margin-block-end: 0;
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-text-muted);
  max-width: 40ch;
}

.reservation-form-section {
  background-color: var(--color-cream-dark);
}

.reservation-form-lead {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-6);
}

.reservation-form {
  max-width: 600px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-6);
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: 0;
}

.form-field label {
  margin-block-end: 0;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  min-width: 0;
}

.form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.form-error {
  color: var(--color-terracotta-dark);
  font-size: var(--text-small);
  line-height: var(--leading-small);
  margin-block-end: 0;
}

.form-consent {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-text-muted);
  margin-block-end: 0;
}

.reservation-form__submit {
  align-self: flex-start;
}

.form-success {
  color: var(--color-dark-pine);
  background-color: var(--color-light-blue);
  border-radius: var(--radius-small);
  padding: var(--space-3);
  font-weight: 600;
  margin-block-end: 0;
}

.poker-reservation-section {
  background-color: var(--color-cream);
  position: relative;
  overflow: hidden;
}

.poker-reservation-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(168, 216, 234, 0.15) 0px,
    rgba(168, 216, 234, 0.15) 12px,
    transparent 12px,
    transparent 24px
  );
  pointer-events: none;
}

.poker-reservation-container {
  position: relative;
  max-width: 800px;
  margin-inline: auto;
  padding: var(--space-5);
  background-color: rgba(255, 253, 208, 0.92);
  border-radius: var(--radius-medium);
}

.poker-reservation-lead {
  max-width: 70ch;
  margin-block-end: var(--space-4);
}

.poker-reservation-list {
  margin-block-end: var(--space-4);
  padding-inline-start: var(--space-5);
}

.poker-reservation-list li {
  margin-block-end: var(--space-2);
}

.poker-reservation-note {
  max-width: 70ch;
  margin-block-end: 0;
  font-style: italic;
  color: var(--color-text-muted);
}

.opening-hours-section {
  background-color: var(--color-cream-dark);
}

.opening-hours-container {
  max-width: 600px;
  margin-inline: auto;
}

.opening-hours-lead {
  max-width: 600px;
  margin-block-end: var(--space-4);
}

.opening-hours-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  overflow: hidden;
}

.opening-hours-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-block-end: var(--border-width) solid var(--color-light-blue);
  background-color: var(--color-cream);
  margin-block-end: 0;
}

.opening-hours-list li:last-child {
  border-block-end: none;
}

.opening-hours-list span:first-child {
  font-weight: 600;
}

.opening-hours-list span:last-child {
  color: var(--color-text-muted);
  white-space: nowrap;
}

.faq-section {
  background-color: var(--color-cream);
}

.faq-container {
  max-width: 800px;
  margin-inline: auto;
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.faq-item {
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  background-color: var(--color-cream);
  overflow: hidden;
  transition: box-shadow var(--transition-base);
}

.faq-item:hover {
  box-shadow: var(--shadow-soft);
}

.faq-item summary {
  padding: var(--space-4);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-text);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  transition: background-color var(--transition-fast);
}

.faq-item summary:hover {
  background-color: var(--color-background-alt);
}

.faq-item summary::after {
  content: "+";
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-terracotta);
  transition: transform var(--transition-fast);
  flex-shrink: 0;
}

.faq-item[open] summary::after {
  transform: rotate(45deg);
}

.faq-item__content {
  padding: 0 var(--space-4) var(--space-4);
}

.faq-item__content p {
  margin-block-end: 0;
}

.cta-section {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
}

.cta-section h2 {
  color: var(--color-text-on-primary);
}

.cta-container {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.cta-message {
  max-width: 600px;
  margin-block-end: 0;
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

.cta-button {
  min-width: 140px;
}

/* Tablet breakpoint */
@media (max-width: 991px) {
  .contact-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
  }

  .contact-card {
    padding: var(--space-4);
  }
}

/* Mobile breakpoint */
@media (max-width: 767px) {
  .contact-cards {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .contact-card {
    padding: var(--space-4);
  }

  .reservation-form {
    padding: var(--space-4);
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .poker-reservation-container {
    padding: var(--space-4);
  }

  .cta-actions {
    flex-direction: column;
    width: 100%;
  }

  .cta-button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-card,
  .faq-item,
  .faq-item summary::after {
    transition: none;
  }
}


.cookies-page {
  background-color: var(--color-cream);
}

.cookies-section {
  padding-block: var(--section-padding);
}

.cookies-section--intro,
.cookies-section--table,
.cookies-section--third-party,
.cookies-section--contact {
  background-color: var(--color-cream);
}

.cookies-section--types,
.cookies-section--manage,
.cookies-section--changes {
  background-color: var(--color-cream-dark);
}

.cookies-container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

.cookies-container--narrow {
  max-width: 720px;
}

.cookies-text-block,
.cookies-type-block,
.cookies-manage-block {
  max-width: 720px;
  margin-inline: auto;
}

.cookies-h1 {
  font-size: var(--text-h1);
  line-height: var(--leading-h1);
  color: var(--color-terracotta);
  margin-block-end: var(--space-5);
}

.cookies-h2 {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  color: var(--color-terracotta);
  margin-block-end: var(--space-4);
}

.cookies-h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  color: var(--color-dark-pine);
  margin-block-end: var(--space-3);
}

.cookies-text-block p,
.cookies-type-block p,
.cookies-manage-block p {
  margin-block-end: var(--space-4);
}

.cookies-list {
  list-style: disc;
  padding-inline-start: var(--space-5);
  margin-block-end: var(--space-4);
}

.cookies-list li {
  margin-block-end: var(--space-2);
}

.cookies-list li:last-child {
  margin-block-end: 0;
}

.cookies-type-block + .cookies-type-block {
  margin-block-start: var(--space-6);
}

.cookies-manage-block + .cookies-manage-block {
  margin-block-start: var(--space-6);
}

.cookies-table-wrapper {
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.cookies-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  background-color: var(--color-cream);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  overflow: hidden;
}

.cookies-table th,
.cookies-table td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  border-bottom: 1px solid var(--color-light-blue);
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.cookies-table th {
  background-color: var(--color-light-blue);
  color: var(--color-dark-pine);
  font-weight: 600;
}

.cookies-table tbody tr:nth-child(even) {
  background-color: var(--color-cream-dark);
}

.cookies-table tbody tr:last-child td {
  border-bottom: none;
}

.cookies-date {
  color: var(--color-terracotta);
  font-weight: 700;
}

.cookies-contact-list a {
  color: var(--color-terracotta);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookies-contact-list a:hover {
  color: var(--color-terracotta-dark);
}

@media (max-width: 767px) {
  .cookies-section {
    padding-block: var(--section-padding-mobile);
  }

  .cookies-container--narrow {
    padding-inline: 16px;
  }

  .cookies-h1 {
    font-size: 1.75rem;
    line-height: 1.25;
  }

  .cookies-h2 {
    font-size: 1.25rem;
    line-height: 1.333;
  }

  .cookies-h3 {
    font-size: 1.125rem;
    line-height: 1.4;
  }

  .cookies-table th,
  .cookies-table td {
    padding: var(--space-2) var(--space-3);
  }
}


/* Texas Hold’em page styles */

/* Hero */
.th-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url('/src/media/texas-holdem-hero.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: var(--space-8) var(--container-gutter);
  overflow: hidden;
}

.th-hero__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(74, 59, 50, 0.6);
  z-index: 1;
}

.th-hero__content {
  position: relative;
  z-index: 2;
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.th-hero__eyebrow {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-light-blue);
  margin: 0;
}

.th-hero__content h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin: 0;
}

.th-hero__lead {
  color: var(--color-text-on-dark);
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  margin: 0;
  max-width: 520px;
}

/* Intro */
.th-intro {
  background-color: var(--color-cream);
}

.th-intro__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
}

.th-intro__content {
  grid-column: 1 / span 7;
  min-width: 0;
}

.th-intro__content p {
  }

.th-intro__list {
  list-style: disc;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.th-intro__list li {
  margin-block-end: var(--space-2);
}

/* Rules */
.th-rules {
  background-color: var(--color-cream-dark);
}

.th-rules__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: start;
}

.th-rules__pattern {
  grid-column: 1 / span 5;
  min-height: 200px;
  background-image: radial-gradient(circle at 20px 20px, rgba(226, 114, 91, 0.18) 2px, transparent 2px), radial-gradient(circle at 60px 60px, rgba(168, 216, 234, 0.18) 2px, transparent 2px);
  background-size: 80px 80px;
  border-radius: var(--radius-medium);
  border: var(--border-width) solid rgba(226, 114, 91, 0.25);
}

.th-rules__content {
  grid-column: 6 / span 7;
  min-width: 0;
}

.th-rules__content p {
  }

.th-rules__steps {
  list-style: decimal;
  padding-inline-start: var(--space-5);
  margin-block-end: var(--space-4);
}

.th-rules__steps li {
  margin-block-end: var(--space-2);
}

/* Flow */
.th-flow {
  background-color: var(--color-cream);
}

.th-flow__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.th-flow__content {
  grid-column: 1 / span 6;
  min-width: 0;
}

.th-flow__content p {
  }

.th-flow__steps {
  list-style: decimal;
  padding-inline-start: var(--space-5);
  margin-block-end: var(--space-4);
}

.th-flow__steps li {
  margin-block-end: var(--space-2);
}

.th-flow__figure {
  grid-column: 7 / span 6;
  min-width: 0;
  margin: 0;
}

.th-flow__figure img {
  width: 100%;
  height: auto;
  border: 2px solid var(--color-terracotta);
  border-radius: var(--radius-small);
  transform: rotate(-1deg);
  box-shadow: var(--shadow-soft);
}

.th-flow__figure figcaption {
  margin-block-start: var(--space-2);
  text-align: center;
}

/* Atmosphere */
.th-atmosphere {
  background-color: var(--color-cream-dark);
}

.th-atmosphere__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: start;
}

.th-atmosphere__figure {
  grid-column: 1 / span 6;
  min-width: 0;
  margin: 0;
}

.th-atmosphere__figure img {
  width: 100%;
  height: auto;
  border: 2px solid var(--color-terracotta);
  border-radius: var(--radius-small);
  transform: rotate(1deg);
  box-shadow: var(--shadow-soft);
}

.th-atmosphere__figure figcaption {
  margin-block-start: var(--space-2);
  text-align: center;
}

.th-atmosphere__content {
  grid-column: 7 / span 6;
  min-width: 0;
}

.th-atmosphere__content p {
  }

.th-atmosphere__list {
  list-style: disc;
  padding-inline-start: var(--space-5);
  margin-block-end: var(--space-4);
}

.th-atmosphere__list li {
  margin-block-end: var(--space-2);
}

.th-atmosphere__quote {
  margin-block-start: var(--space-4);
  border-inline-start: 3px solid var(--color-terracotta);
  padding-inline-start: var(--space-5);
  color: var(--color-text-muted);
}

.th-atmosphere__quote p {
  margin: 0;
}

/* Reservation */
.th-reservation {
  background-color: var(--color-cream);
}

.th-reservation__content {
  max-width: 500px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.th-reservation__content h2 {
  margin: 0;
}

.th-reservation__content p {
  margin: 0;
}

.th-reservation__contacts {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  font-style: normal;
  margin: 0;
}

.th-reservation__contacts a,
.th-reservation__contacts span {
  color: var(--color-text);
  font-weight: 600;
}

.th-reservation__contacts a:hover {
  color: var(--color-primary);
}

/* FAQ */
.th-faq {
  background-color: var(--color-cream-dark);
}

.th-faq__content {
  max-width: 700px;
  margin-inline: auto;
}

.th-faq__content h2 {
  text-align: left;
}

.th-faq__content > p {
  text-align: left;
}

.th-faq__accordion {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-block-start: var(--space-4);
}

.th-faq__item {
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  background-color: var(--color-cream);
  overflow: hidden;
}

.th-faq__question {
  display: block;
  width: 100%;
  text-align: left;
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  font-weight: 600;
  color: var(--color-text);
  padding: var(--space-4);
  background-color: transparent;
  border: none;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.th-faq__question:hover {
  background-color: var(--color-background-alt);
}

.th-faq__question[aria-expanded="true"] {
  color: var(--color-primary);
}

.th-faq__answer {
  padding: 0 var(--space-4) var(--space-4);
}

.th-faq__answer p {
  margin: 0;
}

/* Final CTA */
.th-final {
  background-color: var(--color-terracotta);
}

.th-final__content {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.th-final__content h2 {
  color: var(--color-text-on-primary);
  margin: 0;
}

.th-final__content p {
  color: var(--color-text-on-primary);
  margin: 0;
}

.th-final__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.th-final__list li {
  color: var(--color-text-on-primary);
  font-weight: 600;
}

.th-final .btn--primary {
  background-color: var(--color-dark-pine);
  border-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
}

.th-final .btn--primary:hover {
  background-color: var(--color-dark-pine-light);
  border-color: var(--color-dark-pine-light);
  color: var(--color-text-on-dark);
}

/* Tablet */
@media (max-width: 1023px) {
  .th-intro__content {
    grid-column: 1 / span 8;
  }

  .th-rules__pattern {
    grid-column: 1 / span 4;
  }

  .th-rules__content {
    grid-column: 5 / span 8;
  }

  .th-flow__content,
  .th-flow__figure {
    grid-column: 1 / span 6;
  }

  .th-atmosphere__figure,
  .th-atmosphere__content {
    grid-column: 1 / span 6;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .th-hero {
    min-height: 50vh;
    padding: var(--space-6) var(--container-gutter);
  }

  .th-hero__content h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
  }

  .th-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .th-intro__grid,
  .th-rules__grid,
  .th-flow__grid,
  .th-atmosphere__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .th-intro__content,
  .th-rules__pattern,
  .th-rules__content,
  .th-flow__content,
  .th-flow__figure,
  .th-atmosphere__figure,
  .th-atmosphere__content {
    grid-column: 1;
  }

  .th-rules__pattern {
    min-height: 120px;
  }

  .th-flow__figure img,
  .th-atmosphere__figure img {
    transform: none;
  }

  .th-reservation__content,
  .th-final__content {
    max-width: 100%;
  }
}

@media (max-width: 479px) {
  .th-hero__content {
    gap: var(--space-3);
  }

  .th-hero .btn--large {
    width: 100%;
    max-width: 320px;
  }

  .th-faq__question {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    padding: var(--space-3);
  }

  .th-faq__answer {
    padding: 0 var(--space-3) var(--space-3);
  }
}


/* Page-owned styles for Podmínky page */

.podminky-page {
    background-color: var(--color-background);
}

/* Hero */
.podminky-hero {
    background-color: var(--color-dark-pine);
    color: var(--color-text-on-dark);
    padding-block: var(--space-8);
}

.podminky-hero__inner {
    max-width: 720px;
    margin-inline: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.podminky-hero__eyebrow {
    font-size: var(--text-small);
    line-height: var(--leading-small);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-light-blue);
    margin-block-end: 0;
}

.podminky-hero__title {
    font-size: var(--text-display);
    line-height: var(--leading-display);
    color: var(--color-text-on-dark);
    margin-block-end: 0;
}

.podminky-hero__lead {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    color: var(--color-text-on-dark);
    opacity: 0.9;
    margin-block-end: 0;
}

/* Sections */
.podminky-section {
    padding-block: var(--section-padding);
}

.podminky-section--alt {
    background-color: var(--color-background-alt);
}

.podminky-section--poker {
    background-color: var(--color-background);
    background-image: radial-gradient(circle at 20px 20px, rgba(168, 216, 234, 0.25) 2px, transparent 2.5px),
                      radial-gradient(circle at 60px 60px, rgba(168, 216, 234, 0.15) 2px, transparent 2.5px);
    background-size: 80px 80px;
}

.podminky-section__grid {
    display: grid;
    gap: var(--space-6);
}

.podminky-section__grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.podminky-section__grid--two {
    grid-template-columns: minmax(0, 1fr);
}

.podminky-section__content {
    min-width: 0;
}

.podminky-section__content--left {
    max-width: 720px;
    margin-inline: 0;
    text-align: left;
}

.podminky-section__number {
    display: inline-block;
    font-family: var(--font-heading);
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    color: var(--color-terracotta);
    margin-block-end: var(--space-2);
}

.podminky-section h2 {
    margin-block-end: var(--space-5);
}

.podminky-unit {
    margin-block-end: var(--space-6);
}

.podminky-unit:last-child {
    margin-block-end: 0;
}

.podminky-unit h3 {
    margin-block-end: var(--space-3);
}

.podminky-unit p {
  margin-block-end: var(--space-4);
}

.podminky-unit p:last-child {
    margin-block-end: 0;
}

.podminky-list {
    list-style: disc;
    padding-inline-start: var(--space-5);
    margin-block-end: 0;
}

.podminky-list li {
    margin-block-end: var(--space-2);
}

.podminky-list li:last-child {
    margin-block-end: 0;
}

.podminky-unit--card {
    background-color: var(--color-cream);
    border: 1px solid var(--color-light-blue);
    border-radius: var(--radius-medium);
    padding: var(--space-5);
    box-shadow: var(--shadow-soft);
    margin-block-end: 0;
}

.podminky-unit--highlight {
    background-color: rgba(168, 216, 234, 0.15);
    border-inline-start: 3px solid var(--color-terracotta);
    padding: var(--space-4);
    border-radius: 0 var(--radius-medium) var(--radius-medium) 0;
}

.podminky-reservation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
}

.podminky-reservation-grid > * {
    min-width: 0;
}

.podminky-effective-date {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    color: var(--color-terracotta);
    font-weight: 600;
    margin-block-end: 0;
}

.podminky-effective-date strong {
    color: var(--color-terracotta-dark);
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
    .podminky-section__grid--two {
        grid-template-columns: minmax(0, 1fr);
    }

    .podminky-reservation-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */
@media (max-width: 767px) {
    .podminky-hero {
        padding-block: var(--space-6);
    }

    .podminky-hero__title {
        font-size: var(--text-h1);
        line-height: var(--leading-h1);
    }

    .podminky-hero__lead {
        font-size: var(--text-body);
        line-height: var(--leading-body);
    }

    .podminky-section {
        padding-block: var(--section-padding-mobile);
    }

    .podminky-section__grid--two {
        grid-template-columns: minmax(0, 1fr);
    }

    .podminky-reservation-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .podminky-section__content--left {
        max-width: 100%;
    }

    .podminky-unit--card {
        padding: var(--space-4);
    }
}


/* Speciality page styles */

.speciality-hero {
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  padding-block: var(--space-8);
  position: relative;
  overflow: hidden;
}

.speciality-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(74, 59, 50, 0.92) 0%, rgba(74, 59, 50, 0.55) 55%, rgba(74, 59, 50, 0.25) 100%);
  z-index: 1;
}

.speciality-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.speciality-hero__content {
  min-width: 0;
  max-width: 600px;
}

.speciality-hero__content h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin-block-end: var(--space-5);
}

.speciality-hero__content p {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-text-on-dark);
  opacity: 0.9;
  margin-block-end: var(--space-6);
}

.speciality-hero__cta {
  margin-block-start: var(--space-2);
}

.speciality-hero__media {
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}

.speciality-frame {
  display: inline-block;
  border: 1px solid var(--color-light-blue);
  border-radius: 8px 12px 6px 10px;
  padding: var(--space-2);
  background-color: var(--color-cream);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.speciality-frame img {
  display: block;
  width: 100%;
  height: auto;
  border: none;
  border-radius: 4px 6px 3px 5px;
}

.speciality-frame--hero {
  width: 100%;
  max-width: 560px;
  transform: rotate(1deg);
}

.speciality-philosophy {
  background-color: var(--color-background-alt);
  position: relative;
}

.speciality-philosophy::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20px 20px, rgba(168, 216, 234, 0.18) 2px, transparent 2px);
  background-size: 40px 40px;
  pointer-events: none;
}

.speciality-philosophy__content {
  position: relative;
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
}

.speciality-philosophy__content h2 {
  margin-block-end: var(--space-5);
}

.speciality-philosophy__content p {
  margin-block-end: var(--space-4);
}

.speciality-philosophy__content p:last-child {
  margin-block-end: 0;
}

.speciality-selection__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-block-start: var(--space-6);
}

.speciality-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background-color: var(--color-cream);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-4);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.speciality-card:hover {
  box-shadow: 0 4px 12px rgba(74, 59, 50, 0.15);
  transform: translateY(-4px);
}

.speciality-frame--card {
  width: 100%;
  margin-block-end: var(--space-4);
  transform: rotate(-0.5deg);
}

.speciality-card:nth-child(2) .speciality-frame--card {
  transform: rotate(0.5deg);
}

.speciality-card:nth-child(3) .speciality-frame--card {
  transform: rotate(-1deg);
}

.speciality-card__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.speciality-card__body h3 {
  margin-block-end: 0;
}

.speciality-card__body p {
  margin-block-end: 0;
}

.speciality-poker {
  background-color: var(--color-background-alt);
  position: relative;
}

.speciality-poker::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 30px 30px, rgba(168, 216, 234, 0.15) 2px, transparent 2px);
  background-size: 50px 50px;
  pointer-events: none;
}

.speciality-poker__grid {
  position: relative;
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-6);
  align-items: center;
}

.speciality-poker__content {
  min-width: 0;
  max-width: 500px;
}

.speciality-poker__content h2 {
  margin-block-end: var(--space-4);
}

.speciality-poker__content p {
  margin-block-end: var(--space-4);
}

.speciality-poker__content p:last-child {
  margin-block-end: 0;
}

.speciality-frame--poker {
  width: 100%;
  max-width: 480px;
  justify-self: end;
  transform: rotate(-1deg);
}

.speciality-evenings {
  background-color: var(--color-background);
}

.speciality-evenings__content {
  max-width: 600px;
}

.speciality-evenings__content h2 {
  margin-block-end: var(--space-4);
}

.speciality-evenings__content p {
  margin-block-end: var(--space-4);
}

.speciality-evenings__list {
  list-style: disc;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.speciality-evenings__list li {
  margin-block-end: var(--space-2);
}

.speciality-evenings__list li:last-child {
  margin-block-end: 0;
}

.speciality-availability {
  background-color: var(--color-background-alt);
}

.speciality-availability__content {
  max-width: 600px;
}

.speciality-availability__content h2 {
  margin-block-end: var(--space-4);
}

.speciality-availability__content p {
  margin-block-end: 0;
}

.speciality-reservation {
  background-color: var(--color-background);
  text-align: center;
}

.speciality-reservation__content {
  max-width: 500px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.speciality-reservation__content h2 {
  margin-block-end: 0;
}

.speciality-reservation__content p {
  margin-block-end: 0;
}

.speciality-reservation__contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}

.speciality-reservation__contact {
  font-weight: 600;
  color: var(--color-terracotta);
  transition: color var(--transition-fast);
}

.speciality-reservation__contact:hover {
  color: var(--color-terracotta-dark);
}

.speciality-reservation__cta {
  margin-block-start: var(--space-2);
}

.speciality-gallery {
  background-color: var(--color-background-alt);
}

.speciality-gallery__intro {
  max-width: 600px;
  margin-block-end: var(--space-6);
}

.speciality-gallery__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.speciality-frame--gallery {
  width: 100%;
  transform: rotate(0deg);
}

.speciality-frame--gallery:nth-child(1) {
  transform: rotate(-0.8deg);
}

.speciality-frame--gallery:nth-child(2) {
  transform: rotate(0.6deg);
}

.speciality-frame--gallery:nth-child(3) {
  transform: rotate(-0.4deg);
}

@media (max-width: 1023px) {
  .speciality-hero__inner {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .speciality-hero__content {
    max-width: 100%;
  }

  .speciality-hero__media {
    justify-content: center;
  }

  .speciality-frame--hero {
    max-width: 100%;
  }

  .speciality-selection__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .speciality-poker__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .speciality-poker__content {
    max-width: 100%;
  }

  .speciality-frame--poker {
    max-width: 100%;
    justify-self: center;
  }

  .speciality-gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .speciality-hero {
    padding-block: var(--space-6);
  }

  .speciality-hero__content h1 {
    font-size: 1.75rem;
    line-height: 1.25;
  }

  .speciality-selection__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .speciality-card {
    padding: var(--space-4);
  }

  .speciality-card__body p {
  }

  .speciality-philosophy__content,
  .speciality-evenings__content,
  .speciality-availability__content,
  .speciality-reservation__content,
  .speciality-gallery__intro {
    max-width: 100%;
  }

  .speciality-reservation__contacts {
    flex-direction: column;
    align-items: center;
  }

  .speciality-gallery__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
}

@media (max-width: 479px) {
  .speciality-hero__inner {
    gap: var(--space-4);
  }

  .speciality-hero__content h1 {
    font-size: 1.5rem;
  }

  .speciality-hero__content p {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .speciality-frame {
    padding: var(--space-1);
  }
}


/* Pokerové večery – page-owned styles */

.poker-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  background-image: url('/src/media/poker-vecery-hero.webp');
  background-size: cover;
  background-position: center right;
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  padding-block: var(--space-8);
}

.poker-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(74, 59, 50, 0.88) 0%, rgba(74, 59, 50, 0.55) 60%, rgba(74, 59, 50, 0.25) 100%);
  z-index: 1;
}

.poker-hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
}

.poker-hero__content {
  max-width: 60%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  text-align: left;
}

.poker-hero h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin-block-end: 0;
}

.poker-hero__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-text-on-dark);
  margin-block-end: 0;
  max-width: 55ch;
}

.poker-hero__cta {
  white-space: normal;
}

/* Koncept večera */
.poker-concept {
  background-image: radial-gradient(circle at 20px 20px, rgba(168, 216, 234, 0.18) 2px, transparent 2px);
  background-size: 48px 48px;
}

.poker-concept__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-7);
  align-items: start;
}

.poker-concept__text {
  min-width: 0;
}

.poker-concept__text p {
  }

.poker-concept__media {
  min-width: 0;
  margin-block-end: 0;
}

.poker-concept__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-small);
  box-shadow: 6px 6px 0 rgba(226, 114, 91, 0.25);
}

/* Průběh večera */
.poker-schedule__inner {
  max-width: 800px;
  margin-inline: auto;
}

.poker-schedule__intro {
  max-width: 65ch;
}

.poker-timeline {
  list-style: none;
  padding-inline-start: 0;
  margin-block: var(--space-6) var(--space-5);
  border-inline-start: 2px solid var(--color-terracotta);
  padding-inline-start: var(--space-5);
}

.poker-timeline__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-block-end: var(--space-5);
  padding-inline-start: var(--space-4);
}

.poker-timeline__item::before {
  content: '';
  position: absolute;
  left: calc(-1 * var(--space-5) - 7px);
  top: 0.35em;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: var(--color-terracotta);
  border: 2px solid var(--color-cream);
  box-shadow: 0 0 0 1px var(--color-terracotta);
}

.poker-timeline__item:last-child {
  margin-block-end: 0;
}

.poker-timeline__time {
  font-weight: 700;
  color: var(--color-terracotta);
  font-size: var(--text-body);
  line-height: var(--leading-body);
}

.poker-timeline__desc {
  color: var(--color-text);
}

.poker-schedule__note {
  max-width: 65ch;
}

/* Gastronomie */
.poker-gastro__title {
  text-align: center;
  margin-block-end: var(--space-6);
}

.poker-gastro__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.poker-gastro__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  text-align: center;
  padding: var(--space-5);
}

.poker-gastro__card h3 {
  margin-block-end: 0;
}

.poker-gastro__card p {
  margin-block-end: 0;
  margin-inline: auto;
}

/* Harmonogram a rezervace */
.poker-booking__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-7);
  align-items: start;
}

.poker-booking__info,
.poker-booking__reservation {
  min-width: 0;
}

.poker-booking__info p,
.poker-booking__reservation p {
  }

.poker-booking__table {
  width: 100%;
  margin-block-end: var(--space-4);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  overflow: hidden;
  font-size: var(--text-body);
}

.poker-booking__table th,
.poker-booking__table td {
  padding: var(--space-2) var(--space-4);
  text-align: left;
  border-block-end: var(--border-width) solid var(--color-light-blue);
}

.poker-booking__table th {
  background-color: var(--color-background-alt);
  font-weight: 700;
}

.poker-booking__table tr:last-child td {
  border-block-end: none;
}

.poker-booking__reservation .btn {
  margin-block-start: var(--space-4);
}

/* Výhody */
.poker-benefits {
  background-image: radial-gradient(circle at 20px 20px, rgba(168, 216, 234, 0.18) 2px, transparent 2px);
  background-size: 48px 48px;
}

.poker-benefits__intro {
  max-width: 50ch;
}

.poker-benefits__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  margin-block-start: var(--space-5);
}

.poker-benefits__list {
  min-width: 0;
  margin-block-end: 0;
}

.poker-benefits__list li {
  max-width: 50ch;
}

/* Časté dotazy */
.poker-faq__inner {
  max-width: 800px;
  margin-inline: auto;
}

.poker-faq__accordion {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-block-start: var(--space-5);
}

.poker-faq__item {
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  background-color: var(--color-cream);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.poker-faq__item summary {
  padding: var(--space-4) var(--space-5);
  font-weight: 600;
  color: var(--color-terracotta);
  background-color: var(--color-cream);
  transition: background-color var(--transition-fast);
  position: relative;
  padding-inline-end: var(--space-7);
}

.poker-faq__item summary::after {
  content: '+';
  position: absolute;
  right: var(--space-5);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--text-h3);
  line-height: 1;
  color: var(--color-terracotta);
}

.poker-faq__item[open] summary::after {
  content: '–';
}

.poker-faq__item summary:hover {
  background-color: var(--color-background-alt);
}

.poker-faq__item p {
  padding: 0 var(--space-5) var(--space-5);
  margin-block-end: 0;
  }

/* Rezervační formulář */
.poker-form__card {
  max-width: 600px;
  margin-inline: auto;
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: center;
}

.poker-form__card h2 {
  margin-block-end: 0;
}

.poker-form__card > p {
  margin-block-end: 0;
}

.poker-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  text-align: left;
  margin-block-start: var(--space-2);
}

.poker-form__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.poker-form__field label {
  margin-block-end: 0;
}

.poker-form__submit {
  align-self: center;
  margin-block-start: var(--space-2);
}

.poker-form__message {
  min-height: 1.5em;
  margin-block-end: 0;
  color: var(--color-terracotta);
  font-weight: 600;
  text-align: center;
}

.poker-form__note {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  color: var(--color-text-muted);
  margin-block-end: 0;
}

/* Závěrečná výzva */
.poker-final {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
}

.poker-final__inner {
  max-width: 80%;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  text-align: center;
}

.poker-final h2 {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
}

.poker-final p {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
}

.poker-final__cta {
  background-color: var(--color-cream);
  color: var(--color-terracotta);
  border-color: var(--color-cream);
  white-space: normal;
}

.poker-final__cta:hover {
  background-color: var(--color-cream-dark);
  border-color: var(--color-cream-dark);
  color: var(--color-terracotta-dark);
}

/* Tablet */
@media (max-width: 991px) {
  .poker-hero__content {
    max-width: 75%;
  }

  .poker-concept__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .poker-concept__media {
    order: -1;
  }

  .poker-gastro__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .poker-gastro__card:last-child {
    grid-column: span 2;
  }

  .poker-booking__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .poker-benefits__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
}

/* Mobile */
@media (max-width: 767px) {
  .poker-hero {
    min-height: 60vh;
    padding-block: var(--space-6);
  }

  .poker-hero__content {
    max-width: 100%;
    align-items: center;
    text-align: center;
    gap: var(--space-4);
  }

  .poker-hero h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
  }

  .poker-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .poker-hero__cta {
    width: 100%;
  }

  .poker-concept__grid {
    gap: var(--space-4);
  }

  .poker-concept__text p {
  }

  .poker-concept__media img {
    box-shadow: 4px 4px 0 rgba(226, 114, 91, 0.25);
  }

  .poker-gastro__grid {
    grid-template-columns: 1fr;
  }

  .poker-gastro__card:last-child {
    grid-column: auto;
  }

  .poker-gastro__card p {
  }

  .poker-booking__info p,
  .poker-booking__reservation p {
  }

  .poker-benefits__intro {
    max-width: none;
  }

  .poker-benefits__list li {
    max-width: none;
  }

  .poker-form__card {
    padding: var(--space-5);
  }

  .poker-final__inner {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .poker-hero {
    min-height: 55vh;
  }

  .poker-timeline {
    padding-inline-start: var(--space-4);
  }

  .poker-timeline__item {
    padding-inline-start: var(--space-3);
  }

  .poker-timeline__item::before {
    left: calc(-1 * var(--space-4) - 7px);
  }

  .poker-form__card {
    padding: var(--space-4);
  }

  .poker-form__submit {
    width: 100%;
  }
}


/* Page-owned styles for /menu/ */
.menu-page {
  display: block;
}

/* Hero */
.menu-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 80vh;
  overflow: hidden;
  background-color: var(--color-dark-pine);
}

.menu-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

.menu-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(74, 59, 50, 0.55) 0%, rgba(74, 59, 50, 0.85) 100%);
}

.menu-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 600px;
  padding: var(--space-8) var(--container-gutter);
  text-align: left;
  color: var(--color-text-on-dark);
}

.menu-hero__content h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin-block-end: var(--space-4);
}

.menu-hero__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-text-on-dark);
  margin-block-end: var(--space-6);
}

.menu-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.menu-hero__actions .btn {
  flex-shrink: 0;
}

/* Overview */
.menu-overview__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.menu-overview__intro {
  max-width: 600px;
  text-align: left;
}

.menu-overview__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}

.menu-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-width: 0;
  padding: var(--space-5) var(--space-4);
  border-radius: var(--radius-medium);
  text-align: center;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.menu-tile:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.menu-tile__icon {
  font-size: 1.5rem;
  line-height: 1;
}

.menu-tile__name {
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  max-width: 200px;
}

.menu-tile__desc {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  max-width: 200px;
}

.menu-tile--terracotta {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
}

.menu-tile--light-blue {
  background-color: var(--color-light-blue);
  color: var(--color-dark-pine);
}

.menu-tile--cream-dark {
  background-color: var(--color-cream-dark);
  color: var(--color-dark-pine);
}

.menu-tile--dark-pine {
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
}

/* Category sections */
.menu-category__container,
.menu-speciality__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.menu-category__intro,
.menu-speciality__intro {
  max-width: 600px;
  text-align: left;
}

.menu-category__grid,
.menu-speciality__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.menu-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-5);
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  box-shadow: none;
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}

.menu-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-2px);
}

.menu-card h3 {
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  margin-block-end: 0;
}

.menu-card p {
  margin-block-end: 0;
}

.menu-card__price {
  font-weight: 700;
  color: var(--color-terracotta);
  margin-block-start: auto;
}

.menu-card--speciality {
  border-color: var(--color-terracotta);
}

/* Drinks */
.menu-drinks__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.menu-drinks__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
}

.menu-drinks__column {
  min-width: 0;
  max-width: 500px;
  text-align: left;
}

.menu-drinks__column h3 {
  margin-block-end: var(--space-3);
}

/* Poker section */
.menu-poker {
  background-image: radial-gradient(circle at 20% 20%, rgba(168, 216, 234, 0.18) 0, transparent 28%),
    radial-gradient(circle at 80% 40%, rgba(226, 114, 91, 0.12) 0, transparent 30%),
    radial-gradient(circle at 40% 80%, rgba(168, 216, 234, 0.15) 0, transparent 28%);
}

.menu-poker__container {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-6);
  align-items: center;
}

.menu-poker__text {
  min-width: 0;
  max-width: 500px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.menu-poker__text h2 {
  margin-block-end: 0;
}

.menu-poker__text p {
  margin-block-end: 0;
}

.menu-poker__text .btn {
  align-self: flex-start;
}

.menu-poker__image-wrap {
  min-width: 0;
  display: flex;
  justify-content: center;
}

.menu-poker__image {
  width: 100%;
  max-width: 100%;
  height: auto;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-small);
  transform: rotate(1deg);
}

/* Gallery */
.menu-gallery__container {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.menu-gallery__intro {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
}

.menu-gallery__mosaic {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}

.menu-gallery__item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.menu-gallery__item--large {
  grid-column: span 2;
}

.menu-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1 / 1;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-small);
}

.menu-gallery__item--large img {
  aspect-ratio: 4 / 3;
}

.menu-gallery__item figcaption {
  text-align: center;
  font-size: var(--text-small);
  color: var(--color-text-muted);
}

/* CTA */
.menu-cta {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  padding-block: var(--section-padding);
}

.menu-cta__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  text-align: center;
  max-width: 600px;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
}

.menu-cta__container h2 {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
}

.menu-cta__container p {
  margin-block-end: 0;
}

.menu-cta__container a {
  color: var(--color-text-on-primary);
  text-decoration: underline;
}

.menu-cta__container .btn {
  text-decoration: none;
}

/* Tablet */
@media (max-width: 991px) {
  .menu-overview__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-category__grid,
  .menu-speciality__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-poker__container {
    grid-template-columns: 1fr;
  }

  .menu-poker__text {
    max-width: 100%;
  }

  .menu-poker__image-wrap {
    order: -1;
  }

  .menu-gallery__mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-gallery__item--large {
    grid-column: span 1;
  }

  .menu-gallery__item--large img {
    aspect-ratio: 1 / 1;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .menu-hero {
    min-height: 70vh;
  }

  .menu-hero__content {
    padding: var(--space-6) var(--container-gutter);
  }

  .menu-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .menu-hero__actions .btn {
    width: 100%;
  }

  .menu-overview__grid {
    grid-template-columns: 1fr;
  }

  .menu-category__grid,
  .menu-speciality__grid {
    grid-template-columns: 1fr;
  }

  .menu-drinks__columns {
    grid-template-columns: 1fr;
  }

  .menu-drinks__column {
    max-width: 100%;
  }

  .menu-gallery__mosaic {
    grid-template-columns: 1fr;
  }

  .menu-gallery__item--large {
    grid-column: span 1;
  }

  .menu-cta__container .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-tile,
  .menu-card {
    transition: none;
  }

  .menu-tile:hover,
  .menu-card:hover {
    transform: none;
  }
}


/* Page-owned styles for /restaurace/ — scoped to main content */

/* Hero */
.hero-restaurace {
  position: relative;
  min-height: 640px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--color-dark-pine);
}

.hero-restaurace__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero-restaurace__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

.hero-restaurace__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(74, 59, 50, 0.88) 0%, rgba(74, 59, 50, 0.72) 45%, rgba(74, 59, 50, 0.35) 100%);
}

.hero-restaurace__container {
  position: relative;
  z-index: 2;
  width: 100%;
  display: flex;
  justify-content: flex-start;
}

.hero-restaurace__content {
  width: 50%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  color: var(--color-text-on-dark);
}

.hero-restaurace__content h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  max-width: 18ch;
  margin-block-end: 0;
}

.hero-restaurace__lead {
  color: var(--color-text-on-dark);
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  max-width: 32ch;
  margin-block-end: 0;
}

.hero-restaurace__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-block-start: var(--space-2);
}

/* Koncept */
.koncept__title {
  margin-block-end: var(--space-6);
}

.koncept__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-block-end: var(--space-7);
}

.koncept__card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
}

.koncept__card h3 {
  margin-block-end: 0;
}

.koncept__card p {
  margin-block-end: 0;
}

.koncept__card ul {
  margin-block-end: 0;
}

.koncept__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--radius-medium);
  background-color: var(--color-light-blue);
  color: var(--color-dark-pine);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  margin-block-end: var(--space-2);
}

.koncept__card--age .koncept__icon {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
}

.koncept__feature {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-7);
  align-items: center;
}

.koncept__feature-text {
  min-width: 0;
}

.koncept__feature-text h3 {
  margin-block-end: var(--space-3);
}

.koncept__feature-text p {
  margin-block-end: var(--space-4);
}

.koncept__feature-text p:last-child {
  margin-block-end: 0;
}

.koncept__figure {
  min-width: 0;
  margin-block-end: 0;
}

.koncept__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Kuchyně */
.kuchyne__title {
  margin-block-end: var(--space-6);
}

.kuchyne__grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-7);
  align-items: start;
  margin-block-end: var(--space-7);
}

.kuchyne__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.kuchyne__block h3 {
  margin-block-end: var(--space-3);
}

.kuchyne__block p {
  margin-block-end: var(--space-4);
}

.kuchyne__block ul {
  margin-block-end: 0;
}

.kuchyne__figure {
  min-width: 0;
  margin-block-end: 0;
}

.kuchyne__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.kuchyne__speciality {
  padding: var(--space-6);
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
}

.kuchyne__speciality h3 {
  margin-block-end: var(--space-3);
}

.kuchyne__speciality p {
  margin-block-end: var(--space-4);
}

.kuchyne__speciality-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.kuchyne__speciality-list li {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-block-end: 0;
}

.kuchyne__speciality-name {
  font-weight: 700;
  color: var(--color-terracotta);
}

.kuchyne__speciality-desc {
  color: var(--color-text-muted);
}

/* Poker */
.poker {
  background-image: radial-gradient(circle at 20px 20px, rgba(168, 216, 234, 0.18) 2px, transparent 2px);
  background-size: 40px 40px;
}

.poker__title {
  margin-block-end: var(--space-6);
}

.poker__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  align-items: start;
  margin-block-end: var(--space-7);
}

.poker__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.poker__block h3 {
  margin-block-end: var(--space-3);
}

.poker__block p {
  margin-block-end: var(--space-4);
}

.poker__block ul {
  margin-block-end: 0;
}

.poker__figure {
  min-width: 0;
  margin-block-end: 0;
}

.poker__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.poker__offline-note {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  padding: var(--space-6);
  border-radius: var(--radius-medium);
}

.poker__offline-note h3 {
  color: var(--color-text-on-primary);
  margin-block-end: var(--space-3);
}

.poker__offline-note p {
  margin-block-end: 0;
}

/* Atmosféra */
.atmosfera__title {
  margin-block-end: var(--space-6);
}

.atmosfera__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-7);
  align-items: start;
}

.atmosfera__text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.atmosfera__block h3 {
  margin-block-end: var(--space-3);
}

.atmosfera__block p {
  margin-block-end: var(--space-4);
}

.atmosfera__block ul {
  margin-block-end: 0;
}

.atmosfera__gallery {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.atmosfera__figure {
  min-width: 0;
  margin-block-end: 0;
}

.atmosfera__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Rezervace */
.rezervace__title {
  margin-block-end: var(--space-6);
}

.rezervace__layout {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--space-7);
  align-items: start;
}

.rezervace__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.rezervace__card h3 {
  margin-block-end: 0;
}

.rezervace__card p {
  margin-block-end: 0;
}

.rezervace__contacts {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.rezervace__contacts li {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin-block-end: 0;
}

.rezervace__label {
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
  font-weight: 600;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rezervace__contacts address {
  margin-block-end: 0;
}

.rezervace__btn {
  align-self: flex-start;
  margin-block-start: var(--space-2);
}

.rezervace__hours {
  min-width: 0;
  padding: var(--space-6);
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
}

.rezervace__hours h3 {
  margin-block-end: var(--space-3);
}

.rezervace__hours p {
  margin-block-end: var(--space-4);
}

.rezervace__hours-list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.rezervace__hours-list li {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-block-end: 0;
}

.rezervace__hours-list span {
  font-weight: 700;
}

/* CTA */
.cta-restaurace {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  padding-block: var(--space-8);
}

.cta-restaurace__container {
  display: flex;
  justify-content: center;
}

.cta-restaurace__content {
  width: 70%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-4);
}

.cta-restaurace__content h2 {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
}

.cta-restaurace__content p {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
  }

.cta-restaurace__btn {
  background-color: var(--color-cream);
  color: var(--color-dark-pine);
  border-color: var(--color-cream);
  margin-block-start: var(--space-2);
}

.cta-restaurace__btn:hover {
  background-color: var(--color-cream-dark);
  border-color: var(--color-cream-dark);
  color: var(--color-dark-pine);
}

/* Tablet */
@media (max-width: 991px) {
  .hero-restaurace {
    min-height: 560px;
  }

  .hero-restaurace__content {
    width: 65%;
  }

  .koncept__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .koncept__card:last-child {
    grid-column: span 2;
  }

  .koncept__feature {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

  .kuchyne__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

  .poker__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

  .atmosfera__grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

  .rezervace__layout {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-5);
  }

  .cta-restaurace__content {
    width: 85%;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .hero-restaurace {
    min-height: 520px;
  }

  .hero-restaurace__overlay {
    background: linear-gradient(180deg, rgba(74, 59, 50, 0.9) 0%, rgba(74, 59, 50, 0.75) 60%, rgba(74, 59, 50, 0.55) 100%);
  }

  .hero-restaurace__content {
    width: 100%;
    gap: var(--space-4);
  }

  .hero-restaurace__content h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
    max-width: 100%;
  }

  .hero-restaurace__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
    max-width: 100%;
  }

  .hero-restaurace__actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .hero-restaurace__actions .btn {
    width: 100%;
  }

  .koncept__cards {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .koncept__card:last-child {
    grid-column: auto;
  }

  .koncept__feature {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .kuchyne__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .kuchyne__speciality {
    padding: var(--space-5);
  }

  .poker__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .atmosfera__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .rezervace__layout {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .cta-restaurace {
    padding-block: var(--space-6);
  }

  .cta-restaurace__content {
    width: 100%;
  }
}

/* Small mobile */
@media (max-width: 479px) {
  .hero-restaurace {
    min-height: 480px;
  }

  .hero-restaurace__content h1 {
    font-size: 1.75rem;
    line-height: 1.25;
  }

  .koncept__icon {
    width: 40px;
    height: 40px;
    font-size: var(--text-body-large);
  }

  .kuchyne__speciality-list li {
    gap: var(--space-2);
  }

  .rezervace__hours-list li {
    flex-direction: column;
    gap: var(--space-1);
  }
}


/* Offline Poker page styles */

.offline-hero {
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  padding-block: clamp(64px, 12vh, 120px);
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.offline-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(168, 216, 234, 0.05) 0, rgba(168, 216, 234, 0.05) 2px, transparent 2px, transparent 12px), repeating-linear-gradient(-45deg, rgba(168, 216, 234, 0.04) 0, rgba(168, 216, 234, 0.04) 2px, transparent 2px, transparent 12px);
  pointer-events: none;
}

.offline-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 600px;
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: center;
}

.offline-hero__eyebrow {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-light-blue);
  margin-block-end: 0;
}

.offline-hero h1 {
  color: var(--color-text-on-dark);
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.15;
  margin-block-end: 0;
  max-width: 14ch;
  margin-inline: auto;
}

.offline-hero__lead {
  color: var(--color-text-on-dark);
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  max-width: 60ch;
  margin-inline: auto;
  margin-block-end: 0;
}

.offline-hero__facts {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  max-width: 60ch;
  margin-inline: auto;
}

.offline-hero__facts li {
  color: var(--color-cream);
  font-size: var(--text-small);
  line-height: var(--leading-small);
  margin-block-end: 0;
  position: relative;
  padding-inline-start: var(--space-5);
}

.offline-hero__facts li::before {
  content: "♠";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
  font-size: var(--text-body);
}

.offline-intro {
  background-color: var(--color-background-alt);
}

.offline-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-7);
  align-items: center;
}

.offline-intro__content {
  min-width: 0;
}

.offline-intro__content h2 {
  margin-block-end: var(--space-5);
}

.offline-intro__content p {
  margin-block-end: var(--space-4);
}

.offline-intro__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-intro__list li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-intro__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
  font-weight: 700;
}

.offline-intro__media {
  min-width: 0;
  margin-block-end: 0;
}

.offline-intro__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-small);
  transform: rotate(-1deg) translateY(2px);
  box-shadow: var(--shadow-soft);
}

.offline-holdem {
  background-color: var(--color-background);
  position: relative;
  overflow: hidden;
}

.offline-holdem::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(168, 216, 234, 0.06) 0, rgba(168, 216, 234, 0.06) 2px, transparent 2px, transparent 14px), repeating-linear-gradient(-45deg, rgba(168, 216, 234, 0.05) 0, rgba(168, 216, 234, 0.05) 2px, transparent 2px, transparent 14px);
  pointer-events: none;
}

.offline-holdem__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: var(--space-7);
  align-items: center;
}

.offline-holdem__media {
  min-width: 0;
  margin-block-end: 0;
}

.offline-holdem__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-small);
  transform: rotate(1deg) translateY(2px);
  box-shadow: var(--shadow-soft);
}

.offline-holdem__content {
  min-width: 0;
}

.offline-holdem__content h2 {
  margin-block-end: var(--space-5);
}

.offline-holdem__content p {
  margin-block-end: var(--space-4);
}

.offline-holdem__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-holdem__list li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-holdem__list li::before {
  content: "♥";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
}

.offline-room {
  background-color: var(--color-background-alt);
}

.offline-room__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-7);
  align-items: center;
}

.offline-room__content {
  min-width: 0;
}

.offline-room__content h2 {
  margin-block-end: var(--space-5);
}

.offline-room__content p {
  margin-block-end: var(--space-4);
}

.offline-room__list {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-room__list li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-room__list li::before {
  content: "♦";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
}

.offline-room__media {
  min-width: 0;
  margin-block-end: 0;
}

.offline-room__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-small);
  transform: rotate(-1deg) translateY(2px);
  box-shadow: var(--shadow-soft);
}

.offline-evenings {
  background-color: var(--color-background);
  position: relative;
  overflow: hidden;
}

.offline-evenings::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(168, 216, 234, 0.06) 0, rgba(168, 216, 234, 0.06) 2px, transparent 2px, transparent 14px), repeating-linear-gradient(-45deg, rgba(168, 216, 234, 0.05) 0, rgba(168, 216, 234, 0.05) 2px, transparent 2px, transparent 14px);
  pointer-events: none;
}

.offline-evenings .container {
  position: relative;
  z-index: 1;
}

.offline-evenings h2 {
  margin-block-end: var(--space-6);
}

.offline-evenings__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.offline-evenings__card {
  background-color: var(--color-cream);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  box-shadow: var(--shadow-soft);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.offline-evenings__card h3 {
  margin-block-end: 0;
}

.offline-evenings__card p {
  margin-block-end: 0;
}

.offline-evenings__card ul {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-evenings__card li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-evenings__card li::before {
  content: "♣";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
}

.offline-gastro {
  background-color: var(--color-background-alt);
}

.offline-gastro h2 {
  margin-block-end: var(--space-6);
}

.offline-gastro__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.offline-gastro__card {
  background-color: var(--color-cream);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  box-shadow: var(--shadow-soft);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.offline-gastro__card h3 {
  margin-block-end: 0;
}

.offline-gastro__card p {
  margin-block-end: 0;
}

.offline-gastro__card ul {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-gastro__card li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-gastro__card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
  font-weight: 700;
}

.offline-safety {
  background-color: var(--color-background);
  position: relative;
  overflow: hidden;
}

.offline-safety::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(45deg, rgba(168, 216, 234, 0.06) 0, rgba(168, 216, 234, 0.06) 2px, transparent 2px, transparent 14px), repeating-linear-gradient(-45deg, rgba(168, 216, 234, 0.05) 0, rgba(168, 216, 234, 0.05) 2px, transparent 2px, transparent 14px);
  pointer-events: none;
}

.offline-safety .container {
  position: relative;
  z-index: 1;
}

.offline-safety h2 {
  margin-block-end: var(--space-6);
}

.offline-safety__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.offline-safety__card {
  background-color: var(--color-cream);
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  box-shadow: var(--shadow-soft);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.offline-safety__card h3 {
  margin-block-end: 0;
}

.offline-safety__card p {
  margin-block-end: 0;
}

.offline-safety__card ul {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.offline-safety__card li {
  position: relative;
  padding-inline-start: var(--space-5);
  margin-block-end: 0;
}

.offline-safety__card li::before {
  content: "♠";
  position: absolute;
  left: 0;
  color: var(--color-terracotta);
}

.offline-cta {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  padding-block: clamp(64px, 10vh, 96px);
  min-height: 40vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.offline-cta__inner {
  max-width: 600px;
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--container-gutter);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: center;
}

.offline-cta h2 {
  color: var(--color-text-on-primary);
  margin-block-end: 0;
}

.offline-cta p {
  color: var(--color-text-on-primary);
  margin-inline: auto;
  margin-block-end: 0;
}

.offline-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
}

.offline-cta__actions .btn {
  min-width: 200px;
}

.offline-cta__note {
  font-size: var(--text-small);
  line-height: var(--leading-small);
  opacity: 0.9;
}

@media (max-width: 1023px) {
  .offline-intro__grid,
  .offline-holdem__grid,
  .offline-room__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .offline-intro__media,
  .offline-holdem__media,
  .offline-room__media {
    order: 2;
  }

  .offline-intro__content,
  .offline-holdem__content,
  .offline-room__content {
    order: 1;
  }

  .offline-intro__media img,
  .offline-holdem__media img,
  .offline-room__media img {
    max-width: 600px;
    margin-inline: auto;
  }

  .offline-evenings__grid,
  .offline-gastro__grid,
  .offline-safety__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .offline-hero {
    min-height: auto;
    padding-block: var(--space-8);
  }

  .offline-hero h1 {
    font-size: 1.75rem;
    line-height: 1.25;
  }

  .offline-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .offline-intro__grid,
  .offline-holdem__grid,
  .offline-room__grid {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .offline-intro__media,
  .offline-holdem__media,
  .offline-room__media {
    order: 2;
  }

  .offline-intro__content,
  .offline-holdem__content,
  .offline-room__content {
    order: 1;
  }

  .offline-intro__media img,
  .offline-holdem__media img,
  .offline-room__media img {
    max-width: 100%;
    margin-inline: 0;
  }

  .offline-evenings__grid,
  .offline-gastro__grid,
  .offline-safety__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .offline-evenings__card,
  .offline-gastro__card,
  .offline-safety__card {
    padding: var(--space-4);
  }

  .offline-cta {
    min-height: auto;
    padding-block: var(--space-8);
  }

  .offline-cta__actions {
    flex-direction: column;
    width: 100%;
  }

  .offline-cta__actions .btn {
    width: 100%;
    min-width: 0;
  }
}


/* Poker Room page styles */

.poker-hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: var(--color-text-on-dark);
}

.poker-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.poker-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

.poker-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to right, rgba(74, 59, 50, 0.85), rgba(74, 59, 50, 0.45));
}

.poker-hero__container {
  position: relative;
  z-index: 2;
  width: 100%;
}

.poker-hero__content {
  max-width: 600px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: flex-start;
}

.poker-hero__content h1 {
  color: var(--color-text-on-dark);
  margin-block-end: 0;
  font-size: var(--text-display);
  line-height: var(--leading-display);
}

.poker-hero__lead {
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  color: var(--color-text-on-dark);
  margin-block-end: 0;
  max-width: 560px;
}

.poker-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.poker-hero__actions .btn {
  flex: 0 1 auto;
  min-width: 0;
}

/* Shared ceramic frame */
.poker-frame {
  border: 1px solid var(--color-light-blue);
  border-radius: var(--radius-small);
  padding: var(--space-2);
  background-color: var(--color-cream);
  box-shadow: var(--shadow-soft);
  margin-block-end: 0;
}

.poker-frame img {
  border: none;
  border-radius: 0;
  width: 100%;
  height: auto;
  display: block;
}

.poker-frame--offset {
  transform: rotate(-1deg);
}

/* Prostor a atmosféra */
.poker-space__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: var(--space-6);
  align-items: center;
}

.poker-space__media {
  min-width: 0;
}

.poker-space__content {
  min-width: 0;
  max-width: 500px;
}

.poker-space__content h2 {
  margin-block-end: var(--space-4);
}

.poker-space__content p {
  margin-block-end: var(--space-4);
}

.poker-space__content p:last-child {
  margin-block-end: 0;
}

/* Vybavení */
.poker-equipment__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-6);
  align-items: center;
}

.poker-equipment__content {
  min-width: 0;
  max-width: 500px;
}

.poker-equipment__content h2 {
  margin-block-end: var(--space-4);
}

.poker-equipment__content h3 {
  margin-block-start: var(--space-5);
  margin-block-end: var(--space-2);
}

.poker-equipment__content h3:first-of-type {
  margin-block-start: 0;
}

.poker-equipment__content p {
  margin-block-end: var(--space-4);
}

.poker-equipment__content p:last-child {
  margin-block-end: 0;
}

.poker-equipment__media {
  min-width: 0;
}

/* Herní nabídka */
.poker-games {
  background-color: var(--color-cream);
  background-image: radial-gradient(circle at 20% 30%, rgba(168, 216, 234, 0.18) 0, rgba(168, 216, 234, 0.18) 2px, transparent 2.5px),
    radial-gradient(circle at 80% 70%, rgba(226, 114, 91, 0.12) 0, rgba(226, 114, 91, 0.12) 2px, transparent 2.5px);
  background-size: 48px 48px;
}

.poker-games__container {
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.poker-games__container h2 {
  margin-block-end: var(--space-4);
}

.poker-games__container p {
  margin-block-end: var(--space-4);
  margin-inline: auto;
}

.poker-games__highlight {
  background-color: rgba(255, 253, 208, 0.9);
  border: 1px solid var(--color-terracotta);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  text-align: left;
  margin-block-start: var(--space-4);
}

.poker-games__highlight h3 {
  margin-block-end: var(--space-2);
}

.poker-games__highlight p {
  margin-block-end: 0;
  margin-inline: 0;
}

/* Večeře a poker */
.poker-dining__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: var(--space-6);
  align-items: center;
}

.poker-dining__media {
  min-width: 0;
}

.poker-dining__content {
  min-width: 0;
  max-width: 500px;
}

.poker-dining__content h2 {
  margin-block-end: var(--space-4);
}

.poker-dining__content p {
  margin-block-end: var(--space-4);
}

.poker-dining__content p:last-child {
  margin-block-end: 0;
}

/* Pravidla a férovost */
.poker-rules__container {
  max-width: 800px;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.poker-rules__container h2 {
  color: var(--color-text-on-dark);
  margin-block-end: var(--space-4);
}

.poker-rules__container p {
  color: var(--color-text-on-dark);
  margin-block-end: var(--space-4);
  }

.poker-rules__container p:last-child {
  margin-block-end: 0;
}

/* FAQ */
.poker-faq__container {
  max-width: 800px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.poker-faq__container h2 {
  margin-block-end: var(--space-4);
}

.poker-faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.poker-faq__item {
  border: 1px solid var(--color-terracotta);
  border-radius: var(--radius-medium);
  overflow: hidden;
  background-color: var(--color-cream);
  transition: background-color var(--transition-fast);
}

.poker-faq__item:hover {
  background-color: var(--color-cream-dark);
}

.poker-faq__item summary {
  padding: var(--space-4) var(--space-5);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  line-height: var(--leading-h3);
  font-weight: 600;
  color: var(--color-text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.poker-faq__item summary::after {
  content: "+";
  font-size: var(--text-h3);
  line-height: 1;
  color: var(--color-terracotta);
  transition: transform var(--transition-fast);
}

.poker-faq__item[open] summary::after {
  transform: rotate(45deg);
}

.poker-faq__answer {
  padding: 0 var(--space-5) var(--space-5);
}

.poker-faq__answer p {
  margin-block-end: 0;
  }

/* Rezervace a kontakt */
.poker-reservation__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}

.poker-reservation__form-wrap {
  min-width: 0;
}

.poker-reservation__form-wrap h2 {
  margin-block-end: var(--space-4);
}

.poker-reservation__form-wrap > p {
  margin-block-end: var(--space-5);
  }

.poker-reservation__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  border: 1px solid var(--color-terracotta);
  border-radius: var(--radius-medium);
  padding: var(--space-5);
  background-color: var(--color-cream);
}

.poker-reservation__field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.poker-reservation__field label {
  margin-block-end: 0;
}

.poker-reservation__field input,
.poker-reservation__field select {
  width: 100%;
  min-width: 0;
}

.poker-reservation__message {
  margin-block-end: 0;
  min-height: 1.5em;
  font-size: var(--text-small);
  line-height: var(--leading-small);
}

.poker-reservation__contact {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.poker-reservation__contact h3 {
  margin-block-end: var(--space-2);
}

.poker-reservation__contact p {
  margin-block-end: var(--space-4);
  }

.poker-reservation__contact address {
  margin-block-end: 0;
  font-style: normal;
}

/* Tablet */
@media (max-width: 991px) {
  .poker-space__grid,
  .poker-dining__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .poker-space__content,
  .poker-dining__content {
    max-width: none;
  }

  .poker-equipment__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .poker-equipment__content {
    max-width: none;
  }

  .poker-reservation__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .poker-reservation__form-wrap > p,
  .poker-reservation__contact p {
  }
}

/* Mobile */
@media (max-width: 767px) {
  .poker-hero {
    min-height: 60vh;
    align-items: flex-start;
    padding-block-start: var(--space-7);
  }

  .poker-hero__content {
    max-width: 100%;
    gap: var(--space-4);
  }

  .poker-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .poker-hero__actions {
    flex-direction: column;
    width: 100%;
  }

  .poker-hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  .poker-games__container {
    text-align: left;
  }

  .poker-games__container p {
    margin-inline: 0;
  }

  .poker-games__highlight {
    text-align: left;
  }

  .poker-faq__item summary {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
  }

  .poker-reservation__form {
    padding: var(--space-4);
  }
}

@media (max-width: 480px) {
  .poker-hero__content h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
  }

  .poker-frame--offset {
    transform: none;
  }
}


/* Gurmánský Dvůr – home page styles */

#home-main {
  overflow: clip;
}

/* Hero */
.home-hero {
  position: relative;
  min-height: 80vh;
  min-height: 80dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-dark-pine);
  color: var(--color-text-on-dark);
  overflow: hidden;
}

.home-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.home-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
  border-radius: 0;
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(74, 59, 50, 0.6);
}

.home-hero__content {
  position: relative;
  z-index: 2;
  width: min(600px, calc(100% - 48px));
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  padding-block: var(--space-8);
}

.home-hero__content h1 {
  color: var(--color-text-on-dark);
  font-size: var(--text-display);
  line-height: var(--leading-display);
  margin: 0;
}

.home-hero__lead {
  color: var(--color-text-on-dark);
  font-size: var(--text-body-large);
  line-height: var(--leading-body-large);
  margin: 0;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
  width: 100%;
}

.home-hero__actions .btn {
  flex: 0 1 auto;
  min-width: 0;
}

/* Intro and Dvůr sections */
.home-intro__grid,
.home-dvur__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-7);
  align-items: start;
}

.home-intro__content,
.home-dvur__content {
  min-width: 0;
}

.home-intro__content h2,
.home-dvur__content h2 {
  margin-block-end: var(--space-4);
}

.home-intro__content h3,
.home-dvur__content h3 {
  margin-block-start: var(--space-5);
  margin-block-end: var(--space-2);
}

.home-intro__content p,
.home-dvur__content p {
  }

.home-intro__figure,
.home-dvur__figure {
  min-width: 0;
  width: 100%;
}

.home-intro__figure img,
.home-dvur__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.home-intro__figure figcaption,
.home-dvur__figure figcaption {
  text-align: center;
  margin-block-start: var(--space-2);
}

/* Menu tiles */
.home-section-heading {
  width: min(600px, 100%);
  margin-inline: auto;
  text-align: center;
  margin-block-end: var(--space-6);
}

.home-section-heading h2 {
  margin-block-end: var(--space-3);
}

.home-section-heading p {
  margin: 0;
}

.home-menu__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.home-menu-tile {
  min-width: 0;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-3);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
  box-shadow: var(--shadow-soft);
}

.home-menu-tile:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.home-menu-tile--terracotta {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
}

.home-menu-tile--terracotta h3 {
  color: var(--color-text-on-primary);
}

.home-menu-tile--lightblue {
  background-color: var(--color-light-blue);
  color: var(--color-dark-pine);
}

.home-menu-tile--cream {
  background-color: var(--color-cream);
  color: var(--color-dark-pine);
}

.home-menu-tile--creamdark {
  background-color: var(--color-cream-dark);
  color: var(--color-dark-pine);
}

.home-menu-tile__icon {
  font-size: 1.75rem;
  line-height: 1;
}

.home-menu-tile h3 {
  margin: 0;
}

.home-menu-tile p {
  margin: 0;
  }

/* Specialities */
.home-specialities__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.home-speciality-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background-color: var(--color-cream);
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-medium);
  padding: var(--space-4);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.home-speciality-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.home-speciality-card figure {
  margin: 0;
  width: 100%;
}

.home-speciality-card figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.home-speciality-card__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.home-speciality-card__body h3 {
  margin: 0;
}

.home-speciality-card__body p {
  margin: 0;
  }

/* Poker sections */
.home-poker__grid,
.home-poker-room__grid,
.home-texas__grid,
.home-poker-evenings__grid,
.home-dinner-poker__grid,
.home-private-events__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: var(--space-7);
  align-items: start;
}

.home-poker__content,
.home-poker-room__content,
.home-texas__content,
.home-poker-evenings__content,
.home-dinner-poker__content,
.home-private-events__content {
  min-width: 0;
}

.home-poker__content h2,
.home-poker-room__content h2,
.home-texas__content h2,
.home-poker-evenings__content h2,
.home-dinner-poker__content h2,
.home-private-events__content h2 {
  margin-block-end: var(--space-4);
}

.home-poker__content h3,
.home-poker-room__content h3,
.home-texas__content h3,
.home-poker-evenings__content h3,
.home-dinner-poker__content h3,
.home-private-events__content h3 {
  margin-block-start: var(--space-5);
  margin-block-end: var(--space-2);
}

.home-poker__content p,
.home-poker-room__content p,
.home-texas__content p,
.home-poker-evenings__content p,
.home-dinner-poker__content p,
.home-private-events__content p {
  }

.home-poker__figure,
.home-poker-room__figure,
.home-texas__figure,
.home-poker-evenings__figure,
.home-dinner-poker__figure,
.home-private-events__figure {
  min-width: 0;
  width: 100%;
}

.home-poker__figure img,
.home-poker-room__figure img,
.home-texas__figure img,
.home-poker-evenings__figure img,
.home-dinner-poker__figure img,
.home-private-events__figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.home-poker__figure figcaption,
.home-poker-room__figure figcaption,
.home-texas__figure figcaption,
.home-poker-evenings__figure figcaption,
.home-dinner-poker__figure figcaption,
.home-private-events__figure figcaption {
  text-align: center;
  margin-block-start: var(--space-2);
}

/* CTA */
.home-cta {
  background-color: var(--color-terracotta);
  color: var(--color-text-on-primary);
  padding-block: var(--space-8);
}

.home-cta__content {
  width: min(600px, 100%);
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
}

.home-cta__content h2 {
  color: var(--color-text-on-primary);
  margin: 0;
}

.home-cta__content p {
  margin: 0;
}

.home-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
  width: 100%;
}

.home-cta__actions .btn {
  flex: 0 1 auto;
  min-width: 0;
}

/* Image frames */
.home-image-frame {
  display: block;
  border: var(--border-width) solid var(--color-light-blue);
  border-radius: var(--radius-small);
  padding: var(--space-1);
  background-color: var(--color-cream);
}

.home-image-frame--terracotta {
  border-color: var(--color-terracotta);
}

.home-image-frame--offset-left {
  transform: rotate(-1deg);
}

.home-image-frame--offset-right {
  transform: rotate(1deg);
}

.home-image-frame img {
  border: none;
  border-radius: 0;
}

/* Responsive */
@media (max-width: 1023px) {
  .home-intro__grid,
  .home-dvur__grid,
  .home-poker__grid,
  .home-poker-room__grid,
  .home-texas__grid,
  .home-poker-evenings__grid,
  .home-dinner-poker__grid,
  .home-private-events__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .home-intro__figure,
  .home-dvur__figure,
  .home-poker__figure,
  .home-poker-room__figure,
  .home-texas__figure,
  .home-poker-evenings__figure,
  .home-dinner-poker__figure,
  .home-private-events__figure {
    max-width: 600px;
    margin-inline: auto;
  }

  .home-specialities__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .home-hero {
    min-height: 70vh;
    min-height: 70dvh;
  }

  .home-hero__content {
    width: calc(100% - 32px);
    gap: var(--space-4);
    padding-block: var(--space-6);
  }

  .home-hero__content h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
  }

  .home-hero__lead {
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .home-hero__actions,
  .home-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .home-hero__actions .btn,
  .home-cta__actions .btn {
    width: 100%;
  }

  .home-menu__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .home-specialities__grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .home-intro__grid,
  .home-dvur__grid,
  .home-poker__grid,
  .home-poker-room__grid,
  .home-texas__grid,
  .home-poker-evenings__grid,
  .home-dinner-poker__grid,
  .home-private-events__grid {
    gap: var(--space-5);
  }

  .home-intro__figure,
  .home-dvur__figure,
  .home-poker__figure,
  .home-poker-room__figure,
  .home-texas__figure,
  .home-poker-evenings__figure,
  .home-dinner-poker__figure,
  .home-private-events__figure {
    max-width: 100%;
  }

  .home-cta {
    padding-block: var(--space-6);
  }

  .home-cta__content {
    gap: var(--space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-menu-tile,
  .home-speciality-card {
    transition: none;
  }

  .home-menu-tile:hover,
  .home-speciality-card:hover {
    transform: none;
    box-shadow: var(--shadow-soft);
  }
}


@layer thank-you {
  .thank-you {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - var(--header-height, 80px) - var(--footer-height, 80px));
    padding-block: var(--space-8);
    padding-inline: var(--container-gutter);
  }

  .thank-you__content {
    max-width: 640px;
    width: 100%;
    text-align: center;
    margin-inline: auto;
  }

  .thank-you__title {
    margin-block-end: var(--space-4);
  }

  .thank-you__message {
    font-size: var(--text-body-large);
    line-height: var(--leading-body-large);
    margin-block-end: var(--space-3);
  }

  .thank-you__next {
    color: var(--color-text-muted);
    margin-block-end: var(--space-6);
  }

  .thank-you__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    justify-content: center;
  }

  @media (max-width: 767px) {
    .thank-you {
      padding-block: var(--space-6);
    }

    .thank-you__actions {
      flex-direction: column;
      align-items: stretch;
    }

    .thank-you__actions .btn {
      width: 100%;
    }
  }
}