:root {
  --ink: #343938;
  --ridge: #b98668;
  --pine: #68776b;
  --pine-deep: #4d5e54;
  --moraine: #dccfbe;
  --chalk: #f5f0e8;
  --paper: #fbf9f5;
  --stone: #777772;
  --wood: #806557;
  --line: rgba(52, 57, 56, 0.16);
  --muted: #646a65;
  --white: #fff;
  --shadow: 0 24px 70px rgba(52, 57, 56, 0.13);
  --sans: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --serif: "New York", Georgia, "Times New Roman", serif;
  --page: var(--ridge);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--chalk);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body[data-page="kitchen"] { --page: var(--pine); }
body[data-page="guide"] { --page: #50645d; }
body[data-page="stays"] { --page: var(--ridge); }
body.menu-open, body.drawer-open, body.modal-open, body.calendar-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 1000;
  padding: 12px 18px;
  background: var(--ink);
  color: var(--chalk);
}
.skip-link:focus { top: 16px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: 84px;
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
  align-items: center;
  padding: 0 clamp(22px, 4vw, 72px);
  background: color-mix(in srgb, var(--chalk) 93%, transparent);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
  transition: height .25s ease, box-shadow .25s ease;
}
.site-header.scrolled { height: 70px; box-shadow: 0 12px 35px rgba(25, 26, 23, .07); }
.brand { display: inline-flex; align-items: center; width: 60px; }
.brand img { width: 60px; height: 60px; object-fit: cover; border-radius: 50%; box-shadow: 0 7px 18px rgba(25,26,23,.11); }
.brand:focus-visible { outline: 3px solid var(--ridge); outline-offset: 4px; }
.main-nav { display: flex; align-items: center; gap: 28px; }
.main-nav a {
  position: relative;
  padding: 29px 0 25px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.main-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 21px;
  height: 2px;
  background: var(--page);
  transition: right .25s ease;
}
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.main-nav a.active { color: var(--ink); }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.icon-button, .menu-toggle {
  position: relative;
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.icon-button:hover, .menu-toggle:hover { background: var(--ink); color: var(--chalk); }
.cart-count {
  position: absolute;
  right: -6px;
  top: -6px;
  min-width: 21px;
  height: 21px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--page);
  color: var(--white);
  font-size: 10px;
  font-weight: 800;
}
.bag-icon {
  position: relative;
  width: 15px;
  height: 13px;
  display: inline-block;
  border: 1.5px solid currentColor;
  border-top: 0;
}
.bag-icon::before {
  content: "";
  position: absolute;
  left: 3px;
  top: -5px;
  width: 7px;
  height: 6px;
  border: 1.5px solid currentColor;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
}
.header-cta {
  padding: 12px 17px;
  background: var(--ink);
  color: var(--chalk);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.menu-toggle { display: none; }

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 90;
  padding: 104px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
  background: var(--ink);
  color: var(--chalk);
  transform: translateY(-110%);
  transition: transform .42s cubic-bezier(.7, 0, .2, 1);
}
.mobile-nav.open { transform: none; }
.mobile-nav a {
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  font-family: var(--serif);
  font-size: clamp(28px, 8vw, 36px);
  line-height: 1.1;
}

