@charset "UTF-8";@font-face {font-family: zentry;font-display: swap;src: url("fonts/zentry-regular.woff2") format("woff2");font-weight: 400;font-style: normal;}
@font-face {font-family: robert;font-display: swap;src: url("fonts/robert-regular.woff2") format("woff2");font-weight: 400;font-style: normal;}
@font-face {font-family: robert;font-display: swap;src: url("fonts/robert-medium.woff2") format("woff2");font-weight: 500;font-style: normal;}
@font-face {font-family: general;font-display: swap;src: url("fonts/general.woff2") format("woff2");font-weight: 400;font-style: normal;}
@font-face { 
	font-family: "iconfont"; 
	font-display: swap;
	src: url("data:font/woff2;base64,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") format("woff2"); 
} 
[class*="--icon-"]::before{
	font-family: iconfont; 
}
	[class*="--icon-music"]::before { 
		content: "\f101"; 
	} 
	[class*="--icon-cursor"]::before { 
		content: "\f102"; 
	} 
	[class*="--icon-github"]::before { 
		content: "\f107"; 
	} 
	[class*="--icon-dribbble"]::before { 
		content: "\f108"; 
	} 
	[class*="--icon-discord"]::before { 
		content: "\f109"; 
	} 
* {
	padding: 0rem;
	margin: 0rem;
	border: 0rem;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
*::before,
*::after {
	display: inline-block;
}
html,
body {
	height: 100%;
}
body {
	line-height: 1;
	scrollbar-gutter: stable;
	-ms-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
input,
button,
textarea {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
	background-color: transparent;
}
input,
textarea {
	width: 100%;
}
label {
	display: inline-block;
}
button,
select,
option {
	cursor: pointer;
}
a {
	display: inline-block;
	color: inherit;
	text-decoration: none;
}
ul li {
	list-style: none;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: inherit;
	font-size: inherit;
}

/* Generated by vite-plugin-svg-spritemap */
body {
  min-width: 20rem;
  color: #fff;
  font-family: "robert";
  font-size: 1rem;
  background-color: #fff;
}
[data-fls-scrolllock] body {
  overflow: hidden;
  touch-action: none;
  overscroll-behavior: none;
}
.wrapper {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: clip;
}
.wrapper > main {
  flex: 1 1 auto;
}
.wrapper > * {
  min-width: 0;
}

[class*=__container] {
  max-width: 91.875rem;
  margin: 0 auto;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
}

.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #000;
  text-transform: uppercase;
  font-size: 0.875rem;
  background-color: #fff;
  border-radius: 1.875rem;
  /* один transition на transform */
  transition: scale 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
  /* ------------------ текст-стікер ------------------ */
}
.btn--light-gr {
  background-color: #edff66;
}
.btn__label {
  display: inline-grid;
  align-items: center;
  justify-items: center;
  line-height: 1;
  overflow: hidden;
}
.btn__main, .btn__alt {
  grid-area: 1/1;
  white-space: nowrap;
  transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.btn__main {
  transform: translateY(0%);
}
.btn__alt {
  transform: translateY(120%);
}

.visually-hidden {
  position: absolute !important;
  width: 0.0625rem !important;
  height: 0.0625rem !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border-width: 0 !important;
  word-spacing: 0 !important;
}

.preloader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background-color: #000;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}
.preloader.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.preloader__inner {
  width: min(47.5rem, 90vw);
  text-align: left;
  color: #fff;
}
.preloader__brand {
  margin: 0 0 1.125rem;
  font-family: zentry, system-ui;
  letter-spacing: 0.06em;
  opacity: 0.95;
}
.preloader__bar {
  width: 100%;
  height: 0.625rem;
  border-radius: 62.4375rem;
  background: rgba(255, 255, 255, 0.15);
  overflow: hidden;
}
.preloader__fill {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.9));
}
.preloader__meta {
  margin-top: 0.875rem;
  font-family: robert, system-ui;
  opacity: 0.9;
  letter-spacing: 0.04em;
}
.preloader .dot {
  opacity: 0.6;
  margin: 0 0.5rem;
}/* Generated by vite-plugin-svg-spritemap */
.menu {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 0;
}

.menu__left-side {
  display: flex;
  align-items: center;
}

.menu__logo {
  z-index: 4;
  font-family: robert;
  font-weight: 700;
  line-height: 120%;
}

.menu__btn {
  z-index: 4;
}

.menu__body-wrapper {
  display: flex;
  align-items: center;
  row-gap: 0.3125rem;
}

.menu__body {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  row-gap: 2.1875rem;
}

.menu__list {
  flex: 1 1 auto;
  row-gap: 0.3125rem;
}

.menu__item {
  text-align: center;
}

.menu__link {
  position: relative;
  display: inline-block;
  line-height: 130%;
}

.menu__link::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 0.125rem;
  background-color: #fff;
  will-change: left, width;
  animation: underline-out 0.3s ease forwards;
}

.menu__link:hover::before,
.menu__link:focus-visible::before {
  animation: underline-in 0.3s ease forwards;
}

.menu__link:not(:hover)::before {
  animation: underline-out 0.3s ease forwards;
}

@keyframes underline-in {
  from {
    left: 0;
    width: 0;
  }
  to {
    left: 0;
    width: 100%;
  }
}
@keyframes underline-out {
  from {
    left: 0;
    width: 100%;
  }
  to {
    left: 100%;
    width: 0;
  }
}
.menu__action {
  display: flex;
  align-items: center;
  justify-content: center;
}

.menu__audio-toggle {
  z-index: 4;
  font-size: 1.875rem;
}

.menu__audio-toggle span {
  display: none;
  width: 0.125rem;
  height: 50%;
  background-color: #fff;
  pointer-events: none;
  opacity: 0.7;
  transform: scaleY(0.5);
}

.menu__audio-toggle.is-playing .menu__audio-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  column-gap: 0.25rem;
  width: 1.875rem;
  height: 1.875rem;
}

.menu__audio-toggle.is-playing .menu__audio-icon span {
  display: block;
  animation: music-play 0.8s infinite alternate;
}

.menu__audio-toggle.is-playing .menu__audio-icon span:nth-child(1) {
  animation-delay: 0s;
}

.menu__audio-toggle.is-playing .menu__audio-icon span:nth-child(2) {
  animation-delay: 0.2s;
}

