@font-face { font-family: "Instrument Serif"; src: url("../fonts/instrument-serif-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Instrument Serif"; src: url("../fonts/instrument-serif-italic-400.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans-500.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans-600.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Instrument Sans"; src: url("../fonts/instrument-sans-700.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-italic-400.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("../fonts/eb-garamond-600.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }

:root { --gh-gold: #d0c048; --gh-gold-dark: #6f620a; --gh-beige: #e9e2d3; --gh-cream: #f6f2e9; --gh-black: #050505; --gh-warm-black: #0c0c09; --gh-white: #fff; --gh-border: rgb(255 255 255 / 16%); --gh-body: "Instrument Sans", Arial, sans-serif; --gh-display: "Instrument Serif", "Times New Roman", serif; --gh-editorial: "EB Garamond", Garamond, serif; --gh-gutter: clamp(20px, 4vw, 76px); --gh-header-height: 88px; }

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body { margin: 0; background: var(--gh-cream); color: var(--gh-black); font-family: var(--gh-body); }
body .elementor { --e-global-color-primary: var(--gh-black); --e-global-color-secondary: var(--gh-gold-dark); --e-global-color-text: var(--gh-black); --e-global-color-accent: var(--gh-gold); --e-global-typography-primary-font-family: var(--gh-display); --e-global-typography-text-font-family: var(--gh-body); }
body :where(.elementor-widget-text-editor) { font-family: var(--gh-body); }
body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body.gh-menu-open { overflow: hidden; }
.gh-site .e-con, .gh-site .elementor-widget, .gh-site .elementor-widget-container { min-width: 0; }
.gh-site .elementor-heading-title { max-width: 100%; overflow: visible; }
.gh-site a { color: inherit; text-decoration: none; }
.gh-site button { font-family: inherit; }
.gh-site button:not(.gh-button),
.gh-site [type="button"]:not(.gh-button) { border-color: currentColor; background-color: transparent; color: inherit; }
.gh-site button:not(.gh-button):hover,
.gh-site button:not(.gh-button):focus,
.gh-site button:not(.gh-button):active,
.gh-site [type="button"]:not(.gh-button):hover,
.gh-site [type="button"]:not(.gh-button):focus,
.gh-site [type="button"]:not(.gh-button):active { background-color: transparent; color: inherit; text-decoration: none; }
.gh-site .gh-modal button.gh-modal__close,
.gh-site .gh-modal button.gh-modal__close:hover,
.gh-site .gh-modal button.gh-modal__close:focus,
.gh-site .gh-modal button.gh-modal__close:active { border-color: transparent; background: var(--gh-black); color: var(--gh-white); }
.gh-site button.gh-favorites-launcher[data-gh-favorites-open],
.gh-site button.gh-favorites-launcher[data-gh-favorites-open]:hover,
.gh-site button.gh-favorites-launcher[data-gh-favorites-open]:focus,
.gh-site button.gh-favorites-launcher[data-gh-favorites-open]:active { border: 0; background: var(--gh-cream); color: var(--gh-black); }
.gh-site .gh-favorites__panel header > button[data-gh-favorites-close],
.gh-site .gh-favorites__panel header > button[data-gh-favorites-close]:hover,
.gh-site .gh-favorites__panel header > button[data-gh-favorites-close]:focus { border: 0; background: var(--gh-black); color: var(--gh-white); }
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle],
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle]:hover,
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle]:focus { background: var(--gh-cream); color: var(--gh-black); }
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle].is-active,
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle].is-active:hover,
.gh-site button.gh-favorite-toggle[data-gh-favorite-toggle].is-active:focus { background: var(--gh-gold); color: var(--gh-black); }
img { display: block; max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
:focus-visible { outline: 2px solid var(--gh-gold); outline-offset: 4px; }
.screen-reader-text, .gh-skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.gh-skip-link:focus { position: fixed; z-index: 10000; top: 10px; left: 10px; padding: 12px 18px; background: var(--gh-white); color: var(--gh-black); }
.gh-main { position: relative; z-index: 2; min-height: 60vh; background: var(--gh-cream); }
.gh-eyebrow { margin: 0; color: var(--gh-gold-dark); font-size: 12px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }

.gh-header { position: fixed; z-index: 1000; inset: 0 0 auto; color: var(--gh-white); border-bottom: 1px solid var(--gh-border); transition: background .35s ease, transform .35s ease; }
.blog .gh-header:not(.is-open), .single-post .gh-header:not(.is-open), .error404 .gh-header:not(.is-open) { background: rgb(5 5 5 / 94%); }
.gh-header.is-scrolled, .gh-header.is-open { background: rgb(5 5 5 / 94%); backdrop-filter: blur(14px); }
.gh-header.is-footer-hidden:not(.is-open):not(:focus-within) { transform: translateY(-110%); visibility: hidden; pointer-events: none; }
.gh-header__inner { position: relative; z-index: 2; display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; gap: 26px; min-height: var(--gh-header-height); padding: 0 var(--gh-gutter); }
.gh-brand { justify-self: center; }
.gh-brand__image { width: clamp(104px, 8vw, 150px); max-height: 64px; object-fit: contain; }
.gh-primary--right { justify-self: end; }
.gh-primary__list, .gh-mega-nav__list, .gh-footer-nav__list, .gh-footer-legal__list { display: flex; align-items: center; gap: clamp(16px, 2vw, 34px); padding: 0; margin: 0; list-style: none; }
.gh-primary__list li, .gh-mega-nav__list li, .gh-footer-nav__list li, .gh-footer-legal__list li { padding: 0; margin: 0; list-style: none; }
.gh-primary a { color: inherit; font-size: 12px; font-weight: 650; letter-spacing: .03em; text-transform: uppercase; }
.gh-primary a, .gh-mega-nav a, .gh-footer a { position: relative; }
.gh-primary a::after, .gh-mega-nav a::after, .gh-footer-nav a::after, .gh-footer-legal a::after, .gh-footer__contact a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .3s ease; }
.gh-primary a:hover::after, .gh-mega-nav a:hover::after, .gh-footer-nav a:hover::after, .gh-footer-legal a:hover::after, .gh-footer__contact a:hover::after { transform: scaleX(1); transform-origin: left; }
.gh-menu-toggle,
.gh-menu-toggle:hover,
.gh-menu-toggle:focus,
.gh-menu-toggle:focus-visible,
.gh-menu-toggle:active,
.gh-menu-toggle[aria-expanded="true"] { display: grid; gap: 5px; width: 30px; padding: 7px 4px; border: 0; border-radius: 0; background: transparent !important; color: var(--gh-white) !important; box-shadow: none; cursor: pointer; appearance: none; }
.gh-menu-toggle:focus-visible { outline: 1px solid var(--gh-gold); outline-offset: 6px; }
.gh-menu-toggle span:not(.screen-reader-text) { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .25s ease, opacity .2s ease; }
.gh-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.gh-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.gh-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.gh-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 52px; padding: 5px 6px 5px 24px; border: 0; border-radius: 999px; background: var(--gh-gold); color: var(--gh-black); font-size: 12px; font-weight: 700; letter-spacing: .04em; line-height: 1.2; text-transform: uppercase; }
.gh-site .gh-button, .gh-site .gh-button:visited { background: var(--gh-gold); color: var(--gh-black); }
.gh-site .gh-button--dark, .gh-site .gh-button--dark:visited { background: var(--gh-black); color: var(--gh-white); }
.gh-site .gh-button--outline, .gh-site .gh-button--outline:visited { border: 1px solid rgb(5 5 5 / 32%); background: transparent; color: var(--gh-black); }
.gh-site .gh-button--outline-dark, .gh-site .gh-button--outline-dark:visited { border: 1px solid rgb(5 5 5 / 35%); background: transparent; color: var(--gh-black); }
.gh-site .gh-button--outline-light, .gh-site .gh-button--outline-light:visited { border: 1px solid rgb(255 255 255 / 38%); background: transparent; color: var(--gh-white); }
.gh-button--wide { width: min(100%, 430px); }
.gh-button > span:first-child { min-width: 0; }
.gh-arrow { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--gh-black); color: var(--gh-gold); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.gh-button--dark .gh-arrow { background: var(--gh-gold); color: var(--gh-black); }
.gh-button--outline-light .gh-arrow { background: var(--gh-gold); color: var(--gh-black); }
.gh-button--outline-dark .gh-arrow { background: var(--gh-black); color: var(--gh-gold); }
.gh-arrow svg { display: block; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.gh-button:hover .gh-arrow { transform: rotate(45deg); }
.gh-site .gh-button:hover, .gh-site .gh-button:active, .gh-site .gh-button:focus { border-color: transparent; background: var(--gh-gold); color: var(--gh-black); text-decoration: none; }
.gh-site .gh-button--dark:hover, .gh-site .gh-button--dark:active, .gh-site .gh-button--dark:focus { background: var(--gh-black); color: var(--gh-white); }
.gh-site .gh-button--outline:hover, .gh-site .gh-button--outline:active, .gh-site .gh-button--outline:focus, .gh-site .gh-button--outline-dark:hover, .gh-site .gh-button--outline-dark:active, .gh-site .gh-button--outline-dark:focus { border-color: rgb(5 5 5 / 32%); background: transparent; color: var(--gh-black); }
.gh-site .gh-button--outline-light:hover, .gh-site .gh-button--outline-light:active, .gh-site .gh-button--outline-light:focus { border-color: rgb(255 255 255 / 38%); background: transparent; color: var(--gh-white); }

.gh-mega[hidden] { display: none; }
.gh-mega { position: fixed; z-index: 990; inset: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--gh-black); color: var(--gh-white); }
.gh-mega__inner { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr); gap: clamp(36px, 5vw, 88px); min-height: 100svh; padding: calc(var(--gh-header-height) + clamp(40px, 6vh, 74px)) var(--gh-gutter) clamp(38px, 6vh, 66px); }
.gh-mega__navigation { display: grid; min-width: 0; grid-template-rows: auto auto 1fr auto; }
.gh-mega .gh-eyebrow { color: var(--gh-gold); }
.gh-mega__feature { display: flex; align-items: center; padding-block: clamp(34px, 5vh, 70px); }
.gh-mega-feature__list { width: 100%; padding: 0; margin: 0; list-style: none; }
.gh-mega-feature__list li { border-top: 1px solid rgb(255 255 255 / 18%); }
.gh-mega-feature__list li:last-child { border-bottom: 1px solid rgb(255 255 255 / 18%); }
.gh-mega-feature a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(12px, 1.7vh, 22px) 0; color: var(--gh-white); font: 400 clamp(43px, 4.8vw, 88px)/.86 var(--gh-display); letter-spacing: -.035em; text-transform: uppercase; transition: color .25s ease, padding-left .25s ease; }
.gh-mega-feature a::after { content: ""; flex: 0 0 11px; width: 11px; height: 11px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); }
.gh-mega-feature a:hover, .gh-mega-feature a:focus-visible, .gh-mega-feature a.is-active { padding-left: 12px; color: var(--gh-gold); }
.gh-mega__utility { display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: clamp(24px, 4vw, 62px); padding-top: clamp(20px, 3vh, 34px); border-top: 1px solid rgb(255 255 255 / 18%); }
.gh-mega-nav__list { align-items: flex-start; flex-direction: column; gap: 9px; margin-top: 14px; }
.gh-mega-nav a, .gh-mega__contact a { color: rgb(255 255 255 / 78%); font-size: 14px; }
.gh-mega__contact { display: flex; align-items: flex-start; flex-direction: column; gap: 9px; }
.gh-mega__contact .gh-eyebrow { margin-bottom: 5px; }
.gh-mega__media { position: relative; min-height: 0; margin: 0; overflow: hidden; background: var(--gh-warm-black); }
.gh-mega__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.035); transition: opacity .45s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.gh-mega__image.is-active { z-index: 1; opacity: 1; transform: scale(1); }

