body.gh-overlay-open { overflow: hidden; }

.gh-site .gh-product-card__open:hover,
.gh-site .gh-product-card__open:active,
.gh-site .gh-product-card__open:focus { border-color: transparent; background: transparent; color: inherit; text-decoration: none; }
.gh-site .gh-favorite-toggle:hover,
.gh-site .gh-favorite-toggle:active,
.gh-site .gh-favorite-toggle:focus { border-color: rgb(5 5 5 / 20%); background: #f6f2e9; color: #050505; }
.gh-site .gh-favorite-toggle.is-active,
.gh-site .gh-favorite-toggle.is-active:hover,
.gh-site .gh-favorite-toggle.is-active:active,
.gh-site .gh-favorite-toggle.is-active:focus { border-color: #d0c048; background: #d0c048; color: #050505; }
.gh-site .gh-favorites-launcher,
.gh-site .gh-favorites-launcher:hover,
.gh-site .gh-favorites-launcher:active,
.gh-site .gh-favorites-launcher:focus { border: 0; background: #f6f2e9; color: #050505; text-decoration: none; }
.gh-site .gh-modal__close:hover, .gh-site .gh-modal__close:focus, .gh-site .gh-modal__close:active,
.gh-site .gh-favorites__panel header > button:hover, .gh-site .gh-favorites__panel header > button:focus, .gh-site .gh-favorites__panel header > button:active { border-color: transparent; background: #050505; color: #fff; }
.gh-site .gh-favorite-item button:hover, .gh-site .gh-favorite-item button:focus, .gh-site .gh-favorite-item button:active,
.gh-site [data-gh-favorites-clear]:hover, .gh-site [data-gh-favorites-clear]:focus, .gh-site [data-gh-favorites-clear]:active { border-color: transparent; background: transparent; color: #6f620a; }

/* Elementor-editable editorial reels. */
.gh-infinite-reel { width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: none; cursor: grab; touch-action: pan-y; }
.gh-infinite-reel::-webkit-scrollbar { display: none; }
.gh-infinite-reel.is-dragging { cursor: grabbing; user-select: none; }
.gh-infinite-reel__track, .gh-infinite-reel__group { display: flex; width: max-content; height: 100%; }
.gh-infinite-reel__group { gap: 12px; padding-right: 12px; }
.gh-infinite-reel__item { position: relative; display: block; flex: none; height: 100%; margin: 0; overflow: hidden; background: #111; }
.gh-infinite-reel__item--wide { width: clamp(520px, 46vw, 900px); }
.gh-infinite-reel__item--portrait { width: clamp(320px, 30vw, 590px); }
.gh-infinite-reel__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gh-infinite-reel__item:hover img { transform: scale(1.025); }
.gh-infinite-reel__caption { position: absolute; right: clamp(18px, 2vw, 34px); bottom: clamp(18px, 2vw, 34px); left: clamp(18px, 2vw, 34px); color: white; font: 400 clamp(34px, 4vw, 72px)/.9 var(--gh-display, Georgia, serif); text-transform: uppercase; text-shadow: 0 2px 18px rgb(0 0 0 / 45%); }
.gh-infinite-reel--experience { height: clamp(440px, 64vh, 760px); }
.gh-infinite-reel--events { height: clamp(430px, 65vh, 720px); }
.gh-infinite-reel--events .gh-infinite-reel__item--wide, .gh-infinite-reel--events .gh-infinite-reel__item--portrait { width: clamp(330px, 32vw, 590px); }

/* Pinned spaces showcase. */
.gh-spaces { position: relative; height: calc((var(--gh-room-count) + .3) * 100vh); background: #e9e2d3; }
.gh-spaces__sticky { position: sticky; top: 0; display: grid; grid-template-columns: 42vw 1fr; height: 100vh; overflow: hidden; }
.gh-spaces__intro { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(110px, 13vh, 160px) clamp(28px, 4vw, 76px) clamp(45px, 7vh, 80px); background: #e9e2d3; }
.gh-spaces__intro h2 { max-width: 100%; margin: 0; font: 400 clamp(58px, 5vw, 98px)/.82 var(--gh-display, Georgia, serif); letter-spacing: -.045em; text-transform: uppercase; }
.gh-spaces__intro h2 span { display: block; }
.gh-spaces__intro h2 .is-accent { color: #6f620a; font-style: italic; }
.gh-spaces__count { display: flex; align-items: center; gap: 14px; font-size: 11px; }
.gh-spaces__count i { width: 86px; height: 1px; background: rgb(5 5 5 / 35%); }
.gh-spaces__window { overflow: hidden; background: #090909; }
.gh-spaces__track { display: flex; width: max-content; height: 100%; will-change: transform; }
.gh-room { position: relative; flex: 0 0 58vw; height: 100%; overflow: hidden; background: #090909; color: white; }
.gh-room__media, .gh-room__shade { position: absolute; inset: 0; }
.gh-room__media img { width: 100%; height: 100%; object-fit: cover; }
.gh-room__shade { background: linear-gradient(180deg, rgb(0 0 0 / 5%) 18%, rgb(0 0 0 / 76%) 100%); pointer-events: none; }
.gh-room__media:focus-visible { outline-offset: -4px; }
.gh-room__copy { position: absolute; z-index: 2; right: clamp(28px, 5vw, 90px); bottom: clamp(50px, 8vh, 100px); left: clamp(28px, 5vw, 90px); max-width: 700px; }
.gh-room__copy h3 { max-width: 100%; margin: 0 0 28px; font: 400 clamp(68px, 6.3vw, 124px)/.82 var(--gh-display, Georgia, serif); letter-spacing: -.04em; overflow-wrap: normal; word-break: normal; text-transform: uppercase; }
.gh-room__copy p { max-width: 470px; margin: 0 0 28px; color: rgb(255 255 255 / 75%); font-size: 16px; line-height: 1.6; }
.gh-room__copy > a { display: inline-flex; align-items: center; gap: 14px; color: #d0c048; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.gh-room__copy > a .gh-arrow { width: 36px; height: 36px; flex-basis: 36px; }
.gh-menu-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 48px); }
.gh-product-card { position: relative; min-width: 0; }
.gh-product-card__open { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; white-space: normal; cursor: pointer; }
.gh-product-card__media { display: block; overflow: hidden; background: #ddd5c7; }
.gh-product-card__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gh-product-card:hover .gh-product-card__media img { transform: scale(1.035); }
.gh-product-card__content { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: start; gap: 12px; padding: 17px 0 18px; }
.gh-product-card__text { display: block; min-width: 0; }
.gh-product-card__category { display: block; margin-bottom: 8px; color: #6f620a; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.gh-product-card__name { display: -webkit-box; min-width: 0; min-height: 2.2em; overflow: hidden; font: 400 clamp(25px, 2.2vw, 38px)/1.1 var(--gh-display, Georgia, serif); overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.gh-product-card__price { padding-top: 20px; white-space: nowrap; font-size: 10px; font-weight: 700; }
.gh-favorite-toggle { appearance: none; position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 1px solid rgb(5 5 5 / 20%); border-radius: 50%; background: #f6f2e9; color: #050505; cursor: pointer; }
.gh-favorite-toggle svg, .gh-favorites-launcher svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.gh-favorite-toggle.is-active { border-color: #d0c048; background: #d0c048; }
.gh-favorite-toggle.is-active svg { fill: #050505; }

.gh-modal, .gh-favorites { position: fixed; z-index: 2000; inset: 0; }
.gh-modal[hidden], .gh-favorites[hidden] { display: none; }
.gh-modal__backdrop, .gh-favorites__backdrop { position: absolute; inset: 0; background: rgb(0 0 0 / 76%); backdrop-filter: blur(5px); }
.gh-modal__panel { position: relative; display: grid; overflow: auto; width: min(1120px, calc(100% - 40px)); max-height: calc(100vh - 40px); margin: 20px auto; background: #f6f2e9; }
.gh-modal__close { position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: #050505; color: white; font-size: 28px; cursor: pointer; }
.gh-product-detail { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); min-height: min(720px, calc(100vh - 40px)); }
.gh-product-detail__media img { width: 100%; height: 100%; min-height: 100%; object-fit: cover; }
.gh-product-detail__copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(40px, 6vw, 96px); }
.gh-product-detail__copy h2 { margin: 0 0 16px; font: 400 clamp(52px, 6vw, 96px)/.85 var(--gh-display, Georgia, serif); text-transform: uppercase; }
.gh-product-detail__price { margin: 0 0 32px; color: var(--gh-gold-dark, #6f620a); font-size: clamp(18px, 1.5vw, 24px); font-weight: 700; }
.gh-product-detail__description { font: 400 clamp(19px, 2vw, 27px)/1.35 var(--gh-editorial, Garamond, serif); }
.gh-product-detail__row { display: grid; grid-template-columns: 110px 1fr; gap: 20px; width: 100%; padding: 16px 0; border-top: 1px solid rgb(5 5 5 / 18%); }
.gh-product-detail__row strong { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.gh-product-detail__copy .gh-button { margin-top: 28px; }
.gh-product-detail__copy .gh-favorite-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.gh-product-detail__copy .gh-button:hover .gh-favorite-icon { transform: none; }
.gh-product-detail__copy [data-gh-modal-favorite].is-active .gh-favorite-icon svg { fill: currentColor; }

.gh-favorites-launcher { appearance: none; position: fixed; z-index: 900; right: 22px; bottom: 22px; display: flex; align-items: center; gap: 10px; width: auto; min-height: 52px; padding: 6px 7px 6px 19px; border: 0; border-radius: 999px; background: #f6f2e9; color: #050505; box-shadow: 0 9px 32px rgb(0 0 0 / 16%); font-size: 11px; font-weight: 700; letter-spacing: .05em; line-height: 1; text-transform: uppercase; cursor: pointer; }
.gh-favorites-launcher strong { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: #d0c048; }
.gh-favorites__panel { position: absolute; inset: 0 0 0 auto; display: grid; grid-template-rows: auto 1fr auto; overflow: auto; width: min(540px, 100%); padding: clamp(26px, 4vw, 54px); background: #f6f2e9; }
.gh-favorites__panel header { position: relative; padding-right: 58px; }
.gh-favorites__panel h2 { margin: 0 0 30px; font: 400 clamp(60px, 8vw, 100px)/.85 var(--gh-display, Georgia, serif); }
.gh-favorites__panel header > button { position: absolute; top: 0; right: 0; display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: #050505; color: white; cursor: pointer; appearance: none; }
.gh-favorites__panel header > button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.gh-favorite-item { display: grid; grid-template-columns: 80px minmax(0, 1fr) 34px; align-items: center; gap: 16px; padding: 16px 0; border-top: 1px solid rgb(5 5 5 / 18%); }
.gh-favorite-item:not(:has(img)) { grid-template-columns: minmax(0, 1fr) 34px; }
.gh-favorite-item img { width: 80px; height: 80px; object-fit: cover; }
.gh-favorite-item h3 { margin: 0 0 5px; font: 400 25px/1 var(--gh-display, Georgia, serif); }
.gh-favorite-item p { margin: 0; }
.gh-favorite-item button, [data-gh-favorites-clear] { padding: 0; border: 0; background: transparent; color: #050505; cursor: pointer; appearance: none; }
.gh-favorite-item button { display: grid; width: 34px; height: 34px; place-items: center; font-size: 20px; line-height: 1; }
.gh-favorites__panel footer { padding-top: 30px; border-top: 1px solid rgb(5 5 5 / 18%); }
[data-gh-favorites-clear] { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }

.gh-events-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(22px, 4vw, 58px); }
.gh-events-grid--archive { padding: 0 var(--gh-gutter, 4vw) 130px; }
.gh-event-card__media { display: block; overflow: hidden; }
.gh-event-card__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .7s ease; }
.gh-event-card:hover .gh-event-card__media img { transform: scale(1.035); }
.gh-event-card__content { padding-top: 20px; }
.gh-event-card__meta { display: flex; justify-content: space-between; gap: 20px; color: #6f620a; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.gh-event-card h3 { margin: 14px 0; font: 400 clamp(36px, 3.5vw, 62px)/.9 var(--gh-display, Georgia, serif); }
.gh-event-hero { display: grid; grid-template-columns: 1fr 1fr; min-height: 92vh; padding-top: var(--gh-header-height, 88px); background: #050505; color: white; }
.gh-event-hero__copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(50px, 7vw, 130px) var(--gh-gutter, 4vw); }
.gh-event-hero h1 { margin: 24px 0 40px; font: 400 clamp(70px, 9vw, 160px)/.82 var(--gh-display, Georgia, serif); text-transform: uppercase; }
.gh-event-hero__intro { max-width: 600px; font: 400 clamp(22px, 2.2vw, 32px)/1.3 var(--gh-editorial, Garamond, serif); }
.gh-event-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.gh-event-details { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0 var(--gh-gutter, 4vw); background: #d0c048; }
.gh-event-details > div { display: flex; flex-direction: column; gap: 8px; padding: 34px 26px; border-right: 1px solid rgb(5 5 5 / 18%); }
.gh-event-details span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.gh-event-details strong { font: 400 24px/1.1 var(--gh-display, Georgia, serif); }
.gh-event-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 60px var(--gh-gutter, 4vw); background: #d0c048; }
.gh-event-cta p { margin: 0; font: 400 clamp(28px, 4vw, 60px)/1 var(--gh-display, Georgia, serif); }

@media (max-width: 900px) {
	.gh-spaces { height: auto; }
	.gh-spaces__sticky { position: relative; display: block; height: auto; overflow: visible; }
	.gh-spaces__intro { min-height: 64svh; }
	.gh-spaces__window { overflow: visible; }
	.gh-spaces__track { display: block; width: 100%; transform: none !important; }
	.gh-room { width: 100%; height: 86svh; }
  .gh-menu-grid, .gh-events-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gh-product-detail { grid-template-columns: 1fr; }
  .gh-product-detail__media img { max-height: 46vh; min-height: 0; }
  .gh-event-hero { grid-template-columns: 1fr; }
  .gh-event-hero__media { min-height: 60vh; }
  .gh-event-details { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
	.gh-infinite-reel__group { gap: 8px; padding-right: 8px; }
	.gh-infinite-reel--experience, .gh-infinite-reel--events { height: 62vh; min-height: 440px; }
	.gh-infinite-reel__item--wide, .gh-infinite-reel__item--portrait, .gh-infinite-reel--events .gh-infinite-reel__item--wide, .gh-infinite-reel--events .gh-infinite-reel__item--portrait { width: 84vw; }
	.gh-spaces__intro { min-height: 58svh; padding: 100px 20px 48px; }
	.gh-spaces__intro h2 { font-size: clamp(58px, 18vw, 88px); }
	.gh-room { height: 82svh; }
	.gh-room__copy h3 { font-size: clamp(58px, 17vw, 92px); }
  .gh-menu-grid, .gh-events-grid { grid-template-columns: 1fr; }
  .gh-product-card__content { padding-right: 0; }
  .gh-modal__panel { width: 100%; max-height: 100%; min-height: 100%; margin: 0; }
  .gh-product-detail__copy { padding: 42px 20px 60px; }
  .gh-product-detail__row { grid-template-columns: 90px 1fr; }
  .gh-favorites-launcher { right: 12px; bottom: 12px; }
  .gh-event-details { grid-template-columns: 1fr; }
  .gh-event-details > div { border-right: 0; border-bottom: 1px solid rgb(5 5 5 / 18%); }
  .gh-event-cta { align-items: flex-start; flex-direction: column; }
}

/* Editorial, text-first catalog used when product photography is not available. */
.gh-menu-grid--list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(48px, 6vw, 112px); row-gap: 0; border-top: 1px solid rgb(255 255 255 / 18%); }
.gh-menu-grid--list .gh-product-card { min-height: 0; border-bottom: 1px solid rgb(255 255 255 / 18%); }
.gh-menu-grid--list .gh-product-card__open { padding: 24px 56px 24px 0; }
.gh-menu-grid--list .gh-product-card__content { align-items: start; }
.gh-product-card__meta { display: flex; gap: 16px; padding-top: 10px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .68; }
.gh-product-detail--text-only { display: block; max-width: 760px; margin-inline: auto; }
.gh-product-detail--text-only .gh-product-detail__copy { min-height: min(760px, 90vh); justify-content: center; }
.gh-allergen-legend { margin: 96px auto 32px; padding: 48px; background: #f1eadf; color: #111; }
.gh-allergen-legend h2 { margin: 4px 0 32px; }
.gh-allergen-legend ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 32px; margin: 0; padding: 0; list-style: none; }
.gh-allergen-legend li { display: grid; grid-template-columns: 32px 1fr; gap: 10px; }
.gh-allergen-note { margin: 32px 0 0; max-width: 880px; font-size: 14px; opacity: .72; }
@media (max-width: 767px) {
	.gh-menu-grid--list, .gh-allergen-legend ol { grid-template-columns: 1fr; column-gap: 0; }
	.gh-allergen-legend { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .gh-spaces { height: auto; }
  .gh-spaces__sticky { position: relative; display: block; height: auto; overflow: visible; }
  .gh-spaces__intro { min-height: 0; }
  .gh-spaces__window { overflow: visible; }
  .gh-spaces__track { display: block; width: 100%; transform: none !important; }
  .gh-room { width: 100%; height: 82svh; }
}
.gh-event-card--featured .gh-event-card__meta { font-weight: 700; }

/* Long translated product names must not collapse the image column. */
.gh-product-detail__media, .gh-product-detail__copy { min-width: 0; }
.gh-product-detail__copy h2 { max-width: 100%; overflow-wrap: anywhere; }
html[lang^="ru"] .gh-product-detail__copy { padding: clamp(32px, 3vw, 48px); }
html[lang^="ru"] .gh-product-detail__copy h2 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1; }
@media (max-width: 600px) {
  html[lang^="ru"] .gh-product-detail__copy { padding: 42px 20px 60px; }
}

/* Keep the favorites drawer inside the viewport, including long translations. */
.gh-favorites__panel { box-sizing: border-box; max-width: 100%; }
.gh-favorites__panel > *, .gh-favorite-item > * { min-width: 0; }
.gh-favorites__panel h2, .gh-favorite-item h3, .gh-favorites__panel footer { overflow-wrap: anywhere; }
html[lang^="ru"] .gh-favorites__panel h2 { font-size: clamp(32px, 5vw, 48px); line-height: 1; }
html[lang^="ru"] :is(.gh-spaces__intro h2, .gh-room__copy h3, .gh-infinite-reel__caption, .gh-product-card__name, .gh-event-card__title) { overflow-wrap: anywhere; }
@media (max-width: 380px) {
 .gh-favorite-item { grid-template-columns: 60px minmax(0, 1fr) 34px; gap: 10px; }
 .gh-favorite-item img { width: 60px; height: 60px; }
 .gh-favorite-item:not(:has(img)) { grid-template-columns: minmax(0, 1fr) 34px; }
}