.menu__audio-toggle.is-playing .menu__audio-icon span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes music-play {
  0% {
    transform: scaleY(0.5);
    opacity: 0.7;
  }
  100% {
    transform: scaleY(1.2);
    opacity: 1;
  }
}
.icon-menu {
  display: none;
}/* Generated by vite-plugin-svg-spritemap */
.header__wrapper {
  margin: 0.625rem 0.625rem 0 0.625rem;
}/* Generated by vite-plugin-svg-spritemap */
[data-fls-header-scroll] {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.header__container {
  transition: background-color 0.3s ease, border 0.3s ease;
}

[data-fls-header-scroll-show].--header-scroll {
  transform: translate(0, -130%);
  transition: transform 0.5s;
}
[data-fls-header-scroll-show].--header-scroll .header__container {
  background-color: #000;
}
[data-fls-header-scroll-show].--header-show {
  transform: translate(0, 0);
  transition: transform 0.4s;
}
[data-fls-header-scroll-show].--header-show .header__container {
  background-color: #000;
  border: 0.0625rem solid rgba(255, 255, 255, 0.2);
}/* Generated by vite-plugin-svg-spritemap */
.footer {
  background-color: #5724ff;
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
}
.footer__container {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  row-gap: 0.9375rem;
}
.footer__sociall {
  display: flex;
  align-items: center;
  justify-self: center;
  column-gap: 0.9375rem;
}
.footer__social-link {
  transition: color 0.3s, transform 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer__privacy {
  position: relative;
  line-height: 125%;
  justify-self: end;
}
.footer__privacy::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 0.125rem;
  background-color: #fff;
  will-change: left, width;
  animation: underline-out 0.3s ease forwards;
}
.footer__privacy:hover::before, .footer__privacy:focus-visible::before {
  animation: underline-in 0.3s ease forwards;
}
.footer__privacy:not(:hover)::before {
  animation: underline-out 0.3s ease forwards;
}

@keyframes underline-in {
  from {
    left: 0;
    width: 0;
  }
  to {
    left: 0;
    width: 100%;
  }
}
@keyframes underline-out {
  from {
    left: 0;
    width: 100%;
  }
  to {
    left: 100%;
    width: 0;
  }
}/* Generated by vite-plugin-svg-spritemap */
/* Generated by vite-plugin-svg-spritemap */
.hero {
  position: relative;
}
.hero__wrapper {
  position: relative;
}
.hero__row {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  z-index: 10;
  isolation: isolate;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  overflow: clip;
  border-radius: 0 0 40% 10%;
}
.hero__content {
  position: static;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  align-items: start;
  row-gap: 1.25rem;
  height: 100%;
  background: transparent;
}
.hero__container {
  position: relative;
  height: 100dvh;
}
.hero__stage {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 100%;
  transform: translateX(-50%);
  /* Hard fallback in case the <img> poster doesn't render for any reason (prevents "grey block"). */
  background: #000 url("../assets/img/hero.jpg") center/cover no-repeat;
}
.hero__bg, .hero__next-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__next-video {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.hero__mini {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 10;
  transform: translate(-50%, -50%);
}
.hero__mini-inner {
  transform: scale(0.5);
  transition: transform 0.5s ease;
}
.hero__mini-video {
  overflow: hidden;
  aspect-ratio: 1/1;
  width: 100%;
  height: 100%;
  max-width: 16rem;
  max-height: 16rem;
  border-radius: 1rem;
  object-fit: cover;
  transform: scale(1.5);
  cursor: pointer;
}
.hero__copy {
  display: flex;
  flex-direction: column;
  align-items: start;
  grid-column: span 2;
  row-gap: 0.9375rem;
  z-index: 3;
  padding-bottom: 1.875rem;
}
.hero__label {
  font-family: zentry;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 0.85;
}
.hero__label--top {
  display: block;
  position: absolute;
  bottom: 5%;
  right: 0.9375rem;
  z-index: 3;
  pointer-events: none;
}
.hero__label--inside {
  display: block;
  position: absolute;
  bottom: 5%;
  right: 0.9375rem;
  z-index: 0;
  color: #000;
  pointer-events: none;
}
.hero__subtitle {
  font-family: robert;
  line-height: 120%;
  max-width: 18.75rem;
}
.hero__btn {
  padding: 0.75rem 1.5625rem;
}

.about {
  min-height: 100dvh;
}
.about__container {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-items: center;
  text-align: center;
}
.about__container:not(:last-child) {
  margin-bottom: 1.875rem;
}
.about__eyebrow {
  font-family: robert;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #000;
  opacity: 0.8;
}
.about__title {
  font-family: zentry;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 100%;
  color: #000;
}
.about__subtext {
  display: grid;
  gap: 0.375rem;
  text-align: center;
  font-family: robert;
  font-weight: 700;
  line-height: 125%;
  color: #000;
  opacity: 0.9;
  z-index: -1;
}
.about__viewport {
  position: relative;
  height: 100dvh;
  overflow: hidden;
}
.about__image {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 1.5rem;
  overflow: hidden;
  will-change: width, height, border-radius;
  pointer-events: none;
}
.about__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.discover {
  background-color: #000;
}
.discover__top {
  max-width: 31.25rem;
}
.discover__title {
  /* Typography is now shared with .reviews__title (Galerie heading reuses it). */
}
.discover__title:not(:last-child) {
  margin-bottom: 0.625rem;
}
.discover__text {
  line-height: 120%;
  opacity: 0.8;
}
.discover__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(4, 1fr);
}
.discover__item {
  position: relative;
  will-change: transform;
  transition: box-shadow 0.2s ease;
  cursor: pointer;
}
.discover__item.is-tilting {
  box-shadow: 0 1.125rem 2.5rem rgba(0, 0, 0, 0.35);
}
.discover__item--color {
  color: #000;
}
.discover__item--color .discover__tilt {
  background-color: #5724ff;
}
.discover__item--color .discover__item-content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.discover__tilt {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 0.00625rem solid rgba(255, 255, 255, 0.3);
  border-radius: 0.3125rem;
  transform-origin: 50% 50%;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform 0.12s ease-out;
  transform: perspective(var(--p)) rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--s));
  --p: 56.25rem;
  --rx: 0deg;
  --ry: 0deg;
  --s: 1;
}
.discover__item-video {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.discover__item-content {
  position: relative;
  z-index: 2;
  overflow: hidden;
  min-height: 100%;
  will-change: auto;
  transform: none;
}
.discover__item-title {
  font-family: zentry;
  line-height: 110%;
}
.discover__item-title:not(:last-child) {
  margin-bottom: 0.9375rem;
}
.discover__item-text {
  line-height: 120%;
  max-width: 18.75rem;
}
.discover__icon {
  align-self: end;
}
.discover__glare {
  position: absolute;
  inset: -60%;
  z-index: 3;
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity 0.15s ease;
  --gx: 50%;
  --gy: 50%;
  background: radial-gradient(circle at var(--gx) var(--gy), rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0) 45%);
  pointer-events: none;
}

