/*
Theme Name: Stala dala Luisa
Theme URI: https://example.invalid/stala-dala-luisa
Author: ED Solution Tech
Description: Tema editoriale per l'appartamento vacanze Stala dala Luisa a Campora.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: stala-dala-luisa
*/

:root {
  --paper: #f3ede3;
  --paper-deep: #e4dacb;
  --ink: #1f211a;
  --forest: #314230;
  --forest-dark: #19251c;
  --rust: #875539;
  --ochre: #b18a50;
  --stone: #a99e8e;
  --white: #fffdf8;
  --line: rgba(31, 33, 26, 0.18);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Constantia, Georgia, serif;
  --sans: "Avenir Next", Avenir, "Gill Sans", "Segoe UI", sans-serif;
  --pad: clamp(1.25rem, 4vw, 5rem);
  --header-h: 6.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p, figure, dl { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 0.98; }
h2 { font-size: clamp(2.9rem, 6vw, 6.6rem); letter-spacing: -0.045em; }
h2 em, h1 em { font-weight: 400; }
section { scroll-margin-top: var(--header-h); }

.skip-link {
  position: fixed; top: 0; left: 1rem; z-index: 1000; transform: translateY(-140%);
  padding: .75rem 1rem; background: var(--white); color: var(--ink);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--ochre); outline-offset: 4px; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 100; height: var(--header-h);
  padding: .65rem var(--pad); color: var(--white); pointer-events: none;
  transition: color .3s ease;
}
.site-header__inner {
  position: relative; z-index: 2; display: grid; grid-template-columns: minmax(13rem,1fr) auto minmax(13rem,1fr);
  align-items: center; gap: clamp(1rem,2vw,2.5rem); width: 100%; min-height: 5rem; margin: 0 auto;
  border-bottom: 1px solid rgba(255,255,255,.18); pointer-events: auto;
  transition: background-color .35s ease, border-color .35s ease, border-radius .35s ease, box-shadow .35s ease;
}
.site-header.is-scrolled { height: 5.85rem; color: var(--ink); }
.site-header.is-scrolled .site-header__inner {
  max-width: 90rem; min-height: 4.65rem; padding: .35rem .6rem .35rem 1rem;
  border: 1px solid rgba(31,33,26,.12); border-radius: 1rem;
  background: rgba(243,237,227,.92); box-shadow: 0 1rem 2.5rem rgba(25,37,28,.1);
  backdrop-filter: blur(18px);
}
.brand { grid-column: 1; display: inline-flex; align-items: center; gap: .8rem; width: fit-content; color: inherit; text-decoration: none; }
.brand__mark { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; }
.brand__mark img { width: 100%; height: 100%; }
.brand__text { font-family: var(--serif); font-size: 1.48rem; line-height: 1; }
.brand__text small { display: block; margin-top: .35rem; font: 500 .56rem/1 var(--sans); letter-spacing: .19em; text-transform: uppercase; }
.site-nav { display: contents; }
.site-nav__list { display: flex; align-items: center; gap: clamp(.75rem, 1.25vw, 1.35rem); margin: 0; padding: 0; list-style: none; }
.site-nav__list { grid-column: 2; }
.site-nav__list a { position: relative; white-space: nowrap; font-size: .76rem; font-weight: 600; letter-spacing: .075em; text-decoration: none; text-transform: uppercase; }
.site-nav__list a::after { content: ""; position: absolute; inset: auto 0 -.45rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.site-nav__list a:hover::after,.site-nav__list a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.site-nav__tools { grid-column: 3; display: flex; align-items: center; justify-content: flex-end; gap: clamp(.65rem,1.2vw,1.15rem); }
.site-nav__tools .button { white-space: nowrap; flex: 0 0 auto; }
.menu-toggle { display: none; border: 0; background: none; }
.menu-backdrop { display: none; }

.button {
  position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 3.35rem;
  padding: .75rem 3.85rem .75rem 1.5rem; overflow: hidden; border: 1px solid var(--ochre); border-radius: 999px;
  background: var(--ochre); color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .13em;
  text-decoration: none; text-transform: uppercase; cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, transform 140ms cubic-bezier(.22,1,.36,1);
}
.button::after {
  position: absolute; right: .35rem; display: grid; width: 2.5rem; height: 2.5rem; place-items: center;
  border-radius: 50%; background: var(--paper); color: var(--ink); content: "↗"; font-size: 1rem; letter-spacing: 0;
  transition: transform 180ms cubic-bezier(.22,1,.36,1), background-color 180ms ease, color 180ms ease;
}
.button:active { transform: scale(.97); }
.button--small { min-height: 2.65rem; padding: .55rem 3.1rem .55rem 1rem; }
.button--small::after { width: 2rem; height: 2rem; font-size: .82rem; }
.button--dark { background: var(--ink); border-color: var(--ink); color: var(--white); }
.button--dark::after { background: var(--ochre); }
.text-link { display: inline-flex; gap: .8rem; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; text-underline-offset: .45rem; }
.text-link--light { color: var(--white); }
.eyebrow { margin-bottom: 1.6rem; color: var(--rust); font-size: .68rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow--light { color: #d9bd8e; }
.lead { max-width: 46rem; font-family: var(--serif); font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.45; }

.separated-grid > * { position: relative; }
.separated-grid > *:not(:last-child) { border-right: 1px solid rgba(31,33,26,.16); }
.separated-grid--light > *:not(:last-child) { border-color: rgba(255,255,255,.2); }
.lined-list > *:not(:last-child) { border-bottom: 1px solid rgba(31,33,26,.14); }

@media (hover: hover) and (pointer: fine) {
  .button:hover { background: #c79b5a; }
  .button:hover::after { transform: translateX(-.18rem) rotate(45deg); background: var(--white); }
  .button--dark:hover { background: var(--forest); }
  .gallery-archive__item:hover img { transform: scale(1.018); }
  .site-footer__top:hover { background: rgba(255,255,255,.1); transform: translateY(-.2rem); }
}

.hero { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--forest-dark); }
.hero__image, .hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__image { object-fit: cover; object-position: 52% center; }
.hero__shade { background: linear-gradient(90deg, rgba(16,19,14,.76) 0%, rgba(16,19,14,.4) 43%, rgba(16,19,14,.08) 72%), linear-gradient(0deg, rgba(13,17,12,.8) 0%, transparent 42%); }
.hero__content { position: relative; z-index: 2; width: min(62rem, calc(100% - 2 * var(--pad))); margin: 10rem var(--pad) 10.5rem; }
.hero h1 { max-width: 12ch; margin-bottom: 2rem; font-size: clamp(4rem, 9vw, 9.3rem); letter-spacing: -.055em; }
.hero h1 em { color: #e1c390; }
.hero__intro { max-width: 39rem; margin-bottom: 2.2rem; font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.5; }
.hero__actions { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.hero__rail { position: absolute; z-index: 2; top: calc(var(--header-h) + 1.5rem); right: var(--pad); display: flex; gap: 1.5rem; writing-mode: vertical-rl; font-size: .62rem; letter-spacing: .2em; }
.hero__facts { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem,3vw,4rem); margin: 0; padding: 1.25rem var(--pad) 1.5rem; background: rgba(18,23,16,.58); backdrop-filter: blur(12px); }
.hero__facts div { padding: .35rem 0; }
.hero__facts dt { margin-bottom: .35rem; color: rgba(255,255,255,.62); font-size: .58rem; letter-spacing: .18em; text-transform: uppercase; }
.hero__facts dd { margin: 0; font-family: var(--serif); font-size: 1.45rem; }
.hero__facts small { margin-left: .25rem; font: .65rem var(--sans); }

.intro-section { display: grid; grid-template-columns: 5rem minmax(0, 1fr) minmax(18rem, .72fr); gap: clamp(2rem, 5vw, 7rem); padding: clamp(6rem, 11vw, 11rem) var(--pad); }
.intro-section__copy { align-self: center; }
.intro-section__image { margin: 0; }
.intro-section__image img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.intro-section__image figcaption { padding-top: .8rem; color: #655f55; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }

.spaces { padding: 0 var(--pad) clamp(6rem, 10vw, 10rem); }
.spaces__heading { max-width: 62rem; margin: 0 0 4rem auto; }
.spaces__grid { display: grid; grid-template-columns: 1.35fr .9fr .9fr; grid-template-rows: 24rem 24rem; gap: 1rem; }
.photo-card { position: relative; margin: 0; overflow: hidden; background: var(--paper-deep); }
.photo-card--wide { grid-row: span 2; }
.photo-card--tall { grid-row: span 2; }
.photo-card button { width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.photo-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.photo-card:hover img { transform: scale(1.035); }
.photo-card figcaption { position: absolute; inset: auto 0 0; padding: 3rem 1.5rem 1.3rem; color: var(--white); background: linear-gradient(transparent, rgba(14,16,12,.82)); pointer-events: none; }
.photo-card figcaption strong { display: block; font: 1.5rem var(--serif); }
.photo-card figcaption span { display: block; margin-top: .25rem; font-size: .68rem; letter-spacing: .05em; }
.amenities { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin: 4rem 0 0; padding: 0; list-style: none; }
.amenities li { padding: .55rem 1rem .8rem 0; font-family: var(--serif); font-size: 1.25rem; }
.amenities span { margin-right: 1rem; color: var(--rust); font: .62rem var(--sans); }

.story { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 52rem; background: var(--forest-dark); color: var(--white); }
.story__image { min-height: 38rem; }
.story__image img { width: 100%; height: 100%; object-fit: cover; }
.story__copy { position: relative; display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem, 8vw, 9rem); }
.story__copy::before { display: none; content: ""; }
.story__copy h2 { position: relative; font-size: clamp(3rem, 5vw, 5.7rem); }
.story__copy > p:not(.eyebrow) { position: relative; max-width: 35rem; color: rgba(255,255,255,.72); }
.story__date { position: relative; display: flex; align-items: baseline; gap: 1rem; margin-top: 2.5rem; }
.story__date span { color: #d9bd8e; font: italic 4rem var(--serif); }
.story__date small { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }

.territory { display: grid; grid-template-columns: 5rem 1fr 1fr; gap: clamp(2rem, 5vw, 7rem); padding: clamp(6rem, 10vw, 10rem) var(--pad); }
.territory__heading { grid-column: 2 / -1; max-width: 64rem; }
.territory__photos { position: relative; grid-column: 2 / -1; padding-right: clamp(0rem, 8vw, 8rem); }
.territory__photo-main { width: 100%; height: clamp(24rem, 52vw, 42rem); object-fit: cover; }
.territory__photo-inset { position: absolute; right: 0; bottom: -4rem; width: clamp(11rem, 23vw, 22rem); aspect-ratio: 4 / 3; object-fit: cover; border: .75rem solid var(--paper); }
.territory__details { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: 5rem; }
.territory__details article { padding: 1.5rem 1rem 1.5rem 0; }
.territory__details span { color: var(--rust); font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.territory__details h3 { margin: 1.4rem 0 .2rem; font-size: 1.55rem; }
.territory__details p { margin: 0; color: #6c665c; font-size: .75rem; }
.territory__list { grid-column: 2 / -1; display: grid; grid-template-columns: .6fr 1.4fr; gap: 2rem; margin-top: 2rem; padding: 2rem 0; }
.territory__list > p { font: 1.5rem var(--serif); }
.territory__list ul { columns: 2; margin: 0; padding-left: 1.2rem; }

.rates { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 8vw, 9rem); padding: clamp(6rem, 10vw, 10rem) var(--pad); color: var(--white); background: var(--forest); }
.rates__heading h2 { max-width: 8ch; }
.rate-card { padding: clamp(2rem, 4vw, 4rem); color: var(--ink); background: var(--paper); }
.rate-card__price { display: flex; align-items: baseline; gap: .7rem; margin-bottom: 1.5rem; font: 6rem/.9 var(--serif); }
.rate-card__price span, .rate-card__price small { font: 700 .68rem var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.rate-card dl { margin: 2.5rem 0 0; }
.rate-card dl div { display: flex; justify-content: space-between; gap: 2rem; margin-bottom: .55rem; padding: .85rem 0; }
.rate-card dt { color: #6c665c; }
.rate-card dd { margin: 0; text-align: right; }
.check-times { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.check-times div { display: grid; gap: .3rem; padding: 2rem 0; }
.check-times div { padding: 2rem 0; }
.check-times div + div { padding-left: 2rem; }
.check-times span { color: #d9bd8e; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.check-times strong { font: 2rem var(--serif); }
.check-times small { color: rgba(255,255,255,.62); }

.booking { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 9rem); padding: clamp(6rem, 10vw, 10rem) var(--pad); }
.booking__intro { position: sticky; top: 7rem; align-self: start; }
.booking__intro h2 { font-size: clamp(3rem, 5vw, 5.5rem); }
.booking__intro > p:not(.eyebrow) { max-width: 32rem; color: #615c53; }
.booking address { display: grid; gap: .4rem; margin-top: 2rem; font-style: normal; }
.booking address a { font-family: var(--serif); font-size: 1.3rem; }
.booking address span { margin-top: .5rem; color: #6c665c; font-size: .75rem; }
.booking__form-wrap { padding: clamp(2rem, 5vw, 4rem); background: var(--white); box-shadow: 0 2rem 5rem rgba(49,43,33,.1); }
.booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; }
.field { display: grid; gap: .45rem; }
.field--full { grid-column: 1 / -1; }
.field label { font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.field label small { color: #787167; font-weight: 400; letter-spacing: 0; text-transform: none; }
.field input, .field select, .field textarea { width: 100%; min-height: 3.2rem; padding: .75rem .9rem; border: 1px solid #c9c0b3; border-radius: 0; background: transparent; }
.field textarea { resize: vertical; }
.consent { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: .7rem; color: #5f5a51; font-size: .75rem; }
.consent input { margin-top: .3rem; }
.honeypot { position: absolute; left: -9999px; }
.form-notice { margin-bottom: 1.5rem; padding: 1rem; border-left: 3px solid var(--forest); background: #e8efe5; }
.form-notice--error { border-color: #9c392d; background: #f4e5e2; }

.stala-inner-page .site-header {
  color: var(--ink);
}
.stala-inner-page .site-header__inner {
  padding: .35rem .6rem .35rem 1rem;
  border: 1px solid rgba(31,33,26,.12);
  border-radius: 1rem;
  background: rgba(243,237,227,.92);
  box-shadow: 0 .8rem 2.2rem rgba(25,37,28,.07);
  backdrop-filter: blur(18px);
}
.page-shell { padding-right: var(--pad); padding-left: var(--pad); }
.home-intro {
  display: grid;
  grid-template-columns: 1fr minmax(18rem,.72fr);
  gap: clamp(2rem,5vw,7rem);
  padding-top: clamp(6rem,10vw,10rem);
  padding-bottom: clamp(5rem,8vw,8rem);
}
.home-intro h2 { max-width: 13ch; }
.home-intro__copy { align-self: end; padding-bottom: .6rem; }
.home-intro__copy .lead { color: #5d594f; }
.home-cards {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  grid-template-rows: repeat(2, minmax(22rem, 34vw));
  gap: 1rem;
  padding-bottom: clamp(6rem,10vw,10rem);
}
.home-card { position: relative; overflow: hidden; color: var(--white); background: var(--forest); text-decoration: none; }
.home-card--large { grid-row: 1 / 3; }
.home-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.home-card::after { position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(9,13,9,.82)); content: ""; }
.home-card:hover img { transform: scale(1.035); }
.home-card > span { position: absolute; z-index: 1; inset: auto 1.5rem 1.5rem; display: grid; grid-template-columns: 1fr auto; align-items: end; font: clamp(1.8rem,3vw,3.5rem)/1 var(--serif); }
.home-card small { grid-column: 1 / -1; margin-bottom: .55rem; font: 700 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.home-card i { font-style: normal; font-size: 1.4rem; }
.home-cta { min-height: 36rem; display: grid; place-items: center; padding: 6rem var(--pad); color: var(--white); text-align: center; background: linear-gradient(rgba(20,31,22,.78),rgba(20,31,22,.86)), url('assets/images/garden.webp') center/cover; }
.home-cta h2 { max-width: 13ch; margin-right: auto; margin-left: auto; }

.page-hero { min-height: min(48rem,82svh); display: grid; overflow: hidden; }
.page-hero__copy { align-self: center; padding: clamp(4rem,8vw,8rem) var(--pad); }
.page-hero__copy h1 { max-width: 12ch; margin-bottom: 2rem; font-size: clamp(3.8rem,8vw,8.5rem); letter-spacing: -.055em; }
.page-hero--split { grid-template-columns: 1fr 1fr; }
.page-hero--split > img { width: 100%; height: 100%; min-height: 40rem; object-fit: cover; }
.page-hero--dark,.page-hero--rate { grid-template-columns: .9fr 1.1fr; color: var(--white); background: var(--forest-dark); }
.page-hero--dark > img,.page-hero--rate > img { width: 100%; height: 100%; min-height: 40rem; object-fit: cover; }
.page-hero--landscape { position: relative; min-height: 78svh; color: var(--white); }
.page-hero--landscape > img,.page-hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-hero__overlay { background: linear-gradient(90deg,rgba(15,22,16,.72),rgba(15,22,16,.08)); }
.page-hero--landscape .page-hero__copy { position: relative; z-index: 1; align-self: end; padding-bottom: clamp(4rem,8vw,8rem); }

.editorial-summary {
  display: grid; grid-template-columns: repeat(4,1fr); padding-top: clamp(3.5rem,6vw,6rem);
  padding-bottom: clamp(4rem,7vw,7rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.editorial-summary > * { min-width: 0; padding: clamp(1.5rem,2.7vw,2.8rem); }
.editorial-summary > * + * { border-left: 1px solid var(--line); }
.editorial-summary h2 { margin: 0 0 .8rem; font-size: clamp(1.55rem,2.2vw,2.2rem); letter-spacing: -.02em; }
.editorial-summary p { max-width: 28rem; margin: 0; color: #625d53; font-size: clamp(.92rem,1.05vw,1.05rem); line-height: 1.65; }
.gallery-page { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; padding-bottom: clamp(6rem,10vw,10rem); }
.gallery-page__intro { grid-column: 1 / -1; padding: 4rem 0 2rem; }
.gallery-page__intro h2 { max-width: 12ch; }
.gallery-page__item { position: relative; overflow: hidden; }
.gallery-page__item:nth-of-type(2),.gallery-page__item:nth-of-type(5) { grid-row: span 2; }
.gallery-page__item button { width: 100%; height: 100%; min-height: 24rem; padding: 0; border: 0; background: var(--paper-deep); cursor: zoom-in; }
.gallery-page__item img { width: 100%; height: 100%; min-height: 24rem; object-fit: cover; transition: transform .6s ease; }
.gallery-page__item:hover img { transform: scale(1.025); }
.gallery-page__item figcaption { position: absolute; z-index: 1; inset: auto 0 0; padding: 3rem 1.2rem 1rem; color: var(--white); background: linear-gradient(transparent,rgba(10,13,10,.75)); pointer-events: none; }
.amenities-page { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,9rem); padding-top: clamp(5rem,8vw,8rem); padding-bottom: clamp(6rem,10vw,10rem); background: var(--paper-deep); }
.amenities-page h2 { max-width: 10ch; }
.amenities-page ul { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 2.5rem; margin: 0; padding: 0; list-style: none; }
.amenities-page li { position: relative; padding: .55rem 0 .8rem 1.4rem; font-family: var(--serif); font-size: 1.15rem; }
.amenities-page li::before { position: absolute; top: 1.12rem; left: 0; width: .38rem; height: .38rem; border-radius: 50%; background: var(--rust); content: ""; }

.next-page { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 3.5rem var(--pad); color: var(--white); background: var(--forest); }
.next-page p { margin: 0; color: #d9bd8e; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.next-page a { font: clamp(1.8rem,4vw,4rem)/1 var(--serif); text-decoration: none; }
.story-page { display: grid; grid-template-columns: .3fr 1fr .85fr; gap: clamp(2rem,6vw,7rem); padding-top: clamp(6rem,10vw,10rem); padding-bottom: clamp(6rem,10vw,10rem); }
.story-page__date { color: var(--rust); font: italic clamp(3rem,7vw,7rem)/1 var(--serif); writing-mode: vertical-rl; }
.story-page__body h2 { max-width: 10ch; }
.story-page__dialect { margin: -.2rem 0 2rem; color: var(--rust); font: italic clamp(1rem,1.5vw,1.25rem)/1.4 var(--serif); }
.story-page__body > p:not(.eyebrow) { color: #575349; }
.story-page__photo img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.story-page__photo figcaption { padding-top: .8rem; color: #6c665c; font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }
.story-page__body blockquote {
  max-width: 15ch; margin: clamp(2.25rem,4vw,4rem) 0; padding: clamp(1.5rem,2.5vw,2.5rem) 0;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--forest);
  font: italic clamp(2rem,3.4vw,3.8rem)/1.1 var(--serif);
}

.territory-page { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: clamp(3rem,8vw,9rem); padding-top: clamp(3rem,6vw,6rem); padding-bottom: 4rem; }
.territory-page h2 { max-width: 12ch; }
.territory-page__copy { align-self: start; color: #575349; }
.territory-facts { padding-top: 0; padding-bottom: clamp(4rem,7vw,7rem); }
.distance-band {
  display: grid; grid-template-columns: repeat(5,1fr); padding-top: 0; padding-bottom: clamp(6rem,9vw,9rem);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.distance-band > * { min-width: 0; padding: clamp(2rem,3vw,3.5rem) clamp(1.1rem,2.3vw,2.4rem); }
.distance-band > * + * { border-left: 1px solid var(--line); }
.distance-grid span { color: var(--rust); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.distance-grid h2 { margin: 0; font-size: clamp(1.55rem,2.2vw,2.25rem); letter-spacing: 0; }
.distance-grid p { margin: .45rem 0 0; color: #5f5a51; font-size: clamp(.9rem,1.05vw,1.05rem); }
.territory-explore { padding-top: clamp(3rem,6vw,6rem); padding-bottom: clamp(6rem,10vw,10rem); }
.territory-explore__intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,8vw,9rem); align-items: start; margin-bottom: clamp(3rem,6vw,6rem); }
.territory-explore__intro .eyebrow { grid-column: 1 / -1; margin-bottom: -1rem; }
.territory-explore__intro h2 { max-width: 11ch; }
.territory-explore__intro .lead { color: #5f5a51; }
.feature-cards { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: minmax(17rem,auto); gap: 1rem; }
.detail-facts.feature-cards { padding-top: clamp(3.5rem,6vw,6rem); padding-bottom: clamp(4rem,7vw,7rem); }
.feature-cards > * {
  position: relative; display: flex; min-height: 17rem; flex-direction: column; justify-content: flex-end;
  padding: clamp(1.8rem,3.4vw,3.5rem); overflow: hidden; border-radius: .45rem; background: #ddd1bf;
}
.feature-cards > *::before {
  position: absolute; top: 2rem; left: clamp(1.8rem,3.4vw,3.5rem); width: 3.25rem; height: 1px;
  background: currentColor; content: ""; opacity: .42; transform: rotate(-12deg); transform-origin: left center;
}
.feature-cards > :nth-child(1),.feature-cards > :nth-child(4) { grid-column: span 2; }
.feature-cards > :nth-child(2) { color: var(--white); background: var(--forest); }
.feature-cards > :nth-child(3) { background: #eadfce; }
.feature-cards > :nth-child(4) { color: var(--white); background: var(--rust); }
.feature-cards h2,.feature-cards h3,.feature-cards strong { display: block; max-width: 16ch; margin: 0 0 1rem; font: clamp(1.7rem,2.6vw,2.7rem)/1.02 var(--serif); }
.feature-cards p { max-width: 36rem; margin: 0; color: #5f5a51; }
.feature-cards > :nth-child(2) p,.feature-cards > :nth-child(4) p { color: rgba(255,255,255,.72); }
.territory-photo-grid { display: grid; grid-template-columns: 1.15fr .7fr .85fr; gap: .8rem; margin-top: clamp(3rem,6vw,6rem); }
.territory-photo-grid figure { position: relative; margin: 0; }
.territory-photo-grid img { width: 100%; height: clamp(20rem,34vw,36rem); object-fit: cover; }
.territory-photo-grid figure:nth-child(2) { margin-top: clamp(2rem,7vw,7rem); }
.territory-photo-grid figure:nth-child(3) { margin-top: clamp(5rem,12vw,12rem); }
.territory-photo-grid figure:nth-child(3) img { height: clamp(16rem,26vw,28rem); }
.territory-photo-grid figcaption { padding-top: .8rem; color: #6c665c; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.landscape-feature { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 44rem; color: var(--white); background: var(--forest-dark); }
.landscape-feature > img { width: 100%; height: 100%; min-height: 40rem; object-fit: cover; }
.landscape-feature > div { align-self: center; padding: clamp(3rem,7vw,7rem); }
.landscape-feature h2 { font-size: clamp(3rem,5vw,5.5rem); }
.landscape-feature li { margin-bottom: .7rem; color: rgba(255,255,255,.75); }

.pricing-page { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem,8vw,9rem); padding-top: clamp(6rem,10vw,10rem); padding-bottom: clamp(6rem,10vw,10rem); }
.pricing-page__intro h2 { max-width: 10ch; }
.pricing-table { display: grid; gap: 1.1rem; margin: 0; }
.pricing-table > div { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: .8rem 0; }
.pricing-table dt { color: #686257; }
.pricing-table dd { margin: 0; text-align: right; font-family: var(--serif); font-size: 1.2rem; }
.arrival-band { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(2rem,6vw,8rem); padding: 3rem var(--pad); color: var(--white); background: var(--forest); }
.arrival-band > div { display: grid; gap: .4rem; padding: 0; }
.arrival-band span { color: #d9bd8e; font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }
.arrival-band strong { font: 1.8rem var(--serif); }
.arrival-band small { color: rgba(255,255,255,.62); }
.booking-note { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,9rem); padding-top: clamp(6rem,10vw,10rem); padding-bottom: clamp(6rem,10vw,10rem); }
.booking-note h2 { max-width: 11ch; }
.booking-note__copy { align-self: center; }
.booking-note .button { margin-top: 1.5rem; }
.rates-photo-strip { position: relative; min-height: clamp(30rem,48vw,45rem); }
.rates-photo-strip img { position: absolute; object-fit: cover; box-shadow: 0 1.6rem 4rem rgba(49,43,33,.12); }
.rates-photo-strip img:nth-child(1) { inset: 0 18% 18% 0; width: 68%; height: 72%; }
.rates-photo-strip img:nth-child(2) { right: 0; bottom: 0; width: 54%; height: 56%; border: .6rem solid var(--paper); }
.rates-photo-strip img:nth-child(3) { top: 5%; right: 0; width: 38%; height: 34%; border: .45rem solid var(--paper); }
.simple-hero { padding: calc(var(--header-h) + clamp(2.5rem,5vw,5rem)) var(--pad) clamp(3rem,5vw,5rem); background: var(--paper-deep); }
.simple-hero h1 { max-width: 17ch; margin-bottom: 2rem; font-size: clamp(3.6rem,7vw,7.25rem); letter-spacing: -.055em; }
.booking--page { padding-top: clamp(4rem,7vw,7rem); }
.privacy-page h2 { margin-top: 3rem; font-size: clamp(2rem,4vw,3.6rem); letter-spacing: -.025em; }

.gallery-hero {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(3rem,7vw,8rem);
  min-height: 42rem;
  padding-top: clamp(5rem,8vw,8rem);
  padding-bottom: clamp(5rem,8vw,8rem);
  overflow: hidden;
}
.gallery-hero__copy { align-self: center; }
.gallery-hero h1 { max-width: 10ch; margin-bottom: 2rem; font-size: clamp(4rem,8vw,8rem); letter-spacing: -.055em; }
.gallery-hero__photos { position: relative; min-height: 34rem; }
.gallery-hero__photos img { position: absolute; object-fit: cover; box-shadow: 0 2rem 5rem rgba(49,43,33,.17); }
.gallery-hero__photos img:first-child { inset: 0 14% 8% 0; width: 74%; height: 88%; }
.gallery-hero__photos img:last-child { right: 0; bottom: 0; width: 46%; height: 58%; border: .65rem solid var(--paper); }
.gallery-archive {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  grid-auto-rows: clamp(18rem,25vw,28rem);
  gap: clamp(.7rem,1.2vw,1rem);
  padding-top: 2rem;
  padding-bottom: clamp(7rem,11vw,12rem);
}
.gallery-archive__item { position: relative; min-width: 0; height: 100%; margin: 0; overflow: hidden; }
.gallery-archive__item:nth-child(4n + 1),.gallery-archive__item:nth-child(4n + 4) { grid-column: span 2; }
.gallery-archive__item button { width: 100%; height: 100%; padding: 0; border: 0; background: var(--paper-deep); cursor: zoom-in; overflow: hidden; }
.gallery-archive__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 220ms cubic-bezier(.22,1,.36,1); }
.gallery-archive__item figcaption {
  position: absolute; inset: auto 0 0; padding: 4rem 1.4rem 1.2rem; color: var(--white);
  background: linear-gradient(transparent,rgba(10,13,10,.72)); font: 1.15rem var(--serif); pointer-events: none;
}

.gallery-dialog { width: min(94vw, 82rem); max-width: none; padding: 0; border: 0; overflow: visible; background: transparent; }
.gallery-dialog::backdrop { background: rgba(12,14,11,.9); }
.gallery-dialog__stage { position: relative; display: grid; min-height: 60vh; place-items: center; }
.gallery-dialog img { width: 100%; max-height: 88vh; object-fit: contain; }
.gallery-dialog__caption { position: fixed; z-index: 2; bottom: 1.2rem; left: 50%; margin: 0; color: rgba(255,255,255,.86); font: 1.1rem var(--serif); transform: translateX(-50%); }
.gallery-dialog button { display: grid; z-index: 2; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(12,14,11,.55); color: white; font-size: 1.6rem; line-height: 1; cursor: pointer; backdrop-filter: blur(8px); }
.gallery-dialog__close { position: fixed; top: 1rem; right: 1.5rem; }
.gallery-dialog__arrow { position: fixed; top: 50%; transform: translateY(-50%); }
.gallery-dialog__arrow--prev { left: 1.5rem; }
.gallery-dialog__arrow--next { right: 1.5rem; }

.site-footer-curtain { position: relative; overflow: hidden; background: #121812; }
.site-footer {
  position: relative; padding: clamp(4.5rem,7vw,7rem) var(--pad) 2.5rem; color: rgba(255,255,255,.68); background: #121812; font-size: .82rem;
  opacity: .68; transform: translateY(2rem);
  transition: opacity 480ms cubic-bezier(.22,1,.36,1), transform 480ms cubic-bezier(.22,1,.36,1);
}
.site-footer-curtain.is-visible .site-footer { opacity: 1; transform: translateY(0); }
.site-footer__word {
  position: absolute; z-index: 0; bottom: -.12em; left: 50%; color: transparent; white-space: nowrap;
  font: 700 clamp(9rem,24vw,28rem)/.72 var(--serif); letter-spacing: -.06em; text-transform: uppercase;
  -webkit-text-stroke: 1px rgba(255,255,255,.035); transform: translateX(-50%); pointer-events: none; user-select: none;
}
.site-footer a { color: inherit; text-decoration: none; }
.site-footer__main { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(18rem,1fr) minmax(32rem,1.8fr); gap: clamp(4rem,9vw,10rem); }
.site-footer__intro { max-width: 29rem; }
.site-footer__brand { display: inline-flex; align-items: center; gap: 1rem; color: var(--white); }
.site-footer__brand > span:last-child { font: 2rem/1 var(--serif); }
.site-footer__brand small { display: block; margin-top: .45rem; color: rgba(255,255,255,.5); font: 500 .58rem/1.2 var(--sans); letter-spacing: .17em; text-transform: uppercase; }
.site-footer__mark { width: 3rem; height: 3rem; }
.site-footer__mark img { width: 100%; height: 100%; filter: invert(1); }
.site-footer__intro > p { max-width: 31rem; margin: 2rem 0; color: rgba(255,255,255,.62); font: clamp(1.15rem,1.7vw,1.45rem)/1.5 var(--serif); }
.site-footer__cta { display: inline-flex; align-items: center; gap: .8rem; color: #d9bd8e !important; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.site-footer__cta span { font-size: 1rem; transition: transform .2s ease; }
.site-footer__cta:hover span { transform: translate(.2rem,-.2rem); }
.site-footer__columns { display: grid; grid-template-columns: .9fr .9fr 1.25fr; gap: clamp(2rem,5vw,5rem); }
.site-footer__column h2 { margin-bottom: 1.6rem; color: #d9bd8e; font: 700 .66rem/1.2 var(--sans); letter-spacing: .17em; text-transform: uppercase; }
.site-footer__column ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.site-footer__column a { color: rgba(255,255,255,.72); transition: color .2s ease; }
.site-footer__column a:hover { color: var(--white); }
.site-footer__column address { display: grid; gap: .8rem; font-style: normal; }
.site-footer__column address span { margin-bottom: .35rem; color: rgba(255,255,255,.5); }
.site-footer__bottom { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; margin-top: clamp(4rem,7vw,7rem); padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.12); }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom a { color: rgba(255,255,255,.72); }
.site-footer__top {
  justify-self: end; display: grid; width: 2.9rem; height: 2.9rem; place-items: center; border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%; background: rgba(255,255,255,.04); color: var(--white); cursor: pointer;
  transition: transform 160ms cubic-bezier(.22,1,.36,1), background-color 160ms ease;
}
.site-footer__top:active { transform: scale(.97); }
.site-footer__credit { position: relative; z-index: 1; grid-column: 1 / -1; display: flex; align-items: center; flex-direction: column; gap: .55rem; margin: 1.75rem 0 0; text-align: center; color: rgba(255,255,255,.48); }
.site-footer__credit-label { display: block; color: rgba(255,255,255,.64); font-size: .78rem; letter-spacing: .08em; }
.site-footer__credit-links { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .55rem; font-family: var(--serif); font-size: clamp(1rem,1.3vw,1.2rem); }
.site-footer__credit-links > span { color: rgba(255,255,255,.3); }
.site-footer__credit a { color: rgba(255,255,255,.82); text-decoration: none; }
.site-footer__credit a:hover { color: var(--white); }
.content-page { min-height: 70vh; padding: calc(var(--header-h) + 6rem) var(--pad) 8rem; }
.content-page h1 { max-width: 14ch; font-size: clamp(3.5rem, 8vw, 7rem); }
.prose { max-width: 48rem; }
.prose > * + * { margin-top: 1.2rem; }

[data-reveal] { opacity: 0; transform: translateY(2rem); transition: opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

.hero-slider__media,
.hero-slide {
  position: absolute;
  inset: 0;
}
.hero-slide {
  opacity: 0;
  transform: scale(1.035);
  transition: opacity 1.15s ease, transform 7s ease;
  pointer-events: none;
}
.hero-slide.is-active {
  opacity: 1;
  transform: scale(1);
}
.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-slider__controls {
  position: absolute;
  z-index: 4;
  right: var(--pad);
  bottom: 9.4rem;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--white);
}
.hero-slider__controls > button {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  color: inherit;
  background: rgba(15,20,15,.18);
  cursor: pointer;
}
.hero-slider__dots { display: flex; gap: .45rem; }
.hero-slider__dots button {
  width: 2.2rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.hero-slider__dots button::after {
  display: block;
  width: 100%;
  height: 2px;
  background: rgba(255,255,255,.45);
  content: "";
  transition: background .25s ease, transform .25s ease;
}
.hero-slider__dots button[aria-current="true"]::after {
  background: var(--white);
  transform: scaleY(2);
}

.language-switcher ul {
  display: flex;
  gap: .2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.language-switcher a {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 50%;
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
}
.language-switcher a[aria-current="page"] {
  color: var(--ink);
  background: var(--white);
}
.site-header.is-scrolled .language-switcher a[aria-current="page"],
.site-nav.is-open .language-switcher a[aria-current="page"] {
  color: var(--white);
  background: var(--forest);
}
@media (max-width: 1120px) {
  .separated-grid > *:not(:last-child) { border-right: 0; border-bottom: 1px solid rgba(31,33,26,.16); }
  .separated-grid--light > *:not(:last-child) { border-bottom-color: rgba(255,255,255,.2); }
  .site-header__inner { grid-template-columns: 1fr auto; padding: .25rem .65rem .25rem 1rem; border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; }
  .site-header.is-scrolled .site-header__inner,.stala-inner-page .site-header__inner { backdrop-filter: none; }
  .site-nav {
    position: fixed; inset: 0 0 0 auto; z-index: 2; display: flex; width: min(31rem,88vw); height: 100dvh;
    align-items: flex-start; flex-direction: column; justify-content: space-between; gap: 3rem;
    padding: calc(var(--header-h) + 3rem) clamp(2rem,7vw,5rem) 3rem; overflow-y: auto;
    color: var(--white); background: var(--forest-dark); box-shadow: -2rem 0 5rem rgba(12,18,13,.26);
    transform: translateX(102%); visibility: hidden; transition: transform .38s cubic-bezier(.22,.75,.2,1), visibility .38s;
  }
  .site-nav.is-open { transform: translateX(0); visibility: visible; }
  .site-nav__list { width: 100%; align-items: flex-start; flex-direction: column; gap: 1.1rem; }
  .site-nav__list a { font: clamp(1.9rem,5vw,3rem)/1.08 var(--serif); letter-spacing: -.02em; text-transform: none; }
  .site-nav__list a::after { display: none; }
  .site-nav__tools { width: 100%; align-items: flex-start; flex-direction: column; gap: 1.5rem; }
  .site-nav__tools .button { width: 100%; color: var(--ink); }
  .language-switcher { margin-top: 0; }
  .menu-toggle { position: relative; z-index: 3; grid-column: 2; display: inline-flex; align-items: center; gap: .7rem; padding: .75rem .35rem; color: inherit; cursor: pointer; }
  .menu-toggle i { position: relative; display: block; width: 1.8rem; height: 1rem; }
  .menu-toggle i::before,.menu-toggle i::after { position: absolute; top: .48rem; left: 0; display: block; width: 1.8rem; height: 1px; background: currentColor; content: ""; transition: transform .25s cubic-bezier(.25,1,.5,1); }
  .menu-toggle i::before { transform: translateY(-.26rem); }
  .menu-toggle i::after { transform: translateY(.26rem); }
  .menu-toggle[aria-expanded="true"] i::before { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::after { transform: rotate(-45deg); }
  .menu-backdrop { position: fixed; inset: 0; z-index: 1; display: block; background: rgba(9,14,10,.52); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s; }
  body.menu-open .menu-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }
  .hero__facts { grid-template-columns: 1fr 1fr; }
  .intro-section, .territory { grid-template-columns: 3rem 1fr; }
  .intro-section__copy, .intro-section__image, .territory__heading, .territory__photos, .territory__details, .territory__list { grid-column: 2; }
  .spaces__grid { grid-template-columns: 1fr 1fr; grid-template-rows: 30rem 22rem; }
  .photo-card--tall { grid-row: auto; }
  .story { grid-template-columns: 1fr; }
  .story__image { height: 60vw; min-height: 25rem; }
  .rates, .booking { grid-template-columns: 1fr; }
  .booking__intro { position: static; }
  .site-footer__main { grid-template-columns: 1fr; }
  .site-footer__intro { max-width: 38rem; }
  .home-intro { grid-template-columns: 1fr; }
  .home-intro__copy { grid-column: 1; }
  .page-hero--split,.page-hero--dark,.page-hero--rate { grid-template-columns: 1fr; }
  .page-hero--split > img,.page-hero--dark > img,.page-hero--rate > img { min-height: 32rem; max-height: 55rem; }
  .editorial-summary { grid-template-columns: 1fr 1fr; }
  .editorial-summary > * + * { border-left: 0; }
  .editorial-summary > :nth-child(even) { border-left: 1px solid var(--line); }
  .editorial-summary > :nth-child(n + 3) { border-top: 1px solid var(--line); }
  .distance-band { grid-template-columns: 1fr 1fr; }
  .distance-band > * + * { border-left: 0; }
  .distance-band > :nth-child(even) { border-left: 1px solid var(--line); }
  .distance-band > :nth-child(n + 3) { border-top: 1px solid var(--line); }
  .amenities-page,.territory-page,.pricing-page,.booking-note { grid-template-columns: 1fr; }
  .story-page { grid-template-columns: 1fr 1fr; }
  .story-page__date { display: none; }
  .feature-cards { grid-template-columns: 1fr 1fr; }
  .landscape-feature { grid-template-columns: 1fr; }
  .landscape-feature > img { min-height: 30rem; max-height: 55rem; }
  .gallery-hero { grid-template-columns: 1fr; }
  .gallery-hero__copy { max-width: 48rem; }
  .gallery-archive { grid-template-columns: repeat(2,1fr); grid-auto-rows: clamp(18rem,35vw,24rem); }
  .gallery-archive__item:nth-child(4n + 1),.gallery-archive__item:nth-child(4n + 4) { grid-column: span 2; }
}

@media (max-width: 640px) {
  :root { --header-h: 4.7rem; }
  h2 { font-size: clamp(2.7rem, 14vw, 4.2rem); }
  .brand__mark { width: 2rem; height: 2rem; }
  .brand__text { font-size: 1.05rem; }
  .brand__text small { display: none; }
  .hero { min-height: 52rem; }
  .hero__content { margin-top: 8rem; margin-bottom: 11rem; }
  .hero h1 { font-size: clamp(3.2rem, 15vw, 4.6rem); }
  .hero__rail { display: none; }
  .hero-slider__controls { right: var(--pad); bottom: 10.2rem; }
  .hero__facts div { padding: 1rem var(--pad); }
  .hero__facts dd { font-size: 1.15rem; }
  .intro-section, .territory { display: block; }
  .intro-section__image { margin-top: 3rem; }
  .spaces__grid { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(4, 23rem); }
  .photo-card--wide, .photo-card--tall { grid-row: auto; }
  .amenities { grid-template-columns: 1fr; }
  .story__copy { padding: 4rem var(--pad); }
  .story__copy::before { display: none; }
  .territory__heading { margin-bottom: 3rem; }
  .territory__photos { padding-right: 0; }
  .territory__photo-main { height: 26rem; }
  .territory__photo-inset { right: -1rem; bottom: -2rem; border-width: .45rem; }
  .territory__details { grid-template-columns: 1fr 1fr; margin-top: 4rem; }
  .territory__list { grid-template-columns: 1fr; }
  .territory__list ul { columns: 1; }
  .rates { gap: 2rem; }
  .rate-card__price { font-size: 4.6rem; }
  .rate-card dl div { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .rate-card dd { text-align: left; }
  .check-times { grid-template-columns: 1fr; }
  .check-times div + div { padding-left: 2rem; }
  .booking-form { grid-template-columns: 1fr; }
  .field, .field--full { grid-column: 1; }
  .site-footer { padding-top: 3.5rem; }
  .site-footer__main { gap: 3.5rem; }
  .site-footer__columns { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.5rem; }
  .site-footer__column:last-child { grid-column: 1 / -1; }
  .site-footer__bottom { display: flex; align-items: flex-start; flex-direction: column; gap: .65rem; }
  .site-footer__top { align-self: flex-end; margin-top: -3.55rem; }
  .site-footer__credit { grid-column: 1 / -1; margin-top: 1.5rem; text-align: center; }
  .home-intro { display: block; }
  .home-cards { grid-template-columns: 1fr; grid-template-rows: repeat(3,26rem); }
  .home-card--large { grid-row: auto; }
  .home-card > span { font-size: 2.2rem; }
  .page-hero { min-height: auto; }
  .page-hero__copy { padding-top: 4rem; padding-bottom: 4rem; }
  .page-hero--split > img,.page-hero--dark > img,.page-hero--rate > img { min-height: 26rem; }
  .page-hero--landscape { min-height: 38rem; }
  .editorial-summary { grid-template-columns: 1fr; padding-top: 3rem; padding-bottom: 4rem; }
  .editorial-summary > * { padding: 1.5rem 0; }
  .editorial-summary > * + *, .editorial-summary > :nth-child(even) { border-left: 0; border-top: 1px solid var(--line); }
  .distance-band { grid-template-columns: 1fr; padding-top: 0; padding-bottom: 4rem; }
  .distance-band > * { padding: 1.5rem 0; }
  .distance-band > :nth-child(even) { border-left: 0; }
  .distance-band > * + * { border-top: 1px solid var(--line); }
  .gallery-page { grid-template-columns: 1fr; }
  .gallery-page__item:nth-of-type(2),.gallery-page__item:nth-of-type(5) { grid-row: auto; }
  .amenities-page ul { grid-template-columns: 1fr; }
  .next-page { align-items: flex-start; flex-direction: column; }
  .story-page { grid-template-columns: 1fr; }
  .story-page__body blockquote { margin: 2rem 0; }
  .arrival-band { grid-template-columns: 1fr; }
  .territory-explore__intro { grid-template-columns: 1fr; }
  .territory-explore__intro .eyebrow { grid-column: 1; margin-bottom: 0; }
  .feature-cards { grid-template-columns: 1fr; }
  .feature-cards > :nth-child(1),.feature-cards > :nth-child(4) { grid-column: 1; }
  .territory-photo-grid { grid-template-columns: 1fr 1fr; }
  .territory-photo-grid figure:nth-child(2),.territory-photo-grid figure:nth-child(3) { margin-top: 0; }
  .territory-photo-grid figure:nth-child(2) img,.territory-photo-grid figure:nth-child(3) img { height: 22rem; }
  .territory-photo-grid figure:nth-child(3) { grid-column: 1 / -1; width: 70%; }
  .pricing-table > div { grid-template-columns: 1fr; gap: .3rem; }
  .pricing-table dd { text-align: left; }
  .rates-photo-strip { min-height: 30rem; }
  .gallery-dialog__arrow--prev { left: .65rem; }
  .gallery-dialog__arrow--next { right: .65rem; }
  .gallery-hero { display: block; min-height: auto; }
  .gallery-hero__copy { padding: 3rem 0 4rem; }
  .gallery-hero__photos { min-height: 27rem; }
  .gallery-archive { grid-template-columns: 1fr; }
  .gallery-archive__item,
  .gallery-archive__item:nth-child(4n + 1),
  .gallery-archive__item:nth-child(4n + 4) { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .site-footer { opacity: 1; transform: none; }
}