.gh-footer { position: relative; z-index: 1; display: grid; grid-template-columns: .92fr 1.08fr; min-height: 100svh; background: var(--gh-black); color: var(--gh-white); }
.gh-footer__cta { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(70px, 9vw, 150px) var(--gh-gutter); background: var(--gh-beige); color: var(--gh-black); }
.gh-footer__statement { margin: 32px 0 38px; font-family: var(--gh-display); font-size: clamp(72px, 8vw, 150px); line-height: .78; letter-spacing: -.04em; text-transform: uppercase; }
.gh-footer__statement em { color: var(--gh-gold-dark); font-style: italic; }
.gh-footer__lead { max-width: 520px; margin: 0 0 38px; font: 400 clamp(22px, 2vw, 31px)/1.35 var(--gh-editorial); }
.gh-footer__info { display: flex; flex-direction: column; justify-content: space-between; }
.gh-footer__main { display: grid; grid-template-columns: .9fr .7fr 1.2fr; gap: clamp(28px, 4vw, 70px); padding: clamp(90px, 12vh, 150px) var(--gh-gutter) 60px; }
.gh-footer__brand > a { font-family: var(--gh-display); font-size: clamp(42px, 5vw, 72px); }
.gh-footer__logo { display: block; width: 180px; max-width: 100%; height: auto; }
.gh-footer__brand p { max-width: 280px; color: rgb(255 255 255 / 70%); }
.gh-footer-nav__list { align-items: flex-start; flex-direction: column; gap: 12px; }
.gh-footer__contact { display: flex; align-items: flex-start; flex-direction: column; gap: 12px; }
.gh-footer__bottom { display: flex; justify-content: space-between; gap: 30px; padding: 24px var(--gh-gutter); border-top: 1px solid var(--gh-border); color: rgb(255 255 255 / 60%); font-size: 12px; }