/* accessibility / мобільні — якщо треба повністю вимкнути трансформації */
.story {
  display: flex;
  background-color: #000;
}
.story__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 0.9375rem;
}
.story__pretitle {
  text-transform: uppercase;
  letter-spacing: 0.22em;
  opacity: 0.9;
}
.story__wrap {
  position: relative;
}
.story__title {
  position: relative;
  z-index: 3;
  margin: 0 auto -5% auto;
  text-align: center;
  font-family: zentry;
  font-weight: 800;
  line-height: 1.05;
  mix-blend-mode: difference;
  pointer-events: none;
}
.story__image {
  perspective: 93.75rem;
  perspective-origin: 10% 30%;
}
.story__image-area {
  transform-style: preserve-3d;
  transform: rotateY(18deg) rotateX(2deg) rotateZ(5deg);
  transform-origin: left right;
}
.story__image-img {
  display: block;
  aspect-ratio: 1050/500;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
  will-change: transform;
}
.cta__content {
  position: relative;
  z-index: 1;
  display: grid;
  align-items: center;
  background-color: var(--md-bg);
  overflow: hidden;
}
.cta__label {
  z-index: 2;
  font-family: robert;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
  opacity: 0.8;
}
.cta__label:not(:last-child) {
  margin-bottom: 0.9375rem;
}
.cta__title {
  z-index: 2;
  margin: 0 auto;
  max-width: 31.25rem;
  text-align: center;
  font-family: var(--font-display), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "DejaVu Sans", sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 100%;
}
.cta__button {
  z-index: 2;
  margin: 0 auto;
  padding: 0.9375rem 1.5625rem;
}
/* CTA / Reservation button micro-feedback (scoped) */
#reservation .cta__button.btn{
  transition: background-color 250ms ease, border-color 250ms ease, color 250ms ease, transform 250ms ease;
}
@media (any-hover: hover){
  #reservation .cta__button.btn:hover{
    background-color: rgba(255, 255, 255, 0.06);
  }
}

.decor__item {
  position: absolute;
  pointer-events: none;
}
.decor__item--1 {
  top: 1%;
  left: 0;
}
.decor__item--1 img {
  /* Mirror of .decor__item--3 img clip-path for symmetrical left/right framing */
  clip-path: polygon(92% 6%, 0% 18%, 8% 96%, 100% 90%);
}
.decor__item--2 {
  left: 12%;
  bottom: -9%;
}
.decor__item--2 img {
  clip-path: polygon(15% 0%, 65% 10%, 60% 85%, 0% 100%);
}
.decor__item--3 {
  right: 0;
  top: 1%;
}
.decor__item--3 img {
  clip-path: polygon(8% 6%, 100% 18%, 92% 96%, 0% 90%);
}
@media (min-width: 91.875em){
  .btn {
    column-gap: 0.625rem;
  }
  .preloader__brand {
    font-size: 1.75rem;
  }
  [data-preloader-status] {
    font-size: 1.125rem;
  }
  .menu {
    column-gap: 1.25rem;
  }
  .menu {
    min-height: 5rem;
  }
  .menu__left-side {
    column-gap: 1.875rem;
  }
  .menu__logo {
    font-size: 1.6875rem;
  }
  .menu__btn {
    padding-top: 0.75rem;
  }
  .menu__btn {
    padding-right: 1.5625rem;
  }
  .menu__btn {
    padding-bottom: 0.75rem;
  }
  .menu__btn {
    padding-left: 1.5625rem;
  }
  .menu__body-wrapper {
    column-gap: 3.5rem;
  }
  .menu__list {
    column-gap: 3.5rem;
  }
  .menu__action {
    column-gap: 1.25rem;
  }
  .header__container {
    border-radius: 2.5rem;
  }
  .header__container {
    padding-right: 1.25rem;
  }
  .header__container {
    padding-left: 1.25rem;
  }
  .footer__container {
    column-gap: 1.875rem;
  }
  .footer__social-link {
    font-size: 1.875rem;
  }
  .footer__container {
    column-gap: 1.875rem;
  }
  .footer__social-link::before {
    font-size: 1.875rem;
  }
  .hero__copy {
    padding-top: 7.5rem;
  }
  .hero__label {
    font-size: 12.5rem;
  }
  .about {
    padding-top: 6.25rem;
  }
  .about__container {
    gap: 1.25rem;
  }
  .about__eyebrow {
    font-size: 1rem;
  }
  .about__title {
    font-size: 6.25rem;
  }
  .about__image {
    width: 32.5rem;
  }
  .about__image {
    height: 37.5rem;
  }
  .discover {
    padding-top: 6.25rem;
  }
  .discover {
    padding-bottom: 6.25rem;
  }
  .discover__top:not(:last-child) {
    margin-bottom: 6.25rem;
  }
  /* .discover__title font-size intentionally not set (inherits like .reviews__title) */
  .discover__text {
    font-size: 1.125rem;
  }
  .discover__inner {
    gap: 1.875rem;
  }
  .discover__item {
    min-height: 25rem;
  }
  .discover__item-content {
    padding: 1.25rem;
  }
  .discover__item-title {
    font-size: 3.75rem;
  }
  .discover__icon {
    font-size: 2.5rem;
  }
  .story {
    padding-bottom: 6.25rem;
  }
  .story__pretitle {
    font-size: 0.875rem;
  }
  .story__title {
    font-size: 6.25rem;
  }
  .cta__container {
    padding-top: 6.25rem;
  }
  .cta__container {
    padding-bottom: 6.25rem;
  }
  .cta__content {
    padding-top: 4.375rem;
  }
  .cta__content {
    padding-right: 2.5rem;
  }
  .cta__content {
    padding-bottom: 4.375rem;
  }
  .cta__content {
    padding-left: 2.5rem;
  }
  .cta__content {
    border-radius: 0.625rem;
  }
  .cta__label {
    font-size: 0.9375rem;
  }
  .cta__title {
    font-size: 5rem;
  }
  .cta__title:not(:last-child) {
    margin-bottom: 1.875rem;
  }
  .decor__item--1 img {
    width: 20rem;
  }
  .decor__item--1 img {
    height: 28.125rem;
  }
  .decor__item--2 img {
    width: 21.25rem;
  }
  .decor__item--2 img {
    height: 12.5rem;
  }
  .decor__item--3 img {
    width: 20rem;
  }
  .decor__item--3 img {
    height: 28.125rem;
  }}
