/* Restaurant Bifurkacioni concept, modelled section by section on 1NUL8 (Code by Dennis).
   Built by KERA Tech Solutions. */

/* ---------- Tokens ---------- */
:root {
   --color-dark-rgb: 22, 21, 16;
   --color-dark: rgb(var(--color-dark-rgb));
   --color-light-rgb: 248, 245, 239;
   --color-light: rgb(var(--color-light-rgb));
   --color-white: #fff;
   --color-black-rgb: 0, 0, 0;
   --color-black: #000;

   --color-theme-light: var(--color-light);
   --color-theme-dark: var(--color-dark);

   --color-primary: #4C5240;      /* garden olive (1NUL8 stone #5B564A shifted green) */
   --color-secondary: #6A7747;    /* leaf green (1NUL8 #6E7754) */
   --color-accent: #C99A2E;       /* Bifurkacioni gold, script only */
   --color-lightgray: rgb(237, 233, 225);

   --color-border-light: rgba(var(--color-light-rgb), 0.5);
   --color-theme-border: #41443A;
   --color-text: rgba(var(--color-dark-rgb), 0.9);
   --color-text-light: rgba(var(--color-light-rgb), 0.8);
   --color-theme-text: var(--color-text);
   --color-theme-lightgray: var(--color-lightgray);
   --color-theme-beige: rgb(197, 192, 178);
   --color-theme-placeholder: rgba(var(--color-dark-rgb), 0.1);

   --animation-primary: 0.4s cubic-bezier(.85, 0, .15, 1);
   --animation-smooth: 0.8s cubic-bezier(.5, 0, .25, 1);

   --section-padding: min(9vw, 9em);
   --section-padding-small: var(--nav-primary-height);
   --container-padding: clamp(3.5em, 6vw, 6em);
   --row-padding: clamp(1.75em, 3vw, 3em);
   --col-padding: clamp(1.33em, 3vw, 3em);
   --medium-gap: clamp(1em, 1.5vw, 1.5em);
   --tiny-gap: clamp(0.5em, 0.75vw, 0.75em);
   --title-size: clamp(6em, 7vw, 7em);
   --ds: 0.94; /* Montserrat runs a touch larger than Room */

   --nav-primary-height: 4em;
   --nav-secondary-height: 2.5em;
}

[data-theme-site="dark"] {
   --color-theme-light: var(--color-dark);
   --color-theme-dark: var(--color-light);
   --color-theme-border: var(--color-primary);
   --color-theme-text: var(--color-text-light);
   --color-theme-placeholder: rgba(var(--color-light-rgb), 0.1);
   --color-theme-lightgray: rgb(30, 30, 25);
   --color-theme-beige: rgb(50, 50, 42);
}