.page-shell { overflow: hidden; }
.page-hero {
  position: relative;
  min-height: min(760px, calc(100vh - 84px));
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.hero-copy {
  position: relative;
  z-index: 2;
  grid-column: 1 / span 6;
  padding: clamp(70px, 9vw, 145px) 5vw 70px clamp(24px, 6vw, 105px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-media {
  position: relative;
  grid-column: 7 / -1;
  min-height: 620px;
  overflow: hidden;
  background: var(--moraine);
}
.hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(25,26,23,.12), transparent 42%), linear-gradient(0deg, rgba(25,26,23,.18), transparent 50%);
  pointer-events: none;
}
.hero-kicker, .section-kicker, .micro-label {
  margin: 0 0 22px;
  color: var(--page);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.page-hero h1 {
  max-width: 720px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(55px, 6.3vw, 112px);
  font-weight: 400;
  line-height: .91;
  letter-spacing: -.055em;
}
.page-hero .lead {
  max-width: 600px;
  margin: 30px 0 0;
  color: #4d504b;
  font-size: clamp(17px, 1.5vw, 21px);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 35px; }
.button {
  min-height: 49px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 20px;
  border: 1px solid var(--ink);
  background: transparent;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--ink); color: var(--chalk); }
.button.primary:hover { background: var(--page); border-color: var(--page); }
.button.light { border-color: var(--chalk); background: var(--chalk); color: var(--ink); }
.button.text { min-height: 0; padding: 0 0 5px; border: 0; border-bottom: 1px solid currentColor; }

.signal-strip {
  position: absolute;
  z-index: 3;
  left: clamp(24px, 6vw, 105px);
  right: 51%;
  bottom: 25px;
  height: 95px;
  opacity: .24;
  background: none;
  pointer-events: none;
}
.hero-caption {
  position: absolute;
  z-index: 3;
  right: 26px;
  bottom: 25px;
  padding: 8px 11px;
  background: rgba(25,26,23,.78);
  color: var(--chalk);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.ticker {
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: var(--page);
  color: var(--white);
}
.ticker-track {
  width: max-content;
  display: flex;
  gap: 42px;
  padding: 14px 0;
  animation: ticker 30s linear infinite;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.ticker-track span::before { content: "／"; margin-right: 42px; opacity: .6; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section { padding: clamp(75px, 9vw, 145px) clamp(24px, 6vw, 105px); }
.section.compact { padding-top: 55px; padding-bottom: 55px; }
.section.dark { background: var(--ink); color: var(--chalk); }
.section.pine { background: var(--pine); color: var(--chalk); }
.section.ridge { background: var(--ridge); color: var(--chalk); }
.section.moraine { background: var(--moraine); }
.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 60px;
  align-items: end;
  margin-bottom: 52px;
}
.section-head h2, .split-copy h2, .editorial-title {
  max-width: 1000px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(42px, 5vw, 78px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.045em;
}
.section-head > p { max-width: 570px; margin: 0; color: var(--muted); font-size: 18px; }
.dark .section-head > p, .pine .section-head > p, .ridge .section-head > p { color: rgba(242,239,231,.72); }

.filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
.filter-button {
  padding: 10px 15px;
  border: 1px solid var(--line);
  background: transparent;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}
.filter-button:hover, .filter-button.active { background: var(--ink); color: var(--chalk); }

/* Shop */
.shop-hero .hero-media img { object-position: center; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.product-card { position: relative; background: var(--chalk); min-width: 0; }
.product-image { position: relative; aspect-ratio: 1 / 1.08; overflow: hidden; background: #e9e4da; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1); }
.product-card:hover .product-image img { transform: scale(1.045); }
.product-badge {
  position: absolute;
  left: 14px;
  top: 14px;
  padding: 6px 9px;
  background: var(--chalk);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.quick-add {
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: var(--ink);
  color: var(--chalk);
  font-size: 23px;
  cursor: pointer;
  transform: translateY(8px);
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease, background .2s ease;
}
.product-card:hover .quick-add { opacity: 1; transform: none; }
.quick-add:hover { background: var(--ridge); }
.product-info { padding: 21px; }
.product-meta { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.product-info h3 { margin: 9px 0 6px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.05; }
.product-info p { margin: 0; color: var(--muted); font-size: 14px; }
.product-open { position: absolute; inset: 0; z-index: 1; border: 0; background: transparent; cursor: pointer; }
.quick-add { z-index: 2; }

.collection-banner { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 590px; }
.collection-banner img { width: 100%; height: 100%; object-fit: cover; }
.collection-copy { padding: clamp(50px, 8vw, 115px); display: flex; flex-direction: column; justify-content: center; background: var(--pine); color: var(--chalk); }
.collection-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(45px, 5vw, 78px); font-weight: 400; line-height: .95; }
.collection-copy p { max-width: 550px; color: rgba(242,239,231,.74); font-size: 18px; }

/* Kitchen */
.kitchen-hero .hero-media img { object-position: center; }
.feature-story { display: grid; grid-template-columns: 1.2fr .8fr; min-height: 650px; background: var(--paper); }
.feature-story-media { position: relative; overflow: hidden; }
.feature-story-media img { width: 100%; height: 100%; object-fit: cover; }
.feature-story-copy { padding: clamp(50px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; }
.feature-story-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(45px, 5vw, 75px); font-weight: 400; line-height: .97; }
.feature-story-copy p { color: var(--muted); font-size: 18px; }
.recipe-toolbar { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; margin-bottom: 30px; }
.search-input { width: 100%; max-width: 520px; height: 48px; padding: 0 15px; border: 1px solid var(--line); background: transparent; outline: none; }
.search-input:focus { border-color: var(--pine); }
.recipe-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.recipe-card { position: relative; min-height: 310px; padding: 28px; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); cursor: pointer; transition: transform .25s ease, background .25s ease, color .25s ease; }
.recipe-card:nth-child(4n+2) { background: var(--moraine); }
.recipe-card:nth-child(5n+3) { background: #d8c5ae; }
.recipe-card:hover { transform: translateY(-5px); background: var(--pine); color: var(--chalk); }
.recipe-card .category { color: var(--page); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.recipe-card:hover .category { color: #d7b9a8; }
.recipe-card h3 { margin: 35px 0 10px; font-family: var(--serif); font-size: 30px; font-weight: 400; line-height: 1.04; }
.recipe-card p { margin: 0 0 26px; color: var(--muted); font-size: 14px; }
.recipe-card:hover p { color: rgba(242,239,231,.73); }
.recipe-bottom { margin-top: auto; display: flex; justify-content: space-between; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.wellness-grid { display: grid; grid-template-columns: 1fr 1fr; }
.wellness-grid article { min-height: 550px; position: relative; overflow: hidden; }
.wellness-grid img { width: 100%; height: 100%; object-fit: cover; }
.wellness-copy { padding: clamp(45px, 7vw, 100px); display: flex; flex-direction: column; justify-content: center; background: var(--ridge); color: var(--chalk); }
.wellness-copy h2 { font-family: var(--serif); font-size: clamp(45px, 5vw, 77px); font-weight: 400; line-height: .98; }

/* Guide */
.guide-hero .hero-media img { filter: saturate(.75); }
.guide-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.guide-chips span { padding: 7px 10px; border: 1px solid var(--line); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.trail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(242,239,231,.18); }
.trail-card { min-height: 370px; padding: 34px; display: flex; flex-direction: column; background: var(--pine); border: 1px solid rgba(242,239,231,.12); }
.trail-number { font-family: var(--serif); font-size: 64px; color: rgba(242,239,231,.24); }
.trail-card h3 { margin: auto 0 12px; font-family: var(--serif); font-size: 34px; font-weight: 400; line-height: 1.05; }
.trail-card p { color: rgba(242,239,231,.68); }
.trail-stats { display: flex; gap: 18px; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.map-layout { display: grid; grid-template-columns: .78fr 1.22fr; min-height: 650px; border: 1px solid var(--line); }
.map-sidebar { padding: 35px; border-right: 1px solid var(--line); }
.map-sidebar h2 { margin: 0 0 25px; font-family: var(--serif); font-size: 48px; font-weight: 400; }
.map-tabs { display: grid; gap: 8px; }
.map-tab { padding: 16px; display: flex; justify-content: space-between; border: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; }
.map-tab.active { background: var(--ink); color: var(--chalk); }
.map-panel { position: relative; min-height: 600px; background: #d9ddd8; }
.map-panel iframe { width: 100%; height: 100%; min-height: 650px; border: 0; filter: grayscale(.15) saturate(.65); }
.directory-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.directory-card { min-height: 245px; padding: 25px; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--paper); }
.directory-card h3 { margin: 18px 0 8px; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.directory-card p { color: var(--muted); font-size: 14px; }
.directory-card a { margin-top: auto; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.itinerary-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.itinerary { min-height: 410px; padding: 38px; display: flex; flex-direction: column; border-right: 1px solid var(--line); }
.itinerary:last-child { border: 0; }
.itinerary .day { font-family: var(--serif); font-size: 80px; color: var(--ridge); }
.itinerary h3 { margin: auto 0 12px; font-family: var(--serif); font-size: 34px; font-weight: 400; }

/* Stays */
.stays-hero { background: var(--ink); color: var(--chalk); }
.stays-hero .hero-copy { background: var(--ink); }
.stays-hero .lead { color: rgba(242,239,231,.74); }
.stay-facts { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--ink); color: var(--chalk); border-top: 1px solid rgba(255,255,255,.12); }
.stay-facts div { padding: 30px clamp(20px, 3vw, 45px); border-right: 1px solid rgba(255,255,255,.12); }
.stay-facts strong { display: block; font-family: var(--serif); font-size: 32px; font-weight: 400; }
.stay-facts span { color: rgba(242,239,231,.6); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.booking-section { display: grid; grid-template-columns: .72fr 1.28fr; background: var(--ridge); color: var(--chalk); }
.booking-intro { padding: clamp(55px, 7vw, 110px); }
.booking-intro h2 { margin: 0; font-family: var(--serif); font-size: clamp(48px, 5.5vw, 82px); font-weight: 400; line-height: .95; }
.booking-intro p { color: rgba(242,239,231,.75); }
.booking-card { position: relative; margin: 40px; padding: clamp(28px, 4vw, 58px); align-self: center; background: var(--chalk); color: var(--ink); box-shadow: var(--shadow); }
.booking-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(150px, .72fr); gap: 16px; }
.booking-field { display: grid; gap: 7px; }
.booking-field label, .booking-field .field-label { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.booking-field select { height: 78px; padding: 0 42px 0 16px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease; }
.booking-field select:focus { outline: 0; border-color: var(--ridge); box-shadow: 0 0 0 3px rgba(166,82,61,.13); }
.date-trigger { min-height: 78px; padding: 13px 15px 12px 17px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); background: var(--paper); text-align: left; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.date-trigger:hover, .date-trigger[aria-expanded="true"] { border-color: var(--ridge); background: var(--white); box-shadow: 0 0 0 3px rgba(166,82,61,.1); }
.date-trigger strong { display: block; font-family: var(--serif); font-size: 21px; font-weight: 400; line-height: 1.1; }
.date-trigger small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.date-change { color: var(--ridge); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.booking-form .button { grid-column: 1 / -1; margin-top: 8px; }
.booking-submit {
  width: fit-content;
  min-width: 270px;
  max-width: 100%;
  justify-self: center;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.booking-submit span { width: 100%; text-align: center; }

.calendar-backdrop { position: fixed; inset: 0; z-index: 170; background: rgba(25,26,23,.52); opacity: 0; pointer-events: none; backdrop-filter: blur(3px); transition: opacity .25s ease; }
.calendar-backdrop.open { opacity: 1; pointer-events: auto; }
.booking-calendar { position: fixed; z-index: 175; left: 50%; top: 50%; width: min(850px, calc(100% - 32px)); max-height: calc(100vh - 32px); overflow: auto; background: var(--chalk); box-shadow: 0 30px 100px rgba(10,12,10,.32); transform: translate(-50%, -50%); }
.booking-calendar[hidden] { display: none; }
.calendar-topbar { min-height: 104px; padding: 22px 25px; display: flex; justify-content: space-between; gap: 30px; align-items: center; background: var(--ink); color: var(--chalk); }
.calendar-topbar span { display: block; color: rgba(242,239,231,.58); font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.calendar-topbar strong { display: block; margin-top: 5px; font-family: var(--serif); font-size: 21px; font-weight: 400; }
.calendar-navigation { display: flex; gap: 7px; }
.calendar-navigation button { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.2); background: transparent; color: var(--chalk); cursor: pointer; }
.calendar-navigation button:hover:not(:disabled), .calendar-navigation button:focus-visible { background: rgba(255,255,255,.1); }
.calendar-navigation button:disabled { opacity: .28; cursor: default; }
.calendar-months { padding: 27px; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.calendar-month { padding: 18px; border: 1px solid var(--line); background: var(--paper); }
.calendar-month h3 { margin: 0 0 18px; color: var(--ink); font-family: var(--serif); font-size: 26px; font-weight: 400; text-align: center; text-transform: capitalize; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.calendar-weekdays span { padding: 4px 0 8px; color: #4f524d; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.calendar-day, .calendar-blank { aspect-ratio: 1; }
.calendar-day { position: relative; display: grid; place-items: center; border: 1px solid rgba(25,26,23,.1); background: rgba(255,255,255,.72); color: var(--ink); font-size: 13px; font-weight: 650; cursor: pointer; transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease; }
.calendar-day:hover:not(:disabled), .calendar-day:focus-visible { z-index: 1; outline: 0; border-color: var(--ridge); background: rgba(166,82,61,.12); transform: translateY(-1px); }
.calendar-day:disabled { border-color: transparent; background: rgba(25,26,23,.025); color: #7b7e78; font-weight: 500; cursor: not-allowed; }
.calendar-day.in-range { border-color: rgba(166,82,61,.18); background: #eadbd5; color: #44231c; }
.calendar-day.range-start, .calendar-day.range-end { border-color: #7f3828; background: var(--ridge); color: var(--white); font-weight: 900; box-shadow: inset 0 0 0 1px rgba(255,255,255,.24); }
.calendar-day.today:not(.range-start):not(.range-end) { border-color: var(--ridge); }
.calendar-day.today:not(.range-start):not(.range-end)::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 5px; height: 5px; border-radius: 50%; background: var(--ridge); transform: translateX(-50%); }
.calendar-legend { padding: 14px 27px 19px; display: flex; justify-content: flex-end; gap: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.calendar-legend span { display: flex; align-items: center; gap: 7px; }
.calendar-legend i { width: 12px; height: 12px; display: inline-block; border: 1px solid var(--ridge); }
.calendar-legend .legend-start, .calendar-legend .legend-end { background: var(--ridge); }
.calendar-legend .legend-range { background: rgba(166,82,61,.12); border-color: rgba(166,82,61,.3); }
.object-section { background: var(--chalk); }
.dual-home { margin-bottom: 18px; min-height: 610px; display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(330px, .58fr); background: var(--pine); color: var(--chalk); }
.dual-home-visual { position: relative; min-width: 0; min-height: 610px; margin: 0; overflow: hidden; background: var(--ink); }
.dual-home-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,17,14,.04) 32%, rgba(10,17,14,.34) 100%); pointer-events: none; }
.dual-home-visual img { width: 100%; height: 100%; min-height: 610px; display: block; object-fit: cover; object-position: center; }
.dual-home-label { position: absolute; z-index: 3; top: 15%; width: clamp(126px, 14vw, 154px); padding: 11px 13px 10px; box-sizing: border-box; display: grid; justify-items: center; gap: 2px; transform: translateX(-50%); border: 1px solid rgba(255,255,255,.5); background: rgba(25,26,23,.76); color: var(--chalk); text-align: center; white-space: nowrap; backdrop-filter: blur(8px); }
.dual-home-label::after { content: ""; position: absolute; left: 50%; top: 100%; width: 1px; height: clamp(90px, 11vw, 145px); background: rgba(255,255,255,.62); }
.dual-home-label-one { left: 25%; }
.dual-home-label-two { left: 75%; }
.dual-home-label strong { display: block; font-size: 10px; font-weight: 850; line-height: 1.25; letter-spacing: .12em; text-transform: uppercase; }
.dual-home-label small { display: block; color: rgba(242,239,231,.7); font-size: 8px; font-weight: 700; line-height: 1.25; letter-spacing: .08em; text-transform: uppercase; }
.dual-home-divider { position: absolute; z-index: 2; left: 50%; top: 12%; bottom: 13%; width: 1px; background: linear-gradient(180deg, transparent, rgba(255,255,255,.72) 18%, rgba(255,255,255,.72) 80%, transparent); }
.dual-home-divider::after { content: ""; position: absolute; left: 50%; top: 52%; width: 9px; height: 9px; border: 1px solid rgba(255,255,255,.8); background: var(--ridge); transform: translate(-50%,-50%) rotate(45deg); }
.dual-home-visual figcaption { position: absolute; z-index: 3; left: 22px; bottom: 19px; color: rgba(242,239,231,.72); font-size: 8px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.dual-home-copy { padding: clamp(42px, 5vw, 76px); display: flex; flex-direction: column; justify-content: center; }
.dual-home-copy .section-kicker { color: #dba997; }
.dual-home-copy h2 { margin: 0; max-width: 12ch; font-family: var(--serif); font-size: clamp(43px, 4.2vw, 66px); font-weight: 400; line-height: .95; text-wrap: balance; }
.dual-home-copy > p:not(.section-kicker) { margin: 26px 0 30px; color: rgba(242,239,231,.7); }
.dual-home-points { border-top: 1px solid rgba(255,255,255,.16); }
.dual-home-points span { position: relative; min-height: 46px; padding: 14px 0 12px 22px; display: block; border-bottom: 1px solid rgba(255,255,255,.16); color: rgba(242,239,231,.78); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.dual-home-points span::before { content: ""; position: absolute; left: 0; top: 50%; width: 11px; height: 1px; background: #dba997; transform: translateY(-50%); }
.object-overview { min-height: 650px; display: grid; grid-template-columns: 1.15fr .85fr; background: var(--ink); color: var(--chalk); }
.object-overview-media { position: relative; min-width: 0; margin: 0; overflow: hidden; }
.object-overview-media::after { content: ""; position: absolute; inset: 60% 0 0; background: linear-gradient(180deg, transparent, rgba(25,26,23,.82)); }
.object-overview-media img { width: 100%; height: 100%; min-height: 650px; object-fit: cover; }
.object-overview-media figcaption { position: absolute; z-index: 1; left: 32px; right: 32px; bottom: 29px; display: flex; align-items: baseline; gap: 14px; }
.object-overview-media figcaption strong { font-family: var(--serif); font-size: 52px; font-weight: 400; line-height: 1; }
.object-overview-media figcaption span { color: rgba(242,239,231,.64); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.object-overview-copy { padding: clamp(48px, 6vw, 90px); display: flex; flex-direction: column; justify-content: center; }
.object-overview-copy .section-kicker { color: #dba997; }
.object-overview-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(48px, 5vw, 76px); font-weight: 400; line-height: .95; }
.object-overview-copy > p:not(.section-kicker) { margin: 28px 0; color: rgba(242,239,231,.7); }
.object-numbers { margin: 3px 0 34px; display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid rgba(255,255,255,.14); border-left: 1px solid rgba(255,255,255,.14); }
.object-numbers div { min-height: 100px; padding: 18px; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.object-numbers strong { display: block; font-family: var(--serif); font-size: 35px; font-weight: 400; line-height: 1; }
.object-numbers span { color: rgba(242,239,231,.54); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.object-overview-copy .button { align-self: flex-start; background: var(--ridge); color: var(--white); border-color: var(--ridge); }
.object-overview-copy .button:hover { background: var(--chalk); color: var(--ink); border-color: var(--chalk); }
.object-zones { margin-top: 18px; display: grid; gap: 18px; }
.object-zone { min-height: 480px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); background: var(--paper); }
.object-zone.reverse .object-zone-image { order: 2; }
.object-zone-image { position: relative; min-width: 0; overflow: hidden; background: var(--moraine); }
.object-zone-image img { width: 100%; height: 100%; min-height: 480px; object-fit: cover; transition: transform .6s ease; }
.object-zone:hover .object-zone-image img { transform: scale(1.035); }
.object-zone-image > span { position: absolute; left: 22px; top: 20px; width: 48px; height: 48px; display: grid; place-items: center; background: var(--chalk); color: var(--ridge); font-size: 10px; font-weight: 900; letter-spacing: .11em; }
.object-zone-copy { padding: clamp(36px, 5vw, 72px); display: flex; flex-direction: column; justify-content: center; }
.object-zone-copy .micro-label { color: var(--ridge); }
.object-zone-copy h3 { max-width: 520px; margin: 8px 0 20px; font-family: var(--serif); font-size: clamp(38px, 4vw, 58px); font-weight: 400; line-height: .98; }
.object-zone-copy > p:not(.micro-label) { max-width: 590px; margin: 0; color: var(--muted); }
.object-list { margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; list-style: none; }
.object-list li { position: relative; padding: 12px 0 12px 17px; border-top: 1px solid var(--line); font-size: 12px; }
.object-list li::before { content: ""; position: absolute; left: 0; top: 19px; width: 6px; height: 6px; background: var(--ridge); }
.sleeping-plan { margin-top: 30px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.sleeping-plan span { min-height: 120px; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
.sleeping-plan i { color: var(--ridge); font-family: var(--serif); font-size: 38px; font-style: normal; font-weight: 400; line-height: 1; }
.object-included { margin-top: 18px; padding: clamp(35px, 5vw, 70px); display: grid; grid-template-columns: .75fr 1.25fr; gap: 70px; align-items: start; background: var(--pine); color: var(--chalk); }
.object-included h2 { margin: 0; font-family: var(--serif); font-size: clamp(40px, 4.4vw, 65px); font-weight: 400; line-height: .98; }
.included-grid { display: grid; grid-template-columns: 1fr 1fr; }
.included-grid span { position: relative; min-height: 60px; padding: 18px 18px 16px 38px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(242,239,231,.78); font-size: 11px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.included-grid span::before { content: "✓"; position: absolute; left: 10px; color: #dba997; font-size: 12px; }
.property-film { margin-top: 18px; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; min-height: 0; background: var(--ink); color: var(--chalk); }
.property-film-copy { padding: clamp(32px, 3.7vw, 56px); display: flex; flex-direction: column; justify-content: center; }
.property-film-copy .section-kicker { color: #dba997; }
.property-film-copy h2 { max-width: 550px; margin: 0; font-family: var(--serif); font-size: clamp(42px, 4vw, 60px); font-weight: 400; line-height: .95; }
.property-film-copy > p:not(.section-kicker):not(.property-film-note) { max-width: 540px; margin: 20px 0 22px; color: rgba(242,239,231,.68); font-size: 13px; }
.property-film-meta { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.14); }
.property-film-meta span { position: relative; min-height: 52px; padding: 13px 8px 11px 24px; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); color: rgba(242,239,231,.78); font-size: 8px; font-weight: 850; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; }
.property-film-meta span:last-child { border-right: 0; }
.property-film-meta span::before { content: "→"; position: absolute; left: 3px; color: var(--ridge); font-size: 13px; }
.property-film-note { margin: 18px 0 8px; color: rgba(242,239,231,.47); font-size: 9px; line-height: 1.45; }
.property-film-source { align-self: flex-start; color: #dba997; font-size: 9px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.property-film-media { position: relative; width: 100%; min-width: 0; height: auto; min-height: 0; aspect-ratio: 16 / 9; margin: 0; overflow: hidden; background: #10110f; }
.property-film-media video { width: 100%; height: 100%; min-height: 0; display: block; object-fit: cover; object-position: center; background: #10110f; }
.property-film-media figcaption { position: absolute; z-index: 1; left: 22px; right: 22px; top: 20px; min-height: 42px; padding: 10px 13px; display: flex; justify-content: space-between; gap: 20px; align-items: center; background: rgba(25,26,23,.72); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(8px); color: var(--chalk); pointer-events: none; }
.property-film-media figcaption span { color: #dba997; font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.property-film-media figcaption strong { font-size: 11px; font-weight: 650; }
.interior-plan { margin-top: 18px; border: 1px solid var(--line); background: var(--paper); }
.interior-plan-copy { padding: clamp(38px, 5vw, 72px); display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: clamp(45px, 6vw, 95px); align-items: start; }
.interior-plan-copy .section-kicker { grid-column: 1; grid-row: 1; }
.interior-plan-copy h2 { grid-column: 1; grid-row: 2; margin: 0; font-family: var(--serif); font-size: clamp(43px, 4.8vw, 68px); font-weight: 400; line-height: .96; }
.interior-plan-copy > p:not(.section-kicker) { grid-column: 1; grid-row: 3; margin: 24px 0 0; color: var(--muted); }
.interior-plan-levels { grid-column: 2; grid-row: 1 / span 3; border-top: 1px solid var(--line); }
.interior-plan-levels article { min-height: 80px; padding: 15px 0; display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; border-bottom: 1px solid var(--line); }
.interior-plan-levels article > span { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--ridge); border-radius: 50%; color: var(--ridge); font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.interior-plan-levels strong { display: block; font-family: var(--serif); font-size: 22px; font-weight: 400; }
.interior-plan-levels small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; text-transform: uppercase; letter-spacing: .06em; }
.interior-plan-note { grid-column: 2; grid-row: 4; margin-top: 18px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.interior-plan-explorer { min-width: 0; display: flex; flex-direction: column; border-top: 1px solid var(--line); background: linear-gradient(145deg, #e7ebe7 0%, #d6ded7 100%); }
.plan-switcher { min-height: 66px; display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid rgba(25,26,23,.16); background: rgba(242,239,231,.78); }
.plan-switcher button { min-width: 0; padding: 0 12px; border: 0; border-right: 1px solid rgba(25,26,23,.13); background: transparent; color: var(--muted); cursor: pointer; font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; transition: background .2s ease, color .2s ease; }
.plan-switcher button:last-child { border-right: 0; }
.plan-switcher button:hover { color: var(--ink); }
.plan-switcher button.active { background: var(--ink); color: var(--chalk); }
.plan-switcher button:focus-visible { position: relative; z-index: 2; outline: 3px solid var(--ridge); outline-offset: -3px; }
.plan-stage { flex: 1; min-width: 0; padding: clamp(12px, 2vw, 28px); }
.plan-panel { min-height: 680px; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(230px, .55fr); border: 1px solid rgba(25,26,23,.15); background: var(--paper); }
.plan-panel[hidden] { display: none !important; }
.plan-drawing { position: relative; min-width: 0; min-height: 680px; margin: 0; padding: clamp(18px, 2.4vw, 36px); display: grid; place-items: center; overflow: hidden; background: #f8f6ef; }
.plan-drawing img { width: 100%; max-height: 585px; display: block; object-fit: contain; mix-blend-mode: multiply; }
.plan-drawing figcaption { position: absolute; left: 18px; right: 18px; bottom: 18px; min-height: 44px; padding: 10px 13px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid rgba(25,26,23,.16); background: rgba(248,246,239,.92); backdrop-filter: blur(10px); }
.plan-drawing figcaption span { color: var(--ridge); font-size: 8px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.plan-drawing figcaption strong { color: var(--ink); font-size: 10px; font-weight: 750; }
.plan-panel-copy { padding: clamp(28px, 3vw, 44px); display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--line); background: rgba(242,239,231,.72); }
.plan-panel-copy h3 { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(31px, 3vw, 43px); font-weight: 400; line-height: 1; }
.plan-panel-copy > p:not(.micro-label) { margin: 0 0 24px; color: var(--muted); font-size: 12px; }
.plan-panel-copy ul { margin: auto 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.plan-panel-copy li { position: relative; padding: 12px 0 12px 20px; border-bottom: 1px solid var(--line); color: var(--ink); font-size: 9px; font-weight: 800; letter-spacing: .06em; line-height: 1.35; text-transform: uppercase; }
.plan-panel-copy li::before { content: "→"; position: absolute; left: 0; color: var(--ridge); }
.plan-panel-layers { position: relative; min-height: 680px; display: block; overflow: hidden; background: linear-gradient(145deg, #e8ece8, #cbd5cd); }
.plan-stack { position: relative; min-height: 610px; perspective: 1500px; transform-style: preserve-3d; }
.plan-stack-level { position: absolute; left: 10%; width: 80%; margin: 0; padding: 0; border: 0; background: transparent; filter: drop-shadow(0 22px 22px rgba(25,26,23,.18)); }
.plan-stack-level img { width: 100%; display: block; }
.plan-stack-level figcaption { position: absolute; z-index: 2; top: 14px; left: 14px; padding: 8px 10px; display: flex; gap: 8px; align-items: center; background: rgba(25,26,23,.9); color: var(--chalk); }
.plan-stack-level figcaption span { color: #dba997; font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.plan-stack-level figcaption strong { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.plan-stack-first { top: -92px; z-index: 2; }
.plan-stack-ground { top: 230px; z-index: 1; }
.plan-stack-connection { position: absolute; z-index: 3; left: 50%; top: 302px; width: 74px; padding: 6px 8px; transform: translateX(-50%); border: 1px solid var(--ridge); background: var(--paper); color: var(--ridge); font-size: 8px; font-weight: 900; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.plan-stack-connection::before, .plan-stack-connection::after { content: ""; position: absolute; left: 50%; width: 1px; height: 45px; background: var(--ridge); }
.plan-stack-connection::before { bottom: 100%; }
.plan-stack-connection::after { top: 100%; }
.plan-stack-note { position: absolute; z-index: 4; left: 24px; right: 24px; bottom: 20px; margin: 0; padding: 13px 15px; border: 1px solid rgba(25,26,23,.15); background: rgba(242,239,231,.93); color: var(--muted); font-size: 9px; line-height: 1.45; backdrop-filter: blur(10px); }
.plan-drawing-section img { max-height: 620px; }
.interior-plan-copy { align-items: end; }
.interior-plan-copy > p:not(.section-kicker) { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: 14px; }
.interior-plan-note { grid-column: 2; grid-row: 3; margin-top: 16px; }
.single-plan-visual { position: relative; min-height: clamp(570px, 66vw, 860px); margin: 0; padding: clamp(18px, 3vw, 42px); display: grid; place-items: center; overflow: hidden; border-top: 1px solid var(--line); background: radial-gradient(circle at 54% 50%, #eef0ea 0%, #d7dfd8 54%, #c8d2ca 100%); }
.single-plan-visual img { width: min(100%, 1320px); max-height: 790px; display: block; object-fit: contain; filter: drop-shadow(0 30px 35px rgba(25,26,23,.13)); }
.single-plan-visual figcaption { position: absolute; z-index: 2; left: clamp(18px, 3vw, 42px); right: clamp(18px, 3vw, 42px); bottom: clamp(18px, 3vw, 34px); min-height: 50px; padding: 11px 15px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(25,26,23,.16); background: rgba(248,246,239,.9); color: var(--ink); backdrop-filter: blur(12px); }
.single-plan-visual figcaption span { color: var(--ridge); font-size: 8px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.single-plan-visual figcaption strong { font-size: 10px; font-weight: 750; }
.amenity-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.amenity { min-height: 240px; padding: 28px; background: var(--paper); }
.amenity .amenity-icon {
  position: relative;
  width: 64px;
  height: 64px;
  display: grid;
  flex: 0 0 64px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(166, 82, 61, .22);
  border-radius: 18px;
  color: var(--ridge);
  background: rgba(166, 82, 61, .065);
  transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}
.amenity .amenity-icon svg { width: 42px; height: 42px; display: block; overflow: visible; }
.amenity .amenity-icon iconify-icon { width: 42px; height: 42px; display: block; font-size: 42px; }
.amenity .amenity-icon svg path,
.amenity .amenity-icon svg circle,
.amenity .amenity-icon svg ellipse,
.amenity .amenity-icon svg line,
.amenity .amenity-icon svg polyline,
.amenity .amenity-icon svg rect { vector-effect: non-scaling-stroke; }
.amenity .amenity-icon--wifi-parking { display: flex; align-items: center; justify-content: center; gap: 5px; }
.amenity .amenity-icon--wifi-parking svg { width: 22px; height: 22px; flex: 0 0 22px; }
.amenity-icon-divider { width: 1px; height: 28px; flex: 0 0 1px; display: block; background: currentColor; opacity: .24; }
.amenity:hover .amenity-icon { color: var(--chalk); background: var(--ridge); border-color: var(--ridge); transform: translateY(-3px); }
.amenity h3 { margin: 22px 0 8px; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.amenity p { color: var(--muted); font-size: 14px; }
.gallery-meta { margin: -28px 0 25px; display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-filter { min-height: 34px; padding: 7px 11px 6px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.gallery-filter small { min-width: 18px; height: 18px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; border-radius: 20px; background: rgba(25,26,23,.07); font-size: 8px; letter-spacing: 0; }
.gallery-filter:hover { border-color: var(--ridge); color: var(--ridge); }
.gallery-filter.active { border-color: var(--ridge); background: var(--ridge); color: var(--chalk); }
.gallery-filter.active small { background: rgba(242,239,231,.18); }
.gallery-filter:focus-visible { outline: 3px solid var(--pine); outline-offset: 3px; }
.stay-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; grid-auto-rows: 210px; gap: 10px; }
.gallery-button { position: relative; min-width: 0; padding: 0; border: 0; overflow: hidden; cursor: zoom-in; background: var(--moraine); color: var(--chalk); text-align: left; }
.gallery-button[hidden], .lightbox-thumb[hidden] { display: none !important; }
.gallery-feature { grid-column: span 2; grid-row: span 2; }
.gallery-panorama { grid-column: span 2; }
.stay-gallery.is-filtered .gallery-feature, .stay-gallery.is-filtered .gallery-panorama { grid-column: auto; grid-row: auto; }
.gallery-button::after { content: ""; position: absolute; inset: 42% 0 0; background: linear-gradient(180deg, transparent, rgba(25,26,23,.76)); pointer-events: none; }
.gallery-button img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, filter .55s ease; }
.gallery-button:hover img { transform: scale(1.045); filter: saturate(1.05); }
.gallery-button:focus-visible { outline: 3px solid var(--ridge); outline-offset: 3px; }
.gallery-label { position: absolute; z-index: 1; left: 18px; right: 18px; bottom: 16px; display: flex; gap: 11px; align-items: center; font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.gallery-label small { font-size: 9px; letter-spacing: .14em; opacity: .68; }
.review-platforms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 22px; border: 1px solid rgba(242,239,231,.22); background: rgba(242,239,231,.13); gap: 1px; }
.review-platform { min-height: 175px; margin: 0; padding: 25px 27px 23px; display: flex; flex-direction: column; background: #1d3028; color: var(--chalk); }
.review-source:focus-visible { outline: 3px solid var(--ridge); outline-offset: 3px; }
.platform-name { color: rgba(242,239,231,.68); font-size: 10px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.platform-score { display: flex; align-items: baseline; gap: 7px; margin-top: 16px; line-height: 1; }
.platform-score strong { font-family: var(--serif); font-size: 56px; font-weight: 400; letter-spacing: -.045em; }
.platform-score small { color: rgba(242,239,231,.58); font-size: 13px; font-weight: 700; }
.platform-meta { margin-top: 10px; color: rgba(242,239,231,.76); font-size: 12px; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review { min-height: 315px; padding: 28px 30px 30px; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); color: var(--ink); box-shadow: 0 18px 45px rgba(11,18,15,.14); }
.review-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.review .stars { color: var(--ridge); font-size: 13px; letter-spacing: .15em; }
.review-rating { color: var(--ridge); font-family: var(--serif); font-size: 20px; line-height: 1; }
.review-source { padding: 7px 9px 6px; border: 1px solid var(--line); color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transition: border-color .2s ease, color .2s ease; }
.review-source:hover { border-color: var(--ridge); color: var(--ridge); }
.review blockquote, .review-summary { margin: 30px 0; color: var(--ink); font-family: var(--serif); font-size: 23px; line-height: 1.28; }
.review-summary { font-style: normal; }
.review-summary-card { background: #f4efe5; }
.review-airbnb { background: #edf0e9; }
.review cite { margin-top: auto; color: var(--pine); font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.review cite::before { content: "— "; color: var(--ridge); }
.review cite span { display: block; margin: 6px 0 0 15px; color: var(--muted); font-size: 8px; letter-spacing: .13em; }
.faq-grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; }
.faq-grid h2 { margin: 0; font-family: var(--serif); font-size: clamp(45px, 5vw, 72px); font-weight: 400; line-height: .98; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { padding: 21px 5px; display: flex; justify-content: space-between; cursor: pointer; font-weight: 700; list-style: none; }
.faq-list summary::after { content: "+"; color: var(--ridge); font-size: 22px; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 780px; padding: 0 45px 22px 5px; margin: 0; color: var(--muted); }
.contact-band { display: grid; grid-template-columns: 1fr 1fr; background: var(--pine); color: var(--chalk); }
.contact-copy { padding: clamp(60px, 8vw, 120px); }
.contact-copy h2 { margin: 0 0 25px; font-family: var(--serif); font-size: clamp(48px, 5vw, 76px); font-weight: 400; line-height: .97; }
.contact-links { display: grid; gap: 10px; margin-top: 30px; }
.contact-map { position: relative; min-height: 650px; overflow: hidden; background: #e9e6dd; }
.contact-map iframe { width: 100%; height: 100%; min-height: 650px; border: 0; filter: saturate(.82) contrast(.98); }
.google-place-card { position: absolute; z-index: 2; left: 28px; bottom: 28px; width: min(430px, calc(100% - 56px)); padding: 27px; background: rgba(250,248,242,.97); color: var(--ink); border: 1px solid rgba(25,26,23,.16); box-shadow: 0 24px 65px rgba(25,26,23,.25); backdrop-filter: blur(16px); }
.google-place-brand { margin-bottom: 28px; display: flex; align-items: center; gap: 10px; color: #4b4d49; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.google-pin { position: relative; width: 20px; height: 20px; display: inline-block; border: 5px solid #4285f4; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.google-pin::after { content: ""; position: absolute; inset: 2px; border-radius: 50%; background: #fff; }
.google-place-card .micro-label { margin: 0 0 8px; color: var(--ridge); }
.google-place-card h3 { margin: 0; font-family: var(--serif); font-size: clamp(31px, 3vw, 43px); font-weight: 400; line-height: 1.02; letter-spacing: -.025em; }
.google-place-card > p:not(.micro-label) { margin: 17px 0 22px; color: var(--muted); font-size: 13px; }
.google-place-actions { display: flex; align-items: center; gap: 18px; }
.google-place-actions .button { flex: 1; min-width: 0; padding: 14px 15px; text-align: center; }
.google-place-actions > a:not(.button) { flex: none; color: var(--ridge); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.brand-bridge { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.bridge-card { position: relative; min-height: 310px; padding: 30px; overflow: hidden; border-right: 1px solid var(--line); }
.bridge-card:last-child { border-right: 0; }
.bridge-card span { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--page); }
.bridge-card h3 { margin: 85px 0 10px; font-family: var(--serif); font-size: 35px; font-weight: 400; }
.bridge-card p { max-width: 420px; color: var(--muted); }
.bridge-card::after { content: none; }

.site-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  padding: 55px clamp(24px, 6vw, 105px);
  background: var(--ink);
  color: var(--chalk);
}
.footer-logo { width: 118px; height: 118px; object-fit: cover; border-radius: 50%; box-shadow: 0 15px 35px rgba(0,0,0,.24); }
.footer-copy p { max-width: 560px; color: rgba(242,239,231,.57); }
.footer-links { display: grid; grid-template-columns: repeat(2, auto); gap: 8px 35px; align-content: start; }
.footer-links a { color: rgba(242,239,231,.72); font-size: 12px; }
.footer-bottom { grid-column: 1 / -1; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.13); display: flex; justify-content: space-between; color: rgba(242,239,231,.45); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.drawer-backdrop, .modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 180;
  background: rgba(25,26,23,.56);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.drawer-backdrop.open, .modal-backdrop.open { opacity: 1; pointer-events: auto; }
.side-drawer {
  position: fixed;
  z-index: 190;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(460px, 100%);
  padding: 28px;
  display: flex;
  flex-direction: column;
  background: var(--chalk);
  transform: translateX(105%);
  transition: transform .38s cubic-bezier(.7,0,.2,1);
}
.side-drawer.open { transform: none; }
.drawer-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { margin: 0; font-family: var(--serif); font-size: 34px; font-weight: 400; }
.close-button { width: 40px; height: 40px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.cart-items { flex: 1; overflow: auto; padding: 20px 0; }
.cart-item { display: grid; grid-template-columns: 74px 1fr auto; gap: 13px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.cart-item img { width: 74px; height: 74px; object-fit: cover; }
.cart-item strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 18px; }
.cart-item button { border: 0; background: none; color: var(--muted); cursor: pointer; }
.cart-total { padding-top: 20px; border-top: 1px solid var(--line); }
.total-line { display: flex; justify-content: space-between; margin-bottom: 15px; font-weight: 700; }
.empty-state { padding: 65px 20px; text-align: center; color: var(--muted); }

.modal {
  position: fixed;
  z-index: 200;
  left: 50%;
  top: 50%;
  width: min(980px, calc(100% - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  background: var(--chalk);
  box-shadow: var(--shadow);
  transform: translate(-50%, -46%) scale(.97);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.modal.open { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.modal-close { position: sticky; z-index: 3; float: right; top: 16px; right: 16px; margin: 16px; width: 44px; height: 44px; border: 0; background: var(--ink); color: var(--chalk); cursor: pointer; }
.product-modal-grid { display: grid; grid-template-columns: 1fr 1fr; }
.product-modal-grid img { width: 100%; min-height: 620px; height: 100%; object-fit: cover; }
.modal-copy { padding: clamp(36px, 6vw, 75px); }
.modal-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(43px, 5vw, 65px); font-weight: 400; line-height: .98; }
.modal-copy .price { margin: 20px 0; font-size: 20px; font-weight: 700; }
.detail-list { padding: 0; margin: 25px 0; list-style: none; }
.detail-list li { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.recipe-modal { padding: clamp(35px, 6vw, 75px); }
.recipe-modal h2 { max-width: 780px; margin: 0; font-family: var(--serif); font-size: clamp(42px, 5vw, 70px); font-weight: 400; line-height: .96; }
.recipe-modal-meta { display: flex; gap: 25px; margin: 22px 0 35px; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.recipe-columns { display: grid; grid-template-columns: .75fr 1.25fr; gap: 50px; }
.recipe-columns h3 { font-family: var(--serif); font-size: 27px; font-weight: 400; }
.recipe-columns li { margin-bottom: 9px; }
.booking-modal { width: min(1180px, calc(100% - 32px)); height: min(860px, calc(100vh - 32px)); height: min(860px, calc(100dvh - 32px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; background: var(--chalk); }
.booking-modal .modal-close { position: absolute; z-index: 5; top: 16px; right: 16px; float: none; margin: 0; }
.booking-modal-head { padding: 28px 82px 22px 30px; border-bottom: 1px solid var(--line); background: var(--paper); }
.booking-modal-head .micro-label { margin: 0 0 5px; color: var(--ridge); }
.booking-modal-head h2 { margin: 0; font-family: var(--serif); font-size: clamp(31px, 4vw, 47px); font-weight: 400; line-height: 1; }
.booking-frame-shell { position: relative; min-height: 0; background: var(--white); }
.booking-frame-shell iframe { width: 100%; height: 100%; display: block; border: 0; background: var(--white); }
.booking-frame-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; justify-items: center; gap: 15px; background: var(--chalk); transition: opacity .25s ease; }
.booking-frame-loading span { width: 38px; height: 38px; border: 2px solid rgba(166,82,61,.18); border-top-color: var(--ridge); border-radius: 50%; animation: booking-spin .8s linear infinite; }
.booking-frame-loading p { margin: 0; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.booking-frame-loading.loaded { opacity: 0; pointer-events: none; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
.booking-modal-footer { min-height: 48px; padding: 10px 18px; display: flex; justify-content: space-between; gap: 20px; align-items: center; border-top: 1px solid var(--line); background: var(--paper); color: var(--muted); font-size: 10px; }
.booking-modal-footer a { color: var(--ridge); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lightbox { width: min(1180px, calc(100% - 32px)); overflow: hidden; background: var(--ink); color: var(--chalk); }
.lightbox .modal-close { position: absolute; z-index: 5; top: 14px; right: 14px; float: none; margin: 0; background: rgba(25,26,23,.82); border: 1px solid rgba(255,255,255,.2); }
.lightbox-stage { min-height: min(70vh, 720px); display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; align-items: center; }
.lightbox-stage figure { min-width: 0; margin: 0; }
.lightbox-stage img { width: 100%; height: min(66vh, 680px); display: block; object-fit: contain; background: #151614; }
.lightbox-stage figcaption { min-height: 58px; padding: 13px 16px 15px; display: flex; justify-content: space-between; gap: 25px; align-items: center; color: rgba(242,239,231,.9); font-size: 13px; }
.lightbox-stage figcaption span { flex: none; color: rgba(242,239,231,.52); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.lightbox-stage figcaption strong { font-weight: 500; text-align: right; }
.lightbox-nav { width: 46px; height: 58px; justify-self: center; border: 1px solid rgba(255,255,255,.18); background: transparent; color: var(--chalk); font-size: 24px; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
.lightbox-nav:hover, .lightbox-nav:focus-visible { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.45); }
.lightbox-thumbs { padding: 12px 18px 18px; display: grid; grid-auto-flow: column; grid-auto-columns: 82px; gap: 8px; overflow-x: auto; border-top: 1px solid rgba(255,255,255,.1); scrollbar-color: rgba(255,255,255,.35) transparent; }
.lightbox-thumb { height: 62px; padding: 0; overflow: hidden; border: 2px solid transparent; background: transparent; cursor: pointer; opacity: .48; transition: opacity .2s ease, border-color .2s ease; }
.lightbox-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.lightbox-thumb:hover { opacity: .82; }
.lightbox-thumb.active { border-color: var(--ridge); opacity: 1; }

.toast {
  position: fixed;
  z-index: 250;
  right: 24px;
  bottom: 24px;
  max-width: 360px;
  padding: 14px 18px;
  background: var(--ink);
  color: var(--chalk);
  font-size: 13px;
  transform: translateY(25px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.toast.show { opacity: 1; transform: none; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
.hidden { display: none !important; }

@media (max-width: 1120px) {
  .site-header { grid-template-columns: 170px 1fr auto; }
  .brand { width: 54px; }
  .brand img { width: 54px; height: 54px; }
  .main-nav { gap: 16px; }
  .main-nav a { font-size: 10px; }
  .header-cta { display: none; }
  .product-grid { grid-template-columns: repeat(3, 1fr); }
  .recipe-grid { grid-template-columns: repeat(2, 1fr); }
  .directory-grid { grid-template-columns: repeat(2, 1fr); }
  .amenity-grid { grid-template-columns: repeat(2, 1fr); }
  .property-film-copy { padding: 34px; }
  .property-film-copy h2 { font-size: 48px; }
  .property-film-media { height: auto; }
}

@media (max-width: 820px) {
  .site-header { height: 72px; grid-template-columns: 1fr auto; padding: 0 18px; }
  .site-header.scrolled { height: 64px; }
  .brand { width: 48px; }
  .brand img { width: 48px; height: 48px; }
  .main-nav { display: none; }
  .header-actions { grid-column: 2; }
  .menu-toggle { display: inline-grid; }
  .page-hero { display: flex; min-height: 0; flex-direction: column; }
  .hero-copy { order: 2; padding: 60px 24px 95px; }
  .hero-media { order: 1; min-height: 54vh; }
  .page-hero h1 { font-size: clamp(52px, 16vw, 78px); }
  .signal-strip { left: 24px; right: 24px; bottom: 12px; height: 70px; background-size: 68px 68px; }
  .section { padding-left: 24px; padding-right: 24px; }
  .section-head { grid-template-columns: 1fr; gap: 18px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .collection-banner, .feature-story, .wellness-grid, .map-layout, .booking-section, .faq-grid, .contact-band, .dual-home, .object-overview, .object-zone, .object-included, .property-film, .interior-plan { grid-template-columns: 1fr; }
  .collection-banner img, .feature-story-media { min-height: 470px; }
  .recipe-toolbar { grid-template-columns: 1fr; }
  .recipe-grid { grid-template-columns: 1fr 1fr; }
  .trail-grid { grid-template-columns: 1fr; }
  .trail-card { min-height: 310px; }
  .map-sidebar { border-right: 0; border-bottom: 1px solid var(--line); }
  .directory-grid { grid-template-columns: 1fr 1fr; }
  .itinerary-grid { grid-template-columns: 1fr; }
  .itinerary { min-height: 310px; border-right: 0; border-bottom: 1px solid var(--line); }
  .stay-facts { grid-template-columns: repeat(2, 1fr); }
  .booking-card { margin: 0 24px 55px; }
  .dual-home { min-height: 0; }
  .dual-home-visual { min-height: 520px; }
  .dual-home-visual img { min-height: 520px; }
  .dual-home-copy { padding: 48px 34px 54px; }
  .object-overview-media img { min-height: 520px; }
  .object-zone.reverse .object-zone-image { order: 0; }
  .object-zone-image img { min-height: 470px; }
  .object-included { gap: 35px; }
  .property-film { min-height: 0; }
  .property-film-media { order: -1; width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; margin: 0; }
  .property-film-media video { height: 100%; min-height: 0; aspect-ratio: 16 / 9; }
  .interior-plan-copy { display: flex; flex-direction: column; }
  .interior-plan-copy > p:not(.section-kicker) { margin-top: 24px; }
  .interior-plan-note { margin-top: 14px; }
  .interior-plan-explorer { order: initial; }
  .plan-panel { min-height: 0; grid-template-columns: 1fr; }
  .plan-drawing { min-height: 560px; }
  .plan-panel-copy { min-height: 350px; border-top: 1px solid var(--line); border-left: 0; }
  .plan-panel-layers { min-height: 680px; }
  .stay-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 230px; }
  .gallery-feature, .gallery-panorama { grid-column: 1 / -1; }
  .gallery-feature { grid-row: span 2; }
  .stay-gallery.is-filtered .gallery-feature, .stay-gallery.is-filtered .gallery-panorama { grid-column: auto; grid-row: auto; }
  .review-platforms { grid-template-columns: 1fr; }
  .review-platform { min-height: 180px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .brand-bridge { grid-template-columns: 1fr; }
  .bridge-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .site-footer { grid-template-columns: 1fr; }
  .footer-links { justify-content: start; }
  .product-modal-grid { grid-template-columns: 1fr; }
  .product-modal-grid img { min-height: 0; max-height: 54vh; }
  .calendar-months { gap: 18px; padding: 22px; }
  .lightbox-stage { grid-template-columns: 52px minmax(0, 1fr) 52px; }
  .lightbox-stage img { height: min(62vh, 620px); }
}

@media (max-width: 560px) {
  .header-actions .icon-button:not([data-cart-open]) { display: none; }
  .page-hero h1 { font-size: 52px; }
  .product-grid, .recipe-grid, .directory-grid, .amenity-grid { grid-template-columns: 1fr; }
  .product-info h3 { font-size: 29px; }
  .quick-add { opacity: 1; transform: none; }
  .feature-story-media, .collection-banner img { min-height: 380px; }
  .dual-home-visual { min-height: 390px; }
  .dual-home-visual img { min-height: 390px; }
  .dual-home-label { top: 10%; width: calc(50% - 34px); min-width: 0; max-width: 142px; padding: 9px 8px 8px; }
  .dual-home-label-one { left: 25%; }
  .dual-home-label-two { left: 75%; }
  .dual-home-label::after { height: 72px; }
  .dual-home-divider { top: 8%; bottom: 11%; }
  .dual-home-copy { padding: 38px 22px 44px; }
  .dual-home-copy h2 { max-width: 100%; font-size: 44px; }
  .object-overview { min-height: 0; }
  .object-overview-media img { min-height: 390px; }
  .object-overview-media figcaption { left: 18px; right: 18px; bottom: 18px; align-items: flex-start; flex-direction: column; gap: 6px; }
  .object-overview-media figcaption strong { font-size: 43px; }
  .object-overview-copy { padding: 39px 24px 45px; }
  .object-overview-copy h2 { font-size: 48px; }
  .object-numbers div { min-height: 88px; padding: 15px; }
  .object-zone { min-height: 0; }
  .object-zone-image img { min-height: 310px; }
  .object-zone-copy { padding: 34px 22px 40px; }
  .object-zone-copy h3 { font-size: 40px; }
  .object-list { grid-template-columns: 1fr; }
  .sleeping-plan { grid-template-columns: 1fr; }
  .sleeping-plan span { min-height: 82px; flex-direction: row; align-items: center; }
  .object-included { padding: 38px 22px; }
  .included-grid { grid-template-columns: 1fr; }
  .property-film-copy { padding: 39px 22px 43px; }
  .property-film-copy h2 { font-size: 45px; }
  .property-film-meta { grid-template-columns: 1fr; }
  .property-film-meta span { min-height: 43px; border-right: 0; }
  .property-film-media figcaption { left: 10px; right: 10px; top: 10px; padding: 9px 10px; }
  .property-film-media figcaption strong { max-width: 170px; font-size: 9px; text-align: right; }
  .plan-switcher { grid-template-columns: 1fr 1fr; }
  .plan-switcher button { min-height: 48px; border-bottom: 1px solid rgba(25,26,23,.13); }
  .plan-stage { padding: 8px; }
  .plan-drawing { min-height: 390px; padding: 10px; }
  .plan-drawing figcaption { position: static; width: 100%; margin-top: 10px; }
  .plan-panel-copy { min-height: 0; padding: 32px 22px 36px; }
  .plan-panel-layers { min-height: 590px; }
  .plan-stack { min-height: 540px; }
  .plan-stack-level { left: 2%; width: 96%; padding: 0; }
  .plan-stack-first { top: -25px; }
  .plan-stack-ground { top: 245px; }
  .plan-stack-connection { top: 277px; }
  .plan-stack-note { left: 10px; right: 10px; bottom: 10px; }
  .interior-plan-copy { padding: 38px 22px; }
  .interior-plan-copy h2 { font-size: 45px; }
  .single-plan-visual { min-height: 460px; padding: 10px; }
  .single-plan-visual img { width: 118%; max-width: none; }
  .single-plan-visual figcaption { left: 10px; right: 10px; bottom: 10px; }
  .review-platform { padding: 22px; }
  .review { min-height: 0; padding: 24px 22px 26px; }
  .review blockquote, .review-summary { font-size: 21px; }
  .wellness-grid article { min-height: 440px; }
  .map-panel iframe { min-height: 500px; }
  .stay-gallery { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; gap: 8px; }
  .gallery-button { width: auto; height: auto; margin: 0; }
  .gallery-meta { margin-top: -12px; }
  .gallery-label { left: 11px; right: 11px; bottom: 10px; gap: 7px; font-size: 10px; }
  .gallery-label small { font-size: 8px; }
  .lightbox { width: calc(100% - 16px); max-height: calc(100vh - 16px); }
  .lightbox-stage { position: relative; min-height: 0; display: block; }
  .lightbox-stage img { height: min(56vh, 520px); }
  .lightbox-stage figcaption { min-height: 70px; padding: 12px 15px; display: grid; gap: 5px; align-content: center; }
  .lightbox-stage figcaption strong { text-align: left; font-size: 12px; }
  .lightbox-nav { position: absolute; z-index: 3; top: calc(28vh - 26px); width: 42px; height: 52px; background: rgba(25,26,23,.68); }
  .lightbox-nav.previous { left: 8px; }
  .lightbox-nav.next { right: 8px; }
  .lightbox-thumbs { grid-auto-columns: 68px; padding: 10px 12px 12px; }
  .lightbox-thumb { height: 52px; }
  .booking-form { grid-template-columns: 1fr; }
  .booking-form .button { grid-column: auto; }
  .booking-form .booking-submit {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
    justify-content: center;
    text-align: center;
  }
  .booking-form .booking-submit span { width: 100%; text-align: center; }
  .date-trigger { min-height: 72px; }
  .booking-calendar { width: calc(100% - 16px); max-height: calc(100vh - 16px); }
  .calendar-topbar { min-height: 92px; padding: 17px 14px 17px 17px; gap: 10px; }
  .calendar-topbar strong { font-size: 16px; }
  .calendar-navigation { gap: 4px; }
  .calendar-navigation button { width: 36px; height: 36px; }
  .calendar-months { grid-template-columns: 1fr; padding: 20px 17px 16px; }
  .calendar-month:nth-child(2) { display: none; }
  .calendar-month { padding: 13px; }
  .calendar-month h3 { margin-bottom: 12px; font-size: 23px; }
  .calendar-days, .calendar-weekdays { gap: 2px; }
  .calendar-legend { padding: 12px 17px 16px; justify-content: flex-start; gap: 14px; }
  .contact-map { min-height: 0; display: flex; flex-direction: column; overflow: visible; padding-bottom: 18px; }
  .contact-map iframe { height: 500px; min-height: 500px; }
  .google-place-card { position: relative; left: auto; bottom: auto; width: auto; margin: -58px 12px 0; padding: 23px 20px; }
  .google-place-brand { margin-bottom: 22px; }
  .google-place-card h3 { font-size: 32px; }
  .google-place-actions { align-items: stretch; flex-direction: column; gap: 13px; }
  .google-place-actions > a:not(.button) { text-align: center; }
  .booking-modal {
    inset: max(6px, env(safe-area-inset-top)) 6px max(6px, env(safe-area-inset-bottom));
    width: auto;
    height: auto;
    max-height: none;
    transform: translateY(12px) scale(.985);
  }
  .booking-modal.open { transform: none; }
  .booking-modal .modal-close {
    top: 9px;
    right: 9px;
    width: 46px;
    height: 46px;
    padding: 0;
    display: grid;
    place-items: center;
    font-size: 27px;
    line-height: 1;
  }
  .booking-modal-head { padding: 18px 64px 14px 17px; }
  .booking-modal-head h2 { font-size: clamp(24px, 7vw, 30px); }
  .booking-modal-footer {
    min-height: 0;
    padding: 9px 14px calc(9px + env(safe-area-inset-bottom));
    align-items: center;
    flex-flow: row wrap;
    gap: 3px 12px;
  }
  .recipe-columns { grid-template-columns: 1fr; gap: 20px; }
  .footer-bottom { display: grid; gap: 7px; }
}

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


/* Hygge Tatra — visual refresh */
:root {
  --ink: #343938;
  --ridge: #b98668;
  --pine: #68776b;
  --pine-deep: #4d5e54;
  --moraine: #dccfbe;
  --chalk: #f5f0e8;
  --paper: #fbf9f5;
  --stone: #777772;
  --wood: #806557;
  --line: rgba(52, 57, 56, .16);
  --muted: #646a65;
  --shadow: 0 24px 65px rgba(52, 57, 56, .12);
}
body[data-page="shop"] { --page: var(--ridge); }
body[data-page="kitchen"] { --page: var(--pine); }
body[data-page="guide"] { --page: var(--pine); }
body[data-page="stays"] { --page: var(--ridge); }
body { background: var(--chalk); }
.site-header {
  height: 96px;
  background: rgba(245, 240, 232, .96);
  border-bottom-color: rgba(52, 57, 56, .12);
}
.site-header.scrolled { height: 78px; }
.brand { width: 82px; height: 82px; flex: none; }
.brand img {
  width: 82px;
  height: 82px;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
  clip-path: circle(48% at 50% 50%);
  transform: scaleY(.956);
  transform-origin: center;
  mix-blend-mode: multiply;
}
.main-nav a { color: var(--muted); }
.main-nav a::after { height: 1px; border-radius: 999px; }
.mobile-nav { background: var(--ink); }
.header-cta, .button, .filter-button, .gallery-filter { border-radius: 999px; }
.page-hero { background: var(--paper); }
.hero-copy { background: linear-gradient(135deg, rgba(251,249,245,.98), rgba(220,207,190,.72)); }
.page-hero h1 { letter-spacing: -.045em; }
.page-hero .lead { color: var(--muted); }
.signal-strip {
  height: 2px;
  bottom: 34px;
  opacity: .62;
  background: linear-gradient(90deg, var(--ridge) 0 24%, rgba(185,134,104,.18) 24% 100%);
}
.section.moraine { background: var(--moraine); }
.product-grid, .recipe-grid, .amenity-grid {
  gap: 16px;
  border: 0;
  background: transparent;
}
.product-card, .recipe-card, .trail-card, .amenity, .review, .review-platform,
.booking-card, .directory-card, .itinerary, .gallery-button {
  border-radius: 16px;
  overflow: hidden;
}
.product-card, .recipe-card, .amenity, .review, .booking-card {
  box-shadow: 0 14px 38px rgba(52,59,61,.07);
}
.product-card { background: var(--paper); }
.recipe-card:nth-child(4n+2) { background: #eee4d8; }
.recipe-card:nth-child(5n+3) { background: var(--moraine); }
.filter-button:hover, .filter-button.active { background: var(--pine); }
.quick-add { background: var(--pine); }
.brand-bridge {
  gap: 1px;
  padding: 1px;
  border-top: 0;
  background: var(--line);
}
.bridge-card {
  border: 0;
  background: var(--paper);
  transition: background .25s ease, transform .25s ease;
}
.bridge-card:hover { z-index: 1; background: #f1e8dc; transform: translateY(-3px); }
.contact-band, .section.pine { background: var(--pine); }
.section.ridge { background: var(--ridge); }
.site-footer {
  border-top: 4px solid var(--ridge);
  background: var(--ink);
}
.footer-logo {
  width: 148px;
  height: 148px;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
  clip-path: circle(48% at 50% 50%);
  transform: scaleY(.956);
  transform-origin: center;
}
.footer-links a { transition: color .2s ease; }
.footer-links a:hover { color: var(--chalk); }
.review-platform { background: var(--pine-deep); }
.review-summary-card { background: var(--chalk); }
.review-airbnb { background: #e8ede8; }

@media (max-width: 1120px) {
  .site-header { grid-template-columns: 125px 1fr auto; }
  .brand, .brand img { width: 72px; height: 72px; }
}

@media (max-width: 820px) {
  .site-header { height: 80px; }
  .site-header.scrolled { height: 70px; }
  .brand, .brand img { width: 62px; height: 62px; }
  .signal-strip { height: 2px; bottom: 24px; background-size: auto; }
  .product-grid, .recipe-grid, .amenity-grid { gap: 12px; }
}

@media (max-width: 560px) {
  .brand, .brand img { width: 58px; height: 58px; }
  .footer-logo { width: 126px; height: 126px; }
  .product-card, .recipe-card, .trail-card, .amenity, .review,
  .booking-card, .directory-card, .itinerary, .gallery-button { border-radius: 13px; }
}

/* Hygge Tatra — open wordmark and transparent navigation */
.site-header {
  position: absolute;
  inset: 0 0 auto;
  width: 100%;
  height: 92px;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  background: linear-gradient(180deg, rgba(30, 34, 34, .08), transparent);
  border-bottom: 0;
  box-shadow: none;
  color: var(--ink);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: height .28s ease, background .28s ease, box-shadow .28s ease, color .28s ease;
}
.site-header.scrolled {
  position: fixed;
  height: 92px;
  background: rgba(245, 240, 232, .9);
  border-bottom: 1px solid rgba(52, 57, 56, .1);
  box-shadow: 0 12px 35px rgba(52, 57, 56, .09);
  color: var(--ink);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}
.brand,
.brand-lockup {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  flex: none;
  color: currentColor;
}
.brand-name {
  display: inline-grid;
  grid-template-columns: auto 4px auto;
  align-items: center;
  gap: 11px;
  white-space: nowrap;
  line-height: 1;
}
.brand-name strong {
  font-family: var(--serif);
  font-size: 29px;
  font-weight: 400;
  letter-spacing: .105em;
  line-height: 1;
  text-transform: uppercase;
}
.brand-name i {
  width: 4px;
  height: 4px;
  display: block;
  border-radius: 50%;
  background: var(--ridge);
}
.brand-name small {
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .34em;
  line-height: 1;
  text-transform: uppercase;
}
.main-nav {
  gap: 24px;
  padding: 4px 21px;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  background: rgba(245, 240, 232, .4);
  box-shadow: 0 8px 28px rgba(52, 57, 56, .05);
  backdrop-filter: blur(13px) saturate(120%);
  -webkit-backdrop-filter: blur(13px) saturate(120%);
}
.main-nav a {
  padding: 11px 0 10px;
  color: var(--ink);
  text-shadow: 0 1px 14px rgba(245, 240, 232, .64);
}
.site-header.scrolled .main-nav {
  background: rgba(255, 255, 255, .32);
  border-color: rgba(52, 59, 61, .1);
  box-shadow: none;
}
.site-header.scrolled .main-nav a,
.site-header.scrolled .brand-lockup,
.site-header.scrolled .header-actions {
  color: var(--ink);
}
body[data-page="stays"] .site-header:not(.scrolled) .brand-lockup {
  color: var(--paper);
}
.header-cta {
  border: 1px solid rgba(255, 255, 255, .3);
  background: rgba(52, 57, 56, .82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.site-header.scrolled .header-cta {
  border-color: transparent;
  background: var(--ink);
  color: var(--paper);
}
.footer-logo {
  width: auto;
  height: auto;
  margin-bottom: 30px;
  color: var(--chalk);
  clip-path: none;
  transform: none;
  overflow: visible;
}
.footer-logo .brand-name {
  grid-template-columns: auto 5px auto;
  gap: 14px;
}
.footer-logo .brand-name strong { font-size: 38px; }
.footer-logo .brand-name i { width: 5px; height: 5px; }
.footer-logo .brand-name small { font-size: 10px; }

@media (max-width: 1120px) {
  .site-header { grid-template-columns: minmax(165px, 1fr) auto minmax(165px, 1fr); }
  .brand, .brand img { width: auto; height: auto; }
  .brand-name strong { font-size: 26px; }
  .main-nav { gap: 16px; padding-inline: 16px; }
}

@media (max-width: 820px) {
  .site-header {
    height: 78px;
    grid-template-columns: 1fr auto;
    padding: 0 18px;
    background: linear-gradient(180deg, rgba(22, 27, 28, .34), transparent);
    color: var(--paper);
  }
  .site-header.scrolled { height: 68px; }
  .site-header:not(.scrolled) .brand-lockup,
  .site-header:not(.scrolled) .header-actions {
    color: var(--paper);
    text-shadow: 0 1px 18px rgba(0, 0, 0, .28);
  }
  .brand, .brand img { width: auto; height: auto; }
  .brand-name { gap: 8px; }
  .brand-name strong { font-size: 23px; }
  .brand-name small { font-size: 8px; letter-spacing: .29em; }
  .menu-toggle {
    border-color: currentColor;
    background: rgba(20, 25, 26, .16);
    color: currentColor;
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
  }
  .site-header.scrolled .menu-toggle {
    background: transparent;
    color: var(--ink);
  }
  .mobile-nav { padding-top: 94px; }
}

@media (max-width: 390px) {
  .brand-name strong { font-size: 21px; }
  .brand-name small { font-size: 7px; letter-spacing: .25em; }
  .brand-name { gap: 7px; }
  .footer-logo .brand-name strong { font-size: 32px; }
}

/* Hygge Tatra — selected logo system and clean navigation */
.main-nav a::after { display: none !important; }
.main-nav a.active {
  padding-inline: 14px;
  border-radius: 999px;
  color: var(--chalk);
  background: var(--pine-deep);
  font-weight: 800;
  text-shadow: none;
  box-shadow: 0 5px 16px rgba(52, 57, 56, .16);
}
.main-nav a { transition: color .2s ease, background .2s ease, box-shadow .2s ease; }
.main-nav a:hover:not(.active) { color: var(--pine-deep); }
.brand {
  width: 78px;
  height: 78px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
}
.brand img {
  display: block;
  object-fit: contain;
  border-radius: 0;
  box-shadow: none;
}
.brand-logo.round-logo {
  width: 72px;
  height: 72px;
  clip-path: circle(48% at 50% 50%);
  transform: scaleY(.956);
  transform-origin: center;
  mix-blend-mode: multiply;
}
.brand-logo.existing-logo {
  width: 76px;
  height: 76px;
  clip-path: none;
  transform: none;
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .16));
}
.footer-logo {
  display: block;
  margin: 0 0 28px;
  object-fit: contain;
}
.footer-logo.round-logo {
  width: 136px;
  height: 136px;
  clip-path: circle(48% at 50% 50%);
  transform: scaleY(.956);
  transform-origin: center;
}
.footer-logo.existing-logo {
  width: 132px;
  height: 132px;
  clip-path: none;
  transform: none;
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .22));
}
@media (max-width: 1120px) {
  .brand { width: 70px; height: 70px; }
  .brand-logo.round-logo { width: 66px; height: 66px; }
  .brand-logo.existing-logo { width: 68px; height: 68px; }
}
@media (max-width: 820px) {
  .brand { width: 60px; height: 60px; }
  .brand-logo.round-logo { width: 58px; height: 58px; }
  .brand-logo.existing-logo { width: 60px; height: 60px; }
}

/* Hygge Tatra — transparent logo assets */
.brand-logo.round-logo {
  clip-path: none;
  transform: none;
  mix-blend-mode: normal;
  filter: drop-shadow(0 2px 10px rgba(248, 242, 235, .34));
}
.footer-logo.round-logo {
  clip-path: none;
  transform: none;
  filter: brightness(0) invert(1);
  opacity: .9;
}
.site-header:not(.scrolled) .brand-logo.existing-logo {
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, .28));
}
.site-header.scrolled .brand-logo.existing-logo {
  filter: brightness(0) saturate(100%) drop-shadow(0 3px 8px rgba(52, 59, 61, .12));
}
.footer-logo.existing-logo {
  filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .2));
  opacity: .94;
}

/* Hygge Tatra — maximum logo scale inside navigation bars */
.site-header:not(.scrolled) .brand {
  width: 112px;
  height: 92px;
  overflow: visible;
}
.site-header:not(.scrolled) .brand-logo.round-logo {
  width: 90px;
  height: 90px;
  transform: none;
}
.site-header:not(.scrolled) .brand-logo.existing-logo {
  width: 90px;
  height: 90px;
  transform: scale(1.22);
  transform-origin: center;
}
.site-header.scrolled .brand {
  width: 112px;
  height: 92px;
  overflow: visible;
}
.site-header.scrolled .brand-logo.round-logo {
  width: 90px;
  height: 90px;
  transform: none;
}
.site-header.scrolled .brand-logo.existing-logo {
  width: 90px;
  height: 90px;
  transform: scale(1.22);
  transform-origin: center;
}
@media (max-width: 820px) {
  .site-header.scrolled {
    height: 78px;
  }
  .site-header:not(.scrolled) .brand {
    width: 96px;
    height: 78px;
  }
  .site-header:not(.scrolled) .brand-logo.round-logo {
    width: 76px;
    height: 76px;
  }
  .site-header:not(.scrolled) .brand-logo.existing-logo {
    width: 76px;
    height: 76px;
    transform: scale(1.26);
  }
  .site-header.scrolled .brand {
    width: 96px;
    height: 78px;
  }
  .site-header.scrolled .brand-logo.round-logo {
    width: 76px;
    height: 76px;
  }
  .site-header.scrolled .brand-logo.existing-logo {
    width: 76px;
    height: 76px;
    transform: scale(1.26);
  }
}

/* Hygge Tatra — dual logo footer */
.footer-logo-pair {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
  min-height: 154px;
  margin: 0 0 30px;
}
.footer-logo-pair .footer-logo {
  flex: 0 0 auto;
  margin: 0;
}
.footer-logo-pair .round-logo {
  width: 126px;
  height: 126px;
}
.footer-logo-pair .existing-logo {
  width: 154px;
  height: 154px;
  transform: scale(1.05);
  transform-origin: center;
}
@media (max-width: 560px) {
  .footer-logo-pair {
    gap: 16px;
    min-height: 124px;
    margin-bottom: 24px;
  }
  .footer-logo-pair .round-logo {
    width: 100px;
    height: 100px;
  }
  .footer-logo-pair .existing-logo {
    width: 124px;
    height: 124px;
  }
}
@media (max-width: 380px) {
  .footer-logo-pair {
    gap: 10px;
    min-height: 110px;
  }
  .footer-logo-pair .round-logo {
    width: 88px;
    height: 88px;
  }
  .footer-logo-pair .existing-logo {
    width: 110px;
    height: 110px;
  }
}

/* Hygge Tatra — Instagram grid */
.instagram-section {
  padding: clamp(72px, 8vw, 126px) clamp(18px, 4vw, 72px) clamp(24px, 4vw, 58px);
  background: #eee4d8;
}
.instagram-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .65fr);
  align-items: end;
  gap: clamp(30px, 6vw, 90px);
  margin-bottom: clamp(38px, 5vw, 70px);
}
.instagram-intro h2 {
  max-width: 820px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(48px, 6.2vw, 92px);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.045em;
}
.instagram-intro > div:last-child {
  padding-bottom: 7px;
}
.instagram-intro > div:last-child p {
  max-width: 510px;
  margin: 0 0 24px;
  color: var(--muted);
}
.instagram-follow {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--chalk);
}
.instagram-follow:hover {
  border-color: var(--ridge);
  background: var(--ridge);
}
.instagram-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 18px);
}
.instagram-post {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  overflow: hidden;
  border-radius: 16px;
  background: var(--pine);
  box-shadow: 0 18px 45px rgba(25, 26, 23, .11);
}
.instagram-post::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 42%, rgba(16, 19, 18, .72) 100%);
  transition: background .35s ease;
}
.instagram-post img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2,.7,.2,1), filter .35s ease;
}
.instagram-post:hover img,
.instagram-post:focus-visible img {
  transform: scale(1.055);
  filter: saturate(1.08);
}
.instagram-post:hover::after,
.instagram-post:focus-visible::after {
  background: linear-gradient(180deg, rgba(16, 19, 18, .08), rgba(16, 19, 18, .82) 100%);
}
.instagram-post:focus-visible {
  outline: 3px solid var(--ridge);
  outline-offset: 4px;
}
.instagram-overlay {
  position: absolute;
  z-index: 1;
  left: clamp(18px, 2.2vw, 30px);
  right: clamp(18px, 2.2vw, 30px);
  bottom: clamp(17px, 2.2vw, 28px);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 5px 20px;
  color: var(--white);
}
.instagram-overlay small {
  grid-column: 1 / -1;
  color: rgba(255,255,255,.7);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.instagram-overlay strong {
  font-family: var(--serif);
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 400;
  line-height: 1.02;
}
.instagram-overlay i {
  font-size: 23px;
  font-style: normal;
  line-height: 1;
  transition: transform .25s ease;
}
.instagram-post:hover .instagram-overlay i,
.instagram-post:focus-visible .instagram-overlay i {
  transform: translate(3px, -3px);
}
@media (max-width: 900px) {
  .instagram-intro { grid-template-columns: 1fr; align-items: start; }
  .instagram-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .instagram-section { padding-inline: 12px; }
  .instagram-intro { padding-inline: 10px; }
  .instagram-grid { gap: 8px; }
  .instagram-post { border-radius: 12px; }
  .instagram-overlay strong { font-size: 19px; }
  .instagram-overlay small { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .instagram-post img,
  .instagram-overlay i { transition: none; }
}

/* Hygge Tatra — palette: warm light, wool, wood and muted forest. */
.button.primary,
.instagram-follow {
  border-color: var(--pine-deep);
  background: var(--pine-deep);
  color: var(--chalk);
}
.button.primary:hover,
.instagram-follow:hover {
  border-color: var(--ridge);
  background: var(--ridge);
  color: var(--ink);
}
.ticker { color: var(--ink); }
.booking-section { color: var(--ink); }
.booking-intro p { color: rgba(52, 57, 56, .76); }
.booking-card { background: var(--paper); }
.date-trigger,
.booking-field select { background: var(--chalk); }
.date-trigger:hover,
.date-trigger[aria-expanded="true"] { background: var(--white); }
.calendar-day:hover:not(:disabled),
.calendar-day:focus-visible { background: #eadfd4; }
.calendar-day.in-range { border-color: rgba(185, 134, 104, .35); background: #eadfd4; color: var(--ink); }
.calendar-day.range-start,
.calendar-day.range-end { border-color: var(--pine-deep); background: var(--pine-deep); color: var(--chalk); }
.dual-home-copy .section-kicker,
.object-overview-copy .section-kicker,
.property-film-copy .section-kicker,
.property-film-source,
.property-film-media figcaption span { color: #dfb89f; }
.dual-home-points span::before { background: #dfb89f; }
.included-grid span::before { color: #dfb89f; }
.amenity .amenity-icon {
  border-color: rgba(185, 134, 104, .32);
  background: rgba(185, 134, 104, .1);
}
.amenity:hover .amenity-icon { background: var(--pine-deep); border-color: var(--pine-deep); }
.gallery-filter.active { color: var(--ink); }
.review-summary-card { background: var(--chalk); }
.review-airbnb { background: #e8ede8; }
.contact-map { background: var(--moraine); }
.google-place-card { background: rgba(251, 249, 245, .97); }
.site-footer { border-top-color: var(--ridge); }

/* Mobilny powrót na początek — bez emoji i systemowych strzałek. */
.back-to-top { display: none; }
@media (max-width: 760px) {
  .back-to-top {
    position: fixed;
    z-index: 46;
    right: 16px;
    bottom: max(18px, env(safe-area-inset-bottom));
    width: 48px;
    height: 48px;
    padding: 0;
    display: grid;
    place-items: center;
    align-content: center;
    border: 1px solid rgba(52,57,56,.34);
    border-radius: 10px;
    background: rgba(245,240,232,.94);
    color: var(--pine);
    box-shadow: 0 10px 26px rgba(52,57,56,.16);
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .22s ease, transform .22s ease, background .22s ease, color .22s ease;
    backdrop-filter: blur(12px);
  }
  .back-to-top.visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .back-to-top:hover { background: var(--pine); color: var(--chalk); }
  .back-to-top span { position: relative; width: 18px; height: 23px; display: block; }
  .back-to-top span::before { content: ""; position: absolute; left: 8px; top: 5px; width: 2px; height: 17px; border-radius: 999px; background: currentColor; }
  .back-to-top span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 10px; height: 10px; border-top: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(45deg); }
  .back-to-top:focus-visible { outline: 3px solid var(--ridge); outline-offset: 3px; }
  body.menu-open .back-to-top, body.modal-open .back-to-top { opacity: 0; pointer-events: none; }
}