@media (min-width: 20em) and (max-width: 91.875em){
  .btn {
    column-gap: clamp( 0.3125rem , 0.2255434782625rem  +  0.4347826087vw , 0.625rem );
  }
  .preloader__brand {
    font-size: clamp( 1.375rem , 1.2706521739125rem  +  0.5217391304vw , 1.75rem );
  }
  [data-preloader-status] {
    font-size: clamp( 0.875rem , 0.80543478260625rem  +  0.347826087vw , 1.125rem );
  }
  .menu {
    column-gap: clamp(0.9375rem, 0.8505434783rem + 0.4347826087vw, 1.25rem);
  }
  .menu {
    min-height: clamp(3.75rem, 3.402173913rem + 1.7391304348vw, 5rem);
  }
  .menu__left-side {
    column-gap: clamp(0.9375rem, 0.6766304348rem + 1.3043478261vw, 1.875rem);
  }
  .menu__logo {
    font-size: clamp(1.125rem, 0.9684782609rem + 0.7826086957vw, 1.6875rem);
  }
  .menu__btn {
    padding-top: clamp(0.5rem, 0.4304347826rem + 0.347826087vw, 0.75rem);
  }
  .menu__btn {
    padding-right: clamp(0.9375rem, 0.7635869565rem + 0.8695652174vw, 1.5625rem);
  }
  .menu__btn {
    padding-bottom: clamp(0.5rem, 0.4304347826rem + 0.347826087vw, 0.75rem);
  }
  .menu__btn {
    padding-left: clamp(0.9375rem, 0.7635869565rem + 0.8695652174vw, 1.5625rem);
  }
  .menu__action {
    column-gap: clamp(0.9375rem, 0.8505434783rem + 0.4347826087vw, 1.25rem);
  }
  .header__container {
    border-radius: clamp(1.25rem, 0.902173913rem + 1.7391304348vw, 2.5rem);
  }
  .header__container {
    padding-right: clamp(0.75rem, 0.6108695652rem + 0.6956521739vw, 1.25rem);
  }
  .header__container {
    padding-left: clamp(0.75rem, 0.6108695652rem + 0.6956521739vw, 1.25rem);
  }
  .footer__container {
    column-gap: clamp(0.9375rem, 0.6766304348rem + 1.3043478261vw, 1.875rem);
  }
  .footer__social-link {
    font-size: clamp(1.5625rem, 1.4755434783rem + 0.4347826087vw, 1.875rem);
  }
  .footer__container {
    column-gap: clamp( 0.9375rem , 0.67663043478125rem  +  1.3043478261vw , 1.875rem );
  }
  .footer__social-link::before {
    font-size: clamp( 1.5625rem , 1.4755434782625rem  +  0.4347826087vw , 1.875rem );
  }
  .hero__label {
    font-size: clamp( 4.125rem , 1.79456521739375rem  +  11.652173913vw , 12.5rem );
  }
  .about {
    padding-top: clamp( 3.125rem , 2.25543478260625rem  +  4.347826087vw , 6.25rem );
  }
  .about__container {
    gap: clamp( 0.9375rem , 0.8505434782625rem  +  0.4347826087vw , 1.25rem );
  }
  .about__eyebrow {
    font-size: clamp( 0.75rem , 0.68043478260625rem  +  0.347826087vw , 1rem );
  }
  .about__title {
    font-size: clamp( 2.625rem , 1.616304347825rem  +  5.0434782609vw , 6.25rem );
  }
  .about__image {
    width: clamp( 18.125rem , 14.125rem  +  20vw , 32.5rem );
  }
  .about__image {
    height: clamp( 25rem , 21.5217391304375rem  +  17.3913043478vw , 37.5rem );
  }
  .discover {
    padding-top: clamp( 3.125rem , 2.25543478260625rem  +  4.347826087vw , 6.25rem );
  }
  .discover {
    padding-bottom: clamp( 3.125rem , 2.25543478260625rem  +  4.347826087vw , 6.25rem );
  }
  .discover__top:not(:last-child) {
    margin-bottom: clamp( 1.875rem , 0.65760869565rem  +  6.0869565217vw , 6.25rem );
  }
  /* .discover__title font-size intentionally not set (inherits like .reviews__title) */
  .discover__text {
    font-size: clamp( 1rem , 0.96521739130625rem  +  0.1739130435vw , 1.125rem );
  }
  .discover__inner {
    gap: clamp( 0.9375rem , 0.67663043478125rem  +  1.3043478261vw , 1.875rem );
  }
  .discover__item {
    min-height: clamp( 18.75rem , 17.01086956521875rem  +  8.6956521739vw , 25rem );
  }
  .discover__item-content {
    padding: clamp( 0.8125rem , 0.6907608695625rem  +  0.6086956522vw , 1.25rem );
  }
  .discover__item-title {
    font-size: clamp( 1.875rem , 1.3532608695625rem  +  2.6086956522vw , 3.75rem );
  }
  .discover__icon {
    font-size: clamp( 1.5rem , 1.2217391304375rem  +  1.3913043478vw , 2.5rem );
  }
  .story {
    padding-bottom: clamp( 3.125rem , 2.25543478260625rem  +  4.347826087vw , 6.25rem );
  }
  .story__pretitle {
    font-size: clamp( 0.625rem , 0.55543478260625rem  +  0.347826087vw , 0.875rem );
  }
  .story__title {
    font-size: clamp( 2.4375rem , 1.37663043478125rem  +  5.3043478261vw , 6.25rem );
  }
  .cta__container {
    padding-top: clamp( 2.5rem , 1.45652173913125rem  +  5.2173913043vw , 6.25rem );
  }
  .cta__container {
    padding-bottom: clamp( 2.5rem , 1.45652173913125rem  +  5.2173913043vw , 6.25rem );
  }
  .cta__content {
    padding-top: clamp( 2.5rem , 1.9782608695625rem  +  2.6086956522vw , 4.375rem );
  }
  .cta__content {
    padding-right: clamp( 1.25rem , 0.90217391304375rem  +  1.7391304348vw , 2.5rem );
  }
  .cta__content {
    padding-bottom: clamp( 2.5rem , 1.9782608695625rem  +  2.6086956522vw , 4.375rem );
  }
  .cta__content {
    padding-left: clamp( 1.25rem , 0.90217391304375rem  +  1.7391304348vw , 2.5rem );
  }
  .cta__content {
    border-radius: clamp( 0.3125rem , 0.2255434782625rem  +  0.4347826087vw , 0.625rem );
  }
  .cta__label {
    font-size: clamp( 0.75rem , 0.69782608695625rem  +  0.2608695652vw , 0.9375rem );
  }
  .cta__title {
    font-size: clamp( 2.3125rem , 1.56467391304375rem  +  3.7391304348vw , 5rem );
  }
  .cta__title:not(:last-child) {
    margin-bottom: clamp( 0.9375rem , 0.67663043478125rem  +  1.3043478261vw , 1.875rem );
  }
  .decor__item--1 img {
    width: clamp( 6.25rem , 2.42391304348125rem  +  19.1304347826vw , 20rem );
  }
  .decor__item--1 img {
    height: clamp( 9.375rem , 4.15760869565rem  +  26.0869565217vw , 28.125rem );
  }
  .decor__item--2 img {
    width: clamp( 11.25rem , 8.46739130435rem  +  13.9130434783vw , 21.25rem );
  }
  .decor__item--2 img {
    height: clamp( 7.5rem , 6.108695652175rem  +  6.9565217391vw , 12.5rem );
  }
  .decor__item--3 img {
    width: clamp( 6.25rem , 2.42391304348125rem  +  19.1304347826vw , 20rem );
  }
  .decor__item--3 img {
    height: clamp( 9.375rem , 4.15760869565rem  +  26.0869565217vw , 28.125rem );
  }}