@media screen and (max-width: 720px) { :root { --section-padding: 10vh; } }
@media screen and (max-width: 540px) {
   :root {
      --section-padding: max(2.5em, 10vh);
      --container-padding: var(--medium-gap);
      --title-size: 20vw;
      --section-padding-small: max(1.66em, 7vh);
   }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
li, ul, figure { padding: 0; margin: 0; list-style: none; }
html { scrollbar-width: none; }
body::-webkit-scrollbar { display: none; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body {
   margin: 0;
   -webkit-font-smoothing: antialiased;
   font-family: 'Poppins', sans-serif;
   color: var(--color-theme-text);
   line-height: 1.5;
   font-weight: 400;
   font-size: 16px;
   font-size: clamp(16px, 1.2vw, 19px);
   background-color: var(--color-primary);
   overflow-x: hidden;
}
::selection { background-color: var(--color-theme-dark); color: var(--color-theme-light); }
img, video, picture, figure, canvas { max-width: 100%; height: auto; display: block; }
svg { max-width: none; height: auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.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: fixed; left: 1em; top: -4em; z-index: 1000; background: var(--color-secondary); color: #fff; padding: 0.75em 1em; font-weight: 500; }
.skip-link:focus { top: 1em; }

/* ---------- Typography ---------- */
h1, h2, h3, h4, h5, h6, p, a, li, ul, ol, span, strong, em { padding: 0; margin: 0; font-style: normal; letter-spacing: normal; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
   font-family: 'Montserrat', sans-serif;
   text-transform: uppercase;
   font-weight: 600;
   transition: color var(--animation-primary);
   color: var(--color-theme-dark);
}
h1, .h1 { font-size: calc(var(--title-size) * 0.75 * var(--ds)); line-height: 0.92; }
h2, .h2 { font-size: calc(var(--title-size) * 0.65 * var(--ds)); line-height: 0.92; }
h3, .h3 { font-size: calc(var(--title-size) * 0.5 * var(--ds)); line-height: 0.92; }
h4, .h4 { font-size: calc(var(--title-size) * 0.35 * var(--ds)); line-height: 0.95; }
@media screen and (max-width: 1024px) {
   h1, .h1, h2, .h2 { font-size: calc(var(--title-size) * 0.65 * var(--ds)); }
   h4, .h4 { font-size: calc(var(--title-size) * 0.4 * var(--ds)); }
}
h5, .h5 { font-size: calc(1.1em * var(--ds)); line-height: 1; }
h6, .h6 { font-size: calc(0.9em * var(--ds)); line-height: 0.9; }
p { font-weight: 400; font-size: 0.9em; line-height: 1.5; color: var(--color-theme-text); transition: color var(--animation-primary); }
p.small { font-size: 0.825em; line-height: 1.6; }
p.tiny { font-size: 0.75em; line-height: 1.7; }
@media screen and (max-width: 1024px) { p { font-size: 0.95em; } p.small { font-size: 0.875em; } p.tiny { font-size: 0.8em; } }
strong { font-weight: 600; color: var(--color-theme-dark); }
em { font-style: italic; }
a { color: inherit; text-decoration: none; }

.styled-content :is(h1, h2, h3, p, ul) { margin-bottom: 1em; }
.styled-content :is(h4, h5, h6) { margin-bottom: 0.5em; }
.styled-content > :last-child { margin-bottom: 0; }
.styled-content li p, .information-text li p { margin-bottom: 0 !important; }
.styled-content p { line-height: 1.6; }
.styled-content p > a { color: var(--color-secondary); text-decoration: underline; font-weight: 500; }
.styled-content ul { display: flex; flex-direction: column; padding-left: 1.1em; gap: 0.25em; font-size: 0.9em; width: 100%; }
.styled-content ul li { position: relative; }
.styled-content ul li::before, .dot-list li::before {
   content: ""; position: absolute; left: -1.1em; top: 50%; transform: translateY(-50%);
   width: 0.6em; height: 0.6em; border-radius: 50%;
   border: 1.5px solid var(--color-secondary);
   background: radial-gradient(circle, var(--color-secondary) 0 32%, transparent 36%);
}

.styled-subtitle { display: flex; align-items: center; gap: 0.5em; }
.styled-subtitle .dot { flex-shrink: 0; width: 0.6em; height: 0.6em; border-radius: 50%; border: 1.5px solid var(--color-theme-light); background: radial-gradient(circle, var(--color-theme-light) 0 30%, transparent 34%); }
.styled-subtitle h6 { color: var(--color-theme-light); font-size: calc(0.7em * var(--ds)); }
@media screen and (max-width: 1024px) { .styled-subtitle h6 { font-size: calc(0.8em * var(--ds)); } }

.script { font-family: 'Mr Dafoe', cursive; text-transform: none; font-weight: 400; color: var(--color-accent); }

/* ---------- Layout ---------- */
.section { padding-top: var(--section-padding); padding-bottom: var(--section-padding); position: relative; background-color: var(--color-theme-light); transition: background-color var(--animation-primary); }
.container { margin: 0 auto; padding-left: var(--container-padding); padding-right: var(--container-padding); position: relative; max-width: calc(var(--title-size) * 14); }
@media screen and (min-width: 1024px) { .container.medium { padding-left: calc(var(--container-padding) * 2); padding-right: calc(var(--container-padding) * 2); } }
.container.small { max-width: calc(var(--title-size) * 9); }
.container.tiny { max-width: calc(var(--title-size) * 7); }
.container.full { max-width: 100%; padding: 0; }
.row { display: flex; width: 100%; position: relative; }
.col { position: relative; }
.overlay { position: absolute; top: 0; left: 0; height: 100%; width: 100%; }
.overlay-dark { background-color: rgba(0, 0, 0, 0.5); }
picture.overlay img, img.overlay, .fill-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
main { overflow: hidden; }
.main-wrap { position: relative; }

/* ---------- Borders + styling elements ---------- */
.border-box { pointer-events: none; position: absolute; inset: 0; border: 1px solid var(--color-theme-border); transition: border var(--animation-primary); }
.border-static-y { width: 1px; height: 100%; background-color: var(--color-theme-border); flex-shrink: 0; transition: background-color var(--animation-primary); }
.border-static-x { height: 1px; width: 100%; background-color: var(--color-theme-border); flex-shrink: 0; transition: background-color var(--animation-primary); }
.border-bottom { position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background-color: var(--color-theme-border); }
.border-left { position: absolute; top: 0; left: 0; height: 100%; width: 1px; background-color: var(--color-theme-border); }
.border-right { position: absolute; top: 0; right: 0; height: 100%; width: 1px; background-color: var(--color-theme-border); }
.border-top { position: absolute; top: 0; left: 0; width: 100%; height: 1px; background-color: var(--color-theme-border); }

.styling-element-y { height: 10em; position: relative; flex-shrink: 0; width: calc(var(--medium-gap) * 2); display: flex; justify-content: center; align-items: center; }
.styling-element-x { height: calc(var(--medium-gap) * 2); position: relative; flex-shrink: 0; width: 10em; display: flex; justify-content: center; align-items: center; }
.styling-element-x.styling-full-width { width: 100%; }
.round-back { width: calc(var(--medium-gap) * 2); height: calc(var(--medium-gap) * 2); position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.round-back .overlay { display: flex; justify-content: center; align-items: center; background-color: var(--color-theme-light); border-radius: 50%; transition: background-color var(--animation-primary); }
.round-back .ring { width: 30%; aspect-ratio: 1; border-radius: 50%; border: 1.5px solid var(--color-theme-dark); background: radial-gradient(circle, var(--color-theme-dark) 0 28%, transparent 32%); }
.section-styling-element { padding: 0; }
.section-styling-element .row { justify-content: center; }
.section-styling-element.padding-bottom { padding-bottom: var(--section-padding); }
.section-styling-element.no-height .row { height: 1px; align-items: center; }
@media screen and (max-width: 1024px) {
   .styling-element-y { height: 5em; }
   .round-back .ring { width: 40%; }
}

/* ---------- Buttons (layer + duplicate slide) ---------- */
.btn { position: relative; border: 0; outline: 0; width: 100%; display: block; }
.btn .btn-click { cursor: pointer; display: flex; align-items: center; justify-content: center; position: relative; width: 100%; }
.btn .btn-wrap { position: relative; overflow: hidden; width: 100%; }
.btn .btn-layer { position: relative; transform: translateY(0%) rotate(0.001deg); transition: var(--animation-primary); }
.btn .btn-layer.duplicate { width: 100%; height: 100%; position: absolute; top: 0; left: 0; transform: translateY(101%) rotate(0.001deg); }
.btn .btn-fill { background-color: var(--color-theme-light); transition: background-color var(--animation-primary); }
.btn .btn-layer.duplicate .btn-fill { background-color: var(--color-secondary); }
.btn .btn-content { position: relative; display: flex; align-items: center; justify-content: center; text-transform: uppercase; font-weight: 500; height: 3em; padding: 0 var(--medium-gap); gap: 0.5em; }
.btn .btn-content :is(h5, h6) { color: var(--color-theme-dark); white-space: nowrap; transition: color var(--animation-primary); }
.btn .btn-layer.duplicate .btn-content :is(h5, h6) { color: var(--color-light); }
@media (hover: hover) {
   .btn .btn-click:hover .btn-layer, .btn:focus-visible .btn-layer { transform: translateY(-100%) rotate(0.001deg); }
   .btn .btn-click:hover .btn-layer.duplicate, .btn:focus-visible .btn-layer.duplicate { transform: translateY(0%) rotate(0.001deg); }
}
.btn-icon .btn-content { justify-content: space-between; }
.btn i { width: 1em; height: 1em; display: flex; justify-content: center; align-items: center; flex-shrink: 0; }
.btn i svg { width: 100%; }
.btn i svg :is(path, polyline, line) { stroke: var(--color-theme-dark); stroke-width: 1.75px; fill: none; transition: stroke var(--animation-primary); }
.btn .btn-layer.duplicate i svg :is(path, polyline, line) { stroke: var(--color-light); }
.btn-icon-down i { transform: rotate(90deg); }
.btn-icon-back i { transform: scaleX(-1); }
.btn-nobox .btn-click { padding: 0.9em 0; }
.btn-nobox .btn-content { padding: 0; height: 1.2em; }
.btn-nobox .btn-fill { background: transparent !important; }
.btn-nobox .btn-layer.duplicate .btn-content :is(h5, h6) { color: var(--color-accent); }
.btn-inline { width: unset; display: inline-block; }

/* ---------- Social icons ---------- */
.s-icons { display: flex; justify-content: center; align-items: center; gap: 0.1em; }
.s-icon { width: 1.5em; height: 1.5em; border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; }
.s-icon::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--color-light); transition: all var(--animation-primary); opacity: 0; }
.s-icon svg { width: 0.95em; position: relative; }
.s-icon svg path { fill: var(--color-light); transition: fill var(--animation-primary); }
@media (hover: hover) { .s-icon:hover::before { transform: scale(1.1); opacity: 0.2; } }
.s-icons.medium .s-icon { width: 1.8em; height: 1.8em; }
.s-icons.medium .s-icon svg { width: 1.2em; }
.s-icons.large { gap: 0.4em; }
.s-icons.large .s-icon { width: 3.2em; height: 3.2em; }
.s-icons.large .s-icon::before { background: transparent; opacity: 1; border: 1px solid var(--color-border-light); }
.s-icons.large .s-icon svg { width: 1.15em; }
@media (hover: hover) { .s-icons.large .s-icon:hover::before { transform: scale(0.95); opacity: 0.33; } }
.s-icons.theme-flipped .s-icon::before { background: var(--color-theme-dark); }
.s-icons.theme-flipped .s-icon svg path { fill: var(--color-theme-dark); }

/* ---------- Loader / page transition ---------- */
.loading-container { display: none; }
.js .loading-container { display: block; position: fixed; inset: 0; overflow: hidden; z-index: 500; pointer-events: none; animation: loaderFailsafe 0s linear 6s forwards; }
@keyframes loaderFailsafe { to { visibility: hidden; } }
.loading-container .loading-screen { position: relative; width: 100%; height: 100%; background-color: var(--color-theme-light); display: flex; justify-content: center; align-items: center; }
.first-load .loading-container .loading-screen { background-color: var(--color-primary); }
.js .loading-container.is-covering { pointer-events: all; }
.loading-logo { width: calc(var(--title-size) * 1.1); position: relative; opacity: 0.8; visibility: hidden; }
.first-load .loading-logo { visibility: visible; }
.loading-logo .overlay-logo { background-color: var(--color-primary); opacity: 0.9; transform-origin: right; }
.loading-logo svg { width: 100%; display: block; }
.loading-logo svg :is(path, circle, text) { fill: var(--color-light); }
.loading-logo svg circle { fill: none; stroke: var(--color-light); }
.loading-screen .counter { position: absolute; left: 50%; transform: translateX(-50%); bottom: 10vh; overflow: hidden; visibility: hidden; }
.first-load .loading-screen .counter { visibility: visible; }
.loading-screen .counter h6 { color: rgba(var(--color-light-rgb), 0.5); font-size: 0.85em; }
html.is-leaving .loading-container { pointer-events: all; }

/* ---------- Badge logo ---------- */
.badge-logo text { font-family: 'Montserrat', sans-serif; font-weight: 600; text-transform: uppercase; }
.badge-logo .ring-text { font-size: 15.5px; letter-spacing: 0.08em; }
.badge-logo .mono { font-size: 96px; letter-spacing: -0.02em; }
.badge-logo circle { fill: none; stroke-width: 2; }
.badge-logo .star { font-size: 13px; }

/* ---------- Navigation ---------- */
.nav { position: fixed; top: 0; left: 0; right: 0; height: 0; z-index: 300; }
.nav .nav-bar { position: absolute; top: 0; left: 0; width: 100%; display: flex; flex-direction: column; }
.nav .nav-secondary { position: relative; background-color: var(--color-primary); height: var(--nav-secondary-height); transition: transform var(--animation-smooth); }
.nav .nav-secondary .container, .nav .nav-secondary .row { height: 100%; }
.nav .nav-secondary .row { align-items: center; justify-content: space-between; }
.nav .nav-secondary .col:nth-child(1) p { color: var(--color-light); font-weight: 500; }
.nav .nav-secondary .col:nth-child(2) { display: flex; height: 100%; align-items: center; gap: 0.75em; }
.nav .nav-secondary .border-static-y { background-color: var(--color-border-light); opacity: 0.2; }
.nav .current-page-title { color: var(--color-light); text-align: center; font-size: calc(1em * var(--ds)); display: none; }
@media screen and (max-width: 1200px) {
   .nav .nav-secondary .row { justify-content: center; }
   .nav .nav-secondary .col:nth-child(2) { display: none; }
   .nav .current-page-title { display: block; }
   .nav .welcome-message { display: none; }
   .is-home .nav .welcome-message { display: block; }
   .is-home .nav .current-page-title { display: none; }
}
[data-scrolling-started="true"][data-scrolling-direction="down"][data-navigation-status="not-active"] .nav .nav-secondary { transform: translateY(-25%); }

.nav .nav-primary { position: relative; background-color: var(--color-theme-light); transition: transform var(--animation-smooth), background-color var(--animation-primary); }
.nav .nav-primary .row { height: var(--nav-primary-height); align-items: center; justify-content: space-between; }
.nav .nav-primary .row .border-bottom { bottom: -1px; transform-origin: center; }
[data-scrolling-started="true"][data-scrolling-direction="down"][data-navigation-status="not-active"] .nav .nav-primary { transform: translateY(calc((var(--nav-secondary-height) * -1) - 1px)); }
.nav .wordmark { display: inline-block; }
.nav .wordmark h5 { font-size: calc(1.1em * var(--ds)); }
.nav .nav-logo { position: absolute; width: calc(var(--nav-primary-height) * 1.6); height: calc(var(--nav-primary-height) * 1.6); border-radius: 50%; transform: translate(-50%, -50%); left: 50%; top: 100%; background-color: var(--color-theme-light); transition: background-color var(--animation-primary); z-index: 2; }
.nav .nav-logo svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: calc(100% - (var(--tiny-gap) * 1.6)); }
.nav .nav-logo svg :is(text) { fill: var(--color-theme-dark); transition: fill var(--animation-primary); }
.nav .nav-logo svg circle { stroke: var(--color-theme-dark); }

.nav-back { display: flex; margin-left: -0.9em; }
.nav-back .btn .btn-click, .nav-page .btn .btn-click { height: var(--nav-primary-height); }
.nav-back .btn .btn-fill, .nav-page .btn .btn-fill { background-color: transparent !important; }
.nav-back .btn .btn-content, .nav-page .btn .btn-content { height: 1em; padding: 0 0.8em; gap: 0.5em; }
@media screen and (max-width: 1440px) { .nav-page .btn .btn-content { padding: 0 0.62em; } .nav-page .btn-reserve { margin-left: 0.4em; } }
.nav-back .btn .btn-layer.duplicate .btn-content h6, .nav-page .btn .btn-layer.duplicate .btn-content h6 { color: var(--color-secondary); }
.nav-back .btn .btn-layer.duplicate i svg :is(path, polyline, line) { stroke: var(--color-secondary); }
.nav-page { display: flex; margin-right: -0.7em; align-items: center; }
.nav-page .btn { width: auto; }
.nav-page .btn[aria-current="page"] .btn-layer .btn-content h6 { color: var(--color-secondary); }
.nav-page .btn-reserve { margin-left: 0.5em; margin-right: 0.7em; }
.nav-page .btn-reserve .btn-click { height: auto; }
.nav-page .btn-reserve .btn-content { height: 2.4em; padding: 0 1em; }
.nav-page .btn-reserve .btn-layer.duplicate .btn-fill { background-color: var(--color-secondary) !important; }
.nav-page .btn-reserve .btn-layer.duplicate .btn-content h6 { color: var(--color-light); }
@media screen and (max-width: 1200px) { .nav .nav-page { display: none; } }

/* More dropdown */
.btn-more { position: relative; }
.btn-more .icon { transform: rotate(90deg); margin-left: -0.35em; margin-right: -0.25em; width: 0.85em; height: 0.85em; }
.btn-more .icon polyline { stroke-width: 2.25px; }
.btn-more .btn-layer.duplicate i svg polyline { stroke: var(--color-secondary); }
.btn-more:hover > .btn-click .btn-layer, .btn-more:focus-within > .btn-click .btn-layer { transform: translateY(-100%) rotate(0.001deg); }
.btn-more:hover > .btn-click .btn-layer.duplicate, .btn-more:focus-within > .btn-click .btn-layer.duplicate { transform: translateY(0%) rotate(0.001deg); }
.btn-dropdown { position: absolute; left: 100%; top: 100%; z-index: 50; transform: translate(-100%, -0.5em); opacity: 0; visibility: hidden; transition: opacity var(--animation-primary), visibility var(--animation-primary); }
.btn-more:hover .btn-dropdown, .btn-more:focus-within .btn-dropdown { opacity: 1; visibility: visible; }
.btn-dropdown ul { display: flex; flex-direction: column; background-color: var(--color-theme-light); position: relative; padding: 0.75em 0.25em; transition: all var(--animation-primary); transform: translateY(1em); }
.btn-more:hover .btn-dropdown ul, .btn-more:focus-within .btn-dropdown ul { transform: translateY(0); }
.btn-dropdown ul li { display: flex; justify-content: center; }
.btn-dropdown .btn .btn-click { height: 1.9em !important; }

/* Hamburger + mobile nav */
.hamburger { position: absolute; top: 50%; right: 0; transform: translate(calc(var(--nav-primary-height) * 0.325), -50%); width: var(--nav-primary-height); height: var(--nav-primary-height); display: flex; justify-content: center; align-items: center; cursor: pointer; z-index: 50; }
.hamburger .bar { position: absolute; width: 35%; height: 1.5px; background-color: var(--color-theme-dark); transition: all var(--animation-primary); }
.hamburger .bar.first { transform: translateY(-6px); }
.hamburger .bar.last { transform: translateY(6px); }
[data-navigation-status="active"] .hamburger .bar.first { transform: rotate(-45deg); }
[data-navigation-status="active"] .hamburger .bar.middle { transform: scaleX(0); }
[data-navigation-status="active"] .hamburger .bar.last { transform: rotate(45deg); }
@media screen and (min-width: 1201px) { .hamburger { display: none; } }
@media screen and (max-width: 1200px) {
   .nav .nav-primary .col:nth-child(1) { transition: opacity var(--animation-primary); }
   [data-navigation-status="active"] .nav .nav-primary .col:nth-child(1) { opacity: 0; }
}
.nav-back-mobile { position: fixed; inset: 0; height: 200%; background: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.54) 34%, rgba(0,0,0,.19) 65%, transparent 100%); opacity: 0; visibility: hidden; transition: all var(--animation-smooth); }
[data-navigation-status="active"] .nav-back-mobile { opacity: 1; visibility: visible; }
.nav-mobile { position: fixed; top: calc(var(--nav-primary-height) + var(--nav-secondary-height) - 3px); left: 0; width: 100%; background-color: var(--color-theme-light); transform: translateY(-110%); transition: all var(--animation-smooth), background-color var(--animation-primary); padding-top: var(--section-padding-small); display: flex; flex-direction: column; gap: calc(var(--medium-gap) * 1.5); visibility: hidden; }
[data-navigation-status="active"] .nav-mobile { transform: translateY(0%); visibility: visible; }
@media screen and (min-width: 1201px) { .nav-mobile, .nav-back-mobile { display: none; } }
.nav-mobile .ul-nav-mobile { display: flex; flex-direction: column; margin-top: calc(var(--medium-gap) * -1); padding: 0 var(--container-padding); }
.nav-mobile .ul-nav-mobile h6 { font-size: 1.2em; }
.nav-mobile .ul-nav-mobile .btn-content { height: 3.4em; padding: 0; justify-content: space-between; }
.nav-mobile .ul-nav-mobile .border-static-x { opacity: 0.3; }
.nav-mobile .ul-nav-mobile .btn-fill { opacity: 0; }
.nav-mobile .ul-nav-mobile .btn .btn-layer.duplicate .btn-content h6 { color: var(--color-secondary); }
.nav-mobile .ul-nav-mobile .btn .btn-layer.duplicate i svg :is(path, polyline, line) { stroke: var(--color-secondary); }
.nav-mobile .nav-mobile-extra { display: flex; position: relative; height: 3.6em; align-items: center; }
.nav-mobile .nav-mobile-extra .col { width: 100%; display: flex; justify-content: center; align-items: center; height: 100%; }
.nav-mobile .nav-mobile-extra .s-icons { font-size: 1.3em; }
[data-theme-site="light"] .nav-mobile .s-icon::before { background: rgba(var(--color-dark-rgb), 0.125); }
.nav-mobile .s-icon svg path { fill: var(--color-theme-dark); }
.nav-mobile .theme-selector .selector-text h6, .nav-mobile .lang-toggle button { color: var(--color-theme-dark); }
.nav-mobile .theme-selector .icon::before { background: rgba(var(--color-dark-rgb), 0.125); }
[data-theme-site="dark"] .nav-mobile .theme-selector .icon::before { background: rgba(var(--color-light-rgb), 0.2); }
.nav-mobile .theme-selector .icon svg path { fill: var(--color-theme-dark); }

