/* Shared responsive safeguards loaded on every page. */
html {
  overflow-x: clip;
}

body,
main,
.main-content,
.container,
.section-frame,
.section-frame-inner,
[class*="grid"] > *,
[class*="layout"] > * {
  min-width: 0;
}

body img,
body iframe,
body video {
  max-width: 100%;
}

body .hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body .faq-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
}

body .faq-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.1fr);
}

body table {
  max-width: 100%;
}

@media (max-width: 960px) {
  body .hero-shell {
    padding-block: clamp(3.25rem, 8vw, 4.5rem);
  }

  body .section,
  body .cta-shell {
    padding-block: clamp(2.75rem, 7vw, 4rem);
  }

  body .hero-shell-main,
  body .faq-hero-grid,
  body .faq-layout,
  body .kontakt-grid-main,
  body .lokalizacja-grid,
  body .info-grid,
  body .policy-grid,
  body .audience-business-layout,
  body .experience-tile,
  body .experience-tile--reverse,
  body .interiors-grid,
  body .tasting-two-column,
  body .tasting-feature-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body .hero-shell-main,
  body .cta-inner,
  body [class*="-grid"] {
    gap: var(--space-5);
  }

  body .hero-media,
  body .faq-hero-media,
  body .audience-business-media,
  body .lokalizacja-map-wrapper {
    min-height: 0;
  }

  body .hero-media-frame,
  body .faq-hero-media-frame,
  body .audience-business-media,
  body .highlight-media-wrap,
  body .interiors-figure,
  body .tasting-image-card,
  body .experience-image-wrap {
    aspect-ratio: 16 / 10;
  }

  body .experience-tile--reverse .experience-image-wrap,
  body .experience-tile--reverse .experience-copy {
    order: initial;
  }

  body .interiors-grid-reverse {
    direction: ltr;
  }

  body .cta-side,
  body .cta-side-note {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }
}

@media (max-width: 768px) {
  body .grid-2,
  body .grid-3,
  body .tasting-columns,
  body .tasting-list-columns,
  body .tasting-rules-grid,
  body .audience-card-media,
  body .mt-footer-main {
    grid-template-columns: minmax(0, 1fr);
  }

  body .feature-grid,
  body .gallery-grid,
  body .audience-grid,
  body .audience-columns,
  body .audience-expectations,
  body .privacy-grid,
  body .info-columns,
  body .terms-section-list {
    grid-template-columns: minmax(0, 1fr);
  }

  body .section-frame,
  body .glass-surface,
  body .hero-media-frame {
    border-radius: var(--radius-lg);
  }

  body .audience-business-overlay {
    position: relative;
    background: radial-gradient(circle at top, rgba(5, 6, 9, 0.96), rgba(5, 6, 9, 0.98));
  }

  body .mt-cookie-inner {
    max-height: min(75vh, 520px);
    overflow-y: auto;
  }
}

@media (max-width: 640px) {
  body {
    --container-padding-inline: 1rem;
  }

  body h1 {
    font-size: clamp(2rem, 9vw, 2.5rem);
    line-height: 1.08;
  }

  body h2 {
    font-size: clamp(1.65rem, 7.5vw, 2.05rem);
    line-height: 1.12;
  }

  body h3 {
    font-size: clamp(1.3rem, 6vw, 1.65rem);
  }

  body .hero-shell {
    padding-block: 2.75rem 3rem;
  }

  body .section,
  body .cta-shell {
    padding-block: 2.5rem;
  }

  body .section-header {
    margin-bottom: var(--space-5);
  }

  body .section-frame-inner,
  body .card,
  body .policy-block,
  body .audience-expectations-card,
  body .audience-business-card,
  body .lokalizacja-map-inner {
    padding: var(--space-4);
  }

  body .hero-lead {
    font-size: 1rem;
    line-height: 1.65;
    margin-bottom: var(--space-5);
  }

  body .hero-kicker,
  body .section-eyebrow {
    letter-spacing: 0.12em;
  }

  body .hero-media-frame,
  body .faq-hero-media-frame,
  body .audience-business-media,
  body .highlight-media-wrap,
  body .interiors-figure,
  body .tasting-image-card,
  body .experience-image-wrap {
    aspect-ratio: 4 / 3;
  }

  body .hero-actions,
  body .cta-actions,
  body .section-links,
  body .experience-cta,
  body .highlights-links,
  body .highlight-links,
  body .interiors-links,
  body .tasting-links,
  body .tasting-cta-inline,
  body .gallery-links,
  body .audience-links,
  body .audience-cta-inline,
  body .audience-business-actions,
  body .faq-links,
  body .thankyou-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  body .hero-actions .btn,
  body .cta-actions .btn,
  body .section-links .btn,
  body .experience-cta .btn,
  body .highlights-links .btn,
  body .highlight-links .btn,
  body .interiors-links .btn,
  body .tasting-links .btn,
  body .tasting-cta-inline .btn,
  body .gallery-links .btn,
  body .audience-links .btn,
  body .audience-cta-inline .btn,
  body .audience-business-actions .btn,
  body .faq-links .btn,
  body .thankyou-actions .btn,
  body .kontakt-actions .btn,
  body .kontakt-vip-cta .btn {
    width: 100%;
  }

  body .btn-lg {
    padding: 0.9rem 1.15rem;
    font-size: var(--font-size-sm);
  }

  body .hero-stats {
    gap: var(--space-2);
    flex-wrap: wrap;
  }

  body .gallery-card,
  body .faq-image-card .gallery-card {
    min-height: 210px;
  }

  body .mt-footer {
    padding-block: 2.25rem 1.75rem;
  }

  body .mt-footer-links {
    grid-template-columns: minmax(0, 1fr);
  }

  body .mt-footer-copy {
    text-align: left;
  }

  body .mt-cookie-actions,
  body .mt-cookie-btn-accept,
  body .mt-cookie-btn-reject {
    width: 100%;
  }

  body table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body a,
  body p,
  body li {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  body {
    --container-padding-inline: 0.875rem;
  }

  body .section-frame-inner,
  body .card,
  body .policy-block,
  body .audience-expectations-card,
  body .audience-business-card,
  body .lokalizacja-map-inner {
    padding: 0.875rem;
  }

  body .hero-tagline {
    line-height: 1.8;
  }
}