@media (max-width: 20em){
  .btn {
    column-gap: 0.3125rem;
  }
  .preloader__brand {
    font-size: 1.375rem;
  }
  [data-preloader-status] {
    font-size: 0.875rem;
  }
  .menu {
    column-gap: 0.9375rem;
  }
  .menu {
    min-height: 3.75rem;
  }
  .menu__left-side {
    column-gap: 0.9375rem;
  }
  .menu__logo {
    font-size: 1.125rem;
  }
  .menu__btn {
    padding-top: 0.5rem;
  }
  .menu__btn {
    padding-right: 0.9375rem;
  }
  .menu__btn {
    padding-bottom: 0.5rem;
  }
  .menu__btn {
    padding-left: 0.9375rem;
  }
  .menu__action {
    column-gap: 0.9375rem;
  }
  .header__container {
    border-radius: 1.25rem;
  }
  .header__container {
    padding-right: 0.75rem;
  }
  .header__container {
    padding-left: 0.75rem;
  }
  .footer__container {
    column-gap: 0.9375rem;
  }
  .footer__social-link {
    font-size: 1.5625rem;
  }
  .footer__container {
    column-gap: 0.9375rem;
  }
  .footer__social-link::before {
    font-size: 1.5625rem;
  }
  .hero__label {
    font-size: 4.125rem;
  }
  .about {
    padding-top: 3.125rem;
  }
  .about__container {
    gap: 0.9375rem;
  }
  .about__eyebrow {
    font-size: 0.75rem;
  }
  .about__title {
    font-size: 2.625rem;
  }
  .about__image {
    width: 18.125rem;
  }
  .about__image {
    height: 25rem;
  }
  .discover {
    padding-top: 3.125rem;
  }
  .discover {
    padding-bottom: 3.125rem;
  }
  .discover__top:not(:last-child) {
    margin-bottom: 1.875rem;
  }
  /* .discover__title font-size intentionally not set (inherits like .reviews__title) */
  .discover__text {
    font-size: 1rem;
  }
  .discover__inner {
    gap: 0.9375rem;
  }
  .discover__item {
    min-height: 18.75rem;
  }
  .discover__item-content {
    padding: 0.8125rem;
  }
  .discover__item-title {
    font-size: 1.875rem;
  }
  .discover__icon {
    font-size: 1.5rem;
  }
  .story {
    padding-bottom: 3.125rem;
  }
  .story__pretitle {
    font-size: 0.625rem;
  }
  .story__title {
    font-size: 2.4375rem;
  }
  .cta__container {
    padding-top: 2.5rem;
  }
  .cta__container {
    padding-bottom: 2.5rem;
  }
  .cta__content {
    padding-top: 2.5rem;
  }
  .cta__content {
    padding-right: 1.25rem;
  }
  .cta__content {
    padding-bottom: 2.5rem;
  }
  .cta__content {
    padding-left: 1.25rem;
  }
  .cta__content {
    border-radius: 0.3125rem;
  }
  .cta__label {
    font-size: 0.75rem;
  }
  .cta__title {
    font-size: 2.3125rem;
  }
  .cta__title:not(:last-child) {
    margin-bottom: 0.9375rem;
  }
  .decor__item--1 img {
    width: 6.25rem;
  }
  .decor__item--1 img {
    height: 9.375rem;
  }
  .decor__item--2 img {
    width: 11.25rem;
  }
  .decor__item--2 img {
    height: 7.5rem;
  }
  .decor__item--3 img {
    width: 6.25rem;
  }
  .decor__item--3 img {
    height: 9.375rem;
  }}
@media (any-hover: hover){
  .btn:hover {
    scale: 1.1;
  }
  .btn:hover .btn__main {
    transform: translateY(-120%);
  }
  .btn:hover .btn__alt {
    transform: translateY(0%);
  }
  .footer__social-link:hover {
    color: #edff66;
    transform: scale(1.1);
  }
  .footer__social-link:hover {
    color: #edff66;
    transform: scale(1.1);
  }
  .hero__mini-inner:hover {
    transform: scale(0.8);
  }}
@media (min-width: 47.99875em) and (max-width: 91.875em){
  .menu__body-wrapper {
    column-gap: clamp(1.5625rem, -0.5570425344rem + 4.4158286089vw, 3.5rem);
  }
  .menu__list {
    column-gap: clamp(0.9375rem, -1.8657659326rem + 5.8402894504vw, 3.5rem);
  }}