/* Theme + language selectors */
.theme-selector { position: relative; display: flex; justify-content: center; align-items: center; gap: 0.35em; cursor: pointer; height: var(--nav-secondary-height); }
.theme-selector .selector-name { position: relative; overflow: hidden; }
.theme-selector .selector-text { position: relative; transition: var(--animation-primary); display: flex; }
.theme-selector .selector-text h6 { color: var(--color-light); font-size: calc(0.75em * var(--ds)); }
.theme-selector .selector-text.dark { position: absolute; inset: 0; transform: translateY(120%); }
[data-theme-site="dark"] .theme-selector .selector-text.light { transform: translateY(-120%); }
[data-theme-site="dark"] .theme-selector .selector-text.dark { transform: translateY(0); }
.theme-selector .icon { width: 1.5em; height: 1.5em; border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; }
.theme-selector .icon::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(var(--color-light-rgb), 0.2); transition: all var(--animation-primary); }
.theme-selector .icon svg { width: 0.9em; position: relative; transition: all var(--animation-primary); }
.theme-selector .icon svg path { fill: var(--color-light); }
[data-theme-site="dark"] .theme-selector .icon svg { transform: rotate(180deg); }
@media (hover: hover) { .theme-selector:hover .icon::before { transform: scale(1.1); } }
.lang-toggle { display: flex; align-items: center; gap: 0.15em; }
.lang-toggle button { font-family: 'Montserrat', sans-serif; font-weight: 600; text-transform: uppercase; font-size: calc(0.75em * var(--ds)); color: var(--color-light); padding: 0.4em 0.35em; opacity: 0.5; transition: opacity 0.2s; }
.lang-toggle button[aria-pressed="true"] { opacity: 1; }
.lang-toggle button:hover { opacity: 1; }

