/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
:is(h2,h1:where(.bq-main-heading)),
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}

/* sorts-mill-goudy-latin-ext-400-normal */
@font-face {
  font-family: 'Sorts Mill Goudy';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(./fonts/sorts-mill-goudy-latin-ext-400-normal.woff2) format('woff2'), url(./fonts/sorts-mill-goudy-latin-ext-400-normal.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* sorts-mill-goudy-latin-400-normal */
@font-face {
  font-family: 'Sorts Mill Goudy';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(./fonts/sorts-mill-goudy-latin-400-normal.woff2) format('woff2'), url(./fonts/sorts-mill-goudy-latin-400-normal.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}


@font-face { font-family:'Minion Variable'; src:url('./fonts/minion-variable-roman.otf') format('opentype'); font-style:normal; font-weight:100 900; font-display:swap; }
:root { --page-media-inset:6vw; --page-frame:12px; --paper:#fffefb; --white:#efede7; --ink:#292621; --brown:#443a31; --sand:#e5e1d9; --red:#b52a24; --menu-green:#3d493d; --menu-ink:#f7f3ea; }
* { box-sizing:border-box; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-behavior:smooth; background:var(--white); }
body { margin:0; background:var(--white); color:var(--ink); font-family:'Minion Variable',Georgia,serif; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
button { color:inherit; cursor:pointer; }
.site-shell { position:relative; width:calc(100% - 24px); margin:12px auto; background:var(--paper); overflow:clip; }
.frame-side { position:fixed; z-index:90; top:0; bottom:0; width:12px; background:var(--white); pointer-events:none; }
.frame-side--left { left:0; }.frame-side--right { right:0; }
.brand-tab { position:fixed; z-index:100; top:0; left:58px; display:block; width:69px; height:222px; }
.brand-tab img { position:relative; z-index:2; display:block; width:100%; height:auto; }
.brand-tab--arrival img { animation:tab-drop 1.15s cubic-bezier(.77,0,.18,1) both; transform-origin:top; }
.brand-rollout { position:absolute; z-index:1; top:79px; left:54px; width:0; height:54px; overflow:hidden; display:flex; align-items:center; padding-left:0; background:#000; color:#fff; white-space:nowrap; font:18px 'Sorts Mill Goudy',Georgia,serif; letter-spacing:.12em; animation:rollout 2.4s cubic-bezier(.77,0,.18,1) .9s both; }
@keyframes tab-drop { from { clip-path:inset(0 0 100% 0); } to { clip-path:inset(0); } }
@keyframes rollout { 0%,100% { width:0; padding-left:0; } 28%,67% { width:305px; padding-left:24px; } }
.site-header { position:fixed; z-index:80; top:12px; left:12px; right:12px; height:104px; display:flex; align-items:flex-start; justify-content:flex-end; padding:21px 30px 0 145px; color:var(--ink); transition:transform .35s ease,background .25s ease,color .25s ease; }
.site-header--hidden { transform:translateY(calc(-100% - 14px)); }
.site-header--solid { background:rgba(244,241,233,.96); color:var(--ink); border-bottom:1px solid rgba(41,38,33,.18); backdrop-filter:blur(10px); }
.header-signature { position:absolute; left:145px; top:16px; margin:0; font-family:'Sorts Mill Goudy',Georgia,serif; font-size:18px; line-height:1.08; letter-spacing:.07em; }
.header-signature em { color:var(--red); font-style:normal; }
.header-tools { display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:.1em; }
.header-tools i { width:1px; height:10px; background:currentColor; opacity:.5; }
.header-tools button { width:32px; height:24px; padding:2px 0 2px 10px; border:0; background:none; }
.header-tools b { display:block; height:1px; background:currentColor; margin:5px 0; transition:transform .2s ease,opacity .2s ease; }
.hamburger--open b:first-child { transform:translateY(6px) rotate(45deg); }
.hamburger--open b:nth-child(2) { opacity:0; }
.hamburger--open b:last-child { transform:translateY(-6px) rotate(-45deg); }
.menu-drawer { position:fixed; z-index:75; top:12px; left:12px; right:12px; min-height:620px; padding:145px 8vw 80px; display:grid; grid-template-columns:1.45fr .55fr; gap:10vw; background:rgba(244,241,233,.985); color:var(--ink); border-bottom:1px solid rgba(41,38,33,.22); animation:menu-down .42s cubic-bezier(.77,0,.18,1) both; }
@keyframes menu-down { from { opacity:0; transform:translateY(-35px); } to { opacity:1; transform:none; } }
.menu-nav { display:grid; grid-template-columns:1fr 1fr; column-gap:6vw; }
.menu-nav a { display:grid; grid-template-columns:40px 1fr; align-items:baseline; padding:18px 0; border-bottom:1px solid rgba(41,38,33,.28); font-size:clamp(28px,3.4vw,48px); line-height:1; }
.menu-nav a span { font:8px Arial,sans-serif; letter-spacing:.15em; }
.menu-aside { align-self:end; padding-bottom:12px; }
.menu-aside p { margin:0 0 22px; font:8px Arial,sans-serif; letter-spacing:.2em; }
.menu-aside strong { display:block; font-size:23px; line-height:1.35; font-weight:700; }
.menu-aside span { display:block; margin-top:30px; font:9px Arial,sans-serif; letter-spacing:.18em; }
.hero { min-height:0; padding:54px 5vw 30px; display:grid; grid-template-columns:repeat(2,minmax(0,600px)); justify-content:center; gap:clamp(18px,2.6vw,42px); background:var(--paper); }
.hero-image { position:relative; aspect-ratio:1; overflow:hidden; }
.hero-image img { object-fit:cover; filter:saturate(.85) contrast(.98); }
.hero--single { display:block; }
/* Match the overall 2:1 format of the paired photo headers and booking masthead. */
.hero--single .hero-image { aspect-ratio:2 / 1; }
.hero--single .hero-image img { filter:none; object-position:center 52%; }
.intro-block { min-height:420px; padding:90px 30px 120px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.intro-block p { margin:0 0 34px; font:8px Arial,sans-serif; letter-spacing:.28em; }
.intro-block h1 { margin:0; max-width:820px; font:700 clamp(44px,5.7vw,82px)/.98 'Minion Variable',Georgia,serif; letter-spacing:-.025em; }
.house { padding:190px 7vw 220px; }
.section-heading { display:grid; grid-template-columns:1fr 2fr; align-items:start; }
.section-heading>p,.ranges-intro>p,.contact>div>p,.reserve>p { margin:12px 0 0; font:9px Arial,sans-serif; letter-spacing:.25em; }
:is(h2,h1:where(.bq-main-heading)) { margin:0; font-size:clamp(54px,7vw,112px); line-height:.88; letter-spacing:-.035em; font-weight:700; }
.section-lead { width:min(680px,58vw); margin:95px 0 165px 33.33%; font-size:clamp(21px,2.25vw,32px); line-height:1.4; }
.chapter-list { display:grid; gap:210px; }
.chapter { min-height:650px; display:grid; grid-template-columns:1fr 1fr; gap:11vw; align-items:center; }
.chapter:nth-child(even) .chapter-image { order:2; }
.chapter-image { position:relative; width:min(100%,540px); aspect-ratio:1; justify-self:center; }
.chapter-image img { object-fit:cover; }
.chapter details { border-top:1px solid rgba(41,38,33,.5); }
.chapter summary { list-style:none; display:grid; grid-template-columns:45px 1fr auto; align-items:center; padding:28px 0; cursor:pointer; }
.chapter summary::-webkit-details-marker { display:none; }
.chapter summary span { font:10px Arial,sans-serif; letter-spacing:.15em; }
.chapter summary h3 { margin:0; font-size:clamp(42px,5vw,75px); line-height:1; font-weight:700; }
.chapter summary i { font:32px/1 Arial,sans-serif; font-style:normal; font-weight:200; transition:transform .2s ease; }
.chapter details[open] summary i { transform:rotate(45deg); }
.chapter-copy { padding:15px 0 30px 45px; }
.chapter-lead { margin:0 0 40px; font-size:22px; line-height:1.4; }
.chapter-copy>div { display:grid; grid-template-columns:140px 1fr; gap:28px; border-top:1px solid rgba(41,38,33,.2); padding:22px 0; }
.chapter-copy h4 { margin:0; font-size:17px; }
.chapter-copy p { margin:0; font-size:14px; line-height:1.55; }
.ranges { background:#2d2b27; color:#f5f1e9; padding:180px 0 0; }
.ranges-intro { display:grid; grid-template-columns:1fr 2fr; padding:0 7vw 140px; }
.ranges-intro>span { grid-column:2; width:min(550px,90%); margin-top:45px; font-size:18px; line-height:1.5; opacity:.76; }
.range-card { min-height:900px; padding:130px 7vw; display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; border-top:1px solid rgba(255,255,255,.2); }
.range-card--explorations .range-image { order:2; }
.range-image { position:relative; width:min(100%,560px); aspect-ratio:1; justify-self:center; }
.range-image img { object-fit:cover; }
.range-copy { padding:40px 0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.range-copy>p:first-child { margin:0 0 20px; font:8px Arial,sans-serif; letter-spacing:.25em; }
.range-copy h3 { margin:0; font-size:clamp(55px,6vw,92px); line-height:.95; }
.range-rule { width:100%; height:1px; background:currentColor; opacity:.35; margin:40px 0 18px; }
.range-copy>span { font:9px Arial,sans-serif; letter-spacing:.2em; text-transform:uppercase; }
.range-text { margin:55px 0 45px!important; font-size:19px!important; line-height:1.5; }
.range-copy a { border-bottom:1px solid; padding:0 0 10px; font:8px Arial,sans-serif; letter-spacing:.18em; }
.range-copy a b { margin-left:45px; }
.range-card--explorations { background:#bb4b35; color:#fff7ec; }
.range-card--explorations .range-image img { filter:none; }
.visit { padding:190px 0 160px; }
.visit-image { position:relative; width:min(66vw,780px); aspect-ratio:1; margin:0 auto; }
.visit-image img { object-fit:cover; }
.visit-heading { display:grid; grid-template-columns:1fr 1fr; gap:40px 8vw; padding:130px 7vw 110px; }
.visit-heading>img { width:210px; height:auto; }
.visit-heading :is(h2,h1:where(.bq-main-heading)) { grid-column:2; grid-row:1/3; }
.visit-heading p { grid-column:1; max-width:450px; margin:0; font-size:21px; line-height:1.5; }
.visit-heading span { grid-column:1; font:8px Arial,sans-serif; letter-spacing:.18em; }
.experience-list { margin:0 7vw; border-top:1px solid rgba(41,38,33,.45); }
.experience-list article { display:grid; grid-template-columns:65px .7fr 1.3fr auto; gap:35px; align-items:baseline; border-bottom:1px solid rgba(41,38,33,.3); padding:34px 0; }
.experience-list article>span { font:9px Arial,sans-serif; letter-spacing:.15em; }
.experience-list h3 { margin:0; font-size:36px; }
.experience-list p { margin:0; max-width:580px; font-size:15px; line-height:1.5; }
.experience-list button { border:0; border-bottom:1px solid; padding:0 0 8px; background:none; font:8px Arial,sans-serif; letter-spacing:.18em; }
.experience-list button b { margin-left:25px; }
.reserve { min-height:670px; padding:140px 7vw; display:grid; grid-template-columns:1fr 2fr; align-content:center; background:#47483f; color:#f8f5ef; }
.reserve .light-button { grid-column:2; justify-self:start; margin-top:65px; min-width:300px; height:58px; padding:0 22px; border:1px solid; background:transparent; display:flex; justify-content:space-between; align-items:center; font:8px Arial,sans-serif; letter-spacing:.18em; }
.reserve small { grid-column:2; max-width:580px; margin-top:28px; font:10px Arial,sans-serif; line-height:1.6; opacity:.65; }
.contact { min-height:850px; padding:140px 7vw; display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; background:#efede8; }
.contact form,.booking-panel form { display:grid; gap:30px; }
.contact label,.booking-panel label { display:grid; gap:10px; font:8px Arial,sans-serif; letter-spacing:.2em; }
.contact input,.contact textarea,.booking-panel input,.booking-panel select { width:100%; border:0; border-bottom:1px solid; border-radius:0; padding:10px 0 13px; background:transparent; outline:none; color:inherit; }
.contact textarea { resize:vertical; }
.contact button,.booking-panel form button { height:58px; padding:0 22px; border:1px solid; background:transparent; display:flex; justify-content:space-between; align-items:center; font:8px Arial,sans-serif; letter-spacing:.18em; }
.contact form small,.booking-panel>small { font:9px Arial,sans-serif; line-height:1.5; opacity:.6; }
footer { position:relative; min-height:470px; padding:90px 7vw 78px; display:grid; grid-template-columns:minmax(280px,1.1fr) minmax(0,2.15fr); gap:8vw; align-items:center; background:linear-gradient(180deg,#252522 0%,#20201d 30%,#141413 66%,#000 100%); color:#f5f1e9; }
.footer-brand,.footer-details,.legal { position:relative; z-index:1; }
.footer-logo { width:260px; height:auto; align-self:center; filter:invert(1); object-fit:contain; }
footer small { display:block; margin-bottom:23px; font:7px Arial,sans-serif; letter-spacing:.23em; opacity:.6; }
footer p,footer a { display:block; margin:0 0 10px; font-size:14px; line-height:1.55; }
footer a { margin-top:18px; text-decoration:underline; text-underline-offset:5px; }
.footer-details { display:grid; grid-template-columns:minmax(180px,1.35fr) repeat(3,minmax(110px,1fr)); gap:clamp(18px,2.3vw,42px); align-items:start; transform:translateY(26px); }
.footer-location-name { white-space:nowrap; }
.footer-press-link { display:inline-flex; align-items:center; justify-content:flex-start; gap:4px; width:auto; margin:0; padding:0 0 8px; }
.social-links { display:grid; gap:11px; }
.social-links a { display:flex; align-items:center; gap:10px; margin:0; font-size:14px; line-height:1.25; text-decoration:none; }
.social-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.social-icon { flex:0 0 18px; width:18px; height:18px; object-fit:contain; }
.legal { position:absolute; left:7vw; bottom:27px; font:7px Arial,sans-serif; letter-spacing:.12em; opacity:.48; }
.booking-overlay { position:fixed; z-index:180; inset:0; display:flex; justify-content:flex-end; }
.booking-backdrop { position:absolute; inset:0; border:0; background:rgba(20,19,17,.62); }
.booking-panel { position:relative; width:min(650px,100%); height:100%; overflow:auto; padding:95px 75px; background:var(--paper); box-shadow:-20px 0 80px rgba(0,0,0,.16); }
.booking-panel>p { margin:0 0 25px; font:8px Arial,sans-serif; letter-spacing:.22em; }
.booking-panel :is(h2,h1:where(.bq-main-heading)) { font-size:65px; margin-bottom:60px; }
.booking-panel form button:disabled { cursor:not-allowed; opacity:.4; }
.booking-panel>small { display:block; margin-top:28px; border-top:1px solid rgba(41,38,33,.25); padding-top:20px; }
.booking-panel .booking-description { margin:-12px 0 0; font-size:15px; line-height:1.5; opacity:.72; }
.booking-total { display:flex; align-items:baseline; justify-content:space-between; padding:18px 0; border-top:1px solid rgba(41,38,33,.25); border-bottom:1px solid rgba(41,38,33,.25); }
.booking-total span { font:8px Arial,sans-serif; letter-spacing:.2em; }
.booking-total strong { font-size:30px; }
.close-button { position:absolute; top:78px; right:30px; width:42px; height:42px; border:1px solid; border-radius:50%; background:none; font:26px/1 Arial,sans-serif; }

@media (max-width:1050px) {
  .hero { grid-template-columns:1fr; }
  .hero-image:nth-child(2) { display:none; }
  .site-header { padding-right:22px; }
  .range-card { min-height:760px; }
}
@media (max-width:760px) {
  .site-shell { width:calc(100% - 16px); margin:8px auto; }
  .frame-side { width:8px; }
  .brand-tab { left:30px; width:54px; height:175px; }
  .brand-rollout { top:60px; left:42px; height:46px; font-size:14px; }
  @keyframes rollout { 0%,100% { width:0; padding-left:0; } 28%,67% { width:245px; padding-left:18px; } }
  .site-header { top:8px; left:8px; right:8px; height:90px; padding:16px 16px 0 104px; }
  .header-signature { left:88px; top:14px; font-size:13px; }
  .header-tools { margin-left:auto; }
  .menu-drawer { top:8px; left:8px; right:8px; bottom:8px; min-height:0; overflow:auto; padding:190px 24px 60px; grid-template-columns:1fr; gap:70px; }
  .menu-nav { grid-template-columns:1fr; }
  .menu-nav a { font-size:31px; padding:15px 0; }
  .menu-aside { align-self:start; }
  .hero { padding:105px 18px 36px; }
  .hero-image img { object-position:55% center; }
  .intro-block { min-height:360px; padding:80px 30px 105px; }
  .intro-block p { font-size:7px; }
  .intro-block h1 { font-size:clamp(44px,13vw,64px); }
  .house { padding:130px 24px 150px; }
  .section-heading,.ranges-intro,.reserve,.contact { grid-template-columns:1fr; }
  .section-heading :is(h2,h1:where(.bq-main-heading)),.ranges-intro :is(h2,h1:where(.bq-main-heading)) { margin-top:34px; }
  :is(h2,h1:where(.bq-main-heading)) { font-size:clamp(52px,15vw,78px); }
  .section-lead { width:auto; margin:55px 0 90px; }
  .chapter-list { gap:125px; }
  .chapter { min-height:0; grid-template-columns:1fr; gap:0; }
  .chapter:nth-child(even) .chapter-image { order:0; }
  .chapter-image { width:88%; margin-bottom:38px; }
  .chapter summary { grid-template-columns:35px 1fr auto; }
  .chapter-copy { padding-left:35px; }
  .chapter-copy>div { grid-template-columns:1fr; gap:8px; }
  .ranges { padding-top:100px; }
  .ranges-intro { padding:0 24px 90px; }
  .ranges-intro>span { grid-column:1; margin-top:38px; }
  .range-card { grid-template-columns:1fr; min-height:0; padding:75px 24px 90px; gap:55px; }
  .range-card--explorations .range-image { order:0; }
  .range-image { width:88%; }
  .range-copy { padding:0; }
  .range-text { margin:40px 0!important; }
  .visit { padding:120px 0; }
  .visit-image { width:78vw; }
  .visit-heading { grid-template-columns:1fr; padding:90px 24px 70px; }
  .visit-heading :is(h2,h1:where(.bq-main-heading)),.visit-heading p,.visit-heading span { grid-column:1; grid-row:auto; }
  .visit-heading :is(h2,h1:where(.bq-main-heading)) { margin-top:28px; }
  .experience-list { margin:0 24px; }
  .experience-list article { grid-template-columns:35px 1fr; gap:12px 15px; }
  .experience-list p,.experience-list button { grid-column:2; }
  .reserve { padding:100px 24px; }
  .reserve :is(h2,h1:where(.bq-main-heading)) { margin-top:32px; }
  .reserve .light-button,.reserve small { grid-column:1; }
  .contact { padding:100px 24px; gap:75px; }
  footer { grid-template-columns:1fr 1fr; padding:85px 24px 90px; gap:45px 30px; }
  .footer-logo { grid-column:1/-1; width:230px; }
  .legal { left:24px; right:24px; }
  .booking-panel { padding:85px 28px 50px; }
  .booking-panel :is(h2,h1:where(.bq-main-heading)) { font-size:52px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .site-header { transition:none; } .brand-tab--arrival img { animation:none; } .brand-rollout { display:none; } }

/* Editorial, multi-page direction */
.brand-tab { z-index:140; left:clamp(64px,5.5vw,84px); width:55px; height:177px; }
.brand-tab--arrival { animation:tab-reveal 1s cubic-bezier(.77,0,.18,1) both; }
.brand-tab--arrival img { animation:none; }
.brand-rollout { top:62px; left:44px; height:45px; font-size:15px; animation:rollout-refined 2.5s cubic-bezier(.77,0,.18,1) .72s both; }
@keyframes tab-reveal { 0% { clip-path:inset(0 0 100% 0); opacity:0; } 100% { clip-path:inset(0); opacity:1; } }
@keyframes rollout-refined { 0%,100% { width:0; padding-left:0; } 28%,68% { width:280px; padding-left:22px; } }
.persistent-tools { position:fixed; z-index:130; top:28px; right:40px; height:32px; display:flex; align-items:center; gap:8px; padding:4px 8px; color:var(--ink); background:rgba(255,254,251,.9); backdrop-filter:blur(8px); font:10px Arial,sans-serif; letter-spacing:.12em; }
.persistent-tools i { width:1px; height:10px; background:currentColor; opacity:.45; }
.persistent-tools .hamburger { width:34px; height:24px; padding:2px 0 2px 11px; border:0; background:none; }
.persistent-tools .hamburger b { display:block; height:1px; margin:5px 0; background:currentColor; transition:transform .2s ease,opacity .2s ease; }
.menu-drawer { z-index:120; top:12px; padding-top:125px; }
.menu-nav a { grid-template-columns:1fr; }

.hero { position:relative; padding:34px 3.2vw 24px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(12px,1.6vw,26px); }
.hero-image { aspect-ratio:1.06; }
.hero-signature { position:absolute; z-index:3; top:38px; left:115px; margin:0; color:#fff; text-shadow:none; font-family:'Sorts Mill Goudy',Georgia,serif; font-size:clamp(18px,1.8vw,27px); line-height:1.03; letter-spacing:.06em; }
.hero-signature em { color:#da322c; font-style:normal; }
.intro-block { min-height:650px; padding:120px 6vw; }
.intro-block>p { margin:0 0 12px; font-family:'Minion Variable',Georgia,serif; font-size:clamp(34px,4.6vw,68px); font-weight:700; line-height:1; letter-spacing:-.025em; text-transform:none; }
.intro-block h1 { font-size:clamp(52px,6.2vw,92px); line-height:.92; }
.intro-story { width:min(660px,70vw); margin-top:75px; text-align:left; }
.intro-story p { margin:0; font-size:19px; line-height:1.55; }
.intro-story p { font-family:'Minion Variable',Georgia,serif; font-weight:400; font-style:normal; letter-spacing:0; }

.house-preview { padding:190px 6vw 230px; }
.section-heading { grid-template-columns:.68fr 2fr; }
.section-heading>p,.ranges-intro>p,.contact>div>p,.reserve>p { margin:2px 0 0; font-family:'Minion Variable',Georgia,serif; font-size:clamp(25px,2.4vw,38px); font-weight:700; line-height:1; letter-spacing:-.015em; text-transform:none; }
.editorial-pair { margin-top:125px; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr); gap:6vw; align-items:end; }
.editorial-image { position:relative; width:100%; aspect-ratio:1.08; }
.editorial-image img { object-fit:cover; }
.editorial-video { position:relative; width:100%; overflow:hidden; background:#252522; }
.editorial-video video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.editorial-video--wide { aspect-ratio:1.85; }
.ranges-home-video { width:calc(100% - 12vw); margin:0 6vw 145px; aspect-ratio:1.78; }
.page-title-video,.visit-title-video { width:100%; aspect-ratio:1.78; }
.page-intro-video { width:calc(100% - 2 * var(--page-media-inset)); margin:0 var(--page-media-inset) 155px; aspect-ratio:1.78; }
.editorial-copy { padding-bottom:7%; }
.editorial-copy p { margin:0 0 48px; font-size:22px; line-height:1.5; }
.editorial-copy a,.visit-preview-copy a { display:inline-block; padding-bottom:9px; border-bottom:1px solid; font:8px Arial,sans-serif; letter-spacing:.18em; }
.editorial-copy a span { margin-left:35px; }

.page-masthead { min-height:720px; padding:190px 6vw 110px; display:grid; align-content:center; }
.masthead-lead { width:min(670px,55vw); margin:90px 0 0 25.4%; font-size:24px; line-height:1.45; }
.chapter-list { padding:20px 0 220px; gap:0; }
.chapter { min-height:900px; padding:120px 6vw; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:6vw; align-items:center; }
.chapter:nth-child(even) { grid-template-columns:minmax(320px,.65fr) minmax(0,1.35fr); background:#f1efe9; }
.chapter:nth-child(even) .chapter-image { order:2; }
.chapter-image { width:100%; max-width:none; aspect-ratio:1.04; }
.chapter-image--archive { width:min(76%,620px); aspect-ratio:.75; }
.chapter-image--archive img { object-fit:contain!important; }
.chapter-content h3 { margin:0 0 42px; padding-bottom:24px; border-bottom:1px solid rgba(41,38,33,.42); font-size:clamp(58px,6vw,92px); line-height:.94; }
.chapter-lead { margin:0 0 50px; font-size:23px; }
.chapter-copy { padding:0; }
.chapter-copy>div { grid-template-columns:120px 1fr; padding:24px 0; }
.chapter-copy p { font-size:15px; }

.ranges { padding:0; background:var(--paper); color:var(--ink); }
.ranges:not(.ranges--home) { --ranges-paper:#faf9f5; background:var(--ranges-paper); }
.ranges-intro { min-height:690px; padding:170px 6vw 130px; align-content:center; }
.ranges-intro>span { font-size:24px; opacity:1; }
.range-card { min-height:930px; border:0; }
.range-card--collection { background:#35322d; color:#f5f1e9; }
.range-card--explorations { background:#bb4b35; color:#fff7ec; }
.ranges--home .ranges-intro { min-height:620px; }
.range-preview-grid { display:grid; grid-template-columns:1fr 1fr; }
.range-card--compact { min-height:760px; padding:85px 5vw; grid-template-columns:1fr; gap:52px; align-content:start; }
.range-card--compact .range-image { width:100%; max-width:520px; }
.range-card--compact .range-copy { padding:0; }
.range-card--compact .range-copy h3 { font-size:clamp(50px,5.2vw,78px); }
.range-card--compact .range-copy a { margin-top:42px; }
.range-image--bottle { display:flex; align-items:center; justify-content:center; }
.range-image--bottle img { object-fit:cover!important; object-position:center!important; padding:0!important; }
.range-card--collection .range-image--bottle { background:#f5f1e9; }
.range-card--explorations .range-image--bottle { background:#26221f; }

.product-universe { padding:150px 6vw 190px; }
.product-universe>header { display:flex; flex-direction:column; align-items:flex-start; margin-bottom:88px; }
.product-universe>header>p { margin:0 0 28px; font:8px Arial,sans-serif; letter-spacing:.22em; }
.product-universe>header :is(h2,h1:where(.bq-main-heading)) { font-size:clamp(62px,8vw,124px); }
.product-universe>header>span { width:min(610px,85%); margin-top:44px; font-size:22px; line-height:1.48; }
.product-universe--collection { background:#35322d; color:#f5f1e9; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:76px 4.5vw; }
.product-card { min-width:0; padding:0; background:#f5f1e9; color:var(--ink); }
.product-media { position:relative; aspect-ratio:1; display:flex; align-items:center; justify-content:center; background:transparent; overflow:hidden; }
.product-bottle { position:relative; width:100%; height:100%; }
.product-bottle img { object-fit:cover!important; object-position:center!important; padding:0!important; }
.product-media--pending { background:rgba(255,255,255,.12); }
.product-visual-pending { width:calc(100% - 48px); height:calc(100% - 48px); display:flex; align-items:center; justify-content:center; border:1px solid currentColor; opacity:.5; }
.product-visual-pending span { font:12px Arial,sans-serif; letter-spacing:.16em; }
.product-copy { padding:28px 28px 36px; }
.product-meta { margin:0 0 18px; font:12px/1.5 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.product-copy h3,.product-copy h4 { margin:0 0 12px; font-size:clamp(28px,3vw,42px); line-height:1.1; }
.product-copy>p { width:100%; margin:0; font-size:18px; line-height:1.5; }
.product-universe--explorations { background:#bb4b35; color:#fff7ec; }
.product-card--free { background:#26221f; color:#fff8ee; }
.family-block { margin-top:120px; }
.family-block:first-of-type { margin-top:0; }
.family-heading { margin:0 0 32px; padding-top:26px; border-top:1px solid rgba(255,248,238,.45); }
.family-heading h3 { margin:0; font-size:clamp(40px,4.2vw,58px); line-height:1.08; }

.visit-preview { padding:210px 6vw; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr); gap:7vw; align-items:center; }
.visit-preview-image { position:relative; width:100%; aspect-ratio:1.04; }
.visit-preview-image img { object-fit:cover; }
.visit-preview-copy>img { width:190px; height:auto; margin-bottom:65px; }
.visit-preview-copy { min-width:0; }
.visit-preview-copy :is(h2,h1:where(.bq-main-heading)) { max-width:100%; margin-bottom:48px; font-size:clamp(50px,5.2vw,80px); }
.visit-preview-copy p { margin:0 0 32px; font-size:20px; line-height:1.5; }
.visit-preview-copy>span { display:block; margin-bottom:48px; font:8px Arial,sans-serif; letter-spacing:.18em; }
.visit { padding-top:0; }
.visit-image { width:calc(100% - 6.4vw); max-width:none; aspect-ratio:1.72; }
.experience-list article { grid-template-columns:.72fr 1.28fr auto; }

.reserve--page { min-height:calc(100vh - 24px); padding-top:180px; }
.reserve h1,.contact h1 { margin:0; font-size:clamp(58px,7vw,110px); line-height:.88; letter-spacing:-.035em; }
.reserve-copy { grid-column:2; max-width:560px; margin-top:65px; }
.reserve-copy>p { font-size:22px; line-height:1.5; }
.reserve-copy .light-button { grid-column:auto; }
.contact { padding-top:180px; }
.contact-details { margin-top:70px; font-size:18px; line-height:1.55; }
.contact-email { overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:3px; }
.press-news { display:grid; grid-template-columns:1fr 1fr; }
.press-news>article { min-height:760px; padding:130px 7vw; display:flex; flex-direction:column; justify-content:center; }
.press-card { background:#e7e6df; }
.newsletter-card { background:#536052; color:#f8f5ec; }
.press-news article>p { margin:0 0 42px; font:8px Arial,sans-serif; letter-spacing:.24em; }
.press-news :is(h2,h1:where(.bq-main-heading)) { margin:0; font-size:clamp(58px,6vw,92px); line-height:.88; letter-spacing:-.035em; }
.press-news article>span { max-width:520px; margin-top:48px; font-size:19px; line-height:1.55; }
.press-news article>small { display:block; max-width:480px; margin-top:50px; padding-top:22px; border-top:1px solid currentColor; font:9px/1.5 Arial,sans-serif; letter-spacing:.05em; opacity:.65; }
.press-download { display:flex; justify-content:space-between; width:min(390px,100%); margin-top:52px; padding:20px 0; border-top:1px solid; border-bottom:1px solid; font:8px Arial,sans-serif; letter-spacing:.18em; }
.newsletter-form { display:grid; gap:26px; max-width:520px; margin-top:52px; }
.newsletter-form>label:first-child { display:grid; gap:10px; font:8px Arial,sans-serif; letter-spacing:.2em; }
.newsletter-form input[type="email"] { width:100%; border:0; border-bottom:1px solid; border-radius:0; padding:12px 0 14px; background:transparent; color:inherit; }
.newsletter-consent { display:grid; grid-template-columns:16px 1fr; gap:12px; align-items:start; font:9px/1.5 Arial,sans-serif; letter-spacing:.03em; }
.newsletter-consent input { width:15px; height:15px; margin:1px 0 0; accent-color:#f8f5ec; }
.newsletter-form button { height:58px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; border:1px solid currentColor; background:transparent; color:inherit; font:8px Arial,sans-serif; letter-spacing:.16em; }
.newsletter-form button:disabled,.newsletter-form input:disabled { opacity:.62; cursor:not-allowed; }
.newsletter-form>small { font:9px/1.5 Arial,sans-serif; opacity:.66; }

@media (max-width:1050px) {
  .hero { grid-template-columns:1fr; padding-top:26px; }
  .hero-image:nth-child(2) { display:none; }
  .hero-image { aspect-ratio:1; }
  .range-preview-grid { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .brand-tab { left:clamp(58px,16vw,66px); width:46px; height:148px; }
  .brand-rollout { top:52px; left:36px; height:39px; font-size:12px; }
  @keyframes rollout-refined { 0%,100% { width:0; padding-left:0; } 28%,68% { width:220px; padding-left:16px; } }
  .persistent-tools { top:18px; right:17px; }
  .menu-drawer { padding-top:150px; }
  .hero { padding:18px 14px 28px; }
  .hero-signature { top:27px; left:82px; font-size:16px; }
  .intro-block { min-height:560px; padding:100px 24px; }
  .intro-block>p { font-size:35px; }
  .intro-block h1 { font-size:48px; }
  .intro-story { width:100%; margin-top:60px; }
  .intro-story p { font-size:17px; }
  .house-preview { padding:125px 24px 150px; }
  .section-heading { grid-template-columns:1fr; }
  .section-heading>p,.ranges-intro>p { font-size:28px; }
  .section-heading :is(h2,h1:where(.bq-main-heading)),.ranges-intro :is(h2,h1:where(.bq-main-heading)) { margin-top:28px; }
  .editorial-pair,.visit-preview { margin-top:75px; grid-template-columns:1fr; gap:55px; }
  .editorial-copy { padding:0; }
  .page-masthead { min-height:620px; padding:150px 24px 90px; }
  .masthead-lead { width:auto; margin:60px 0 0; font-size:20px; }
  .chapter-list { padding-bottom:100px; }
  .chapter,.chapter:nth-child(even) { min-height:0; padding:75px 24px 95px; grid-template-columns:1fr; gap:48px; }
  .chapter:nth-child(even) .chapter-image { order:0; }
  .chapter-content h3 { font-size:58px; }
  .ranges-intro,.ranges--home .ranges-intro { min-height:560px; padding:130px 24px 90px; }
  .ranges-intro>span { font-size:20px; }
  .range-card--compact { padding:70px 24px 85px; }
  .product-universe { padding:105px 24px 125px; }
  .product-universe>header { grid-template-columns:1fr; margin-bottom:75px; }
  .product-universe>header :is(h2,h1:where(.bq-main-heading)) { margin-top:24px; font-size:62px; }
  .product-universe>header>span { grid-column:1; width:100%; margin-top:35px; font-size:19px; }
  .product-grid { grid-template-columns:1fr; gap:70px; }
  .product-copy { padding:24px 22px 32px; }
  .product-copy h3,.product-copy h4 { font-size:34px; }
  .visit-preview { padding:130px 24px; }
  .visit-preview-copy>img { margin-bottom:35px; }
  .visit-image { width:calc(100% - 28px); aspect-ratio:1; }
  .experience-list article { grid-template-columns:1fr; gap:12px; }
  .experience-list p,.experience-list button { grid-column:1; }
  .reserve--page { min-height:760px; padding-top:150px; }
  .reserve h1,.contact h1 { margin-top:28px; font-size:58px; }
  .reserve-copy { grid-column:1; margin-top:45px; }
  .contact { padding-top:150px; }
  .press-news { grid-template-columns:1fr; }
  .press-news>article { min-height:620px; padding:95px 24px; }
  .press-news :is(h2,h1:where(.bq-main-heading)) { font-size:55px; }
  .press-news article>span { margin-top:38px; font-size:18px; }
}
@media (prefers-reduced-motion:reduce) { .brand-tab--arrival { animation:none; } .brand-rollout { display:none; } }

/* Quiet, OGATA-inspired navigation */
.menu-drawer { top:12px; bottom:12px; min-height:0; padding:118px 7vw 74px; grid-template-columns:minmax(0,1.18fr) minmax(300px,.62fr); gap:9vw; align-items:stretch; background:var(--menu-green); color:var(--menu-ink); border-color:rgba(247,243,234,.25); }
.menu-main { display:flex; flex-direction:column; justify-content:flex-end; min-width:0; }
.menu-label { margin:0 0 34px; font:8px Arial,sans-serif; letter-spacing:.26em; }
.menu-nav { display:grid; grid-template-columns:1fr; margin-top:0; }
.menu-nav a { display:block; padding:16px 0 14px; border-bottom:1px solid rgba(247,243,234,.34); font-size:clamp(29px,3.25vw,48px); line-height:1; letter-spacing:-.015em; }
.menu-nav a:first-child { border-top:1px solid rgba(247,243,234,.34); }
.menu-aside { min-height:100%; align-self:stretch; padding:0 0 0 5vw; border-left:1px solid rgba(247,243,234,.28); display:flex; flex-direction:column; justify-content:space-between; }
.menu-hgf-logo { width:min(230px,85%); height:auto; }
.menu-visit { padding-bottom:8px; }
.menu-visit>p { margin:0 0 22px; font:8px Arial,sans-serif; letter-spacing:.2em; }
.menu-visit strong { display:block; font-size:27px; line-height:1.25; font-weight:700; }
.menu-visit>span { display:block; margin-top:24px; font:9px Arial,sans-serif; letter-spacing:.17em; }
.menu-visit>a { display:inline-block; margin-top:44px; padding-bottom:8px; border-bottom:1px solid; font:8px Arial,sans-serif; letter-spacing:.16em; }

.ranges>.ranges-intro:not(.ranges-intro--compact) { min-height:760px; padding:170px 8vw 145px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background-color:var(--ranges-paper,#faf9f5); }
.ranges>.ranges-intro:not(.ranges-intro--compact)>p { margin:0 0 38px; font-size:25px; }
.ranges>.ranges-intro:not(.ranges-intro--compact)>:is(h2,h1:where(.bq-main-heading)) { max-width:980px; }
.ranges>.ranges-intro:not(.ranges-intro--compact)>span { width:min(680px,90%); margin:62px auto 0; font-size:22px; line-height:1.55; }

@media (max-width:760px) {
  .menu-drawer { top:8px; bottom:8px; padding:125px 24px 45px; grid-template-columns:1fr; gap:65px; overflow:auto; }
  .menu-label { margin-bottom:25px; }
  .menu-nav a { padding:13px 0; font-size:30px; }
  .menu-aside { min-height:auto; padding:50px 0 0; border-left:0; border-top:1px solid rgba(247,243,234,.28); gap:55px; }
  .menu-hgf-logo { width:180px; }
  .menu-visit strong { font-size:23px; }
  .ranges>.ranges-intro:not(.ranges-intro--compact) { min-height:650px; padding:145px 24px 105px; }
  .ranges>.ranges-intro:not(.ranges-intro--compact)>p { font-size:24px; margin-bottom:30px; }
  .ranges>.ranges-intro:not(.ranges-intro--compact)>span { width:100%; margin-top:45px; font-size:19px; }
}

/* Shared title hierarchy, edge-to-edge imagery and language control */
.persistent-tools>button:not(.hamburger) { position:relative; display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:0; padding:6px 4px; background:transparent; opacity:.65; }
.language-flag { display:block; width:24px; height:16px; object-fit:contain; }
.persistent-tools>button:not(.hamburger):hover { opacity:1; }
.persistent-tools>button:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.persistent-tools>button.language-active { opacity:1; }
.persistent-tools>button.language-active::after { content:''; position:absolute; left:4px; right:4px; bottom:2px; height:1px; background:currentColor; }
.hero { padding:0; gap:0; }
.hero-image { aspect-ratio:1.02; }
.hero-signature { top:28px; left:clamp(175px,14vw,220px); }
.centered-intro .intro-story { margin-left:auto; margin-right:auto; text-align:center; }
.section-heading--centered { display:flex; flex-direction:column; align-items:center; text-align:center; }
.section-heading--centered>p { margin:0 0 38px; }
.section-heading--centered :is(h2,h1:where(.bq-main-heading)) { max-width:980px; }
.centered-lead { width:min(690px,74vw); margin:68px auto 115px; text-align:center; }
.centered-lead p { margin:0 0 42px; font-size:22px; line-height:1.5; }
.centered-lead a { display:inline-block; padding-bottom:9px; border-bottom:1px solid; font:8px Arial,sans-serif; letter-spacing:.18em; }
.centered-lead a span { margin-left:34px; }
.house-preview .section-heading--centered { align-items:flex-start; text-align:left; }
.house-preview .section-heading--centered>p { margin-bottom:28px; }
.house-preview .centered-lead { margin-left:0; margin-right:0; text-align:left; }
.ranges--home .ranges-intro--compact { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; text-align:left; }
.ranges--home .ranges-intro--compact>p { margin:0 0 28px; }
.ranges--home .ranges-intro--compact>span { width:min(610px,90%); margin-top:44px; }
.editorial-image--wide { width:100%; aspect-ratio:1.85; }
.page-masthead--house { min-height:690px; }
.masthead-lead--centered { width:min(690px,72vw); margin:72px auto 0; text-align:center; }
.page-visual-pair { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.page-visual-pair>div { position:relative; aspect-ratio:1.28; overflow:hidden; }
.page-visual-pair img { object-fit:cover; }
.page-title-image { position:relative; width:100%; aspect-ratio:1.78; overflow:hidden; }
.page-title-image img { object-fit:cover; object-position:center 43%; }
.page-title-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
.page-title-pair>div { position:relative; aspect-ratio:1; overflow:hidden; }
.page-title-pair img { object-fit:cover; }
/* Correct the VO’s slight lean while keeping the square fully covered. */
.page-title-pair--rums>div:first-child img { transform:rotate(-.7deg) scale(1.014); }
.page-title-pair--house>div:first-child img { object-position:center 43%; }
.page-title-pair--house>div:last-child img { object-position:center; }
.page-title-pair--visit>div:first-child img { object-position:52% center; }
.page-title-pair--visit>div:last-child img { object-position:center 39%; }
.visit-image--title { width:100%; aspect-ratio:1.78; box-shadow:none; }
.visit-image--title img { object-position:center; }
.visit-heading--centered { display:flex; flex-direction:column; align-items:center; text-align:center; gap:0; padding:125px 7vw 105px; }
.visit-heading--centered>img { width:210px; margin-bottom:55px; }
.visit-heading--centered :is(h2,h1:where(.bq-main-heading)) { margin-bottom:50px; }
.visit-heading--centered p { max-width:650px; margin:0 0 38px; font-size:21px; line-height:1.5; }
.visit-heading--centered span { font:8px Arial,sans-serif; letter-spacing:.18em; }
.menu-aside { justify-content:flex-end; gap:38px; }
.menu-hgf-logo { margin-bottom:0; }

@media (max-width:760px) {
  .hero { padding:0; }
  .hero-image { aspect-ratio:1; }
  .hero--single .hero-image { aspect-ratio:1; }
  .hero--single .hero-image img { object-position:57% center; }
  .hero-signature { top:20px; left:clamp(125px,33vw,148px); }
  .centered-intro .intro-story,.centered-lead,.masthead-lead--centered { width:100%; }
  .section-heading--centered>p { margin-bottom:28px; }
  .centered-lead { margin:48px auto 75px; }
  .editorial-image--wide { aspect-ratio:1; }
  .editorial-video--wide,.ranges-home-video,.page-title-video,.visit-title-video { aspect-ratio:1; }
  .ranges-home-video { width:calc(100% - 48px); margin:0 24px 90px; }
  :root { --page-media-inset:24px; --page-frame:8px; }
  .page-intro-video { width:calc(100% - 2 * var(--page-media-inset)); margin:0 var(--page-media-inset) 95px; aspect-ratio:1; }
  .chapter-image--archive { width:82%; aspect-ratio:.75; }
  .page-visual-pair { grid-template-columns:1fr; }
  .page-visual-pair>div { aspect-ratio:1.25; }
  .page-visual-pair>div:nth-child(2) { display:none; }
  .page-title-image,.visit-image--title { aspect-ratio:1; }
  .page-title-image img { object-position:42% center; }
  /* Mobile page headers share one full-width square; the desktop pair stays unchanged. */
  .page-title-pair { grid-template-columns:1fr; }
  .page-title-pair>div { width:100%; aspect-ratio:1; }
  .page-title-pair>div:nth-child(2) { display:none; }
  .page-title-pair--visit>div:first-child img { object-position:55% center; }
  .page-title-pair--visit>div:last-child img { object-position:center 36%; }
  .visit-image--title img { object-position:58% center; }
  .visit-heading--centered { padding:90px 24px 72px; }
  .visit-heading--centered>img { margin-bottom:38px; }
  .visit-heading--centered :is(h2,h1:where(.bq-main-heading)) { margin-bottom:35px; }
  .menu-aside { gap:35px; }
  .family-block { margin-top:88px; }
  .family-heading { margin-bottom:32px; }
  .family-heading h3 { font-size:40px; }
}

/* Mobile refinement: lighter palette, proportional tab and denser rhum rhythm */
@media (max-width:760px) {
  .brand-tab {
    left:clamp(38px,11vw,48px);
    width:clamp(32px,9vw,40px);
    height:auto;
    aspect-ratio:33.566406 / 108.5;
  }
  .hero-signature { left:clamp(95px,26vw,118px); }

  footer .footer-logo {
    justify-self:center;
    width:min(210px,72vw);
  }

  .ranges>.ranges-intro:not(.ranges-intro--compact) {
    min-height:auto;
    padding:100px 24px 78px;
  }
  .ranges>.ranges-intro:not(.ranges-intro--compact)>p { margin-bottom:22px; }
  .ranges>.ranges-intro:not(.ranges-intro--compact)>span {
    margin-top:30px;
    font-size:17px;
    line-height:1.42;
  }
  .ranges--home .ranges-intro--compact {
    min-height:auto;
    padding:95px 24px 70px;
  }
  .ranges--home .ranges-intro--compact>span {
    margin-top:28px;
    font-size:18px;
    line-height:1.42;
  }
  .page-intro-video { margin-bottom:70px; }
  .range-card--compact {
    min-height:0;
    padding:54px 20px 66px;
    gap:34px;
  }
  .range-card--compact .range-copy a { margin-top:28px; }

  .product-universe { padding:78px 18px 92px; }
  .product-universe>header { margin-bottom:50px; }
  .product-universe>header>p { margin-bottom:18px; }
  .product-universe>header :is(h2,h1:where(.bq-main-heading)) { margin-top:0; font-size:54px; }
  .product-universe>header>span {
    margin-top:24px;
    font-size:17px;
    line-height:1.42;
  }
  .family-block { margin-top:72px; }
  .family-heading { margin-bottom:24px; padding-top:22px; }
  .family-heading h3 { font-size:36px; }
  .product-grid { gap:44px; }
  .product-copy { padding:24px 20px 28px; }
  .product-meta { margin-bottom:16px; }
  .product-copy h3,.product-copy h4 {
    margin:0 0 12px;
    font-size:30px;
  }
  .product-copy>p {
    width:100%;
    font-size:16px;
    line-height:1.4;
  }
}

/* Booking, age gate and seasonal callout */
.brand-tab { --brand-compact-width:55px; top:0; height:auto; aspect-ratio:33.566406 / 108.5; transition:left .38s cubic-bezier(.77,0,.18,1),width .38s cubic-bezier(.77,0,.18,1),transform .38s cubic-bezier(.77,0,.18,1); }
/* Keep the tab centred in the same fixed gutter as the inset videos. */
.brand-tab--scrolled { left:calc(var(--page-frame) + var(--page-media-inset) / 2 - var(--brand-compact-width) / 2); width:var(--brand-compact-width); transform:none; }
/* Pointer feedback pivots the ribbon from its top without shifting its anchor. */
.brand-tab { transform-origin:top center; }
/* A fixed booking shortcut with brief pointer feedback only. */
.home-callout { position:fixed; z-index:68; top:76px; right:40px; width:72px; aspect-ratio:1; padding:10px; border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; color:#fffaf1; }
.home-callout--red { background:var(--red); box-shadow:0 16px 42px rgba(36,27,22,.2); }
.home-callout strong { font-size:15px; line-height:1.1; }
.home-callout:focus-visible { outline:3px solid #fffaf1; outline-offset:4px; }

.reserve--page { display:block; min-height:0; padding:0; background:var(--paper); color:var(--ink); }
/* Match the booking masthead to the paired square-image headers: 2:1 on desktop, 1:1 on mobile. */
.reserve-heading { min-height:0; aspect-ratio:2 / 1; padding:clamp(78px,9vw,150px) 8vw clamp(56px,7vw,110px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#47483f; color:#f8f5ef; }
.reserve-heading>p { margin:0 0 36px; font-size:28px; font-weight:700; }
.reserve-heading h1 { max-width:1050px; line-height:.94; }
.reserve-heading>span { width:min(660px,88%); margin-top:58px; font-size:21px; line-height:1.5; }
.reserve-experiences { padding:120px 7vw 150px; }
.reserve-experiences>article { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; padding:80px 0; border-top:1px solid rgba(41,38,33,.34); }
.reserve-experiences>article:last-child { border-bottom:1px solid rgba(41,38,33,.34); }
.reserve-experiences article>div:first-child>p,.reserve-open header>p { margin:0 0 22px; font:8px Arial,sans-serif; letter-spacing:.22em; }
.reserve-experiences :is(h2,h1:where(.bq-main-heading)) { font-size:clamp(55px,6.5vw,92px); }
.reserve-experiences article>div:last-child { display:flex; flex-direction:column; align-items:flex-start; }
.reserve-experiences article>div:last-child>span { max-width:560px; font-size:21px; line-height:1.5; }
.reserve-experiences strong { margin-top:42px; font-size:32px; }
.reserve-experiences strong small { font-size:15px; font-weight:400; }
.reserve-experiences button { margin-top:48px; min-width:300px; height:56px; padding:0 20px; border:1px solid; background:transparent; display:flex; align-items:center; justify-content:space-between; font:8px Arial,sans-serif; letter-spacing:.17em; }
.reserve-open { padding:130px 7vw 150px; background:#ebe8e1; }
.reserve-open>header { display:grid; grid-template-columns:.82fr 1.18fr; gap:8vw; align-items:start; }
.reserve-open :is(h2,h1:where(.bq-main-heading)) { font-size:clamp(58px,7vw,105px); }
.reserve-open>div { margin:100px 0 65px 42%; display:grid; grid-template-columns:1fr 1fr; gap:5vw; }
.reserve-open article { border-top:1px solid rgba(41,38,33,.34); padding-top:26px; }
.reserve-open h3 { margin:0 0 18px; font-size:34px; }
.reserve-open article p { margin:0; font-size:17px; line-height:1.5; }
.reserve-open>span { display:block; margin-left:42%; font:9px Arial,sans-serif; letter-spacing:.18em; }

.footer-brand { align-self:center; display:flex; flex-direction:column; align-items:flex-start; }
.footer-brand .footer-logo { align-self:auto; }
.footer-signature { margin:24px 0 0!important; font-family:'Sorts Mill Goudy',Georgia,serif; font-size:18px!important; line-height:1.05!important; letter-spacing:.055em; }
.footer-signature em { color:#db3d34; font-style:normal; }
.title-accent { color:var(--red); font-style:normal; }

.age-gate { position:fixed; z-index:300; inset:0; padding:24px; display:flex; align-items:center; justify-content:center; background:#252522; color:#f5f1e9; }
.age-gate-card { width:min(780px,100%); padding:82px 60px 72px; display:flex; flex-direction:column; align-items:center; text-align:center; border:1px solid rgba(245,241,233,.3); }
.age-gate-card>img { width:230px; height:auto; margin-bottom:58px; filter:invert(1); }
.age-gate-card>p { margin:0 0 38px; font:8px Arial,sans-serif; letter-spacing:.22em; }
.age-gate-card :is(h2,h1:where(.bq-main-heading)) { max-width:650px; font-size:clamp(48px,6vw,78px); }
.age-gate-card>span { width:min(510px,90%); margin-top:36px; font-size:17px; line-height:1.5; }
.age-gate-card>div { margin-top:52px; display:flex; gap:18px; }
.age-gate-card button { min-width:180px; height:54px; padding:0 18px; border:1px solid currentColor; background:transparent; color:inherit; font:8px Arial,sans-serif; letter-spacing:.17em; }
.age-gate-card button:first-child { display:flex; align-items:center; justify-content:space-between; background:#f5f1e9; color:#252522; }

@media (max-width:760px) {
  /* Extend the black ribbon above the fixed anchor to cover Safari's top inset. */
  .brand-tab { --brand-compact-width:28px; top:0; overflow:visible; }
  .brand-tab--arrival { animation:none; clip-path:none; }
  .brand-tab::before { content:''; position:absolute; left:0; right:0; bottom:calc(100% - 1px); height:calc(40px + env(safe-area-inset-top,0px)); background:#000; pointer-events:none; }
  .brand-tab--scrolled { left:2px; }
  .home-callout { top:60px; right:17px; width:64px; padding:8px; }
  .home-callout strong { font-size:13px; }
  .reserve-heading { min-height:0; aspect-ratio:1; padding:64px 20px 42px; }
  .reserve-heading>p { margin-bottom:22px; font-size:25px; }
  .reserve-heading h1 { font-size:clamp(44px,14vw,55px); }
  .reserve-heading>span { width:100%; margin-top:42px; font-size:18px; }
  .reserve-experiences { padding:55px 20px 80px; }
  .reserve-experiences>article { grid-template-columns:1fr; gap:32px; padding:58px 0; }
  .reserve-experiences :is(h2,h1:where(.bq-main-heading)) { font-size:50px; }
  .reserve-experiences article>div:last-child>span { font-size:18px; }
  .reserve-experiences strong { margin-top:28px; font-size:28px; }
  .reserve-experiences button { width:100%; min-width:0; margin-top:34px; }
  .reserve-open { padding:80px 20px 95px; }
  .reserve-open>header { grid-template-columns:1fr; gap:15px; }
  .reserve-open :is(h2,h1:where(.bq-main-heading)) { font-size:52px; }
  .reserve-open>div { margin:65px 0 45px; grid-template-columns:1fr; gap:45px; }
  .reserve-open>span { margin-left:0; }
  footer .footer-brand { grid-column:1/-1; justify-self:center; align-items:center; }
  footer { grid-template-columns:1fr; }
  .footer-details { grid-column:1; grid-template-columns:1fr 1fr; width:100%; transform:none; }
  .footer-signature { width:min(210px,72vw); text-align:left; }
  .age-gate { padding:8px; }
  .age-gate-card { min-height:calc(100vh - 16px); padding:70px 24px 55px; justify-content:center; }
  .age-gate-card>img { width:185px; margin-bottom:45px; }
  .age-gate-card :is(h2,h1:where(.bq-main-heading)) { font-size:48px; }
  .age-gate-card>span { width:100%; margin-top:30px; }
  .age-gate-card>div { width:100%; margin-top:42px; flex-direction:column; }
  .age-gate-card button { width:100%; }
}

@media (min-width:761px) and (max-width:1100px) {
  .brand-tab { --brand-compact-width:36px; }
}

/* Scale from the existing 55px tab at 1536px, retaining its aspect ratio
   and the shared gutter alignment when scrolled. */
@media (min-width:1536px) {
  .brand-tab { --brand-compact-width:calc(100vw * 55 / 1536); width:var(--brand-compact-width); }
  .brand-tab:not(.brand-tab--scrolled) { left:calc(100vw * 84 / 1536); }
}

@media (prefers-reduced-motion:reduce) {
  .brand-tab,.home-callout { transition:none; }
}

/* WordPress administration toolbar and editor fallback. */
body.admin-bar .brand-tab{top:32px}body.admin-bar .persistent-tools{top:44px}body.admin-bar .menu-drawer{top:44px}
@media(max-width:782px){body.admin-bar .brand-tab{top:46px}body.admin-bar .persistent-tools{top:54px}}
.bq-fallback{padding:8rem 8vw;min-height:70vh;background:#fffefb}.bq-fallback h1{font-size:3rem}.bq-fallback a{text-decoration:underline}

/* Uploaded terrace photos: preserve file quality; crop only at display time.
   VO crop matches the adjacent Humo bottle height, with cap and base visible. */
.hero--single .hero-image img { object-position:center 42%; }
.page-title-pair--rums>div:first-child img { object-position:41% center; transform:translateY(-14%) scale(1.58); }
@media(max-width:760px) {
  .hero--single .hero-image img { object-position:40% center; }
}