.gh-page-hero { padding: clamp(160px, 20vw, 280px) var(--gh-gutter) clamp(70px, 9vw, 140px); }
.gh-page-hero h1 { max-width: 1200px; margin: 20px 0 0; font-family: var(--gh-display); font-size: clamp(64px, 10vw, 174px); font-weight: 400; line-height: .86; text-transform: uppercase; }
.gh-events-archive { background: var(--gh-black); color: var(--gh-white); }
.gh-events-archive .gh-page-hero { min-height: 68svh; display: flex; flex-direction: column; justify-content: flex-end; }
.gh-events-archive .gh-page-hero h1 { color: var(--gh-white); }
.gh-events-archive .gh-event-card__content > p { color: rgb(255 255 255 / 68%); }
.gh-events-empty { grid-column: 1 / -1; max-width: 800px; padding: 50px 0 120px; font: 400 clamp(32px, 4vw, 64px)/1.05 var(--gh-editorial); }
.gh-event-related { padding: clamp(100px, 14vh, 170px) var(--gh-gutter) clamp(120px, 17vh, 200px); background: var(--gh-black); color: var(--gh-white); }
.gh-event-related > h2 { max-width: 1050px; margin: 24px 0 clamp(65px, 9vh, 110px); font: 400 clamp(60px, 8vw, 138px)/.82 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-event-related .gh-event-card__content > p { color: rgb(255 255 255 / 68%); }
.gh-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 60px); padding: 0 var(--gh-gutter) 120px; }
.gh-post-card img { width: 100%; aspect-ratio: 4 / 5; margin-bottom: 24px; object-fit: cover; }
.gh-post-card h2 { margin: 12px 0; font-family: var(--gh-display); font-size: clamp(34px, 3vw, 52px); font-weight: 400; line-height: .95; }
.gh-post-card p:not(.gh-eyebrow) { color: rgb(5 5 5 / 68%); line-height: 1.65; }
.gh-events-archive .navigation.pagination, .gh-journal .navigation.pagination { padding: 0 var(--gh-gutter) 100px; }
.gh-events-archive .nav-links, .gh-journal .nav-links { display: flex; align-items: center; gap: 8px; }
.gh-events-archive .page-numbers, .gh-journal .page-numbers { display: grid; min-width: 42px; min-height: 42px; padding: 8px 13px; place-items: center; border: 1px solid currentColor; border-radius: 999px; font-size: 12px; }
.gh-events-archive .page-numbers.current, .gh-journal .page-numbers.current { border-color: var(--gh-gold); background: var(--gh-gold); color: var(--gh-black); }
.gh-article__hero { width: calc(100% - 2 * var(--gh-gutter)); max-height: 80vh; margin: 0 var(--gh-gutter); object-fit: cover; }
.gh-prose { max-width: 850px; padding: 80px var(--gh-gutter) 130px; margin: auto; font-family: var(--gh-editorial); font-size: clamp(21px, 2vw, 30px); line-height: 1.45; }
.gh-not-found { display: grid; min-height: 80vh; padding: 180px var(--gh-gutter) 100px; place-content: center; text-align: center; }
.gh-not-found h1 { font: 400 clamp(60px, 9vw, 140px)/.9 var(--gh-display); }
.gh-not-found .gh-button { justify-self: center; }