/* ---------- Sticky buttons ---------- */
.sticky-btn { z-index: 299; position: fixed; bottom: 1em; right: 1em; }
.sticky-btn .btn-content { padding: 0 1.25em !important; }
.sticky-btn i { width: 1.25em !important; height: 1.25em !important; }
.sticky-btn .btn-click { background-color: var(--color-secondary); }
.sticky-btn .btn-fill { background-color: var(--color-secondary) !important; }
.sticky-btn .btn-layer.duplicate .btn-fill { background-color: var(--color-primary) !important; }
.sticky-btn h6 { color: var(--color-white) !important; }
.sticky-btn svg :is(path, line, polyline, rect, circle) { stroke: var(--color-white) !important; stroke-width: 1.5px !important; fill: none; }
.sticky-btn.is-call { right: unset; left: 1em; }
.sticky-btn.is-call .btn-content { width: 3em; padding: 0 !important; justify-content: center; }
.sticky-btn .border-box { border-color: rgba(255, 255, 255, 0.15); }

/* ---------- Concept toast ---------- */
.concept-toast { position: fixed; left: 1em; bottom: calc(1em + 3em + 0.75em); z-index: 298; max-width: 21em; background: var(--color-theme-light); padding: var(--tiny-gap); display: flex; gap: 0.75em; align-items: flex-start; transform: translateY(1em); opacity: 0; visibility: hidden; transition: all var(--animation-primary); }
.concept-toast.is-visible { transform: translateY(0); opacity: 1; visibility: visible; }
.concept-toast .inner { background: var(--color-theme-lightgray); padding: 0.85em 1em; display: flex; gap: 0.75em; align-items: flex-start; }
.concept-toast p { font-size: 0.7em; line-height: 1.55; }
.concept-toast p a { text-decoration: underline; color: var(--color-secondary); font-weight: 500; }
.concept-toast button { width: 1.6em; height: 1.6em; flex-shrink: 0; border-radius: 50%; border: 1px solid var(--color-theme-border); display: flex; align-items: center; justify-content: center; margin-top: -0.1em; }
.concept-toast button svg { width: 0.6em; }
.concept-toast button svg path { stroke: var(--color-theme-dark); stroke-width: 2; }
@media screen and (max-width: 540px) { .concept-toast { right: 1em; max-width: none; } }

/* ---------- Default header (text pages) ---------- */
.default-header { padding-top: calc((var(--nav-primary-height) + var(--nav-secondary-height)) + var(--medium-gap)); padding-bottom: var(--section-padding); }
.default-header.default-header-medium-padding { padding-top: calc((var(--nav-primary-height) * 2) + var(--nav-secondary-height)); }
.default-header.default-header-big-padding { padding-top: calc((var(--nav-primary-height) + var(--nav-secondary-height)) + var(--section-padding)); }
@media screen and (max-width: 1024px) { .default-header.default-header-big-padding { padding-top: calc((var(--nav-primary-height) + var(--nav-secondary-height)) + 12vh); } }
.styled-row { justify-content: center; }
.styled-row .col { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--medium-gap); }
.styled-row .col-row:nth-child(1) { padding-bottom: var(--tiny-gap); }
.styled-row .col-row-btns { padding-top: var(--tiny-gap); }
.styled-row :is(h5, h6) { color: var(--color-secondary); }
.styled-row .styled-content { max-width: 32em; }
.styled-row h1 { max-width: 7.2em; }
.styled-row .styled-content a { color: var(--color-secondary); text-decoration: underline; font-weight: 500; }
.textpage-header { padding-bottom: calc(var(--section-padding-small) - 1.6em); }
.textpage-header + .section-styling-element { padding-bottom: calc(var(--section-padding-small) - 1.6em); }