@media (max-width: 47.99875em){
  .menu__body-wrapper {
    column-gap: 1.5625rem;
  }
  .menu__body {
    position: fixed;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    min-height: 100dvh;
    overflow: auto;
    padding: 5.625rem 0.9375rem 1.875rem 0.9375rem;
    transition: left 0.3s;
    background-color: #000;
  }
  .menu__body::before {
    content: "";
    position: fixed;
    top: 0;
    left: -100%;
    z-index: 2;
    width: 100%;
    background-color: #000;
    transition: left 0.3s;
  }
  [data-fls-menu-open] .menu__body {
    left: 0;
  }
  [data-fls-menu-open] .menu__body::before {
    left: 0;
  }
  .menu__list {
    column-gap: 0.9375rem;
  }
  .menu__item:not(:last-child) {
    margin-bottom: 1.25rem;
  }
  .menu__link {
    font-size: 1.875rem;
  }
  .icon-menu {
    display: block;
    position: relative;
    width: 1.875rem;
    height: 1.125rem;
    z-index: 5;
  }
  .icon-menu span, .icon-menu::before, .icon-menu::after {
    content: "";
    transition: all 0.3s ease 0s;
    right: 0;
    position: absolute;
    width: 100%;
    height: 0.125rem;
    background-color: #fff;
  }
  .icon-menu::before {
    top: 0;
  }
  .icon-menu::after {
    bottom: 0;
  }
  .icon-menu span {
    top: calc(50% - 0.0625rem);
  }
  [data-fls-menu-open] .icon-menu span {
    width: 0;
  }
  [data-fls-menu-open] .icon-menu::before {
    top: calc(50% - 0.0625rem);
    transform: rotate(-45deg);
  }
  [data-fls-menu-open] .icon-menu::after {
    bottom: calc(50% - 0.0625rem);
    transform: rotate(45deg);
  }
  .discover__inner {
    grid-template-columns: 1fr;
  }}
@media (max-width: 47.99875em) and (min-width: 91.875em){
  .menu__body::before {
    height: 6.25rem;
  }}
@media (max-width: 47.99875em) and (min-width: 20em) and (max-width: 91.875em){
  .menu__body::before {
    height: clamp(5rem, 4.652173913rem + 1.7391304348vw, 6.25rem);
  }}
@media (max-width: 47.99875em) and (max-width: 20em){
  .menu__body::before {
    height: 5rem;
  }}
@media (min-width: 47.99875em){
  .menu__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: end;
  }
  .discover__inner :nth-child(1) {
    grid-column: span 2;
  }
  .discover__inner :nth-child(2) {
    grid-row: span 2;
  }}
@media (any-hover: none){
  .menu__link::before {
    display: none;
  }
  .footer__privacy::before {
    display: none;
  }
  .hero__mini {
    display: none !important;
  }
  .hero__mini-inner {
    display: none !important;
  }
  .hero__mini-video {
    display: none !important;
  }
  .discover__item--color .discover__item-content {
    background-color: #5724ff;
  }
  .discover__glare {
    display: none;
  }}
@media (max-width: 24.0625em){
  .menu__audio-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 9.375rem;
    min-height: 2.1875rem;
    background-color: #edff66;
    border-radius: 1.875rem;
  }
  .menu__audio-toggle::before {
    content: "Play Music";
    font-family: zentry;
    font-size: 1.125rem;
    letter-spacing: 0.05em;
    color: #000;
  }
  .menu__audio-toggle span {
    background-color: #000;
  }
  .menu__audio-toggle.is-playing::before {
    display: none;
  }}
@media (max-width: 36.875em){
  .footer__container {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }
  .footer__sociall {
    grid-column: span 2;
    order: 3;
  }
  .footer__container {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }}
@media (max-width: 27.5em){
  .footer__container {
    grid-template-columns: 1fr;
  }
  .footer__copy {
    justify-self: center;
    text-align: center;
  }
  .footer__sociall {
    grid-column: span 1;
    justify-self: center;
  }
  .footer__privacy {
    justify-self: center;
  }
  .footer__container {
    grid-template-columns: 1fr;
  }}
@media (max-width: 47.99875em) and (any-hover: none){
  .icon-menu {
    cursor: default;
  }}
@media (max-width: 36.875rem){
  .footer__sociall {
    grid-column: span 2;
    order: 3;
  }}
@media (max-width: 27.5rem){
  .footer__sociall {
    grid-column: span 1;
    justify-self: center;
  }
  .footer__privacy {
    justify-self: center;
  }}
@media (max-width: 61.99875em){
  .hero__mini {
    display: none;
  }
  .hero__copy {
    padding-top: 5.625rem;
  }}
@media (min-width: 61.99875em) and (max-width: 91.875em){
  .hero__copy {
    padding-top: clamp( 5.625rem , 1.73402786494375rem  +  6.2758880382vw , 7.5rem );
  }}
@media (prefers-reduced-motion: reduce){
  .discover__tilt {
    transform: none !important;
  }
  .discover__item-content {
    transform: none !important;
  }}
@media (pointer: coarse){
  .discover__tilt {
    transform: none !important;
  }
  .discover__item-content {
    transform: none !important;
  }}

/* ------------------------------
   MAISON DIDI overrides
   ------------------------------ */
:root{
  --md-bg: #050505;
  --md-text: #F5F1E8;
  --md-muted: rgba(245, 241, 232, 0.72);
  --md-border: rgba(245, 241, 232, 0.18);
  --font-display: "Montserrat";
}

html{
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

#reservation{
  scroll-margin-top: 96px;
}

body{
  background-color: var(--md-bg);
  color: var(--md-text);
}

.didi-script{
  font-family: general, system-ui;
  font-style: italic;
  letter-spacing: 0.06em;
  text-transform: none;
}

.btn{
  background-color: transparent;
  color: var(--md-text);
  border: 0.0625rem solid var(--md-text);
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.btn--light-gr{
  background-color: transparent;
}

@media (any-hover: hover){
  .btn:hover{
    scale: 1.02;
    background-color: rgba(245, 241, 232, 0.08);
  }
}

.hero__headline{
  font-family: zentry, system-ui;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  line-height: 1.02;
  max-width: 52rem;
}
.hero__headline-line{
  display: block;
}
.hero__script{
  opacity: 0.85;
}
.hero__hours{
  align-self: end;
  justify-self: end;
  text-align: right;
  max-width: 18rem;
}
.hero__stage{
  z-index: 0;
}
.hero__container{
  position: relative;
  z-index: 10;
}
.hero__overlay{
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.35) 0%,
    rgba(0, 0, 0, 0.65) 100%
  );
  pointer-events: none;
}
.hero__poster{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  display: block; /* Always show fallback behind video */
}
.hero__bg, .hero__next-video{
  z-index: 1;
}
.hero__stage video{
  opacity: 1;
  transition: opacity 250ms ease;
}
@media (prefers-reduced-motion: reduce){
  .hero__stage video{
    display: none !important;
  }
  .hero__poster{
    display: block;
  }
}
.hours{
  display: grid;
  gap: 0.375rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.9;
}
.hours__line{
  font-family: robert, system-ui;
  line-height: 1.25;
}
.hero__label--inside{
  color: rgba(245, 241, 232, 0.08);
}
.hero__label--top{
  color: rgba(245, 241, 232, 0.92);
}