/* Homepage reconstructed as editable Elementor sections. */
.gh-main > .elementor { overflow: clip; }

.gh-home-hero { --justify-content: center; position: relative; isolation: isolate; background-attachment: fixed; color: white; }
.gh-home-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 32%) 0%, rgb(0 0 0 / 18%) 34%, rgb(0 0 0 / 78%) 100%); pointer-events: none; }
.gh-home-hero > .e-con-inner { align-items: flex-start; justify-content: center; }
.gh-home-kicker { width: 100%; margin-bottom: clamp(30px, 5vh, 60px); }
.gh-home-kicker p { margin: 0; }
.gh-home-kicker { color: var(--gh-gold); font-size: clamp(13px, 1vw, 17px); font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.gh-home-hero__title { width: min(100%, 1500px); }
.gh-home-hero__title .elementor-heading-title { margin: 0; color: white; font: 400 clamp(76px, 10.5vw, 190px)/.77 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-home-hero__title span, .gh-home-hero__title em { display: block; }
.gh-home-hero__title em { margin-left: clamp(75px, 10vw, 190px); color: var(--gh-gold); font-size: .68em; font-style: italic; letter-spacing: -.03em; text-transform: none; }
.gh-home-hero .elementor-widget-gh-button { margin-top: clamp(38px, 6vh, 72px); }

.gh-home-intro { background: var(--gh-black); color: white; }
.gh-home-intro__title, .gh-home-intro__copy { }
.gh-home-statement .elementor-heading-title { color: white; font: 400 clamp(82px, 10vw, 180px)/.78 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-home-statement span { display: block; }
.gh-home-intro__copy { }
.gh-home-editorial-copy { max-width: 610px; }
.gh-site .gh-home-editorial-copy p { margin: 0; }
.gh-site .gh-home-editorial-copy { color: inherit; font: 400 clamp(26px, 2.5vw, 43px)/1.2 var(--gh-editorial); }
.gh-home-intro .gh-home-editorial-copy p { ; }
.gh-home-intro .gh-home-editorial-copy { color: rgb(255 255 255 / 82%); }
.gh-home-intro__copy .elementor-widget-gh-button { margin-top: 40px; }

.gh-home-gallery { background: var(--gh-cream); }
.gh-home-gallery__title { padding: 0 var(--gh-gutter); margin-bottom: clamp(62px, 10vh, 120px); }
.gh-home-gallery__title .elementor-heading-title { color: var(--gh-black); font: 400 clamp(82px, 11vw, 190px)/.74 var(--gh-display); letter-spacing: -.045em; text-align: center; text-transform: uppercase; }
.gh-home-gallery__title span, .gh-home-gallery__title em { display: block; }
.gh-home-gallery__title em { color: var(--gh-gold-dark); font-style: italic; }
.gh-home-spaces > .elementor-widget { width: 100%; }

.gh-home-menu { background: var(--gh-black); color: white; }
.gh-home-menu__title .elementor-heading-title { color: white; font: 400 clamp(92px, 12vw, 210px)/.76 var(--gh-display); letter-spacing: -.045em; text-transform: uppercase; }
.gh-home-menu__title span, .gh-home-menu__title em { display: block; }
.gh-home-menu__title em { margin-left: clamp(70px, 16vw, 310px); color: var(--gh-gold); font-style: italic; }
.gh-home-menu__lead { }
.gh-home-menu__copy { max-width: 420px; }
.gh-site .gh-home-menu__copy p { margin: 0; }
.gh-site .gh-home-menu__copy { color: rgb(255 255 255 / 72%); font: 400 clamp(18px, 1.55vw, 26px)/1.45 var(--gh-editorial); }
.gh-home-menu .gh-menu-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: start; }
.gh-home-menu .gh-product-card:nth-child(even) { transform: translateY(8vh); }
.gh-home-menu .gh-product-card__content { color: white; }
.gh-home-menu .gh-product-card__media img { height: 34vw; aspect-ratio: auto; object-fit: cover; }
.gh-home-menu .gh-product-card__category { color: var(--gh-gold); }
.gh-home-menu .gh-product-card__name { font-size: clamp(22px, 1.8vw, 35px); line-height: 1.1; }
.gh-home-menu .gh-product-card__price { color: rgb(255 255 255 / 62%); }
.gh-home-menu .gh-favorite-toggle { border-color: rgb(255 255 255 / 28%); background: rgb(5 5 5 / 48%); color: white; backdrop-filter: blur(12px); }
.gh-home-menu .gh-favorite-toggle:hover, .gh-home-menu .gh-favorite-toggle:focus { border-color: var(--gh-gold); background: rgb(5 5 5 / 70%); color: var(--gh-gold); }
.gh-home-menu .gh-favorite-toggle.is-active { border-color: var(--gh-gold); background: var(--gh-gold); color: var(--gh-black); }

.gh-home-events { background: var(--gh-gold); color: var(--gh-black); }
.gh-home-events > .elementor-widget-gh-infinite-reel { width: 100%; }
.gh-home-events__copy { }
.gh-home-events__title .elementor-heading-title { color: var(--gh-black); font: 400 clamp(76px, 8.6vw, 155px)/.78 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-home-events__title span, .gh-home-events__title em { display: block; }
.gh-home-events__title em { font-style: italic; }
.gh-home-events__details { }
.gh-home-events__details .gh-home-editorial-copy p { ; }
.gh-home-events__details .gh-home-editorial-copy { color: var(--gh-black); }
.gh-home-events__details .elementor-widget-gh-button { margin-top: 44px; }

.gh-home-upcoming { background: var(--gh-black); color: white; }
.gh-home-upcoming__kicker p { margin: 0 0 38px; }
.gh-home-upcoming__kicker { color: var(--gh-gold); font-size: 12px; font-weight: 700; letter-spacing: .11em; }
.gh-home-upcoming__title { max-width: 1300px; margin-bottom: clamp(70px, 10vh, 120px); }
.gh-home-upcoming__title .elementor-heading-title { color: white; font: 400 clamp(76px, 9vw, 160px)/.78 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-home-upcoming__title span, .gh-home-upcoming__title em { display: block; }
.gh-home-upcoming__title em { color: var(--gh-gold); font-style: italic; }
.gh-home-upcoming .gh-event-card__content { color: white; }
.gh-home-upcoming .gh-event-card__content > p { ; }
.gh-home-upcoming .gh-event-card__content > { color: rgb(255 255 255 / 72%); font: 400 clamp(17px, 1.35vw, 23px)/1.4 var(--gh-editorial); }
.gh-home-upcoming > .elementor-widget-gh-button { margin-top: 70px; }

.gh-home-quote { position: relative; background: var(--gh-cream); }
.gh-home-quote__mark { position: absolute; top: 5vh; left: 2vw; color: var(--gh-gold); opacity: .55; font: 400 clamp(220px, 30vw, 520px)/1 var(--gh-display); }
.gh-home-quote__mark p { margin: 0; }
.gh-home-quote__text { position: relative; z-index: 2; width: min(100%, 1420px); margin-left: auto; }
.gh-home-quote__text .elementor-heading-title { color: var(--gh-black); font: 400 clamp(66px, 8vw, 145px)/.88 var(--gh-display); letter-spacing: -.04em; }
.gh-home-quote__text em { color: var(--gh-gold-dark); font-style: italic; }
.gh-home-quote__image { position: relative; z-index: 1; width: min(44vw, 700px); margin-top: -2vh; margin-left: 6vw; }
.gh-home-quote__image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

.gh-home-delivery { background: var(--gh-black); color: white; }
.gh-home-delivery__copy { }
.gh-home-delivery__title .elementor-heading-title { color: white; font: 400 clamp(76px, 8vw, 150px)/.78 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-home-delivery__title span, .gh-home-delivery__title em { display: block; }
.gh-home-delivery__title em { color: var(--gh-gold); font-style: italic; }
.gh-home-delivery__body { margin: 44px 0 34px; color: rgb(255 255 255 / 72%); font: 400 clamp(18px, 1.45vw, 24px)/1.5 var(--gh-editorial); }
.gh-home-delivery__media { position: relative; }
.gh-home-delivery__media::before { content: ""; position: absolute; inset: -18%; background: radial-gradient(circle, rgb(208 192 72 / 20%), transparent 65%); filter: blur(20px); }
.gh-home-delivery__image, .gh-home-delivery__image .elementor-widget-container, .gh-home-delivery__image img { width: 100%; height: 100%; }
.gh-home-delivery__image img { object-fit: cover; filter: saturate(.83) contrast(1.04); }
.gh-home-delivery__caption { position: absolute; right: 5%; bottom: 5%; left: 5%; }
.gh-home-delivery__caption .elementor-heading-title { color: white; font: 400 clamp(48px, 5.5vw, 105px)/.83 var(--gh-display); text-align: right; }

.gh-home-reserve { background: var(--gh-beige); }
.gh-home-reserve__title .elementor-heading-title { color: var(--gh-black); font: 400 clamp(90px, 12vw, 210px)/.77 var(--gh-display); letter-spacing: -.05em; text-transform: uppercase; }
.gh-home-reserve__title span, .gh-home-reserve__title em { display: block; }
.gh-home-reserve__title em { color: var(--gh-gold-dark); font-style: italic; }
.gh-home-reserve__actions { }
.gh-home-reserve__actions .elementor-widget-gh-button, .gh-home-reserve__actions .gh-button { width: 100%; }

/* Shared editorial page language; every text and image remains Elementor-editable. */

.gh-editorial-hero { position: relative; isolation: isolate; color: white; }
.gh-editorial-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgb(0 0 0 / 28%), rgb(0 0 0 / 78%)); }
.gh-editorial-hero__kicker { margin-bottom: clamp(35px, 5vh, 65px); }
.gh-editorial-hero__kicker p { margin: 0; }
.gh-editorial-hero__kicker { color: var(--gh-gold); font-size: clamp(13px, 1vw, 17px); font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.gh-editorial-hero__title { width: min(100%, 1580px); }
.gh-editorial-hero__title .elementor-heading-title { color: white; font: 400 clamp(76px, 10vw, 185px)/.78 var(--gh-display); letter-spacing: -.045em; text-transform: uppercase; }
.gh-editorial-hero__title span, .gh-editorial-hero__title em { display: block; }
.gh-editorial-hero__title em { color: var(--gh-gold); font-style: italic; }
.gh-editorial-intro { background: var(--gh-cream); }
.gh-editorial-intro__label p { margin: 10px 0 0; }
.gh-editorial-intro__label { color: var(--gh-gold-dark); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.gh-editorial-intro__statement .elementor-heading-title { color: var(--gh-black); font: 400 clamp(46px, 5vw, 88px)/1.02 var(--gh-editorial); }
.gh-editorial-intro__statement em { color: var(--gh-gold-dark); font-style: italic; }
.gh-editorial-intro__body p { margin: 12px 0 0; }
.gh-editorial-intro__body { color: rgb(5 5 5 / 68%); font-size: 17px; line-height: 1.75; }
.gh-editorial-gallery, .gh-editorial-events-reel { background: var(--gh-cream); }
.gh-editorial-spaces > .elementor-widget { width: 100%; }
.gh-editorial-story { background: var(--gh-black); color: white; }
.gh-editorial-story__copy { }
.gh-editorial-story__title .elementor-heading-title { color: white; font: 400 clamp(62px, 7vw, 125px)/.8 var(--gh-display); letter-spacing: -.04em; text-transform: uppercase; }
.gh-editorial-story__body { max-width: 620px; margin-top: 50px; }
.gh-editorial-story__body p { margin: 0; }
.gh-editorial-story__body { color: rgb(255 255 255 / 72%); font: 400 clamp(22px, 2.2vw, 34px)/1.35 var(--gh-editorial); }
.gh-editorial-story__image, .gh-editorial-story__image .elementor-widget-container, .gh-editorial-story__image img { width: 100%; height: 100%; }
.gh-editorial-story__image img { object-fit: cover; }
.gh-editorial-reserve { background: var(--gh-beige); }
.gh-editorial-reserve__title .elementor-heading-title { color: var(--gh-black); font: 400 clamp(78px, 10vw, 175px)/.78 var(--gh-display); letter-spacing: -.045em; text-transform: uppercase; }
.gh-editorial-reserve__title span, .gh-editorial-reserve__title em { display: block; }
.gh-editorial-reserve__title em { color: var(--gh-gold-dark); font-style: italic; }
.gh-editorial-reserve__actions { }
.gh-editorial-reserve__actions .elementor-widget-gh-button, .gh-editorial-reserve__actions .gh-button { width: 100%; }
.gh-editorial-menu { background: var(--gh-cream); }
.gh-menu-categories { position: sticky; z-index: 20; top: var(--gh-header-height); display: flex; gap: 9px; overflow-x: auto; padding: 15px 0; margin-bottom: clamp(80px, 12vh, 150px); background: rgb(246 242 233 / 94%); backdrop-filter: blur(12px); scrollbar-width: none; }
.gh-menu-categories::-webkit-scrollbar { display: none; }
.gh-menu-categories a { flex: none; padding: 12px 18px; border: 1px solid rgb(5 5 5 / 22%); border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.gh-menu-categories a:hover { background: var(--gh-black); color: white; }
.gh-menu-category { padding-top: 110px; margin-top: -110px; margin-bottom: clamp(100px, 15vh, 190px); }
.gh-menu-category > header { display: flex; align-items: baseline; justify-content: space-between; gap: 30px; padding-bottom: 25px; margin-bottom: 42px; border-bottom: 1px solid rgb(5 5 5 / 22%); }
.gh-menu-category > header h2 { margin: 0; font: 400 clamp(58px, 7vw, 120px)/.82 var(--gh-display); letter-spacing: -.035em; text-transform: uppercase; }
.gh-editorial-menu .gh-product-card, .gh-home-menu .gh-product-card { border: 0; color: inherit; }
.gh-editorial-menu .gh-product-card__open, .gh-home-menu .gh-product-card__open { appearance: none; border: 0; border-radius: 0; background: transparent; color: inherit; box-shadow: none; }
.gh-contact-grid { background: var(--gh-beige); }
.gh-contact-grid__title .elementor-heading-title { color: var(--gh-black); font: 400 clamp(70px, 8vw, 145px)/.8 var(--gh-display); letter-spacing: -.04em; }
.gh-contact-grid__title em { color: var(--gh-gold-dark); font-style: italic; }
.gh-contact-grid__address { margin-top: 50px; font: 400 clamp(25px, 2.5vw, 39px)/1.35 var(--gh-editorial); }
.gh-contact-grid__actions { }
.gh-contact-grid__actions .elementor-widget-gh-button, .gh-contact-grid__actions .gh-button { width: 100%; }

/* Elementor behavior classes keep content and media editable. */
.gh-text-reveal.gh-reveal-ready, .gh-image-reveal.gh-reveal-ready { opacity: 0; transform: translateY(36px); transition: opacity .8s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.gh-image-reveal { overflow: hidden; }
.gh-text-reveal.is-visible, .gh-image-reveal.is-visible { opacity: 1; transform: none; }
.gh-image-reveal img { transform: scale(1.06); transition: transform 1.2s cubic-bezier(.2,.8,.2,1); }
.gh-image-reveal.is-visible img { transform: scale(1); }
.gh-hover-media img { transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gh-hover-media:hover img { transform: scale(1.035); }
.gh-parallax { --gh-parallax-y: 0px; transform: translate3d(0, var(--gh-parallax-y), 0); will-change: transform; }
.gh-horizontal-scroll { display: flex; gap: clamp(14px, 2vw, 30px); overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: none; cursor: grab; touch-action: pan-y; }
.gh-horizontal-scroll::-webkit-scrollbar { display: none; }
.gh-horizontal-scroll > * { flex: 0 0 min(78vw, 760px); scroll-snap-align: start; }
.gh-horizontal-scroll.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }

@media (max-width: 1024px) {
  :root { --gh-header-height: 78px; }
  .gh-header__inner { grid-template-columns: 42px 1fr auto; }
  .gh-primary { display: none; }
  .gh-brand { justify-self: center; }
  .gh-button--reserve { justify-self: end; }
  .gh-mega__inner { grid-template-columns: 1fr; }
  .gh-mega__media { display: none; }
	.gh-footer { grid-template-columns: 1fr; min-height: 0; }
	.gh-footer__cta { min-height: 68svh; }
  .gh-footer__main { grid-template-columns: 1fr 1fr; }
  .gh-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gh-home-hero { background-attachment: scroll; }
	.gh-home-intro { }
	.gh-home-intro__copy { }
	.gh-home-events__copy { }
	.gh-home-events__details { max-width: 660px; }
	.gh-home-menu__lead { }
	.gh-home-menu .gh-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 70px 24px; }
	.gh-home-menu .gh-product-card__media img { height: 62vw; }
	.gh-home-quote { }
	.gh-home-quote__image { width: 60vw; }
	.gh-home-delivery { }
	.gh-home-delivery__media { }
	.gh-editorial-intro { }
	.gh-editorial-intro__body { grid-column: 2; }
	.gh-editorial-story { }
	.gh-editorial-story__image { height: 75svh; }
	.gh-editorial-reserve { }
	.gh-contact-grid { }
}

@media (min-width: 1025px) {
  .gh-footer.is-reveal-ready { position: sticky; bottom: calc(-1 * var(--gh-footer-overflow, 0px)); }
}

@media (max-width: 680px) {
  :root { --gh-gutter: 20px; --gh-header-height: 74px; }
  .gh-header__inner { gap: 10px; }
  .gh-brand__image { width: 100px; }
  .gh-button--reserve { min-height: 44px; padding-left: 17px; }
  .gh-button--reserve .gh-arrow { width: 34px; height: 34px; flex-basis: 34px; }
  .gh-mega__inner { gap: 38px; padding-top: calc(var(--gh-header-height) + 34px); }
	.gh-mega__feature { padding-block: 30px 48px; }
	.gh-mega-feature a { font-size: clamp(40px, 12.5vw, 66px); }
	.gh-mega__utility { grid-template-columns: 1fr 1fr; }
	.gh-mega__contact { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid rgb(255 255 255 / 16%); }
	.gh-footer__cta { min-height: 72svh; }
  .gh-footer__statement { font-size: clamp(60px, 18vw, 94px); }
  .gh-footer__main { grid-template-columns: 1fr; padding-block: 60px; }
  .gh-footer__bottom { align-items: flex-start; flex-direction: column; }
  .gh-footer-legal__list { align-items: flex-start; flex-direction: column; }
  .gh-post-grid { grid-template-columns: 1fr; }
  .gh-horizontal-scroll > * { flex-basis: 86vw; }
	.gh-home-hero { }
	.gh-home-hero__title .elementor-heading-title { font-size: clamp(62px, 18vw, 88px); line-height: .8; }
	.gh-home-hero__title em { margin-top: 12px; margin-left: 0; font-size: .64em; }
	.gh-home-intro { }
	.gh-home-statement .elementor-heading-title { font-size: clamp(66px, 19vw, 96px); }
	.gh-home-intro__copy { }
	.gh-home-editorial-copy p { ; }
	.gh-home-editorial-copy { font-size: 26px; }
	.gh-home-gallery { }
	.gh-home-gallery__title { margin-bottom: 55px; }
	.gh-home-gallery__title .elementor-heading-title { font-size: clamp(64px, 18vw, 92px); }
	.gh-home-menu { }
	.gh-home-menu__title .elementor-heading-title { font-size: clamp(70px, 20vw, 105px); }
	.gh-home-menu__title em { margin-left: 0; }
	.gh-home-menu__lead { }
	.gh-home-menu .gh-menu-grid { grid-template-columns: 1fr; gap: 70px; }
	.gh-home-menu .gh-product-card:nth-child(even) { transform: none; }
	.gh-home-menu .gh-product-card__media img { height: 118vw; max-height: 680px; }
	.gh-home-events__copy { }
	.gh-home-events__title .elementor-heading-title { font-size: clamp(61px, 17vw, 88px); }
	.gh-home-upcoming { }
	.gh-home-upcoming__title .elementor-heading-title { font-size: clamp(61px, 17vw, 88px); }
	.gh-home-quote { }
	.gh-home-quote__text .elementor-heading-title { font-size: clamp(50px, 14.5vw, 74px); }
	.gh-home-quote__image { width: 82vw; margin-top: 60px; margin-left: 0; }
	.gh-home-delivery { }
	.gh-home-delivery__title .elementor-heading-title { font-size: clamp(67px, 19vw, 96px); }
	.gh-home-delivery__media { }
	.gh-home-delivery__caption .elementor-heading-title { font-size: 13vw; }
	.gh-home-reserve { }
	.gh-home-reserve__title .elementor-heading-title { font-size: clamp(72px, 21vw, 105px); }
	.gh-editorial-hero { }
	.gh-editorial-hero__title .elementor-heading-title { font-size: clamp(60px, 17vw, 88px); }
	.gh-editorial-intro { }
	.gh-editorial-intro__body { grid-column: auto; }
	.gh-editorial-intro__statement .elementor-heading-title { font-size: clamp(41px, 11vw, 58px); }
	.gh-editorial-story__copy { }
	.gh-editorial-story__title .elementor-heading-title { font-size: clamp(56px, 16vw, 82px); }
	.gh-editorial-story__image { height: 64svh; }
	.gh-editorial-reserve { }
	.gh-editorial-reserve__title .elementor-heading-title { font-size: clamp(68px, 19vw, 96px); }
	.gh-menu-category > header { align-items: flex-start; flex-direction: column; }
	.gh-menu-category > header h2 { font-size: clamp(52px, 15vw, 78px); }
	.gh-contact-grid { }
	.gh-contact-grid__title .elementor-heading-title { font-size: clamp(61px, 17vw, 88px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .gh-text-reveal, .gh-image-reveal { opacity: 1; transform: none; }
  .gh-parallax { transform: none; }
}

/* Compact language navigation, independent of editable page content. */
.gh-languages { display: flex; width: fit-content; gap: 6px; margin: 0 0 24px; padding: 0; border: 0; color: var(--gh-cream); }
.gh-languages a { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px; font-size: 12px; letter-spacing: .08em; border-radius: 12px; }
.gh-languages a[aria-current] { background: var(--gh-gold); color: var(--gh-black); }
.gh-languages a:focus-visible { outline: 2px solid var(--gh-gold); outline-offset: 2px; }
html[lang^="ru"] { --gh-display: "EB Garamond", Georgia, serif; --gh-body: Arial, sans-serif; }
html[lang^="ru"] .gh-hero-title, html[lang^="ru"] .gh-page-hero h1 { overflow-wrap: anywhere; }
html[lang^="ru"] .gh-footer__statement { font-size: clamp(52px, 7vw, 120px); line-height: .95; }
@media (max-width: 1100px) { html[lang^="ru"] .gh-primary { font-size: 11px; } }

/* Compact header retains the original logo on narrow screens. */
@media (max-width: 380px) {
  .gh-header__inner { grid-template-columns: 30px minmax(90px, 1fr) auto; gap: 12px; padding-inline: 16px; }
  .gh-brand { min-width: 90px; }
  .gh-button--reserve { padding-left: 12px; gap: 8px; font-size: 10px; }
  .gh-button--reserve .gh-arrow { width: 30px; height: 30px; flex-basis: 30px; }
  .gh-reserve-label--full { display: none; }
  .gh-reserve-label--compact { display: inline; }
}
@media (min-width: 381px) { .gh-reserve-label--compact { display: none; } }

/* Container geometry is managed by Elementor; media follows its editable height. */
.gh-home-delivery__media { height: var(--min-height, auto); }

/* Keep the longer Russian statement within its editable Elementor column. */
html[lang^="ru"] .gh-home-intro__title { container-type: inline-size; min-width: 0; }
html[lang^="ru"] .gh-home-statement .elementor-heading-title {
  font-size: min(180px, 11cqi);
  overflow-wrap: anywhere;
}

/* Russian translations must wrap within their editable content columns. */
html[lang^="ru"] .gh-site :is(.elementor-heading-title, .gh-footer__statement, .gh-mega-feature a, .gh-menu-category > header h2) { overflow-wrap: anywhere; }
html[lang^="ru"] .gh-site .gh-button { max-width: 100%; box-sizing: border-box; }
html[lang^="ru"] .gh-site .gh-button > span:first-child { overflow-wrap: anywhere; }