/* ---------- Home: locations grid ---------- */
.home-header { padding-bottom: var(--section-padding-small); }
.locations-grid { --gap: var(--medium-gap); --columns: 3; display: flex; flex-wrap: wrap; gap: var(--gap); }
.locations-grid > .col { width: calc((99.99% / var(--columns)) - (var(--gap) * ((var(--columns) - 1) / var(--columns)))); }
@media screen and (max-width: 1024px) { .locations-grid { --columns: 2; } }
@media screen and (max-width: 720px) { .locations-grid { --columns: 1; } }
.single-locations-item .card { display: flex; flex-direction: column; height: 100%; position: relative; }
.single-locations-item .thumbnail { position: relative; background-color: var(--color-primary); overflow: hidden; flex-shrink: 0; }
.single-locations-item .thumbnail::before { content: ""; padding-top: 66.666%; display: block; }
.single-locations-item .thumbnail .overlay-dark { top: unset; bottom: 0; height: 80%; opacity: 0.66; background: linear-gradient(to top, #000 0%, rgba(0,0,0,.738) 19%, rgba(0,0,0,.541) 34%, rgba(0,0,0,.382) 47%, rgba(0,0,0,.278) 56.5%, rgba(0,0,0,.194) 65%, rgba(0,0,0,.126) 73%, rgba(0,0,0,.075) 80.2%, rgba(0,0,0,.042) 86.1%, rgba(0,0,0,.021) 91%, transparent 100%); }
.single-locations-item .thumbnail .overlay-video { opacity: 0; visibility: hidden; transition: all var(--animation-primary); }
.single-locations-item .thumbnail .overlay-link { display: flex; justify-content: flex-start; align-items: flex-end; padding: var(--medium-gap); }
.single-locations-item .thumbnail .overlay-link h5 { color: var(--color-light); overflow: hidden; position: relative; }
.single-locations-item .thumbnail .overlay-link h5 span { display: inline-block; transition: transform var(--animation-primary); }
.single-locations-item .thumbnail .overlay-link h5 span:nth-child(2) { position: absolute; left: 0; transform: translateY(120%); }
@media (hover: hover) {
   .single-locations-item .thumbnail .overlay-visual { transform: scale(1); transition: transform var(--animation-smooth); }
   .single-locations-item .thumbnail:hover .overlay-visual { transform: scale(1.05); }
   .single-locations-item .thumbnail .overlay-dark { transition: opacity var(--animation-smooth); }
   .single-locations-item .thumbnail:hover .overlay-dark { opacity: 0.9; }
   .single-locations-item .thumbnail:hover .overlay-link h5 span:nth-child(1) { transform: translateY(-120%); }
   .single-locations-item .thumbnail:hover .overlay-link h5 span:nth-child(2) { transform: translateY(0%); }
   .single-locations-item .thumbnail:hover .overlay-video.is-ready { opacity: 1; visibility: visible; transform: scale(1.05); transition: all var(--animation-primary) 0.2s; }
}
.single-locations-item .information { display: flex; position: relative; flex-direction: column; height: 100%; }
.single-locations-item .information-text { display: flex; flex-direction: column; padding: var(--medium-gap); width: 100%; justify-content: center; }
.single-locations-item .information-text ul { gap: 0.65em; padding: 0.2em 0 0.2em 1.1em; font-size: 1em; }
.single-locations-item .information-text ul li p.tiny { line-height: 1.1; }
.single-locations-item .information-button .btn { height: 100%; }
@media screen and (min-width: 1025px) {
   .single-locations-item .information { flex-direction: row; }
   .single-locations-item .information-button { flex-shrink: 0; }
   .single-locations-item .information-button :is(.btn, .btn-click, .btn-wrap, .btn-layer, .btn-content) { height: 100%; }
   .single-locations-item .information-button .btn-content { flex-direction: column; justify-content: center; gap: 0; }
   .single-locations-item .information-button .btn-content h6 { order: 2; font-size: calc(0.75em * var(--ds)); padding: 0.5em 0; }
   .single-locations-item .information-button .border-right { display: none; }
}
@media screen and (max-width: 1024px) {
   .single-locations-item .information > .border-static-y { height: 1px; width: 100%; }
}
.locations-grid .locations-message { display: flex; padding: var(--tiny-gap); position: relative; }
.locations-grid .locations-message .inner { display: flex; flex-direction: column; padding: var(--medium-gap); position: relative; justify-content: center; align-items: center; text-align: center; width: 100%; gap: 0.75em; background-color: var(--color-theme-lightgray); transition: background-color var(--animation-primary); }
.locations-grid .locations-message .col-row { max-width: calc(var(--title-size) * 2.6); }
.locations-grid .locations-message .col-row-title { padding-top: 0.5em; }
.locations-grid .locations-message .col-row-subtitle h6 { color: var(--color-secondary); }
@media screen and (max-width: 1024px) { .locations-grid .locations-message .inner { padding: calc(var(--section-padding) * 0.66) var(--medium-gap); } }

/* ---------- Location page: header ---------- */
.locations-single-header { padding-bottom: var(--section-padding); }
.locations-single-header .col { width: 100%; overflow: hidden; }
.locations-single-header figure { overflow: hidden; height: calc(100vh - (var(--nav-primary-height) + var(--nav-secondary-height) + var(--medium-gap)) - var(--nav-secondary-height)); max-height: 50em; min-height: 22em; background-color: var(--color-dark); position: relative; isolation: isolate; }
.locations-single-header .overlay-dark { background: linear-gradient(135deg, #000 0%, transparent 50%); opacity: 0.5; }
.locations-single-header .marquee { position: absolute; bottom: calc(var(--medium-gap) * 2); left: 0; width: 100%; pointer-events: none; }
.locations-single-header .marquee { bottom: 0; }
.locations-single-header .marquee h2 { color: var(--color-light); white-space: nowrap; font-size: calc(var(--title-size) * 1.25 * var(--ds)); padding-right: 0.33em; line-height: 0.62; transform: translateY(-10%); }
.locations-single-header .marquee-glow { position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(to top, rgba(0,0,0,.35), transparent); }
@media screen and (max-width: 1024px) {
   .locations-single-header { padding-bottom: var(--section-padding-small); }
   .locations-single-header figure { height: calc(75vh - (var(--nav-primary-height) + var(--nav-secondary-height) + var(--medium-gap))); }
   .locations-single-header .marquee { opacity: 0; visibility: hidden; }
   .locations-single-header .overlay-dark { background: linear-gradient(0deg, #000 0%, transparent 50%); }
   .locations-single-header .mobile-title { display: block; }
}


.locations-single-header .mobile-title { display: none; z-index: 2; position: absolute; left: var(--medium-gap); bottom: var(--medium-gap); color: var(--color-light); font-size: calc(var(--title-size) * 0.5 * var(--ds)); }
@media screen and (max-width: 1024px) { .locations-single-header .mobile-title { display: block; } }

/* Marquee */
.marquee { position: relative; overflow: visible; }
.marquee .marquee-scroll { position: relative; display: flex; width: 140%; margin-left: -20%; }
.marquee .marquee-content { position: relative; display: flex; flex-shrink: 0; }

/* Parallax figures */
[data-parallax] { overflow: hidden; position: relative; }
[data-parallax] .parallax-target { position: absolute; left: 0; width: 100%; top: -10%; height: 120%; }
[data-parallax] .parallax-target img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Location page: intro ---------- */
.locations-single-intro { padding-top: 0; }
.locations-single-intro .row { flex-wrap: nowrap; align-items: center; gap: calc(var(--section-padding-small) - 1.6em); }
.locations-single-intro .row > .col { display: flex; flex-direction: column; width: 100%; gap: var(--medium-gap); }
.locations-single-intro .rating { margin-top: -0.5em; }
.locations-single-intro .col-row-title { margin-bottom: -0.3em; }
.locations-single-info-box { width: 100%; display: flex; flex-direction: column; position: relative; margin-top: var(--tiny-gap); }
.locations-single-info-box .information-text { display: flex; flex-direction: column; padding: calc(var(--medium-gap) * 0.66) var(--medium-gap); width: 100%; }
.locations-single-info-box .information-text ul { gap: 0.6em; padding: 0.5em 0 0.5em 1.1em; font-size: 1em; }
.locations-single-info-box .information-text ul li p.small { line-height: 1; }
.locations-single-info-box .information-text ul li p.split { display: flex; align-items: center; gap: 0.5em; }
.locations-single-info-box .information-text ul li p.split span { width: 50%; }
.locations-single-info-box .information-text ul li.current-day p { font-weight: 600; color: var(--color-theme-dark); }
.locations-single-info-box .btn .btn-content h6 { font-size: calc(0.75em * var(--ds)); }
.locations-single-intro figure.portrait { position: relative; aspect-ratio: 3 / 4; background: var(--color-theme-placeholder); }
.locations-single-intro .media-col { position: relative; }
@media screen and (max-width: 1024px) {
   .locations-single-intro { padding-bottom: calc(var(--section-padding) * 1.5); }
   .locations-single-intro .row { flex-direction: column; }
   .locations-single-intro .styling-element-y { height: 3.2em; width: 10em; }
   .locations-single-intro .styling-element-y .border-static-y { width: 100%; height: 1px; }
}

/* Rating */
.rating { display: flex; align-items: center; gap: 0.5em; }
.rating h6 { transform: translateY(0.1em); font-size: calc(0.75em * var(--ds)); }
.rating-stars { display: flex; gap: 0.08em; }
.rating-stars svg { width: 1em; height: 1em; }
.rating-stars svg path { fill: var(--color-secondary); stroke: var(--color-secondary); stroke-width: 1.2; }
.rating-stars svg.part path.bg { fill: transparent; }
.rating-badge { width: 8em; height: 8em; background-color: var(--color-theme-light); border-radius: 50%; position: absolute; left: 0; top: 100%; transform: translate(-50%, calc(-100% - (var(--medium-gap) * 1.5))); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 3; transition: background-color var(--animation-primary); }
.rating-badge > svg { width: 82%; position: absolute; animation: spin 24s linear infinite; }
.rating-badge > svg text { fill: var(--color-theme-dark); font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }
.rating-badge h4 { font-size: calc(var(--title-size) * 0.3 * var(--ds)); }
.rating-badge .rating-stars { font-size: 0.7em; margin-top: 0.25em; }
@keyframes spin { to { transform: rotate(360deg); } }
@media screen and (max-width: 1024px) { .rating-badge { left: 50%; top: auto; bottom: 0; transform: translate(-50%, 50%); } }

/* ---------- Pagebuilder ---------- */
.pagebuilder-bg { background-color: var(--color-theme-light); transition: background-color var(--animation-primary); }
.locations-single-intro + .pagebuilder-bg { margin-top: calc(var(--section-padding) * -1); }
.pagebuilder { position: relative; padding-bottom: var(--section-padding); }
.pagebuilder > section { padding-bottom: 0; }
.pagebuilder section.padding-top-small { padding-top: var(--row-padding); }
.pagebuilder section.text-align-center { text-align: center; }
.pagebuilder .col-row-subtitle h6, .block-dual .col-row-subtitle h6, .block-split .col-row-subtitle h6 { color: var(--color-secondary); }
.pagebuilder .col-row-btn { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: var(--tiny-gap); }
.pagebuilder .text-align-center .col-row-btn { justify-content: center; }
.pagebuilder .col-row-btn .btn, .col-row-btn .btn { width: unset; }
.block-text .row { justify-content: flex-start; }
.block-text.text-align-center .row { justify-content: center; }
.block-text .col { display: flex; flex-direction: column; gap: var(--medium-gap); width: 100%; }

/* Cards (block-highlight) */
.cards-group { --gap: calc(var(--medium-gap) * 1.5); --columns: 3; position: relative; }
.cards-group .cards { display: flex; gap: var(--gap); }
.cards-group .card-slide { width: calc((100% / var(--columns)) - (var(--gap) * ((var(--columns) - 1) / var(--columns)))); flex-shrink: 0; display: flex; flex-direction: column; gap: calc(var(--medium-gap) * 0.75); }
.cards-group .col-row-media { padding-bottom: calc(var(--medium-gap) * 0.5); }
.cards-group figure { aspect-ratio: 3 / 2; position: relative; background: var(--color-theme-placeholder); }
.cards-group figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 721px) and (max-width: 1024px) { .cards-group { --gap: var(--medium-gap); --columns: 2; } .cards-group .cards { flex-wrap: wrap; } }
@media screen and (max-width: 720px) { .cards-group .cards { flex-direction: column; } .cards-group { --columns: 1; } }

/* Block divider */
.block-divider { z-index: 3; }
.block-divider .row { height: 0; align-items: center; }

/* Block dual */
.block-dual .row { flex-wrap: nowrap; align-items: center; gap: calc(var(--section-padding-small) - 1.6em); }
.block-dual .row > .col { display: flex; flex-direction: column; width: 100%; gap: var(--medium-gap); }
.block-dual .col-info { order: 3; }
.block-dual .col-media { order: 1; }
.block-dual .styling-element-y { order: 2; }
.block-dual .col-row-title { margin-bottom: -0.3em; }
.block-dual figure { aspect-ratio: 3 / 4; position: relative; background: var(--color-theme-placeholder); }
@media screen and (max-width: 1024px) {
   .block-dual .row { flex-direction: column; gap: var(--section-padding-small); }
   .block-dual .col-info { order: 1; } .block-dual .col-media { order: 3; }
   .block-dual .styling-element-y { height: 3.2em; width: 10em; }
   .block-dual .styling-element-y .border-static-y { width: 100%; height: 1px; }
}

/* Section border */
.section-border { padding-top: 0; }
.section-border .row { height: 1px; }

/* Block split */
.block-split { padding-top: 0; }
.block-split .row { flex-wrap: nowrap; align-items: center; gap: calc(var(--section-padding-small) - 1.6em); }
.block-split .row > .col { display: flex; flex-direction: column; width: 100%; gap: var(--medium-gap); }
.block-split .col-row-title { margin-bottom: -0.3em; }
.block-split.styling-disabled .styling-element-y { opacity: 0; }
.block-split .col-row-quote { padding-top: 1em; }
.block-split figure { aspect-ratio: 4 / 5; position: relative; background: var(--color-theme-placeholder); }
@media screen and (max-width: 1024px) {
   .block-split .row { flex-direction: column; gap: var(--section-padding-small); }
   .block-split.styling-disabled .styling-element-y { display: none; }
}

/* Quote */
.styled-quote { display: flex; flex-direction: column; position: relative; padding-left: var(--medium-gap); gap: 1.5em; }
.styled-quote p { font-style: italic; font-weight: 600; line-height: 1.6; color: var(--color-theme-dark); }
.styled-quote .border-left { height: calc(100% - 0.4em); top: 0.4em; }
.styled-quote h6 { opacity: 0.5; font-size: calc(0.75em * var(--ds)); }

/* Gallery reveal */
.block-gallery-reveal { padding-top: 0; padding-bottom: 0; }
.block-gallery-reveal .row { flex-wrap: nowrap; align-items: center; gap: var(--medium-gap); }
.block-gallery-reveal .row > .col { width: 100%; }
.block-gallery-reveal figure { aspect-ratio: 4 / 5; position: relative; background: var(--color-theme-placeholder); }
@media screen and (max-width: 540px) { .block-gallery-reveal .row > .col:nth-child(3) { display: none; } }

/* Draw text */
.draw-text .container { max-width: calc(var(--title-size) * 7); }
.draw-text .draw-wrapper { position: relative; width: 100%; padding-top: 62%; }
.draw-text svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.draw-text svg text { font-family: 'Mr Dafoe', cursive; fill: var(--color-accent); stroke: var(--color-accent); stroke-width: 1.4; paint-order: stroke; }
@media screen and (max-width: 540px) { .draw-text .container { padding-left: calc(var(--container-padding) * 2); padding-right: calc(var(--container-padding) * 2); } }

/* Quote slider */
.slider-quote { padding-top: 0; }
.slider { --gap: var(--medium-gap); position: relative; width: 100%; }
.slider .slider-viewport { overflow: visible; touch-action: pan-y; cursor: grab; }
.slider .slider-viewport:active { cursor: grabbing; }
.slider .slider-track { display: flex; align-items: stretch; will-change: transform; }
.slider .slide { flex-shrink: 0; margin-right: var(--gap); user-select: none; }
.slider .slide.type-image { width: calc(60% - (var(--gap) * 0.5)); }
.slider .slide.type-image figure { aspect-ratio: 1 / 1; position: relative; background: var(--color-theme-placeholder); }
.slider .slide.type-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.slider .slide.type-quote { width: max(25em, calc(40% - (var(--gap) * 0.5))); display: flex; align-items: flex-end; padding-right: var(--gap); }
.slider .slide.type-rating .rating-card { display: flex; flex-direction: column; gap: 0.9em; padding-left: var(--medium-gap); position: relative; }
.slider .slide.type-rating .rating-card h3 { font-size: calc(var(--title-size) * 0.6 * var(--ds)); }
.slider-controls { position: absolute; inset: 0; pointer-events: none; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: var(--gap); }
.slider-arrow { position: relative; width: 3em; height: 3em; border-radius: 50%; display: flex; justify-content: center; align-items: center; pointer-events: all; transition: transform var(--animation-primary); cursor: pointer; }
.slider-arrow .border-box { border-radius: 50%; background: var(--color-theme-light); transition: all var(--animation-primary); }
.slider-arrow:hover .border-box { transform: scale(0.9); }
.slider-arrow svg { width: 35%; position: relative; z-index: 2; }
.slider-arrow svg :is(polyline, line) { stroke: var(--color-theme-dark); stroke-width: 1.5px; fill: none; }
.slider-arrow[data-dir="prev"] svg { transform: scaleX(-1); }
.slider-arrow[disabled] { transform: scale(0); pointer-events: none; }
@media screen and (max-width: 540px) {
   .slider-quote .container { padding-left: calc(var(--container-padding) * 2); padding-right: calc(var(--container-padding) * 2); }
   .slider-controls { display: none; }
   .slider .slide.type-image, .slider .slide.type-quote { width: calc(100% - var(--gap)); }
}

/* Menu interactive */
.menu-interactive { padding-top: 0; }
.menu-interactive .row-title { padding-bottom: calc(var(--medium-gap) * 2); }
.menu-interactive .row { flex-direction: column; }
.menu-interactive .menu-list > li { position: relative; }
.menu-interactive .menu-click { display: flex; background-color: var(--color-theme-light); transition: background-color var(--animation-primary); min-height: 5em; }
.menu-interactive .menu-click .col-col:nth-child(1) { width: 25em; flex-shrink: 0; display: flex; align-items: center; }
.menu-interactive .menu-click h4 { font-size: calc(1.5em * var(--ds)); transition: transform var(--animation-primary); padding-right: calc(5% + 1.5em); }
.menu-interactive .menu-click .col-col:nth-child(2) { width: 100%; position: relative; display: flex; align-items: center; padding: 0.9em 1.5em; }
.menu-interactive .menu-click .col-col:nth-child(2) h6 { line-height: 1.3; font-size: calc(0.8em * var(--ds)); }
.menu-interactive .menu-click .col-col:nth-child(3) { flex-shrink: 0; }
.menu-interactive .menu-click .btn { overflow: hidden; height: 100%; }
.menu-interactive .menu-click .btn-layer { width: 5em; height: 100%; min-height: 5em; display: flex; align-items: center; justify-content: center; }
.menu-interactive .menu-click .btn-layer.duplicate { background: var(--color-secondary); }
.menu-interactive .menu-click .btn-layer i { width: 1em; height: 1em; }
@media screen and (min-width: 1101px) and (hover: hover) {
   .menu-interactive a.menu-click:hover { background-color: var(--color-theme-lightgray); }
   .menu-interactive a.menu-click:hover h4 { transform: translateX(0.75em); }
   .menu-interactive a.menu-click:hover .btn-layer { transform: translateY(-100%); }
   .menu-interactive a.menu-click:hover .btn-layer.duplicate { transform: translateY(0%); }
}
@media screen and (max-width: 1100px) {
   .menu-interactive .menu-click { flex-direction: column; justify-content: center; gap: 0.5em; position: relative; padding: 1.1em 0; }
   .menu-interactive .menu-click .col-col:nth-child(1), .menu-interactive .menu-click .col-col:nth-child(2) { width: 100%; padding: 0 5.5em 0 0; }
   .menu-interactive .menu-click .col-col:nth-child(2) { opacity: 0.75; }
   .menu-interactive .menu-click .col-col:nth-child(2) .border-left { display: none; }
   .menu-interactive .menu-click .col-col:nth-child(3) { position: absolute; right: 0; top: 0; bottom: 0; }
   .menu-interactive .menu-click h4 { padding-right: 0; }
}

/* Menu page price rows (same row anatomy) */
.menu-page .menu-click h4 { font-size: calc(1.15em * var(--ds)); line-height: 1.15; }
.menu-page .menu-click .col-col:nth-child(1) { width: 22em; }
.menu-page .price-box { width: 5.5em; height: 100%; min-height: 4.2em; display: flex; align-items: center; justify-content: center; position: relative; }
.menu-page .price-box h5 { white-space: nowrap; }
.menu-page .price-box .border-left { opacity: 1; }
.menu-page .menu-click { min-height: 4.2em; }
.menu-page .menu-click .col-col:nth-child(2) p { font-size: 0.8em; line-height: 1.45; }
.menu-page .menu-cat { padding-bottom: var(--section-padding-small); scroll-margin-top: 9em; }
.menu-page .menu-cat-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1em; padding-bottom: calc(var(--medium-gap) * 1.2); }
.menu-page .menu-cat-head h6 { color: var(--color-secondary); }
.menu-page .menu-note { margin-top: var(--medium-gap); }
.menu-page .menu-note p { font-size: 0.75em; opacity: 0.8; }
@media (hover: hover) { .menu-page .menu-click:hover { background-color: var(--color-theme-lightgray); } .menu-page .menu-click:hover h4 { transform: translateX(0.5em); } }
@media screen and (max-width: 1100px) { .menu-page .menu-click .col-col:nth-child(3) { position: absolute; } .menu-page .price-box { min-height: 100%; } }

/* Sticky image cursor */
.sticky-image-cursor { width: calc(var(--title-size) * 3.25); z-index: 290; position: fixed; pointer-events: none; transform: translate(calc(-50% + 47vw), -50%); left: 0; top: 0; display: none; }
.sticky-image-cursor-inner { position: relative; width: 100%; transform: perspective(50vw); transform-style: preserve-3d; }
.sticky-image-cursor-inner::before { content: ""; padding-top: 0%; display: block; transition: padding .6s cubic-bezier(.7, 0, .3, 1); }
.sticky-image-cursor.active .sticky-image-cursor-inner::before { padding-top: 100%; }
.sticky-image-cursor ul { position: absolute; inset: 0; overflow: hidden; background-color: var(--color-theme-lightgray); }
.sticky-image-cursor ul li { position: absolute; inset: 0; z-index: 1; }
.sticky-image-cursor ul li img { width: 100%; height: 100%; object-fit: cover; }
.sticky-image-cursor ul li.active { z-index: 3; }
.sticky-image-cursor ul li.transition-out { z-index: 2; }
@media (hover: hover) and (min-width: 1024px) { .sticky-image-cursor { display: block; } }

/* Image full + quote image */
.block-image-full { padding-top: 0; }
.block-image-full figure { aspect-ratio: 2.35 / 1; position: relative; background: var(--color-theme-placeholder); }
.block-quote-image { padding-top: 0; }
.block-quote-image .row { justify-content: center; }
.block-quote-image h2 { display: flex; justify-content: center; flex-direction: column; gap: 0.075em; white-space: nowrap; line-height: 1; }
.block-quote-image .span-row { display: flex; justify-content: center; align-items: center; gap: 0.25em; }
.block-quote-image figure { width: 1.5em; height: 0.9em; border-radius: 0.5em; overflow: hidden; display: inline-block; position: relative; transform: translateY(-5%); flex-shrink: 0; }
.block-quote-image figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.block-quote-image .quote-cite { text-align: center; margin-top: 1.6em; opacity: 0.5; }
@media screen and (max-width: 1024px) { .block-quote-image h2 { font-size: 6vw; } }
@media screen and (max-width: 540px) { .block-quote-image h2 { font-size: 6.6vw; } }

/* Prefooter */
.prefooter { padding: 0; position: relative; }
.prefooter::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background-color: var(--color-primary); }
.prefooter .row { flex-wrap: nowrap; background: var(--color-theme-lightgray); z-index: 1; gap: var(--container-padding); padding: var(--section-padding-small) var(--container-padding); overflow: hidden; transition: background-color var(--animation-primary); }
.prefooter .col-text { width: 42.5%; display: flex; flex-direction: column; align-items: flex-start; }
.prefooter .col-text-inner { display: flex; flex-direction: column; gap: var(--medium-gap); width: 100%; }
.prefooter .col-row-subtitle h6 { color: var(--color-secondary); }
.prefooter .col-row-title h3 { display: flex; flex-direction: column; }
.prefooter .col-row-title h3 > span { position: relative; display: block; }
.prefooter .col-row-title h3 > span:last-child { margin-top: -0.05em; padding-left: 0.4em; }
.prefooter .col-row-title .script { font-size: 1.55em; line-height: 0.62; transform: rotate(-6deg); display: inline-block; }
.prefooter .col-row-btn { width: 100%; max-width: 20em; position: relative; }
.prefooter .col-images { width: 57.5%; position: relative; min-height: 21em; }
.prefooter .col-images > figure { width: 66.66%; position: absolute; aspect-ratio: 4 / 3; }
.prefooter .col-images figure:nth-child(1) { left: 0; z-index: 2; top: 0; transform: translateY(calc(var(--section-padding-small) * 1)) rotate(-3deg); }
.prefooter .col-images figure:nth-child(2) { right: 0; top: 0; transform: rotate(4deg); }
@media screen and (max-width: 1024px) {
   .prefooter .row { flex-direction: column; gap: var(--section-padding-small); align-items: center; }
   .prefooter .col-text { width: 100%; }
   .prefooter .col-images { width: 92%; min-height: 62vw; }
}

/* ---------- Tabs + forms (groups / contact pages) ---------- */
.section-form { padding-top: 0; }
.filter-btns-left { display: flex; justify-content: flex-start; position: relative; }
.filter-btns { display: flex; position: relative; max-width: 100%; flex-wrap: wrap; }
.filter-btns .btn { width: unset; margin-right: -1px; }
.filter-btns .btn .btn-content { height: 3em; }
.filter-btns .btn .btn-content h6 { font-size: calc(0.75em * var(--ds)); }
.filter-btns .btn[aria-selected="true"] .btn-layer { transform: translateY(-100%); }
.filter-btns .btn[aria-selected="true"] .btn-layer.duplicate { transform: translateY(0%); }
.form-container { position: relative; width: 100%; padding: var(--tiny-gap); }
.form-container[hidden] { display: none; }
.form-container-inner { padding: var(--section-padding-small); background-color: var(--color-theme-lightgray); transition: background-color var(--animation-primary); }
@media screen and (max-width: 720px) { .form-container-inner { padding: var(--section-padding-small) var(--medium-gap); } }
.form-info { display: flex; flex-direction: column; gap: var(--medium-gap); padding-bottom: var(--medium-gap); max-width: 30em; }
.form-info h6 { color: var(--color-secondary); }
.styled-form { display: flex; flex-direction: column; width: 100%; gap: var(--medium-gap); }
.styled-form .form-row { display: flex; justify-content: center; }
.styled-form .form-row-top { gap: var(--section-padding-small); }
.styled-form .form-row-top .form-block { width: 100%; display: flex; flex-direction: column; padding-top: var(--medium-gap); }
.styled-form .form-col { width: 100%; padding-bottom: var(--medium-gap); display: flex; flex-direction: column; align-items: flex-start; }
.styled-form .form-col-textarea { height: 100%; }
.styled-form .form-col-textarea textarea { height: 100%; }
.styled-form label { margin-bottom: 0.5em; font-family: 'Montserrat', sans-serif; font-weight: 600; text-transform: uppercase; font-size: calc(0.7em * var(--ds)); color: var(--color-theme-dark); }
.styled-form abbr { color: var(--color-secondary); text-decoration: none; padding-left: 0.15em; }
.styled-form .border-static-y { height: unset; }
.styled-form :is(input, textarea, select) { -webkit-appearance: none; appearance: none; outline: none; border: 1px solid var(--color-theme-border); padding: 1em; width: 100%; background: transparent; font: inherit; font-size: 0.85em; line-height: 1.3; color: var(--color-theme-dark); border-radius: 0; transition: background var(--animation-primary); }
.styled-form textarea { resize: vertical; min-height: 10em; }
.styled-form :is(input, textarea, select):focus { background: var(--color-theme-light); }
.styled-form :is(input, textarea, select):focus-visible { outline: 2px solid var(--color-secondary); outline-offset: -1px; }
.styled-form ::placeholder { color: rgba(var(--color-dark-rgb), 0.45); font-style: italic; }
[data-theme-site="dark"] .styled-form ::placeholder { color: rgba(var(--color-light-rgb), 0.4); }
.styled-form .form-row-bottom { flex-direction: column; align-items: center; gap: var(--medium-gap); }
.styled-form .form-row-bottom p { font-size: 0.75em; opacity: 0.75; text-align: center; }
.styled-form .btn-submit { width: unset; position: relative; }
@media screen and (max-width: 1024px) {
   .styled-form .form-row { flex-direction: column; }
   .styled-form .form-row-top { gap: 0; }
   .styled-form .border-static-y { display: none; }
}
.visit-grid { display: flex; gap: var(--section-padding-small); }
.visit-grid > .col { width: 100%; display: flex; flex-direction: column; gap: var(--medium-gap); padding-top: var(--medium-gap); }
.visit-grid .visit-item { display: flex; flex-direction: column; gap: 0.6em; padding-bottom: var(--medium-gap); }
.visit-grid .visit-item h6 { color: var(--color-secondary); font-size: calc(0.7em * var(--ds)); }
.visit-grid .visit-item p { font-size: 0.85em; }
.visit-grid .visit-item p a { text-decoration: underline; text-underline-offset: 0.2em; }
.visit-grid .btn-stack { display: flex; flex-direction: column; position: relative; }
.visit-grid .btn-stack .btn + .btn { margin-top: -1px; }
.visit-grid .btn-stack .btn .btn-content h6 { font-size: calc(0.75em * var(--ds)); }
@media screen and (max-width: 1024px) { .visit-grid { flex-direction: column; gap: 0; } .visit-grid > .border-static-y { display: none; } }

/* ---------- Footer ---------- */
.footer { padding-top: var(--section-padding-small); padding-bottom: 50px; background: var(--color-primary); }
.footer .row-top { display: flex; padding: var(--medium-gap) 0; }
.footer .row-top .row-wrap { display: flex; gap: var(--medium-gap); width: 100%; position: relative; }
.footer .row-top .row-wrap > .col { width: 100%; padding-top: var(--medium-gap); }
.footer .border-static-y { height: unset; background-color: var(--color-border-light); }
.footer .border-static-x, .footer .border-top, .footer .border-bottom { background-color: var(--color-border-light); }
.footer .styled-subtitle .dot { border-color: var(--color-lightgray); background: radial-gradient(circle, var(--color-lightgray) 0 30%, transparent 34%); }
.footer .styled-subtitle h6 { color: var(--color-lightgray); }
.footer .col-1 { display: flex; flex-direction: column; gap: var(--tiny-gap); justify-content: space-between; padding-bottom: var(--tiny-gap); }
.footer .col-1 .col-row { display: flex; flex-direction: column; gap: var(--tiny-gap); }
.footer .col-1 h4 { color: var(--color-light); }
.footer .col-1 p.tiny { color: var(--color-text-light); max-width: 28em; }
.footer .col-1 .styled-subtitle { padding-bottom: var(--medium-gap); }
.footer .col-1 .logo-contact { padding-top: 1em; }
.footer .col-2 ul { position: relative; display: flex; flex-direction: column; padding-top: var(--tiny-gap); }
.footer .col-2 .btn .btn-click { height: 3.2em; }
.footer .col-2 .btn .btn-content { height: 1.2em; padding: 0; }
.footer .col-2 .btn .btn-fill { background: transparent !important; }
.footer .col-2 .btn .btn-content h6 { color: var(--color-light); }
.footer .col-2 .btn i svg :is(path, polyline, line) { stroke: var(--color-light); }
.footer .col-2 .btn .btn-layer.duplicate .btn-content h6, .footer .col-2 .btn .btn-layer.duplicate i { opacity: 0.5; }
@media screen and (min-width: 1024px) { .footer .col-2 ul li:last-child .border-static-x { display: none; } }
.footer .col-3 { display: flex; flex-direction: column; justify-content: space-between; position: relative; }
.footer .col-3 .ul-sitemap { display: flex; flex-direction: column; padding: var(--medium-gap) 0; }
.footer .col-3 .ul-sitemap li { display: flex; }
.footer .col-3 .ul-sitemap a { padding: 0.25em 0; transition: opacity 0.2s ease-in-out; }
.footer .col-3 .ul-sitemap a p { color: var(--color-text-light); }
.footer .col-3 .ul-sitemap a:hover { opacity: 0.5; }
.footer .col-3 .s-icons.large { position: absolute; right: 0; top: calc(var(--medium-gap) * 0.5); z-index: 2; }
.footer .col-3 .select-language { transform: translateY(calc(var(--medium-gap) * 0.5)); }
.footer .col-4 { display: none; flex-direction: column; gap: var(--medium-gap); }
.footer .select-socials { display: flex; align-items: center; justify-content: space-between; }
.footer .row-bottom { padding: calc(var(--row-padding) - 1.2em) 0; align-items: center; justify-content: space-between; gap: 1em; flex-wrap: wrap; }
.footer .row-bottom h6 { color: var(--color-light) !important; opacity: 0.5; font-size: calc(0.75em * var(--ds)); }
.footer .row-bottom .btn-layer.duplicate h6 { opacity: 1; color: var(--color-accent) !important; }
.footer .row-bottom .btn { width: unset; }
.select-language { display: flex; align-items: center; gap: 1em; height: 3.2em; justify-content: space-between; }
.select-language .ul-language { display: flex; gap: 0.5em; }
.select-language .ul-language button { padding: 0.6em 0; font-size: 0.825em; color: var(--color-text-light); transition: opacity 0.2s ease-in-out; }
.select-language .ul-language button[aria-pressed="true"] { color: var(--color-light); font-weight: 500; }
.select-language .ul-language button:hover { opacity: 0.5; }
.logo-contact { display: flex; }
.logo-contact .logo-contact-logo { flex-shrink: 0; width: 3.5em; height: 3.5em; border-radius: 50%; background: var(--color-light); display: flex; align-items: center; justify-content: center; }
.logo-contact .logo-contact-logo svg { width: 85%; }
.logo-contact .logo-contact-logo svg text { fill: var(--color-dark); }
.logo-contact .logo-contact-logo svg circle { stroke: var(--color-dark); }
.logo-contact .logo-contact-content { display: flex; flex-direction: column; justify-content: center; padding-left: 0.75em; }
.logo-contact .logo-contact-content p { color: var(--color-light); font-weight: 500; padding: 0.1em 0; }
.logo-contact .logo-contact-content p a { font-weight: 400; color: var(--color-text-light); display: inline-block; transition: opacity 0.15s ease-in-out, transform var(--animation-primary); }
.logo-contact .logo-contact-content p a:hover { opacity: 0.7; transform: translateX(0.25em); }
@media screen and (max-width: 1024px) {
   .footer { padding-bottom: calc(var(--section-padding-small) + 3.5em); }
   .footer .footer-desktop { display: none !important; }
   .footer .col-4 { display: flex; }
   .footer .row-top { padding: 0 0 var(--medium-gap) 0; }
   .footer .row-top .row-wrap > .col { padding-top: 0; }
   .footer .row-top .row-wrap > .border-top { display: none; }
   .footer .row-top .row-wrap { flex-direction: column; gap: var(--medium-gap); }
   .footer .row-top .row-wrap > .border-static-y { height: 1px; width: 100%; }
   .footer .col-1 { order: 4; padding-top: var(--medium-gap); }
   .footer .border-1 { order: 3; }
   .footer .col-2 { order: 1; }
   .footer .border-2 { order: 5; }
   .footer .col-3 { order: 2; padding-top: var(--medium-gap); padding-bottom: var(--tiny-gap); }
   .footer .col-4 { order: 6; }
   .footer .row-bottom { padding: var(--medium-gap) 0; }
}

/* ---------- 404 ---------- */
.notfound { min-height: 100vh; display: flex; align-items: center; }

/* ---------- Motion guards ---------- */
@media (prefers-reduced-motion: reduce) {
   *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
   .js .loading-container { display: none; }
   .rating-badge > svg { animation: none; }
}
