/* Native component layouts replace the reference's framework grid. */
:root { --layout-gap: 20px; --container-max: calc(100% - 32px); --control-size: 40px; --surface-shadow: 0 8px 40px #24272b26; }
.container { width: 100%; max-width: var(--container-max); padding-inline: 10px; margin-inline: auto; }
.layout-row { display: flex; flex-wrap: wrap; margin-inline: -10px; }
.layout-row > * { min-width: 0; width: 100%; padding-inline: 10px; }
.site-wrapper--main > section, .site-wrapper--footer > section { opacity: 1; }
.introduction-item__texts-wrapper, .introduction-item__opening-hours-wrapper { width: 100%; }
.facilities-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 30px; }
.areas-layout > div { width: 100%; }
.footer-layout { display: grid; grid-template-columns: minmax(0, 1fr); }
.hero-carousel, .promo-carousel, .gallery-base { touch-action: pan-y; }
.hero-carousel-item__img-wrapper { position: absolute; inset: 0; }
.hero-controls-position { position: absolute; inset: 0; pointer-events: none; }
.hero-carousel__controls { pointer-events: auto; }
.feature-track { display: flex; gap: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-color: var(--gk-primary-color) var(--gk-neutral-secondary); scrollbar-width: thin; padding-bottom: 30px; justify-content: flex-start; }
.feature-track > article { flex: 0 0 58.8235%; max-width: none; scroll-snap-align: start; padding-inline: 10px; }
.gallery-base__slider { overflow: hidden; border-radius: var(--gk-border-radius); }
.gallery-base__slider .slide-track { display: block; }
.gallery-base__thumbs .slide-track { display: flex; }
.gallery-base__thumbs .slide { flex: 0 0 auto; }
.gallery-base__thumbs-container { border-radius: 0 0 var(--gk-border-radius) var(--gk-border-radius); }
.gallery-base__thumb-wrapper.is-selected .gallery-base__thumb { border-color: var(--gk-primary-color); }
.newsletter-block__email-form { position: relative; }
.newsletter-message { flex-basis: 100%; margin: 10px 0 0; font-size: 14px; color: var(--gk-primary-color); }
.reviews-banner { padding: 40px 0 60px; background: var(--gk-neutral-basic); }
.awards-carousel:has(.container:empty) { display: none; }
.carousel-dot { position: relative; padding: 20px 0; border: 0; background: transparent; width: 48px; margin-right: 12px; }
.carousel-dot::after { content: ''; display: block; height: 8px; width: 100%; border-radius: 4px; background: var(--gk-neutral-tertiary); }
.hero-carousel .carousel-dot[aria-pressed="true"]::after { background: #fff; }
.promo-carousel .carousel-dot[aria-pressed="true"]::after { background: var(--gk-primary-color); }
.carousel-dot:hover::after { background: var(--gk-quaternary-color); }
.promo-carousel__navbar { gap: 20px; }
.promo-carousel__pagination .carousel-dot { margin: 0 6px; }
.desktop-menu__container[hidden] { display: none; }
.accordion-block__item--expanded .accordion-block__item-content { max-height: none; }
.main-footer-top__label--accordion { font-weight: 700; }
.footer-cookie-settings { border: 0; background: none; color: #fff; padding: 10px 0; font-size: 14px; text-decoration: underline; }
.mobile-navigation { margin: 0; border: 0; width: min(100%, 430px); height: 100dvh; max-height: none; max-width: none; padding: 24px 26px; color: var(--gk-neutral-black); background: #fff; overflow-y: auto; }
.mobile-navigation::backdrop { background: #24272b80; }
.mobile-navigation__header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; }
.mobile-close { border: 0; background: none; font-size: 26px; width: 44px; height: 44px; }
.mobile-navigation ul { padding: 0; list-style: none; }
.mobile-navigation nav > ul > li { border-bottom: 1px solid var(--gk-neutral-secondary); }
.mobile-navigation nav a, .mobile-navigation summary { display: block; padding: 16px 0; text-transform: uppercase; font-weight: 700; letter-spacing: .5px; }
.mobile-navigation summary { display: list-item; cursor: pointer; list-style-position: inside; }
.mobile-navigation details a { font-weight: 400; padding: 12px 20px; }
.mobile-navigation > .btn { width: 100%; margin-top: 24px; }
body.menu-open { overflow: hidden; }
.cookie-dialog { position: fixed; inset: auto 0 0; margin: 0; width: 100%; max-width: none; max-height: 90dvh; overflow: auto; border: 0; border-top: 1px solid #e6e6e6; padding: 28px max(26px, calc((100vw - 1320px)/2)); background: #fff; color: var(--gk-neutral-black); box-shadow: var(--surface-shadow); z-index: 100; }
.cookie-dialog[open] { display: flex; gap: 30px; align-items: center; }
.cookie-dialog > div:first-child { flex: 1; }
.cookie-dialog h2 { color: var(--gk-neutral-black); font-size: 22px; }
.cookie-dialog p { margin-bottom: 8px; }
.cookie-dialog a { text-decoration: underline; }
.cookie-actions { display: flex; gap: 12px; flex-wrap: wrap; }