/* About → Experience */
.about{
  background-color: var(--md-bg);
}
.about__eyebrow,
.about__title,
.about__subtext{
  color: var(--md-text);
}
.about__eyebrow{
  letter-spacing: 0.22em;
}
.about__subtext{
  font-weight: 400;
  gap: 0.75rem;
  max-width: 48rem;
  z-index: 1;
}
.about__subtext p{
  opacity: 0.9;
  line-height: 1.72;
  margin: 0;
}
.about__punchline{
  margin-top: 1.25rem;
  font-family: zentry, system-ui;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  line-height: 1.05;
  text-align: center;
}
.about__script{
  margin-top: 0.75rem;
  opacity: 0.9;
}

/* Menu section */
.menu-section{
  background-color: var(--md-bg);
  padding: clamp(3.125rem, 2.25543478260625rem + 4.347826087vw, 6.25rem) 0;
}
.menu-section__top{
  max-width: 48rem;
  margin: 0 auto;
  text-align: center;
}
.menu-section__title{
  font-family: zentry, system-ui;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  line-height: 1.05;
}
.menu-section__subtext{
  margin-top: 0.75rem;
  opacity: 0.8;
  line-height: 1.35;
}
.menu-section__grid{
  margin-top: 2.25rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.menu-section__col{
  border: 0.0625rem solid var(--md-border);
  border-radius: 0.75rem;
  padding: 1.25rem;
}
.menu-section__col-title{
  font-family: robert, system-ui;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
}
.menu-section__items{
  margin-top: 1rem;
  display: grid;
  gap: 0.75rem;
  opacity: 0.88;
  line-height: 1.4;
}
.menu-section__note{
  margin-top: 1.25rem;
  text-align: center;
  opacity: 0.7;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
@media (max-width: 47.99875em){
  .menu-section__grid{
    grid-template-columns: 1fr;
  }
}

/* Galerie: clean 3-column row with equal sizes (alignment only) */
.galerie{
  background-color: #000;
  padding: 80px 0;
}
#galerie, .galerie{
  height: auto !important;
  min-height: 0 !important;
}
.galerie .reviews__title{
  margin: 0 0 28px 0;
}
.galerie-grid{
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  align-items: stretch;
}
.galerie-item{
  border-radius: 14px;
  overflow: hidden;
  background: #0a0a0a;
  aspect-ratio: 1 / 1;
  transform: translateY(0) scale(1);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 0 0 rgba(0,0,0,0);
}
.reveal{
  opacity: 0;
  transform: translateY(14px) scale(1);
  filter: blur(2px);
  transition: opacity .7s ease, transform .7s ease, filter .7s ease;
  will-change: transform, opacity, filter;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}
.galerie-item:nth-child(2).reveal{ transition-delay: .08s; }
.galerie-item:nth-child(3).reveal{ transition-delay: .16s; }
.galerie-item img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transition: transform .45s ease, filter .45s ease;
}
@media (hover:hover){
  .galerie-item.is-visible:hover{
    transform: translateY(-6px) scale(1.01);
    border-color: rgba(255,255,255,.18);
    box-shadow: 0 18px 40px rgba(0,0,0,.45);
  }
  .galerie-item.is-visible:hover img{
    transform: scale(1.05);
    filter: saturate(1.05) contrast(1.05);
  }
}
@media (max-width: 900px){
  /* About / Experience: disable the pinned/viewport-sized image layout on mobile to avoid scroll jank */
  .about{
    min-height: auto;
  }
  .about__viewport{
    height: auto;
    min-height: 0;
    padding-top: 18px;
  }
  .about__image.mask-clip-path{
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: calc(100% - 28px);
    max-width: 560px;
    height: auto;
    aspect-ratio: 4 / 5;
    margin: 0 auto;
    border-radius: 1.25rem;
    will-change: auto;
  }
  .about__img{
    position: absolute;
    inset: 0;
  }

  .galerie-grid{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .galerie-item{
    aspect-ratio: 4 / 3;
  }
}

/* Avis */
.reviews{
  background-color: var(--md-bg);
  padding: clamp(3.125rem, 2.25543478260625rem + 4.347826087vw, 6.25rem) 0;
}
.reviews__top{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: 2rem;
}
.reviews__title{
  flex: 0 0 100%;
  font-family: zentry, system-ui;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  line-height: 1;
}
.reviews__subline{
  flex: 0 0 100%;
  margin: 0;
  opacity: 0.65;
  font-size: 0.95rem;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.reviews__source{
  opacity: 0.6;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.75rem;
}
.reviews__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.reviews__card{
  border: 0.0625rem solid var(--md-border);
  border-radius: 0.75rem;
  padding: 1.25rem;
  min-height: 12rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: rgba(245, 241, 232, 0.02);
}
.review-card{
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 600ms cubic-bezier(.22,.61,.36,1), transform 600ms cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
.review-card.is-visible{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .review-card{
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.reviews__text{
  line-height: 1.5;
  opacity: 0.9;
}
.review-stars{
  margin-top: 12px;
  font-size: 18px;
  letter-spacing: 2px;
  color: #d8c18a; /* champagne gold */
  text-shadow: 0 0 6px rgba(216,193,138,0.25);
}
.reviews__sig{
  margin-top: 1rem;
  opacity: 0.75;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.8rem;
}
@media (max-width: 47.99875em){
  .reviews__top{
    flex-direction: column;
    align-items: flex-start;
  }
  .reviews__grid{
    grid-template-columns: 1fr;
  }
}

/* Réservation */
.reservation__hours{
  margin-top: 1.5rem;
  text-align: center;
}
.reservation__hours-label{
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  opacity: 0.8;
}
.reservation__hours-list{
  margin-top: 0.75rem;
  display: grid;
  gap: 0.5rem;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.9375rem;
  line-height: 1.35;
}
.reservation__hours-row{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.125rem;
}
.reservation__hours-day{
  opacity: 0.8;
}
.reservation__hours-time--closed{
  opacity: 0.7;
}
@media (min-width: 40em){
  .reservation__hours-row{
    grid-template-columns: 7.5rem 1fr; /* ~120px */
    gap: 0 1.5rem;
  }
  .reservation__hours-list{
    text-align: left;
  }
}
.reservation__meta{
  margin-top: 1.25rem;
  display: grid;
  gap: 0.5rem;
  text-align: center;
  opacity: 0.9;
  letter-spacing: 0.04em;
}
.reservation__line{
  text-transform: none;
}
.cta__content{
  background-color: var(--md-bg);
  border: 0.0625rem solid var(--md-border);
}

/* Footer / contact */
.footer{
  background-color: #0b0b0b;
  border-top: 0.0625rem solid rgba(255, 255, 255, 0.10);
  padding: 28px 0;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
}
.footer__container{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.footer__row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.footer__left{
  opacity: 0.92;
}
.footer__center{
  display: flex;
  justify-content: center;
}
.footer__right{
  text-align: right;
  opacity: 0.92;
}
.footer__right a{
  opacity: 0.92;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}
.footer__instagram{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  opacity: 0.92;
  transition: opacity 0.2s ease, text-decoration-color 0.2s ease;
  text-decoration: none;
}
.footer__instagram-icon{
  flex: 0 0 auto;
}
@media (any-hover: hover){
  .footer__instagram:hover{
    opacity: 1;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.35em;
  }
  .footer__right a:hover{
    opacity: 1;
  }
}
.footer__script{
  text-align: center;
  opacity: 0.9;
  padding-top: 8px;
}
@media (max-width: 36.875em){
  .footer{
    padding: 26px 0;
  }
  .footer__row{
    flex-direction: column;
    text-align: center;
    gap: 12px;
  }
  .footer__right{
    text-align: center;
  }
}

/* ------------------------------
   /horaires page (page-scoped)
   ------------------------------ */
.horaires-page{
  min-height: calc(100svh - 6rem);
  display: grid;
  align-items: center;
  padding: clamp(6.5rem, 12vh, 9rem) 0 clamp(4.5rem, 10vh, 7rem);
}

.horaires-page__container{
  text-align: center;
  max-width: 58rem;
}

.horaires-page__label{
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  opacity: 0.8;
}

.horaires-page__title{
  margin-top: 0.75rem;
  font-family: zentry, system-ui;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  line-height: 0.92;
  font-size: clamp(3rem, 8vw, 5.75rem);
}

.horaires-page__subtitle{
  margin-top: 1rem;
  opacity: 0.72;
  letter-spacing: 0.04em;
  font-size: 1rem;
}

.horaires-page__hours{
  margin-top: clamp(2.25rem, 6vh, 3.25rem);
  display: flex;
  justify-content: center;
}

.horaires-page__list{
  width: 100%;
  max-width: 44rem;
  display: grid;
  gap: 0.7rem;
  font-size: 0.98rem;
  line-height: 1.35;
}

.horaires-page__row{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
  align-items: baseline;
}

.horaires-page__day{
  text-transform: lowercase;
  letter-spacing: 0.06em;
  opacity: 0.82;
}

.horaires-page__time{
  opacity: 0.96;
}

.horaires-page__time--closed{
  opacity: 0.68;
}

@media (min-width: 48em){
  .horaires-page__row{
    grid-template-columns: 10rem 1fr;
    gap: 0 1.75rem;
  }
  .horaires-page__day{
    text-align: right;
  }
  .horaires-page__time{
    text-align: left;
  }
}

.horaires-page__editorial{
  margin-top: clamp(1.75rem, 4vh, 2.25rem);
  opacity: 0.92;
}

.horaires-page__cta{
  margin-top: 1.25rem;
}

.horaires-page__cta a{
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.9;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
  transition: opacity 0.2s ease;
}

@media (any-hover: hover){
  .horaires-page__cta a:hover{
    opacity: 1;
  }
}

/* ------------------------------
   Button alias: "btn-reserver"
   Used for the Horaires link in the header nav
   ------------------------------ */
.btn-reserver{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--md-text);
  text-transform: uppercase;
  font-size: 0.875rem;
  background-color: transparent;
  border: 0.0625rem solid var(--md-text);
  border-radius: 1.875rem;
  padding: 0.75rem 1.5625rem;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
@media (any-hover: hover){
  .btn-reserver:hover{
    transform: scale(1.02);
    background-color: rgba(245, 241, 232, 0.08);
  }
}

/* ------------------------------
   Header nav: reliable links (Accueil / Horaires / Réserver)
   ------------------------------ */
.header-nav {
  display: flex;
  align-items: center;
  gap: 16px;
}

.btn-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
}

.btn-primary {
  background: transparent;
  border: 1px solid #fff;
}

/* Mobile overlay menu (base) */
.mobile-menu{
  display: none;
}

/* ------------------------------
   Mobile fixes (<= 480px)
   - No desktop design changes (scoped to max-width: 480px)
   ------------------------------ */
@media (max-width: 480px) {
  /* prevent horizontal overflow on small screens */
  html,
  body {
    overflow-x: hidden;
  }

  /* Header padding */
  .header__container{
    padding-left: 14px;
    padding-right: 14px;
  }

  /* Desktop nav hidden on mobile (use burger + overlay) */
  .header-nav{
    display: none;
  }

  /* Burger visible */
  .icon-menu{
    display: block;
  }

  /* Overlay menu */
  .mobile-menu{
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2000;
  }
  [data-fls-menu-open] .mobile-menu{
    display: block;
  }
  .mobile-menu__backdrop{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.75);
  }
  .mobile-menu__panel{
    position: relative;
    min-height: 100%;
    display: grid;
    place-content: center;
    gap: 12px;
    padding: 24px;
  }
  .mobile-menu__panel .btn-nav{
    width: min(88vw, 320px);
  }

  /* hero content */
  .hero{
    min-height: 100vh;
  }
  .hero__content {
    max-width: 360px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 14px;
  }

  /* big "Didi" mark (if present) */
  .hero__label,
  .hero__label--top,
  .hero__label--inside {
    width: min(88vw, 340px);
    max-height: 45vh;
    margin: 14px auto 0;
  }
  .hero__label--top,
  .hero__label--inside {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    text-align: center;
  }

  /* background video/image */
  .hero__bg,
  .hero-video,
  .hero__poster {
    object-fit: cover;
    object-position: center;
  }

  /* About / Experience (the "DES PRODUITS VRAIS ET FRAIS" block) */
  .about__container{
    padding-left: 14px;
    padding-right: 14px;
  }
  .about__title{
    /* Keep it punchy but readable on phones */
    font-size: clamp(2.05rem, 9.8vw, 3.15rem);
    line-height: 0.92;
    letter-spacing: 0.06em;
    overflow-wrap: anywhere;
    hyphens: auto;
    text-wrap: balance;
  }
  .about__subtext{
    font-size: 0.95rem;
    line-height: 1.55;
    max-width: 34rem;
    padding-left: 2px; /* helps avoid edge clipping on some mobile browsers */
    padding-right: 2px;
  }
  .about__punchline{
    font-size: 0.85rem;
    letter-spacing: 0.14em;
    padding-left: 6px;
    padding-right: 6px;
  }

  /* Buttons */
  .btn,
  .btn-reserver,
  .btn-nav{
    font-size: 12px;
    padding: 10px 14px;
    border-radius: 999px;
  }
}
/* EOF */