:root {
  color-scheme: light;
  --forest: #222a26;
  --forest-soft: #303a34;
  --paper: #f2efe8;
  --paper-deep: #e8e3d9;
  --ink: #2c302c;
  --muted: #6f726c;
  --gold: #c3a77a;
  --line: rgba(255, 255, 255, 0.34);
  --display: "Cormorant Garamond", Georgia, serif;
  --script: "Allura", cursive;
  --body: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

body {
  color: #fff;
  background: var(--forest);
  font-family: var(--body);
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, a { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible {
  outline: 2px solid #e6c995;
  outline-offset: 5px;
}

.site-shell {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 560px;
  overflow: hidden;
  isolation: isolate;
  background: var(--forest);
}

.site-header {
  position: absolute;
  z-index: 20;
  inset: 0 0 auto;
  min-height: 86px;
  display: grid;
  grid-template-columns: minmax(170px, 1fr) auto minmax(170px, 1fr);
  align-items: center;
  gap: 25px;
  padding: 0 clamp(28px, 5vw, 82px);
  border-bottom: 1px solid var(--line);
  color: #fff;
  transition: color 250ms ease, background-color 250ms ease, border-color 250ms ease;
}

.site-header.is-light {
  color: var(--ink);
  border-color: rgba(44, 48, 44, 0.15);
  background: rgba(242, 239, 232, 0.94);
  backdrop-filter: blur(12px);
}

.brand {
  display: flex;
  width: fit-content;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}

.brand-name {
  font-family: var(--script);
  font-size: 42px;
  line-height: 0.8;
  letter-spacing: -0.02em;
}

.brand-place {
  margin: 10px 0 0 3px;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.21em;
}

.primary-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(15px, 2vw, 34px);
}

.primary-nav a {
  position: relative;
  padding: 34px 0 31px;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.87;
  transition: opacity 180ms ease;
}

.primary-nav a::after {
  position: absolute;
  right: 0;
  bottom: 22px;
  left: 0;
  height: 1px;
  content: "";
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 200ms ease;
}

.primary-nav a:hover, .primary-nav a.is-current { opacity: 1; }
.primary-nav a:hover::after, .primary-nav a.is-current::after { transform: scaleX(1); }

.header-booking {
  justify-self: end;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 15px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.header-booking:hover {
  color: var(--forest);
  background: #fff;
  border-color: #fff;
}

.site-header.is-light .header-booking { border-color: rgba(44, 48, 44, 0.5); }
.site-header.is-light .header-booking:hover { color: #fff; background: var(--forest); border-color: var(--forest); }

.header-booking svg {
  width: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.2;
}

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}

.menu-toggle span {
  width: 18px;
  height: 1px;
  background: currentColor;
  transition: transform 180ms ease;
}

.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }

.site-content { position: absolute; inset: 0; }

.scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 450ms ease, visibility 450ms ease;
}

.scene.is-active {
  z-index: 1;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.scene-image {
  position: absolute;
  inset: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.scene-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(14, 20, 17, 0.82) 0%, rgba(14, 20, 17, 0.44) 52%, rgba(14, 20, 17, 0.12) 100%),
    linear-gradient(0deg, rgba(13, 19, 16, 0.62) 0%, transparent 35%, rgba(13, 19, 16, 0.2) 100%);
}

.scene-home .scene-image {
  background-position: center 54%;
  transform: scale(1.015);
}

.home-shade {
  background:
    linear-gradient(90deg, rgba(18, 24, 21, 0.67) 0%, rgba(18, 24, 21, 0.19) 62%, rgba(18, 24, 21, 0.05) 100%),
    linear-gradient(0deg, rgba(15, 20, 17, 0.50) 0%, transparent 42%, rgba(15, 20, 17, 0.3) 100%);
}

.home-copy {
  position: absolute;
  top: 49%;
  left: clamp(28px, 10vw, 160px);
  width: min(760px, 72vw);
  transform: translateY(-39%);
}

.eyebrow {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.27em;
  line-height: 1.5;
  text-transform: uppercase;
}

.eyebrow::after {
  display: block;
  width: 37px;
  height: 1px;
  margin-top: 13px;
  content: "";
  background: var(--gold);
}

.eyebrow-dark { color: #6a6d67; }

.home-title {
  margin: 25px 0 21px -5px;
  font-family: var(--script);
  font-size: clamp(76px, 9.5vw, 146px);
  font-weight: 400;
  line-height: 0.72;
  letter-spacing: -0.035em;
}

.home-title span { display: block; }
.home-title span + span { margin: 18px 0 0 0.72em; }

.home-lead {
  max-width: 550px;
  margin: 31px 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(13px, 1.05vw, 15px);
  font-weight: 300;
  line-height: 1.85;
}

.home-actions {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 29px;
}

.button {
  display: inline-flex;
  min-height: 45px;
  align-items: center;
  gap: 20px;
  padding: 0 19px;
  border: 1px solid transparent;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.button-light {
  color: #272e29;
  background: #f5f2eb;
  border-color: #f5f2eb;
}

.button-light:hover { color: #fff; background: transparent; border-color: rgba(255,255,255,0.8); }
.text-link { padding: 12px 0; font-size: 9px; font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase; }
.text-link span { padding-left: 10px; color: #d3b783; }

.home-location {
  position: absolute;
  right: clamp(28px, 5vw, 80px);
  bottom: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.83);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.location-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }

.scene-rooms, .scene-contact {
  color: var(--ink);
  background: var(--paper);
}

.rooms-scroll {
  position: absolute;
  inset: 86px 0 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: #b6a27f transparent;
}

.rooms-layout {
  min-height: 100%;
  display: grid;
  grid-template-columns: minmax(250px, 0.8fr) minmax(430px, 1.2fr);
  align-items: start;
  gap: clamp(48px, 8vw, 130px);
  padding: clamp(54px, 8vh, 90px) clamp(36px, 10vw, 160px) 90px;
  background:
    radial-gradient(ellipse at 96% 88%, rgba(195, 167, 122, 0.14), transparent 38%),
    linear-gradient(116deg, var(--paper) 0%, #f7f4ee 53%, #efebe2 100%);
}

.rooms-intro { position: sticky; top: 46px; align-self: start; padding-top: 8vh; }
.editorial-title {
  margin: 25px 0 15px;
  color: var(--ink);
  font-family: var(--script);
  font-size: clamp(66px, 6.4vw, 98px);
  font-weight: 400;
  font-style: normal;
  line-height: 0.77;
  letter-spacing: -0.025em;
}

.editorial-title em, .photo-title em { font-weight: 400; font-style: normal; }

.rooms-lead {
  margin: 20px 0 35px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 300;
  line-height: 1.8;
}

.room-list { width: 100%; }
.room-item {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: clamp(14px, 2vw, 30px);
  padding: 32px 0 36px;
  border-top: 1px solid rgba(44, 48, 44, 0.19);
}

.room-number {
  margin: 7px 0 0;
  color: #8c8e86;
  font-size: 9px;
  letter-spacing: 0.18em;
}

.room-number span, .gallery-count span { color: #b1aa9c; }

.room-name {
  margin: 0 0 14px;
  color: #333a34;
  font-family: var(--display);
  font-size: clamp(34px, 3vw, 45px);
  font-weight: 400;
  line-height: 1.02;
}

.room-description {
  max-width: 650px;
  margin: 0;
  color: #565b54;
  font-size: clamp(12px, 0.95vw, 14px);
  font-weight: 300;
  line-height: 1.8;
}

.room-details {
  margin: 16px 0 0;
  color: #777a71;
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.room-details span { padding: 0 10px; color: var(--gold); }
.room-gallery-link {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  padding-bottom: 7px;
  border-bottom: 1px solid #b8a783;
  color: #424941;
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.room-gallery-link span { color: #9e8051; }

.scene-restaurant .scene-image { background-position: center 52%; }
.restaurant-shade {
  background:
    linear-gradient(90deg, rgba(17, 22, 19, 0.75) 0%, rgba(17, 22, 19, 0.42) 58%, rgba(17, 22, 19, 0.12) 100%),
    linear-gradient(0deg, rgba(12, 17, 14, 0.82) 0%, rgba(12, 17, 14, 0.22) 43%, rgba(12, 17, 14, 0.3) 100%);
}

.restaurant-scroll {
  position: absolute;
  inset: 86px 0 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: #b6a27f transparent;
}

.restaurant-hero { position: relative; min-height: calc(100svh - 86px); overflow: hidden; background: #333a34; }
.restaurant-top { position: absolute; top: 50%; left: clamp(36px, 9vw, 140px); z-index: 1; width: min(610px, 58vw); transform: translateY(-43%); }

.photo-title {
  margin: 22px 0 17px;
  color: #fff;
  font-family: var(--script);
  font-size: clamp(80px, 8vw, 122px);
  font-weight: 400;
  font-style: normal;
  line-height: 0.72;
  letter-spacing: -0.025em;
}

.restaurant-intro {
  max-width: 510px;
  margin: 23px 0 0;
  color: rgba(255,255,255,0.85);
  font-size: 13px;
  font-weight: 300;
  line-height: 1.8;
}

.scroll-cue { display: inline-flex; align-items: center; gap: 15px; margin-top: 32px; color: rgba(255,255,255,.82); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue span { color: #dfc394; font-size: 17px; }

.restaurant-content {
  display: grid;
  grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr);
  gap: clamp(45px, 8vw, 130px);
  padding: clamp(60px, 9vh, 110px) clamp(36px, 10vw, 160px) 100px;
  color: var(--ink);
  background: var(--paper);
}
.restaurant-heading .editorial-title { font-size: clamp(60px, 5.7vw, 86px); }
.restaurant-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px clamp(28px, 4vw, 64px); padding-top: 6px; }
.restaurant-detail { padding-top: 17px; border-top: 1px solid rgba(44, 48, 44, .18); }
.restaurant-detail h4 { margin: 0 0 13px; color: #383d38; font-family: var(--display); font-size: 27px; font-weight: 400; }
.restaurant-detail p { margin: 0; color: #62665e; font-size: 12px; font-weight: 300; line-height: 1.85; }
.restaurant-detail p + p { margin-top: 13px; }
.restaurant-lounge { grid-column: 1 / -1; max-width: 700px; }
.restaurant-content > .button { grid-column: 2; justify-self: start; }
.button-dark { color: #f7f4ee; background: var(--forest); border-color: var(--forest); }
.button-dark:hover { color: var(--forest); background: transparent; border-color: var(--forest); }

.scene-services .scene-image { background-position: center; }

.story-copy {
  position: absolute;
  z-index: 2;
  bottom: 19%;
  left: clamp(38px, 10vw, 156px);
  width: min(670px, 61vw);
}

.story-copy .photo-title { margin-top: 22px; }
.story-kicker {
  margin: 30px 0 8px;
  color: #d2b98e;
  font-family: var(--display);
  font-size: 23px;
  font-style: italic;
}

.story-description {
  max-width: 650px;
  margin: 0;
  color: rgba(255,255,255,0.88);
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 300;
  line-height: 1.85;
}

.story-controls {
  position: absolute;
  z-index: 3;
  right: clamp(38px, 10vw, 156px);
  bottom: 9.5%;
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 42px);
  padding-top: 15px;
  border-top: 1px solid rgba(255,255,255,0.43);
}

.story-tab {
  position: relative;
  min-height: 35px;
  padding: 0 0 5px;
  border: 0;
  color: rgba(255,255,255,0.66);
  background: transparent;
  cursor: pointer;
  font-family: var(--display);
  font-size: 17px;
  transition: color 160ms ease;
}
.story-tab:hover, .story-tab.is-selected { color: #fff; }
.story-tab.is-selected::after {
  position: absolute;
  right: 0;
  bottom: -16px;
  left: 0;
  height: 1px;
  content: "";
  background: var(--gold);
}

.scene-gallery { background: #1b211e; }
.gallery-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
  transition: opacity 250ms ease;
}
.gallery-shade {
  background:
    linear-gradient(90deg, rgba(15,20,17,0.72) 0%, rgba(15,20,17,0.15) 60%, rgba(15,20,17,0.18) 100%),
    linear-gradient(0deg, rgba(10,15,12,0.67) 0%, transparent 40%, rgba(10,15,12,0.23) 100%);
}

.gallery-title-block {
  position: absolute;
  z-index: 2;
  left: clamp(35px, 8vw, 126px);
  bottom: 12%;
}

.gallery-title-block .photo-title { margin: 18px 0 12px; font-size: clamp(80px, 7.2vw, 110px); }
.gallery-count {
  margin: 0;
  color: rgba(255,255,255,0.86);
  font-size: 10px;
  letter-spacing: 0.15em;
}

.gallery-caption {
  position: absolute;
  z-index: 2;
  right: clamp(85px, 13vw, 200px);
  bottom: 15%;
  max-width: 310px;
  color: rgba(255,255,255,0.86);
  font-family: var(--display);
  font-size: clamp(22px, 2.3vw, 34px);
  font-style: italic;
  line-height: 1.1;
  text-align: right;
}

.gallery-progress {
  position: absolute;
  right: clamp(85px, 13vw, 200px);
  bottom: 9%;
  left: clamp(35px, 8vw, 126px);
  height: 1px;
  background: rgba(255,255,255,0.34);
}
.gallery-progress span {
  display: block;
  width: 16.66%;
  height: 2px;
  background: #e0c394;
  transition: width 220ms ease;
}

.contact-layout {
  position: absolute;
  inset: 86px 0 0;
  display: grid;
  grid-template-columns: minmax(360px, 0.74fr) minmax(430px, 1.26fr);
}

.contact-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6vh clamp(34px, 7.5vw, 118px);
  background:
    radial-gradient(ellipse at 2% 94%, rgba(195,167,122,0.14), transparent 42%),
    var(--paper);
}

.contact-copy .editorial-title {
  margin-top: 24px;
  margin-bottom: 0;
  font-size: clamp(60px, 5.2vw, 78px);
  white-space: nowrap;
}

.contact-intro {
  max-width: 400px;
  margin: 23px 0 34px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.8;
}

.contact-details { display: grid; gap: 17px; }

.contact-label {
  display: inline-block;
  margin-bottom: 8px;
  color: #8d7753;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.contact-details address {
  color: #4d524c;
  font-size: 12px;
  font-style: normal;
  font-weight: 300;
  line-height: 1.8;
}

.contact-method {
  width: fit-content;
  color: #4d524c;
  font-size: 12px;
  font-weight: 300;
  transition: color 150ms ease;
}
.contact-method:hover { color: #98794b; }

.social-links {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(44,48,44,0.18);
}

.social-links a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #696c65;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.social-links a > b { color: #9d8159; font-size: 10px; font-weight: 400; }
.social-icon { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.social-links a:nth-child(2) .social-icon { fill: none; stroke: currentColor; stroke-width: 1.6; }
.social-links a:nth-child(2) .social-dot { fill: currentColor; stroke: none; }

.map-panel {
  position: relative;
  align-self: center;
  width: min(88%, 790px);
  height: min(70vh, 660px);
  min-width: 0;
  margin: auto;
  overflow: hidden;
  border-radius: 22px;
  background: #d9d9d5;
  box-shadow: 0 22px 60px rgba(33, 39, 34, .14);
}
.map-panel iframe { display: block; width: 100%; height: 100%; border: 0; filter: saturate(0.76); }

.map-link {
  position: absolute;
  right: 24px;
  bottom: 24px;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 18px;
  padding: 0 15px;
  border-radius: 999px;
  color: #29312d;
  background: rgba(247,245,239,0.94);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  box-shadow: 0 5px 25px rgba(20,24,22,0.13);
}
.map-link span { color: #9c8156; }

@media (max-width: 1080px) {
  .site-header {
    grid-template-columns: minmax(145px, 1fr) auto minmax(130px, 1fr);
    gap: 15px;
    padding: 0 26px;
  }
  .primary-nav { gap: 14px; }
  .primary-nav a { font-size: 8px; letter-spacing: 0.08em; }
  .header-booking { gap: 8px; padding: 0 10px; font-size: 8px; }
  .rooms-layout { grid-template-columns: minmax(230px, .72fr) minmax(350px, 1.28fr); gap: 5vw; padding-right: 7vw; padding-left: 7vw; }
  .restaurant-content { gap: 5vw; padding-right: 7vw; padding-left: 7vw; }
  .service-panel { padding-right: 7vw; padding-left: 7vw; }
  .contact-layout { grid-template-columns: minmax(320px, 0.82fr) minmax(360px, 1.18fr); }
}

@media (max-width: 760px) {
  .site-shell { min-height: 540px; }
  .site-header {
    min-height: 72px;
    grid-template-columns: 1fr auto auto;
    gap: 12px;
    padding: 0 20px;
  }
  .brand-name { font-size: 37px; }
  .brand-place { margin-top: 8px; font-size: 7px; }
  .menu-toggle { display: flex; grid-column: 2; grid-row: 1; }
  .header-booking {
    grid-column: 3;
    grid-row: 1;
    min-height: 38px;
    gap: 6px;
    padding: 0 9px;
    font-size: 7px;
    letter-spacing: 0.08em;
  }
  .header-booking svg { width: 13px; }
  .primary-nav {
    position: absolute;
    top: 72px;
    right: 0;
    left: 0;
    display: flex;
    max-height: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    padding: 0 24px;
    background: rgba(32,40,35,0.97);
    color: #fff;
    transition: max-height 240ms ease, padding 240ms ease;
  }
  .site-header.is-light .primary-nav { background: rgba(242,239,232,0.98); color: var(--ink); }
  .primary-nav.is-open { max-height: calc(100svh - 72px); padding: 13px 24px 19px; }
  .primary-nav a { padding: 13px 0; font-size: 10px; }
  .primary-nav a::after { bottom: 6px; }
  .home-copy { top: 48%; left: 25px; width: calc(100% - 50px); transform: translateY(-34%); }
  .home-title { margin-top: 24px; font-size: clamp(68px, 16vw, 106px); }
  .home-title span + span { margin-top: 15px; }
  .home-lead { max-width: 430px; margin-top: 26px; font-size: 12px; line-height: 1.75; }
  .home-actions { flex-wrap: wrap; gap: 10px 22px; margin-top: 22px; }
  .button { min-height: 42px; font-size: 8px; }
  .home-location { right: 22px; bottom: 24px; font-size: 8px; }
  .rooms-scroll, .restaurant-scroll { inset: 72px 0 0; }
  .rooms-layout { display: block; padding: 38px 25px 55px; }
  .rooms-intro { position: relative; top: auto; padding: 0 0 35px; }
  .editorial-title { margin: 16px 0 8px; font-size: clamp(60px, 14vw, 82px); }
  .rooms-lead { margin: 12px 0 14px; font-size: 11px; }
  .room-item { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; padding: 24px 0 28px; }
  .room-number { margin-top: 5px; font-size: 8px; }
  .room-name { margin-bottom: 10px; font-size: 34px; }
  .room-description { font-size: 12px; line-height: 1.7; }
  .room-details { margin: 13px 0 0; font-size: 8px; }
  .room-gallery-link { font-size: 8px; }
  .restaurant-hero { min-height: calc(100svh - 72px); }
  .restaurant-top { top: 49%; left: 25px; width: calc(100% - 50px); transform: translateY(-42%); }
  .photo-title { margin: 17px 0 13px; font-size: clamp(64px, 15vw, 90px); }
  .restaurant-intro { max-width: 500px; margin-top: 14px; font-size: 11px; line-height: 1.65; }
  .scroll-cue { margin-top: 20px; font-size: 8px; }
  .restaurant-content { display: block; padding: 50px 25px 60px; }
  .restaurant-heading { margin-bottom: 32px; }
  .restaurant-heading .editorial-title { font-size: 66px; }
  .restaurant-columns { grid-template-columns: 1fr; gap: 25px; }
  .restaurant-detail h4 { font-size: 24px; }
  .restaurant-detail p { font-size: 11px; }
  .restaurant-lounge { grid-column: auto; }
  .restaurant-content > .button { margin-top: 30px; }
  .story-copy { bottom: 24%; left: 27px; width: calc(100% - 54px); }
  .story-copy .photo-title { margin: 16px 0 11px; font-size: clamp(64px, 15vw, 88px); }
  .story-kicker { margin: 18px 0 5px; font-size: 19px; }
  .story-description { max-width: 560px; font-size: 10px; line-height: 1.7; }
  .story-controls { right: 27px; bottom: 9%; left: 27px; justify-content: space-between; gap: 12px; }
  .story-tab { font-size: 16px; }
  .gallery-title-block { left: 27px; bottom: 13%; }
  .gallery-title-block .photo-title { font-size: 74px; }
  .gallery-caption { right: 27px; bottom: 8%; max-width: 190px; font-size: 19px; }
  .gallery-progress { right: 27px; bottom: 5%; left: 27px; }
  .contact-layout { inset: 72px 0 0; display: flex; flex-direction: column; }
  .contact-copy { flex: 0 0 auto; padding: 20px 27px 16px; }
  .contact-copy .editorial-title { margin-top: 12px; font-size: clamp(48px, 11vw, 63px); }
  .contact-intro { max-width: 430px; margin: 13px 0 15px; font-size: 10px; line-height: 1.55; }
  .contact-details { grid-template-columns: 1fr 1fr; gap: 7px 14px; }
  .contact-details > div { grid-column: 1 / -1; }
  .contact-details address, .contact-method { font-size: 10px; line-height: 1.55; }
  .contact-label { margin-bottom: 2px; font-size: 7px; }
  .social-links { gap: 18px; margin-top: 13px; padding-top: 10px; }
  .social-links a { font-size: 8px; }
  .map-panel { flex: 0 0 auto; width: min(calc(100% - 48px), 620px); height: clamp(190px, 28vh, 270px); min-height: 190px; margin: 0 auto 22px; border-radius: 18px; }
  .map-link { right: 12px; bottom: 12px; min-height: 34px; font-size: 8px; }
}

@media (max-width: 390px) {
  .header-booking span { max-width: 53px; line-height: 1.3; }
  .home-title { font-size: 64px; }
  .room-description { font-size: 11px; }
  .contact-copy { flex-basis: auto; }
  .social-links { margin-top: 9px; }
  .social-links { gap: 17px; }
}

@media (max-height: 680px) and (min-width: 761px) {
  .site-header { min-height: 72px; }
  .primary-nav a { padding-top: 27px; padding-bottom: 25px; }
  .primary-nav a::after { bottom: 17px; }
  .home-copy { top: 51%; }
  .home-title { font-size: clamp(68px, 8vw, 112px); }
  .rooms-scroll, .restaurant-scroll { top: 72px; }
  .rooms-layout { padding-top: 50px; padding-bottom: 60px; }
  .restaurant-hero { min-height: calc(100svh - 72px); }
  .editorial-title { font-size: clamp(58px, 6.2vw, 88px); }
  .room-description { line-height: 1.65; }
  .story-copy { bottom: 17%; }
  .contact-layout { top: 72px; }
}

/* Full-bleed room storytelling and restaurant sections */
.rooms-scroll {
  inset: 86px 0 0;
  scroll-snap-type: y mandatory;
  background: var(--forest);
}

.room-panel {
  position: relative;
  display: flex;
  min-height: calc(100svh - 86px);
  align-items: flex-end;
  overflow: hidden;
  padding: clamp(42px, 8vh, 90px) clamp(30px, 9vw, 140px);
  scroll-snap-align: start;
  background: #303a34;
}

.room-panel-image, .room-panel-shade {
  position: absolute;
  inset: 0;
}

.room-panel-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1.01);
}

.room-panel-shade {
  background: linear-gradient(90deg, rgba(17, 22, 19, .65), rgba(17, 22, 19, .2) 78%), linear-gradient(0deg, rgba(12, 17, 14, .84), rgba(12, 17, 14, .04) 78%);
}

.room-panel-copy {
  position: relative;
  z-index: 1;
  width: min(100%, 1180px);
  padding-bottom: clamp(4px, 2vh, 22px);
}

.room-panel-title {
  margin: 17px 0 0;
  color: #fff;
  font-family: var(--script);
  font-size: clamp(34px, 7vw, 100px);
  font-weight: 400;
  line-height: .88;
  letter-spacing: -.035em;
  white-space: nowrap;
}

.room-panel-description {
  max-width: 1050px;
  margin: 24px 0 0;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(12px, 1.05vw, 15px);
  font-weight: 300;
  line-height: 1.8;
}

.room-panel .room-gallery-link {
  margin-top: 26px;
  border-color: rgba(255, 255, 255, .55);
  color: #fff;
}

.room-panel .room-gallery-link span { color: #dfc394; }

.room-scroll-cue {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-left: 24px;
  color: rgba(255, 255, 255, .75);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.room-scroll-cue span { color: #dfc394; font-size: 15px; }

.restaurant-content {
  display: block;
  padding: clamp(48px, 7vh, 82px) clamp(30px, 9vw, 140px) 64px;
}

.restaurant-heading { margin: 0 0 24px; }
.restaurant-heading .eyebrow { margin-bottom: 0; }

.restaurant-main-title {
  margin: 8px 0 0;
  font-size: clamp(26px, 6.2vw, 88px);
  line-height: .92;
  letter-spacing: -.04em;
  white-space: nowrap;
}

.restaurant-columns {
  grid-template-columns: minmax(0, 1.2fr) minmax(230px, .8fr);
  gap: 36px clamp(30px, 7vw, 110px);
  padding: 0;
}

.restaurant-detail { padding-top: 16px; }
.restaurant-content > .button { margin-top: 32px; }

.restaurant-lounge-scene {
  position: relative;
  display: flex;
  min-height: calc(100svh - 86px);
  align-items: flex-end;
  overflow: hidden;
  padding: 9vh clamp(30px, 9vw, 140px) 12vh;
  background: #302d28;
}

.restaurant-lounge-image { background-position: center 58%; }

.restaurant-lounge-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(15, 18, 16, .62), rgba(15, 18, 16, .1) 85%), linear-gradient(0deg, rgba(12, 17, 14, .72), transparent 72%);
}

.restaurant-lounge-copy {
  position: relative;
  z-index: 1;
  width: min(100%, 1050px);
}

.restaurant-lounge-copy .photo-title {
  margin: 17px 0 15px;
  font-size: clamp(28px, 6.2vw, 92px);
  line-height: .92;
  white-space: nowrap;
}

.restaurant-lounge-copy > p:last-child {
  max-width: 600px;
  margin: 0;
  color: rgba(255,255,255,.87);
  font-size: clamp(12px, 1.05vw, 15px);
  font-weight: 300;
  line-height: 1.8;
}

/* Contact page with the introduction, map and hotel details in that order */
.contact-layout {
  inset: 86px 0 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(24px, 4.5vh, 46px) clamp(28px, 9vw, 140px) 28px;
  background: radial-gradient(ellipse at 3% 95%, rgba(195,167,122,.13), transparent 38%), var(--paper);
  scrollbar-color: #b6a27f transparent;
}

.contact-heading {
  display: grid;
  grid-template-columns: minmax(245px, .78fr) minmax(0, 1.22fr);
  align-items: end;
  gap: clamp(30px, 6vw, 90px);
  margin-bottom: 20px;
}

.contact-title-block .editorial-title {
  margin: 10px 0 0;
  font-size: clamp(54px, 5.6vw, 82px);
  line-height: .9;
  white-space: nowrap;
}

.contact-intro {
  max-width: 940px;
  margin: 0 0 5px;
  color: var(--muted);
  font-size: clamp(12px, 1.05vw, 15px);
  font-weight: 300;
  line-height: 1.8;
}

.contact-map-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 10px;
  color: #72756e;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contact-map-heading .contact-label { margin: 0; }

.map-panel {
  align-self: center;
  width: 100%;
  height: clamp(190px, 30vh, 290px);
  margin: 0;
  border-radius: 20px;
  box-shadow: 0 16px 45px rgba(33, 39, 34, .11);
}

.contact-footer {
  display: grid;
  grid-template-columns: minmax(240px, 1.2fr) minmax(250px, 1fr) auto;
  align-items: center;
  gap: clamp(22px, 4vw, 58px);
  margin-top: 21px;
  padding-top: 19px;
  border-top: 1px solid rgba(44, 48, 44, .17);
}

.contact-address .contact-label { margin-bottom: 5px; }
.contact-address address { color: #4d524c; font-size: 12px; font-style: normal; font-weight: 300; line-height: 1.7; }
.contact-methods { display: grid; gap: 9px; }
.contact-methods .contact-method { font-size: 12px; }
.contact-footer .social-links { gap: 19px; margin: 0; padding: 0; border: 0; }
.contact-footer .social-links a { font-size: 8px; }

@media (max-width: 1080px) {
  .contact-heading { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: 28px; }
  .contact-footer { grid-template-columns: 1fr 1fr; }
  .contact-footer .social-links { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .rooms-scroll, .restaurant-scroll { inset: 72px 0 0; }
  .room-panel {
    min-height: calc(100svh - 72px);
    padding: 34px 25px 45px;
  }
  .room-panel-title { margin-top: 14px; font-size: clamp(20px, 6vw, 46px); line-height: 1; }
  .room-panel-description { margin-top: 16px; font-size: 11px; line-height: 1.7; }
  .room-panel .room-gallery-link { margin-top: 18px; font-size: 8px; }
  .room-scroll-cue { margin-left: 12px; font-size: 7px; }
  .restaurant-content { padding: 42px 25px 48px; }
  .restaurant-heading { margin-bottom: 22px; }
  .restaurant-main-title { font-size: clamp(21px, 5.8vw, 44px); }
  .restaurant-columns { grid-template-columns: 1fr; gap: 20px; }
  .restaurant-detail h4 { margin-bottom: 9px; font-size: 23px; }
  .restaurant-detail p { font-size: 11px; line-height: 1.7; }
  .restaurant-content > .button { margin-top: 25px; }
  .restaurant-lounge-scene { min-height: calc(100svh - 72px); padding: 8vh 25px 12vh; }
  .restaurant-lounge-copy .photo-title { font-size: clamp(19px, 5.7vw, 43px); line-height: 1; }
  .restaurant-lounge-copy > p:last-child { font-size: 11px; line-height: 1.7; }
  .contact-layout { inset: 72px 0 0; padding: 22px 25px 25px; }
  .contact-heading { display: block; margin-bottom: 20px; }
  .contact-title-block .editorial-title { margin: 12px 0 12px; font-size: clamp(50px, 12vw, 68px); }
  .contact-intro { margin: 0; font-size: 11px; line-height: 1.7; }
  .contact-map-heading { margin-bottom: 9px; font-size: 8px; }
  .map-panel { width: 100%; height: clamp(185px, 29vh, 250px); min-height: 185px; border-radius: 16px; }
  .contact-footer { grid-template-columns: 1fr; gap: 13px; margin-top: 17px; padding-top: 15px; }
  .contact-footer .social-links { grid-column: auto; gap: 18px; }
  .contact-address address, .contact-methods .contact-method { font-size: 10px; }
  .contact-footer .social-links a { font-size: 8px; }
  .map-link { right: 12px; bottom: 12px; min-height: 34px; font-size: 8px; }
}

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

/* Keep the long editorial titles wide without wrapping. */
.room-panel-title { font-size: clamp(34px, 12.5vw, 168px); }
.restaurant-heading { margin-bottom: 12px; }
.restaurant-content { padding-bottom: 32px; }
.restaurant-main-title { font-size: clamp(28px, 12vw, 160px); }
.restaurant-lounge-copy .photo-title { font-size: clamp(28px, 9.5vw, 140px); }
.contact-footer { margin-top: auto; }
.contact-location-note { margin: 11px 0 0; color: #686d65; font-size: 11px; font-weight: 300; line-height: 1.65; }

@media (max-width: 760px) {
  .room-panel-title { font-size: clamp(20px, 6vw, 46px); }
  .restaurant-heading { margin-bottom: 22px; }
  .restaurant-content { padding-bottom: 48px; }
  .restaurant-main-title { font-size: clamp(21px, 5.8vw, 44px); }
  .restaurant-lounge-copy .photo-title { font-size: clamp(19px, 5.7vw, 43px); }
  .contact-footer { margin-top: 17px; }
  .contact-location-note { font-size: 10px; }
}

@media (min-width: 761px) {
  .room-panel-title { font-size: clamp(30px, 10.5vw, 145px); }
  .restaurant-heading .restaurant-main-title { font-size: clamp(28px, 12vw, 160px); }
}

@media (max-width: 760px) {
  .restaurant-heading .restaurant-main-title { font-size: clamp(21px, 5.8vw, 44px); }
}

@media (max-width: 760px) {
  .room-panel-title { font-size: clamp(32px, 10.5vw, 48px); }
  .restaurant-heading .restaurant-main-title { font-size: clamp(30px, 9vw, 48px); }
}

/* Stack the restaurant story and the contact introduction for a calmer reading flow. */
.restaurant-heading .restaurant-main-title {
  font-size: clamp(42px, 8.5vw, 112px);
  line-height: .82;
  white-space: normal;
}
.restaurant-columns {
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
}
.restaurant-detail { max-width: 1000px; }
.contact-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.contact-intro { max-width: 940px; margin: 0; }

@media (max-width: 760px) {
  .restaurant-heading .restaurant-main-title { font-size: clamp(30px, 9vw, 48px); }
  .restaurant-columns { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .contact-heading { display: block; }
  .contact-intro { margin: 0; }
}

/* Full-page editorial panels for rooms, services and experiences. */
.rooms-scroll,
.restaurant-scroll,
.story-scroll,
.gallery-layout,
.reviews-layout {
  scrollbar-width: thin;
  scrollbar-color: #b6a27f transparent;
}

.room-panel {
  min-height: calc(100svh - 86px);
  align-items: center;
  padding: clamp(40px, 7vh, 76px) clamp(30px, 8vw, 124px);
}

.room-panel-copy {
  width: min(100%, 1260px);
  padding: 0;
}

.room-panel-title {
  max-width: 100%;
  margin: 18px 0 0;
  font-size: clamp(70px, 9.2vw, 142px);
  line-height: .78;
  white-space: normal;
}

.room-panel-title em { font-style: normal; }
.room-panel-description { max-width: 1100px; margin-top: 25px; }
.room-panel .room-gallery-link { margin-top: 20px; }

.room-interlude {
  display: flex;
  min-height: clamp(220px, 34vh, 330px);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 38px 28px;
  scroll-snap-align: start;
  color: var(--ink);
  background: linear-gradient(115deg, #f5f2ec, #e9e4da);
  text-align: center;
}

.room-interlude .eyebrow { margin: 0 0 14px; }
.room-interlude-title {
  margin: 0;
  color: var(--ink);
  font-family: var(--script);
  font-size: clamp(46px, 5.6vw, 76px);
  line-height: .84;
}
.room-interlude-title em { font-style: normal; }
.room-interlude > p:last-child {
  max-width: 680px;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.75;
}

.restaurant-scroll,
.story-scroll,
.gallery-layout,
.reviews-layout { scroll-behavior: smooth; }

.restaurant-scroll { scroll-snap-type: y proximity; }
.restaurant-hero,
.restaurant-lounge-scene { scroll-snap-align: start; }

.story-scroll {
  position: absolute;
  inset: 86px 0 0;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: y mandatory;
  background: var(--forest);
}

.story-panel {
  position: relative;
  display: flex;
  min-height: calc(100svh - 86px);
  align-items: center;
  overflow: hidden;
  padding: clamp(38px, 7vh, 72px) clamp(30px, 9vw, 140px);
  scroll-snap-align: start;
  background: var(--forest-soft);
}

.story-panel .scene-image { background-position: center; }
.story-panel .story-copy {
  position: relative;
  inset: auto;
  width: min(100%, 1160px);
  padding: 0;
}
.story-panel .photo-title {
  max-width: 100%;
  margin: 18px 0 19px;
  font-size: clamp(68px, 8.8vw, 126px);
  line-height: .82;
}
.story-panel .story-kicker { margin: 0 0 11px; font-size: 21px; }
.story-panel .story-description { max-width: 880px; font-size: clamp(12px, 1.05vw, 15px); }
.story-scroll-cue {
  position: absolute;
  z-index: 2;
  right: clamp(28px, 8vw, 120px);
  bottom: 7%;
  color: rgba(255,255,255,.82);
  font-size: 8px;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* A browsable, non-fullscreen gallery keeps every photo in view as a collection. */
.scene-gallery,
.scene-reviews { color: var(--ink); background: var(--paper); }

.gallery-layout {
  position: absolute;
  inset: 86px 0 0;
  overflow: auto;
  padding: clamp(38px, 6vh, 70px) clamp(24px, 7vw, 108px) 58px;
  background: radial-gradient(ellipse at 100% 0%, rgba(195,167,122,.14), transparent 34%), var(--paper);
}

.gallery-heading { max-width: 1080px; margin-bottom: 30px; }
.gallery-heading .eyebrow { margin: 0; }
.gallery-heading .editorial-title {
  margin: 11px 0 5px;
  font-size: clamp(52px, 6vw, 82px);
  line-height: .83;
}
.gallery-heading > p:last-child {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.7;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: clamp(10px, 1.4vw, 20px);
}

.gallery-card {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #d4d0c6;
}

.gallery-card-wide { grid-column: span 2; aspect-ratio: 16 / 9; }
.gallery-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.gallery-card:hover img { transform: scale(1.035); }
.gallery-card figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 35px 16px 13px;
  color: #fff;
  background: linear-gradient(0deg, rgba(17,22,19,.68), transparent);
  font-size: 9px;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.gallery-instagram {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 10px;
  margin-top: 26px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(44,48,44,.35);
  color: var(--ink);
  font-size: 9px;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.gallery-instagram .social-icon { width: 16px; height: 16px; }

.reviews-layout {
  position: absolute;
  inset: 86px 0 0;
  overflow: auto;
  padding: clamp(30px, 5vh, 62px) clamp(28px, 10vw, 152px) 40px;
  background: radial-gradient(ellipse at 95% 10%, rgba(195,167,122,.14), transparent 36%), var(--paper);
}

.reviews-heading { max-width: 980px; }
.reviews-heading .eyebrow { margin: 0; }
.reviews-heading .editorial-title {
  margin: 13px 0 8px;
  font-size: clamp(58px, 7vw, 92px);
  line-height: .78;
}
.reviews-heading > p:last-child {
  max-width: 700px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.7;
}

.review-scores { display: flex; gap: 14px; margin: 28px 0; }
.review-score {
  display: flex;
  min-width: 205px;
  flex-direction: column;
  gap: 5px;
  padding: 16px 19px;
  border: 1px solid rgba(44,48,44,.15);
  background: rgba(255,255,255,.45);
}
.review-source { color: var(--muted); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.review-score strong { color: var(--ink); font-family: var(--display); font-size: 35px; font-weight: 500; line-height: 1; }
.review-score strong span { color: #9b8052; font-family: Arial, sans-serif; font-size: 17px; }
.review-score > span:last-child { color: var(--muted); font-size: 9px; }

.review-quotes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 4vw, 58px); }
.review-quotes blockquote { margin: 0; padding: 18px 0 0; border-top: 1px solid rgba(44,48,44,.2); }
.review-quotes blockquote p { max-width: 530px; margin: 0; color: #494e48; font-family: var(--display); font-size: clamp(22px, 2.2vw, 32px); font-style: italic; line-height: 1.2; }
.review-quotes blockquote footer { margin-top: 13px; color: var(--muted); font-size: 8px; letter-spacing: .11em; text-transform: uppercase; }
.review-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.review-links a { padding: 12px 14px; border: 1px solid rgba(44,48,44,.3); color: var(--ink); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.review-links a:hover { color: var(--paper); background: var(--forest); }
.reviews-note { margin: 13px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }

@media (max-width: 760px) {
  .rooms-scroll { inset: 72px 0 0; }
  .room-panel { min-height: calc(100svh - 72px); align-items: center; padding: 32px 25px; }
  .room-panel-title { font-size: clamp(54px, 13vw, 80px); line-height: .82; white-space: normal; }
  .room-panel-description { margin-top: 18px; font-size: 11px; line-height: 1.7; }
  .room-panel .room-gallery-link { margin-top: 14px; font-size: 8px; }
  .room-interlude { min-height: 31vh; padding: 27px 24px; }
  .room-interlude-title { font-size: clamp(38px, 10vw, 54px); }
  .room-interlude > p:last-child { max-width: 440px; font-size: 10px; }
  .story-scroll { inset: 72px 0 0; }
  .story-panel { min-height: calc(100svh - 72px); align-items: flex-end; padding: 35px 25px 15vh; }
  .story-panel .story-copy { width: 100%; }
  .story-panel .photo-title { font-size: clamp(56px, 13vw, 82px); }
  .story-panel .story-kicker { margin-bottom: 8px; font-size: 18px; }
  .story-panel .story-description { font-size: 10px; line-height: 1.7; }
  .story-scroll-cue { right: 25px; bottom: 6%; font-size: 7px; }
  .gallery-layout, .reviews-layout { inset: 72px 0 0; padding: 31px 20px 36px; }
  .gallery-heading { margin-bottom: 22px; }
  .gallery-heading .editorial-title { font-size: clamp(44px, 11vw, 62px); }
  .gallery-heading > p:last-child { font-size: 10px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .gallery-card { aspect-ratio: 4 / 3; }
  .gallery-card-wide { grid-column: span 2; aspect-ratio: 16 / 9; }
  .gallery-card figcaption { padding: 29px 9px 9px; font-size: 7px; }
  .gallery-instagram { margin-top: 18px; font-size: 8px; }
  .reviews-layout { padding: 33px 25px 32px; }
  .reviews-heading .editorial-title { font-size: clamp(54px, 13vw, 72px); }
  .reviews-heading > p:last-child { font-size: 10px; }
  .review-scores { gap: 9px; margin: 20px 0; }
  .review-score { min-width: 0; flex: 1; padding: 13px 12px; }
  .review-quotes { grid-template-columns: 1fr; gap: 18px; }
  .review-quotes blockquote p { font-size: 22px; }
  .review-links { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 19px; }
  .review-links a { text-align: center; }
  .reviews-note { text-align: center; }
}

@media (max-height: 680px) and (min-width: 761px) {
  .story-scroll { top: 72px; }
  .story-panel { min-height: calc(100svh - 72px); }
}

/* Final polish: compact gallery and restrained alpine color accents. */
.restaurant-heading .restaurant-main-title {
  font-size: clamp(36px, 7vw, 92px);
  line-height: .9;
  white-space: nowrap;
}

.gallery-layout {
  padding: clamp(24px, 3.8vh, 44px) clamp(20px, 5vw, 78px) 30px;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(195,167,122,.15), transparent 30%),
    radial-gradient(ellipse at 0% 100%, rgba(112,134,111,.10), transparent 33%),
    var(--paper);
}
.gallery-heading { margin-bottom: 18px; }
.gallery-grid {
  grid-auto-flow: row;
  gap: clamp(8px, 1vw, 14px);
}
.gallery-card,
.gallery-card-wide { grid-column: auto; aspect-ratio: 4 / 3; }

.reviews-layout {
  background:
    radial-gradient(ellipse at 94% 8%, rgba(195,167,122,.2), transparent 34%),
    radial-gradient(ellipse at 5% 95%, rgba(104,130,106,.13), transparent 36%),
    var(--paper);
}
.review-score {
  border: 0;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(38,47,39,.06);
}
.review-score:first-child { background: #e3e9df; }
.review-score:last-child { background: #efe4d4; }
.review-score strong span { color: #a77c3d; }
.review-quotes blockquote {
  min-height: 140px;
  padding: 19px 20px;
  border: 0;
  border-radius: 12px;
  background: #e9e6dc;
}
.review-quotes blockquote:nth-child(2) { background: #e1e8e1; }
.review-quotes blockquote footer { color: #667366; }

.contact-layout {
  background:
    radial-gradient(ellipse at 5% 0%, rgba(112,134,111,.14), transparent 34%),
    radial-gradient(ellipse at 100% 100%, rgba(195,167,122,.17), transparent 38%),
    var(--paper);
}
.contact-map-heading .contact-label { color: #7b6848; }
.contact-footer {
  padding: 18px 20px;
  border: 0;
  border-radius: 14px;
  background: rgba(221,227,216,.72);
}
.contact-footer .contact-label { color: #7b6848; }
.contact-footer .social-links a { color: #4d6253; }
.contact-footer .social-links a:hover { color: #98794b; }

@media (max-width: 760px) {
  .restaurant-heading .restaurant-main-title { font-size: clamp(22px, 7vw, 38px); }
  .gallery-layout { padding: 25px 18px 28px; }
  .gallery-heading { margin-bottom: 15px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .gallery-card,
  .gallery-card-wide { grid-column: auto; aspect-ratio: 4 / 3; }
  .contact-footer { padding: 16px; }
}

/* Servizi ed esperienze proseguono sotto le immagini di apertura. */
.service-details,
.experience-details {
  position: relative;
  padding: clamp(42px, 6.5vw, 92px) clamp(24px, 8vw, 124px) clamp(54px, 7vw, 104px);
  scroll-snap-align: start;
  color: var(--ink);
  background:
    radial-gradient(ellipse at 100% 0%, rgba(195,167,122,.14), transparent 31%),
    var(--paper);
}

.service-details-heading,
.experience-details-heading { max-width: 890px; margin-bottom: clamp(30px, 4.6vw, 62px); }
.service-details-heading .eyebrow,
.experience-details-heading .eyebrow { margin: 0; }
.service-details-heading .editorial-title,
.experience-details-heading .editorial-title {
  margin: 13px 0 9px;
  color: var(--ink);
  font-size: clamp(42px, 6.2vw, 84px);
  line-height: .88;
}
.service-details-heading > p:last-child,
.experience-details-heading > p:last-child {
  max-width: 760px;
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 300;
  line-height: 1.8;
}

.service-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(18px, 3.2vw, 48px);
  row-gap: 34px;
}
.service-detail-card {
  min-width: 0;
  padding-top: 15px;
  border-top: 1px solid rgba(44,48,44,.24);
}
.service-detail-card > span {
  color: #88754f;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.service-detail-card h4 {
  margin: 9px 0 7px;
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(23px, 2.3vw, 31px);
  font-weight: 500;
  line-height: 1;
}
.service-detail-card p {
  margin: 0;
  color: #62675f;
  font-size: 11.5px;
  font-weight: 300;
  line-height: 1.8;
}

.experience-season + .experience-season { margin-top: clamp(48px, 6.5vw, 92px); }
.experience-season-heading { margin-bottom: 25px; }
.experience-season-heading > span {
  color: #88754f;
  font-size: 8px;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.experience-season-heading h4 {
  margin: 8px 0 0;
  color: var(--ink);
  font-family: var(--display);
  font-size: clamp(35px, 4vw, 54px);
  font-weight: 500;
  line-height: .95;
}
.experience-season-heading > p {
  max-width: 870px;
  margin: 19px 0 0;
  color: #62675f;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.8;
}
.experience-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.7vw, 24px);
}
.experience-photo {
  position: relative;
  min-width: 0;
  aspect-ratio: 3 / 2;
  margin: 0;
  overflow: hidden;
  background: #393c36;
  isolation: isolate;
}
.experience-photo::after {
  position: absolute;
  z-index: 0;
  inset: 25% 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(19,22,19,.84) 100%);
  content: "";
}
.experience-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.experience-photo figcaption {
  position: absolute;
  z-index: 1;
  right: clamp(12px, 1.5vw, 22px);
  bottom: clamp(12px, 1.5vw, 22px);
  left: clamp(12px, 1.5vw, 22px);
  color: #fff;
}
.experience-photo h5 {
  margin: 0 0 6px;
  color: #fff;
  font-family: var(--display);
  font-size: clamp(19px, 2vw, 28px);
  font-weight: 500;
  line-height: 1.05;
}
.experience-photo p {
  display: -webkit-box;
  max-width: 46ch;
  margin: 0;
  overflow: hidden;
  color: rgba(255,255,255,.9);
  font-size: 11.5px;
  font-weight: 300;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}
.restaurant-lounge-image {
  background-size: 190% auto;
  background-position: 58% 52%;
}

@media (max-width: 900px) {
  .service-detail-grid,
  .experience-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .service-details,
  .experience-details { padding: 39px 24px 48px; }
  .service-details-heading,
  .experience-details-heading { margin-bottom: 32px; }
  .service-details-heading .editorial-title,
  .experience-details-heading .editorial-title { font-size: clamp(39px, 10vw, 60px); }
  .service-details-heading > p:last-child,
  .experience-details-heading > p:last-child { font-size: 10px; }
  .service-detail-grid { grid-template-columns: minmax(0,1fr); row-gap: 23px; }
  .service-detail-card { padding-top: 12px; }
  .service-detail-card h4 { font-size: 27px; }
  .service-detail-card p { font-size: 11px; line-height: 1.75; }
  .experience-season + .experience-season { margin-top: 48px; }
  .experience-season-heading { margin-bottom: 19px; }
  .experience-season-heading h4 { font-size: 37px; }
  .experience-season-heading > p { margin-top: 14px; font-size: 10px; }
  .experience-photo-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .experience-photo { aspect-ratio: 16 / 10; }
  .experience-photo figcaption { right: 16px; bottom: 15px; left: 16px; }
  .experience-photo h5 { font-size: 24px; }
  .experience-photo p { font-size: 11px; }
  .restaurant-lounge-image { background-size: 150% auto; background-position: 56% 48%; }
}

/* Panelli fotografici più compatti, separati da brevi passaggi editoriali. */
.restaurant-lounge-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
}

.story-scroll { background: var(--paper); }
.story-panel {
  min-height: clamp(380px, 66svh, 660px);
  margin: 22px clamp(18px, 5vw, 72px);
  padding: clamp(36px, 6vh, 64px) clamp(26px, 7vw, 105px);
}
.story-panel .photo-title {
  font-size: clamp(58px, 8vw, 116px);
  line-height: .88;
}
.story-divider {
  display: grid;
  min-height: 122px;
  place-items: center;
  margin: 0;
  padding: 24px clamp(22px, 8vw, 124px);
  color: #4f584f;
  background: var(--paper);
  font-family: var(--display);
  font-size: clamp(21px, 2.6vw, 34px);
  font-weight: 400;
  line-height: 1.18;
  text-align: center;
  scroll-snap-align: center;
}

.service-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.service-detail-card {
  position: relative;
  display: flex;
  min-height: 0;
  height: clamp(290px, 34vw, 500px);
  align-items: flex-end;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: #343b34;
  isolation: isolate;
}
.service-detail-card > img {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
}
.service-detail-card::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(0deg, rgba(15,18,16,.86), rgba(15,18,16,.48) 40%, rgba(15,18,16,.02) 100%);
  content: "";
}
.service-detail-copy {
  position: relative;
  z-index: 1;
  width: min(100%, 1050px);
  padding: clamp(25px, 5vw, 66px);
  color: #fff;
}
.service-detail-copy > span {
  color: rgba(255,255,255,.82);
  font-size: 11px;
  letter-spacing: .15em;
}
.service-detail-copy h4 {
  margin: 9px 0 8px;
  color: #fff;
  font-size: clamp(31px, 4.3vw, 58px);
  line-height: .98;
}
.service-detail-copy p {
  max-width: 72ch;
  margin: 0;
  color: rgba(255,255,255,.91);
  font-size: clamp(14px, 1.15vw, 16px);
  line-height: 1.65;
}

.experience-photo-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.experience-photo {
  height: clamp(310px, 34vw, 510px);
  aspect-ratio: auto;
}
.experience-photo figcaption {
  right: clamp(22px, 5vw, 72px);
  bottom: clamp(22px, 4vw, 54px);
  left: clamp(22px, 5vw, 72px);
}
.experience-photo h5 { font-size: clamp(29px, 4vw, 52px); }
.experience-photo p {
  display: block;
  max-width: 75ch;
  overflow: visible;
  font-size: clamp(14px, 1.15vw, 16px);
  line-height: 1.6;
  -webkit-line-clamp: unset;
}

@media (max-width: 760px) {
  .story-panel {
    min-height: clamp(390px, 70svh, 570px);
    margin: 14px 14px;
    align-items: flex-end;
    padding: 28px 22px 12vh;
  }
  .story-panel .photo-title { font-size: clamp(50px, 12vw, 78px); }
  .story-panel .story-description { font-size: 13px; }
  .story-divider { min-height: 98px; padding: 20px 22px; font-size: 22px; }
  .service-detail-grid { gap: 13px; }
  .service-detail-card { height: clamp(340px, 76svh, 510px); }
  .service-detail-copy { padding: 24px 21px; }
  .service-detail-copy h4 { font-size: 33px; }
  .service-detail-copy p { font-size: 14px; line-height: 1.55; }
  .experience-photo-grid { gap: 13px; }
  .experience-photo { height: auto; min-height: 320px; aspect-ratio: 16 / 10; }
  .experience-photo figcaption { right: 17px; bottom: 17px; left: 17px; }
  .experience-photo h5 { font-size: 28px; }
  .experience-photo p { font-size: 14px; line-height: 1.5; }
}

/* Autumn 2026 visual pass: warm stone, slate and copper. */
:root {
  --forest: #263139;
  --forest-soft: #344149;
  --paper: #f5f1eb;
  --paper-deep: #e8e0d7;
  --ink: #2d3032;
  --muted: #70716f;
  --gold: #b77e61;
  --line: rgba(255,255,255,.28);
  --body: "DM Sans", Arial, sans-serif;
}
body, button, a { font-family: var(--body); }
body, .site-shell { background: var(--forest); }
.site-header, .site-header.is-light {
  min-height: 82px; color: #f8f5ef; border-color: rgba(255,255,255,.18);
  background: rgba(38,49,57,.94); backdrop-filter: blur(14px);
}
.site-header .header-booking { border-color: rgba(255,255,255,.56); }
.site-header .header-booking:hover { color: var(--forest); background: #f5f1eb; border-color: #f5f1eb; }
.brand { gap: 3px; }
.brand-kicker { color: #d8a489; font-size: 7px; font-weight: 600; letter-spacing: .31em; }
.brand-name {
  color: #fffaf2; font-family: var(--display); font-size: 27px; font-weight: 600;
  line-height: .92; letter-spacing: .09em; text-transform: uppercase;
}
.brand-place { margin: 3px 0 0 1px; color: rgba(255,250,242,.77); font-size: 7px; font-weight: 500; letter-spacing: .18em; }
.primary-nav { gap: clamp(10px,1.35vw,23px); }
.primary-nav a { padding: 32px 0 29px; font-size: 9px; font-weight: 500; letter-spacing: .075em; }
.primary-nav a::after { bottom: 20px; background: #d8a489; }
.header-booking { min-height: 39px; font-size: 8px; letter-spacing: .1em; }
.site-header.is-light .header-booking { border-color: rgba(255,255,255,.56); }
.site-header.is-light .header-booking:hover { color: var(--forest); background: #f5f1eb; border-color: #f5f1eb; }

.home-scroll {
  position: absolute; inset: 0; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior-y: auto; -webkit-overflow-scrolling: touch; scrollbar-color: #b77e61 transparent;
}
.home-hero {
  position: relative; display: flex; height: 100svh; min-height: 620px; align-items: center;
  overflow: hidden; padding: 110px clamp(28px,8vw,130px) 78px; isolation: isolate; background: #303a40;
}
.home-copy { position: relative; inset: auto; z-index: 2; width: min(760px,92%); margin: 20px 0 0; transform: none; }
.home-title { margin: 24px 0 0; font-size: clamp(72px,9vw,132px); line-height: .76; letter-spacing: -.04em; }
.home-title span + span { margin-top: 18px; }
.home-lead { max-width: 520px; margin-top: 28px; color: rgba(255,255,255,.88); font-size: clamp(15px,1.2vw,18px); font-weight: 400; line-height: 1.65; }
.home-actions { gap: 24px; margin-top: 26px; }
.home-location { right: clamp(26px,5vw,76px); bottom: 31px; font-size: 9px; }
.location-dot { background: #d8a489; }
.home-scroll-cue {
  position: absolute; right: clamp(26px,5vw,76px); bottom: 31px; color: rgba(255,255,255,.72);
  font-size: 8px; letter-spacing: .15em; text-transform: uppercase;
}
.home-details {
  display: grid; min-height: 78svh; grid-template-columns: minmax(0,1fr) minmax(280px,.78fr);
  grid-template-rows: auto auto; align-content: center; gap: 38px clamp(40px,9vw,140px);
  padding: clamp(58px,9vw,130px) clamp(28px,9vw,142px) 72px; color: var(--ink);
  background: radial-gradient(ellipse at 92% 8%,rgba(183,126,97,.13),transparent 32%),var(--paper);
}
.home-details-copy { max-width: 650px; }
.home-details-copy .editorial-title { margin: 18px 0 22px; font-size: clamp(56px,6.6vw,92px); line-height: .8; }
.home-details-copy > p:last-child { max-width: 58ch; margin: 0; color: #5e6263; font-size: 16px; line-height: 1.85; }
.home-facts { display: grid; align-content: center; }
.home-facts > div {
  display: grid; grid-template-columns: minmax(105px,.6fr) 1fr; align-items: baseline; gap: 18px;
  padding: 18px 0; border-bottom: 1px solid rgba(45,48,50,.18);
}
.home-facts strong { color: #9b6248; font-family: var(--display); font-size: clamp(25px,3vw,39px); font-weight: 500; }
.home-facts span { color: #686c6d; font-size: 12px; line-height: 1.5; }
.home-paths {
  display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr));
  border-top: 1px solid rgba(45,48,50,.2);
}
.home-paths a {
  display: flex; min-height: 70px; align-items: center; gap: 16px; padding: 12px 20px 12px 0;
  border-bottom: 1px solid rgba(45,48,50,.2); color: var(--ink); font-size: 11px;
  letter-spacing: .07em; text-transform: uppercase;
}
.home-paths a + a { padding-left: 20px; border-left: 1px solid rgba(45,48,50,.2); }
.home-paths a > span { color: #a36a50; font-size: 9px; }
.home-paths a > b { margin-left: auto; color: #a36a50; font-size: 8px; font-weight: 600; letter-spacing: .1em; }
.home-paths a:hover { color: #9b6248; }

.scene-rooms, .scene-contact { color: var(--ink); background: var(--paper); }
.rooms-scroll, .restaurant-scroll, .story-scroll {
  inset: 82px 0 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: auto;
  scroll-snap-type: none; scroll-behavior: auto; -webkit-overflow-scrolling: touch;
  scrollbar-color: #b77e61 transparent;
}
.room-panel {
  min-height: calc(100svh - 82px); align-items: flex-end; padding: clamp(36px,7vh,76px) clamp(28px,9vw,138px);
  scroll-snap-align: none; background: #303a40;
}
.room-panel-image { transition: transform 1.15s cubic-bezier(.2,.7,.2,1); }
.room-panel:hover .room-panel-image { transform: scale(1.035); }
.room-panel-shade {
  background: linear-gradient(90deg,rgba(20,27,31,.52),rgba(20,27,31,.14) 75%),
              linear-gradient(0deg,rgba(17,23,27,.84),rgba(17,23,27,.18) 65%,rgba(17,23,27,.18));
}
.room-panel-copy { width: min(100%,1150px); padding: 0 0 1vh; }
.room-panel-copy .eyebrow { color: rgba(255,255,255,.82); }
.room-panel-title { margin: 14px 0 0; font-size: clamp(62px,8.8vw,124px); line-height: .82; white-space: normal; text-wrap: balance; }
.room-panel-description { max-width: 780px; margin-top: 20px; color: rgba(255,255,255,.91); font-size: clamp(15px,1.2vw,17px); font-weight: 400; line-height: 1.72; }
.room-panel .room-gallery-link { margin-top: 19px; padding-bottom: 5px; border-color: rgba(255,255,255,.62); color: #fff; font-size: 9px; }
.room-panel .room-gallery-link:hover { border-color: #d8a489; color: #f3c2a5; }
.room-interlude {
  min-height: 220px; padding: 34px 24px; scroll-snap-align: none;
  background: linear-gradient(110deg,#f6f2eb,#e8e0d7);
}
.room-interlude .eyebrow { color: #9b6248; }
.room-interlude-title { color: var(--ink); font-family: var(--display); font-size: clamp(38px,5vw,64px); line-height: .9; }
.room-interlude > p:last-child { max-width: 640px; font-size: 13px; line-height: 1.7; }
.room-endnote {
  display: flex; min-height: 210px; align-items: center; justify-content: space-between; gap: 26px;
  padding: 38px clamp(28px,9vw,138px); color: var(--ink); background: var(--paper);
}
.room-endnote p { max-width: 56ch; color: var(--muted); font-size: 14px; line-height: 1.7; }

.restaurant-scroll { scrollbar-color: #b77e61 transparent; }
.restaurant-hero { min-height: calc(100svh - 82px); }
.restaurant-top { width: min(720px,70vw); }
.restaurant-top .eyebrow { color: #e5b79a; }
.restaurant-top .photo-title {
  font-family: var(--display); font-size: clamp(68px,8vw,112px); font-weight: 500;
  line-height: .82; letter-spacing: -.03em;
}
.restaurant-intro { max-width: 590px; font-size: 16px; font-weight: 400; line-height: 1.75; }
.restaurant-content { display: block; padding: clamp(52px,8vh,96px) clamp(28px,10vw,150px) 74px; color: var(--ink); background: var(--paper); }
.restaurant-heading { margin-bottom: 30px; }
.restaurant-heading .eyebrow { color: #9b6248; }
.restaurant-heading .restaurant-main-title {
  margin: 9px 0 0; color: var(--ink); font-family: var(--display);
  font-size: clamp(43px,6.1vw,86px); font-weight: 500; line-height: .92;
  letter-spacing: -.025em; white-space: normal;
}
.restaurant-columns { gap: 28px clamp(32px,7vw,105px); }
.restaurant-detail { padding-top: 18px; border-color: rgba(45,48,50,.22); }
.restaurant-detail h4 { color: #34393b; font-family: var(--display); font-size: 32px; font-weight: 500; }
.restaurant-detail p { color: #5e6263; font-size: 15px; font-weight: 400; line-height: 1.8; }
.restaurant-content > .button { margin-top: 35px; }
.button-dark { color: #fff; background: var(--forest); border-color: var(--forest); }
.button-dark:hover { color: var(--forest); background: transparent; border-color: var(--forest); }
.restaurant-lounge-scene { min-height: min(78svh,760px); padding: 9vh clamp(28px,9vw,138px) 10vh; background: #303a40; }
.restaurant-lounge-shade {
  background: linear-gradient(90deg,rgba(21,27,30,.63),rgba(21,27,30,.1) 82%),
              linear-gradient(0deg,rgba(21,27,30,.72),transparent 76%);
}
.restaurant-lounge-copy .eyebrow { color: #e5b79a; }
.restaurant-lounge-copy .photo-title {
  max-width: 100%; font-family: var(--display); font-size: clamp(46px,6vw,86px);
  font-weight: 500; line-height: .9;
}
.restaurant-lounge-copy > p:last-child { font-size: 15px; font-weight: 400; line-height: 1.7; }

.story-scroll { background: var(--paper); }
.service-opening {
  min-height: calc(82svh - 82px); align-items: flex-end;
  padding: clamp(36px,8vh,82px) clamp(28px,9vw,138px);
}
.service-opening .scene-image { background-position: center 56%; }
.service-opening .story-copy { max-width: 1000px; }
.service-opening .eyebrow { color: #efc4a7; }
.service-opening .photo-title {
  font-family: var(--display); font-size: clamp(70px,9vw,126px); font-weight: 500;
  line-height: .8; letter-spacing: -.035em;
}
.service-opening .story-description { max-width: 720px; font-size: 16px; line-height: 1.7; }
.service-details { position: relative; padding: clamp(52px,7vw,94px) clamp(24px,7vw,106px) clamp(62px,8vw,105px); color: var(--ink); background: var(--paper); }
.service-details-heading { max-width: 930px; margin: 0 auto 35px; }
.service-details-heading .eyebrow { color: #9b6248; }
.service-details-heading .editorial-title {
  margin: 14px 0 12px; color: var(--ink); font-family: var(--display);
  font-size: clamp(42px,5.4vw,72px); font-weight: 500; line-height: .94;
}
.service-details-heading > p:last-child { color: #646667; font-size: 15px; line-height: 1.7; }
.service-detail-grid {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(13px,1.5vw,22px); max-width: 1450px; margin: 0 auto;
}
.service-detail-card {
  position: relative; display: flex; min-height: 420px; height: auto; aspect-ratio: auto;
  flex-direction: column; justify-content: flex-end; overflow: hidden;
  background: #344149; box-shadow: 0 14px 36px rgba(38,49,57,.10);
}
.service-detail-card img {
  position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform 750ms cubic-bezier(.2,.7,.2,1);
}
.service-detail-card:hover img { transform: scale(1.04); }
.service-detail-card::after { z-index: 0; background: linear-gradient(0deg,rgba(18,25,29,.94),rgba(18,25,29,.72) 35%,rgba(18,25,29,.08)); }
.service-detail-copy { width: 100%; padding: 26px 22px 24px; }
.service-detail-copy > span { color: #edbd9e; font-size: 9px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.service-detail-copy h4 { margin: 9px 0; color: #fff; font-family: var(--display); font-size: clamp(25px,2.5vw,36px); font-weight: 500; line-height: .98; }
.service-detail-copy p { max-width: 42ch; font-size: 13px; line-height: 1.55; }

.experience-details {
  padding: clamp(56px,8vw,106px) clamp(24px,7vw,106px) 90px; color: var(--ink);
  background: radial-gradient(ellipse at 96% 5%,rgba(183,126,97,.14),transparent 30%),#ebe4dc;
}
.experience-details-heading { max-width: 1000px; margin: 0 auto clamp(34px,5vw,60px); }
.experience-details-heading .eyebrow { color: #9b6248; }
.experience-details-heading .editorial-title {
  margin: 14px 0; color: var(--ink); font-family: var(--display);
  font-size: clamp(45px,5.5vw,76px); font-weight: 500; line-height: .92;
}
.experience-details-heading > p:last-child { max-width: 68ch; color: #626667; font-size: 15px; line-height: 1.8; }
.experience-season { max-width: 1450px; margin: 0 auto; padding: clamp(30px,5vw,62px) 0; border-top: 1px solid rgba(45,48,50,.2); }
.experience-season-heading { max-width: 940px; margin: 0 0 25px; }
.experience-season-heading > span { color: #a0674d; font-size: 9px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.experience-season-heading h4 { margin: 8px 0 0; color: var(--ink); font-family: var(--display); font-size: clamp(35px,4.4vw,58px); font-weight: 500; line-height: .98; }
.experience-season-heading > p { margin: 14px 0 0; color: #606465; font-size: 14px; line-height: 1.75; }
.experience-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.experience-photo {
  position: relative; height: auto; min-height: 250px; aspect-ratio: 4 / 3;
  margin: 0; overflow: hidden; background: #344149;
}
.experience-photo img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform 700ms cubic-bezier(.2,.7,.2,1);
}
.experience-photo:hover img { transform: scale(1.045); }
.experience-photo figcaption {
  position: absolute; right: 0; bottom: 0; left: 0; padding: 70px 18px 17px;
  color: #fff; background: linear-gradient(0deg,rgba(21,27,30,.92),rgba(21,27,30,.08));
}
.experience-photo h5 { margin: 0 0 7px; color: #fff; font-family: var(--display); font-size: clamp(22px,2.3vw,30px); font-weight: 500; line-height: .96; }
.experience-photo p { display: block; max-width: 45ch; margin: 0; color: rgba(255,255,255,.92); overflow: visible; font-size: 12px; line-height: 1.48; -webkit-line-clamp: unset; }

.scene-gallery, .scene-reviews { color: var(--ink); background: var(--paper); }
.gallery-layout, .reviews-layout {
  top: 82px; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: auto;
  scroll-snap-type: none; scrollbar-color: #b77e61 transparent;
}
.gallery-layout {
  padding: clamp(34px,5vw,66px) clamp(22px,7vw,105px) 58px;
  background: radial-gradient(ellipse at 96% 0%,rgba(183,126,97,.12),transparent 30%),var(--paper);
}
.gallery-heading .editorial-title { font-family: var(--display); font-size: clamp(48px,5.7vw,77px); font-weight: 500; line-height: .92; }
.gallery-heading > p:last-child { color: #626667; font-size: 14px; line-height: 1.7; }
.gallery-grid { gap: clamp(10px,1.25vw,18px); }
.gallery-card { background: #d8d0c7; }
.gallery-card figcaption { font-size: 9px; letter-spacing: .11em; }
.gallery-instagram { border-color: rgba(45,48,50,.3); color: var(--ink); }
.gallery-instagram:hover { color: #9b6248; border-color: #9b6248; }
.has-js .reveal-on-view {
  opacity: 0; transform: translateY(24px) scale(.99);
  transition: opacity 680ms ease,transform 780ms cubic-bezier(.2,.7,.2,1);
}
.has-js .reveal-on-view.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.gallery-card:nth-child(3n + 2).reveal-on-view { transition-delay: 70ms; }
.gallery-card:nth-child(3n + 3).reveal-on-view { transition-delay: 130ms; }
.gallery-card img { transition: transform 850ms cubic-bezier(.2,.7,.2,1); }
.reveal-on-view.is-visible img { animation: image-settle 1.2s cubic-bezier(.2,.7,.2,1) both; }
@keyframes image-settle { from { transform: scale(1.055); } to { transform: scale(1); } }

.scene-reviews { background: #f2ece5; }
.reviews-layout {
  display: grid; grid-template-columns: minmax(230px,.82fr) minmax(0,1.18fr);
  align-content: start; align-items: center; gap: clamp(28px,5vw,68px);
  padding: clamp(36px,5.5vw,76px) clamp(26px,9vw,140px) 54px;
  background: radial-gradient(ellipse at 96% 2%,rgba(183,126,97,.17),transparent 32%),#f2ece5;
}
.reviews-heading { max-width: 490px; }
.reviews-heading .eyebrow { color: #a0674d; }
.reviews-heading .editorial-title {
  margin: 13px 0 12px; color: var(--ink); font-family: var(--display);
  font-size: clamp(50px,6vw,78px); font-weight: 500; line-height: .88;
}
.reviews-heading > p:last-child { color: #676969; font-size: 14px; line-height: 1.75; }
.review-scores { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(22px,4vw,56px); margin: 0; }
.review-score { display: flex; min-width: 0; flex-direction: column; gap: 7px; padding: 19px 0 22px; border: 0; border-top: 1px solid rgba(45,48,50,.35); background: transparent; }
.review-score:hover { border-color: #a0674d; background: transparent; }
.review-brand { display: flex; min-height: 28px; align-items: center; gap: 8px; color: var(--ink); font-family: var(--body); font-size: 14px; font-weight: 600; }
.review-logo { display: block; width: 24px; height: 24px; flex: 0 0 auto; }
.tripadvisor-brand { font-size: 16px; }
.tripadvisor-logo { width: 32px; }
.review-rating { display: flex; align-items: baseline; gap: 5px; }
.review-rating strong { color: #303436; font-family: var(--display); font-size: clamp(48px,5.1vw,70px); font-weight: 500; line-height: .95; font-variant-numeric: tabular-nums; }
.rating-out-of { color: #717372; font-size: 12px; }
.review-stars { color: #b86f50; font-size: 14px; letter-spacing: .12em; }
.review-count { color: #65696a; font-size: 12px; }
.review-count strong { color: #303436; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.review-quotes { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(24px,5vw,70px); margin-top: 4px; }
.review-quotes blockquote { margin: 0; padding: 20px 0 0; border-top: 1px solid rgba(45,48,50,.22); background: transparent; }
.review-quotes blockquote:nth-child(2) { background: transparent; }
.review-quotes blockquote p { max-width: 620px; color: #464b4d; font-family: var(--display); font-size: clamp(24px,2.4vw,34px); font-style: normal; line-height: 1.2; }
.review-quotes blockquote footer { color: #777675; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.review-links { grid-column: 1 / -1; gap: 22px; margin-top: -22px; }
.review-links a { padding: 7px 0; border: 0; border-bottom: 1px solid rgba(45,48,50,.35); color: var(--ink); font-size: 9px; letter-spacing: .09em; }
.review-links a:hover { color: #9b6248; border-color: #9b6248; background: transparent; }
.reviews-note { grid-column: 1 / -1; margin: -20px 0 0; color: #85827f; font-size: 9px; }

.scene-contact { background: #f3eee7; }
.contact-layout {
  position: absolute; inset: 82px 0 0; display: grid; grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr);
  grid-template-rows: auto auto; align-content: start; gap: 24px; overflow-x: hidden; overflow-y: auto;
  overscroll-behavior-y: auto; padding: clamp(24px,4vw,54px) clamp(22px,7vw,106px) 34px;
  color: var(--ink); background: radial-gradient(ellipse at 100% 5%,rgba(183,126,97,.13),transparent 30%),#f3eee7;
  scrollbar-color: #b77e61 transparent;
}
.contact-heading {
  grid-column: 1; grid-row: 1; display: flex; min-height: 310px; flex-direction: column;
  align-items: flex-start; justify-content: flex-start; gap: 20px; margin: 0;
  padding: clamp(24px,3vw,43px); overflow: hidden; color: #fff;
  background: radial-gradient(ellipse at 100% 0%,rgba(216,164,137,.24),transparent 42%),var(--forest);
}
.contact-heading .eyebrow { color: #e5b79a; }
.contact-title-block .editorial-title { margin: 12px 0 0; color: #fffaf4; font-family: var(--display); font-size: clamp(48px,5.5vw,73px); font-weight: 500; line-height: .9; }
.contact-intro { max-width: 42ch; margin: 0; color: rgba(255,255,255,.83); font-size: 14px; font-weight: 400; line-height: 1.7; }
.contact-prompt { display: flex; width: 100%; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.23); }
.contact-prompt span { color: #e5b79a; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.contact-prompt strong { color: #fffaf4; font-family: var(--display); font-size: 23px; font-weight: 500; }
.contact-map-column { grid-column: 2; grid-row: 1; display: flex; min-width: 0; flex-direction: column; }
.contact-map-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin: 0 0 11px; }
.contact-map-heading > span:last-child { color: #6e706f; font-size: 11px; }
.contact-label { color: #9b6248; font-size: 8px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.map-panel {
  align-self: stretch; width: 100%; height: clamp(260px,34vh,410px); min-height: 0; margin: 0;
  overflow: hidden; border: 1px solid rgba(45,48,50,.12); border-radius: 10px;
  background: #ddd8d1; box-shadow: 0 14px 38px rgba(38,49,57,.11);
}
.map-panel iframe { filter: saturate(.65) contrast(.96); }
.map-link { right: 16px; bottom: 16px; color: #fffaf4; background: var(--forest); font-size: 8px; }
.map-link:hover { color: var(--forest); background: #f5f1eb; }
.contact-location-note { margin: 10px 0 0; color: #6e706f; font-size: 11px; line-height: 1.5; }
.contact-footer {
  grid-column: 1 / -1; display: grid; grid-template-columns: minmax(190px,.8fr) minmax(300px,1.25fr) auto;
  align-items: center; gap: 24px; margin: 0; padding: clamp(20px,3vw,34px);
  border: 1px solid rgba(45,48,50,.13); color: var(--ink); background: rgba(255,255,255,.56);
}
.contact-address { display: grid; gap: 10px; }
.contact-address address { color: #66696a; font-size: 12px; font-style: normal; line-height: 1.6; }
.contact-methods { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.contact-method { display: grid; gap: 7px; padding: 13px 15px; border-left: 2px solid #bd8063; color: var(--ink); background: #f0e8df; }
.contact-method > span { color: #9b6248; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.contact-method strong { font-size: 12px; font-weight: 500; overflow-wrap: anywhere; }
.contact-method:hover { color: #9b6248; }
.social-links { gap: 8px; margin: 0; padding: 0; border: 0; }
.social-links a { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid rgba(45,48,50,.18); border-radius: 999px; color: #4d5559; background: transparent; font-size: 9px; }
.contact-footer .social-links a { color: #4d5559; }
.social-links a:hover, .contact-footer .social-links a:hover { color: #9b6248; border-color: #bd8063; }
.social-links .social-icon { width: 17px; height: 17px; }
.contact-footer .social-links .social-icon { width: 17px; height: 17px; }
@media (max-width: 1080px) {
  .site-header { grid-template-columns: minmax(130px,.8fr) auto minmax(110px,.5fr); gap: 12px; padding: 0 22px; }
  .brand-name { font-size: 24px; }
  .primary-nav { gap: clamp(8px,1vw,14px); }
  .primary-nav a { font-size: 8px; letter-spacing: .035em; }
  .header-booking { padding: 0 10px; font-size: 7px; }
  .service-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-footer { grid-template-columns: 1fr 1.4fr; }
  .contact-footer .social-links { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .site-header { min-height: 72px; grid-template-columns: 1fr auto auto; gap: 8px; padding: 0 14px; }
  .brand { gap: 2px; }
  .brand-kicker { font-size: 6px; }
  .brand-name { font-size: 22px; }
  .brand-place { margin-top: 2px; font-size: 6px; letter-spacing: .12em; }
  .menu-toggle { display: flex; grid-column: 2; grid-row: 1; width: 38px; height: 38px; }
  .header-booking { grid-column: 3; grid-row: 1; min-height: 36px; padding: 0 8px; font-size: 7px; letter-spacing: .045em; }
  .primary-nav { position: absolute; top: 72px; right: 10px; left: 10px; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 7px 18px 12px; color: #fff; background: #263139; box-shadow: 0 16px 30px rgba(0,0,0,.18); }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 9px; }
  .primary-nav a::after { display: none; }
  .home-hero { min-height: 650px; padding: 108px 22px 88px; }
  .home-copy { width: 100%; margin-top: 10px; }
  .home-title { font-size: clamp(54px,14vw,86px); line-height: .8; }
  .home-title span + span { margin-top: 13px; }
  .home-lead { max-width: 38ch; margin-top: 22px; font-size: 14px; }
  .home-actions { flex-wrap: wrap; gap: 12px 19px; margin-top: 20px; }
  .home-location { right: 20px; bottom: 23px; font-size: 7px; }
  .home-scroll-cue { right: auto; bottom: 23px; left: 20px; max-width: 45%; font-size: 7px; }
  .home-details { min-height: 0; grid-template-columns: minmax(0,1fr); gap: 24px; padding: 58px 22px 48px; }
  .home-details-copy .editorial-title { font-size: clamp(51px,13vw,70px); }
  .home-details-copy > p:last-child { font-size: 14px; }
  .home-facts > div { grid-template-columns: 100px 1fr; padding: 13px 0; }
  .home-facts strong { font-size: 26px; }
  .home-paths { grid-column: 1; grid-template-columns: minmax(0,1fr); margin-top: 6px; }
  .home-paths a { min-height: 56px; }
  .home-paths a + a { padding-left: 0; border-left: 0; }
  .rooms-scroll,.restaurant-scroll,.story-scroll,.gallery-layout,.reviews-layout { top: 72px; }
  .room-panel { min-height: calc(100svh - 72px); padding: 30px 22px 42px; }
  .room-panel-title { font-size: clamp(56px,13vw,82px); }
  .room-panel-description { max-width: 100%; margin-top: 17px; font-size: 14px; line-height: 1.62; }
  .room-interlude { min-height: 190px; padding: 28px 20px; }
  .room-interlude-title { font-size: clamp(36px,10vw,50px); }
  .room-endnote { min-height: 200px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 12px; padding: 28px 22px; }
  .restaurant-hero { min-height: calc(100svh - 72px); }
  .restaurant-top { left: 22px; width: calc(100% - 44px); }
  .restaurant-top .photo-title { font-size: clamp(52px,13vw,78px); }
  .restaurant-intro { font-size: 14px; }
  .restaurant-content { padding: 45px 22px 48px; }
  .restaurant-heading .restaurant-main-title { font-size: clamp(40px,10.6vw,60px); white-space: normal; }
  .restaurant-columns { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .restaurant-detail h4 { font-size: 29px; }
  .restaurant-detail p { font-size: 14px; }
  .restaurant-lounge-scene { min-height: 70svh; padding: 30px 22px 48px; }
  .restaurant-lounge-copy .photo-title { font-size: clamp(42px,11vw,64px); white-space: normal; }
  .restaurant-lounge-copy > p:last-child { font-size: 14px; }
  .service-opening { min-height: 70svh; padding: 30px 22px 48px; }
  .service-opening .photo-title { font-size: clamp(52px,13vw,78px); }
  .service-opening .story-description { font-size: 14px; }
  .service-details { padding: 48px 18px 56px; }
  .service-details-heading .editorial-title,.experience-details-heading .editorial-title { font-size: clamp(41px,10vw,58px); }
  .service-detail-grid { grid-template-columns: minmax(0,1fr); gap: 13px; }
  .service-detail-card { min-height: clamp(360px,74svh,480px); }
  .service-detail-copy { padding: 22px 19px; }
  .service-detail-copy h4 { font-size: 31px; }
  .service-detail-copy p { font-size: 13px; line-height: 1.55; }
  .experience-details { padding: 49px 18px 58px; }
  .experience-season { padding: 27px 0; }
  .experience-season-heading h4 { font-size: clamp(34px,9vw,46px); }
  .experience-season-heading > p { font-size: 13px; }
  .experience-photo-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .experience-photo { min-height: 310px; aspect-ratio: 5 / 4; }
  .experience-photo figcaption { padding: 70px 16px 15px; }
  .experience-photo h5 { font-size: 27px; }
  .experience-photo p { font-size: 12px; line-height: 1.45; }
  .gallery-layout { padding: 34px 17px 42px; }
  .gallery-heading .editorial-title { font-size: clamp(43px,11vw,60px); }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .gallery-card,.gallery-card-wide { grid-column: auto; aspect-ratio: 1 / 1; }
  .gallery-card figcaption { padding: 28px 10px 10px; font-size: 7px; }
  .reviews-layout { display: block; padding: 34px 22px 42px; }
  .reviews-heading .editorial-title { font-size: clamp(48px,12vw,67px); }
  .review-scores { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 24px 0 28px; }
  .review-rating strong { font-size: 48px; }
  .review-brand { font-size: 12px; }
  .review-logo { width: 20px; height: 20px; }
  .tripadvisor-logo { width: 26px; }
  .review-stars { font-size: 11px; }
  .review-count { font-size: 10px; }
  .review-quotes { grid-template-columns: minmax(0,1fr); gap: 22px; margin: 30px 0; }
  .review-quotes blockquote p { font-size: 25px; }
  .review-links { flex-direction: column; gap: 8px; margin: 0 0 18px; }
  .reviews-note { margin: 0; }
  .contact-layout { inset: 72px 0 0; display: block; padding: 20px 16px 28px; }
  .contact-heading { min-height: 0; gap: 14px; margin-bottom: 24px; padding: 24px 21px; }
  .contact-title-block .editorial-title { font-size: 53px; }
  .contact-intro { font-size: 13px; }
  .contact-prompt { margin-top: 0; }
  .contact-map-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .map-panel { height: 300px; min-height: 250px; border-radius: 9px; }
  .contact-footer { grid-template-columns: minmax(0,1fr); gap: 18px; margin-top: 21px; padding: 20px; }
  .contact-methods { grid-template-columns: minmax(0,1fr); gap: 9px; }
  .contact-footer .social-links { grid-column: 1; }
  .social-links a { min-height: 39px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .has-js .reveal-on-view { opacity: 1; transform: none; }
}

.home-scroll-cue { right: auto; left: clamp(28px,8vw,130px); }
@media (max-width:760px) { .home-location { display:none; } }


/* Restyling autunnale 2026: forme morbide, tono caldo e movimento */
#home,#camere,#servizi,#galleria,#recensioni,#contatti,.site-header {
  --forest:#432831;
  --forest-soft:#66434a;
  --paper:#f7f1e9;
  --paper-deep:#eddfd3;
  --ink:#34272b;
  --muted:#756a69;
  --gold:#bd7657;
  --line:rgba(255,247,239,.38);
  --body:"Manrope","DM Sans",Arial,sans-serif;
  font-family:var(--body);
}
#home,#camere,#servizi,#galleria,#recensioni,#contatti { color:var(--ink); background:var(--paper); }
.site-header { min-height:82px; padding-inline:clamp(20px,5vw,76px); border:0; color:#fff8f1; background:rgba(57,31,38,.70); backdrop-filter:blur(16px); }
.site-header.is-light { color:var(--ink); background:rgba(247,241,233,.92); box-shadow:0 8px 34px rgba(57,31,38,.06); }
.brand { position:relative; padding-left:38px; }
.brand::before { position:absolute; top:50%; left:0; width:28px; height:27px; content:""; border:1px solid currentColor; border-radius:58% 42% 52% 48%; transform:translateY(-56%) rotate(-14deg); opacity:.86; }
.brand::after { position:absolute; top:50%; left:7px; width:14px; height:9px; content:""; border-top:1px solid currentColor; border-radius:60% 55% 0 0; transform:translateY(-3px) rotate(-8deg); }
.brand-name { font-family:"Cormorant Garamond",Georgia,serif; font-size:36px; font-weight:600; letter-spacing:-.035em; line-height:.87; }
.brand-place { margin-top:7px; font-size:7px; letter-spacing:.16em; }
.primary-nav { gap:clamp(10px,1.65vw,26px); }
.primary-nav a { font-size:9px; letter-spacing:.075em; }
.header-booking { min-height:42px; padding-inline:20px; border:1px solid rgba(255,248,241,.78); border-radius:30px 30px 30px 8px; font-size:8px; letter-spacing:.09em; }
.site-header.is-light .header-booking { border-color:rgba(67,40,49,.38); }
.site-header.is-light .header-booking:hover { color:#fff8f1; background:var(--forest); border-color:var(--forest); }

/* Home: ingresso fotografico e racconto breve */
#home .home-scroll { position:absolute; inset:0; overflow-x:hidden; overflow-y:auto; scroll-behavior:smooth; scrollbar-color:#bd7657 transparent; }
#home .home-hero { min-height:max(690px,100svh); min-height:max(690px,100svh); isolation:isolate; background:#423039; }
#home .scene-image { background-position:center 55%; animation:home-drift 22s ease-in-out infinite alternate; }
#home .home-shade { background:linear-gradient(90deg,rgba(49,31,35,.72),rgba(49,31,35,.28) 55%,rgba(49,31,35,.05)),linear-gradient(0deg,rgba(49,31,35,.38),transparent 55%); }
#home .home-hero::before { position:absolute; z-index:1; right:-9vw; bottom:-25vw; width:min(57vw,780px); aspect-ratio:1; content:""; border:1px solid rgba(255,246,234,.35); border-radius:49% 51% 38% 62% / 50% 40% 60% 50%; box-shadow:0 0 0 24px rgba(255,246,234,.045),0 0 0 48px rgba(255,246,234,.035); animation:contour-float 13s ease-in-out infinite alternate; pointer-events:none; }
#home .home-copy { top:50%; left:clamp(28px,10vw,150px); width:min(760px,78vw); transform:translateY(-43%); animation:copy-rise .9s .15s both; }
#home .eyebrow { font-size:10px; letter-spacing:.18em; }
#home .eyebrow::after { width:56px; height:2px; margin-top:13px; border-radius:4px; background:#e3aa88; }
#home .home-title { margin:26px 0 18px -3px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(78px,10vw,144px); font-weight:500; line-height:.76; letter-spacing:-.055em; text-shadow:0 10px 36px rgba(36,23,26,.18); }
#home .home-title span + span { margin:12px 0 0 .44em; color:#f2c4a3; font-style:italic; }
#home .home-lead { max-width:500px; margin-top:26px; font-size:clamp(15px,1.2vw,18px); font-weight:400; line-height:1.65; }
#home .home-actions { gap:22px; margin-top:30px; }
#home .button-light { color:#fff9f1; background:#a95f4e; border:1px solid #a95f4e; border-radius:30px 30px 30px 8px; box-shadow:0 12px 34px rgba(36,23,26,.17); }
#home .button-light:hover { color:#fff; background:transparent; border-color:#fff7ef; }
#home .text-link { border-bottom:1px solid rgba(255,247,239,.55); font-size:9px; letter-spacing:.11em; }
#home .home-location,#home .home-scroll-cue { z-index:2; font-size:9px; letter-spacing:.1em; }
#home .home-scroll-cue { bottom:30px; left:clamp(28px,8vw,124px); right:auto; }
#home .home-location { right:clamp(24px,6vw,88px); bottom:30px; }
#home .location-dot { width:8px; height:8px; background:#e4a27e; box-shadow:0 0 0 6px rgba(228,162,126,.18); }
#home .home-details { position:relative; min-height:450px; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); gap:clamp(30px,7vw,100px); padding:clamp(72px,10vw,135px) clamp(28px,10vw,150px) 88px; overflow:hidden; background:radial-gradient(ellipse at 96% 5%,rgba(193,118,87,.12),transparent 35%),var(--paper); }
#home .home-details::before { position:absolute; top:-48px; right:8vw; width:120px; height:120px; content:""; border:1px solid rgba(189,118,87,.25); border-radius:39% 61% 53% 47%; transform:rotate(24deg); }
#home .home-details-copy { position:relative; z-index:1; max-width:630px; }
#home .home-details-copy .editorial-title { margin:17px 0 24px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(48px,6vw,78px); line-height:.9; letter-spacing:-.035em; }
#home .home-details-copy .editorial-title em { color:#a75c4c; }
#home .home-details-copy>p:last-child { color:#65595a; font-size:15px; line-height:1.8; }
#home .home-facts { align-self:center; }
#home .home-facts>div { grid-template-columns:112px 1fr; gap:12px; padding:18px 0; border-color:rgba(67,40,49,.16); }
#home .home-facts strong { color:#9a5349; font-family:"Cormorant Garamond",Georgia,serif; font-size:34px; }
#home .home-facts span { color:#65595a; font-size:12px; line-height:1.55; }
#home .home-paths { grid-column:1/-1; gap:10px; margin-top:15px; }
#home .home-paths a { min-height:72px; padding:12px 22px; border:1px solid rgba(67,40,49,.14); border-radius:25px 25px 25px 7px; background:rgba(255,255,255,.45); transition:transform .25s,background .25s,border-color .25s; }
#home .home-paths a:hover { transform:translateY(-4px); border-color:rgba(169,95,78,.42); background:#fffaf5; }
#home .home-paths a+a { padding-left:22px; border-left:1px solid rgba(67,40,49,.14); }
#home .home-paths a span,#home .home-paths a b { color:#a75c4c; }

/* Camere: cornici morbide e testo leggibile */
#camere { --paper:#f7f1e9; --ink:#34272b; --muted:#756a69; --forest:#432831; --gold:#bd7657; }
#camere .rooms-scroll { inset:82px 0 0; background:var(--paper); }
#camere .rooms-layout { background:radial-gradient(ellipse at 92% 9%,rgba(193,118,87,.11),transparent 36%),var(--paper); }
#camere .editorial-title,#camere .room-name { font-family:"Cormorant Garamond",Georgia,serif; letter-spacing:-.035em; }
#camere .room-panel { border-radius:0 0 90px 0; }
#camere .room-panel:nth-of-type(even) { border-radius:0 0 0 90px; }
#camere .room-panel::after { border-radius:inherit; }
#camere .room-panel-description { max-width:600px; font-size:15px; line-height:1.75; }
#camere .room-gallery-link { border-radius:20px 20px 20px 5px; transition:transform .2s; }
#camere .room-gallery-link:hover { transform:translateY(-3px); }

/* Servizi ed esperienze: percorsi attivi e immagini meno geometriche */
#servizi { --paper:#f7f1e9; --paper-deep:#eddfd3; --ink:#34272b; --muted:#756a69; --forest:#432831; --forest-soft:#66434a; --gold:#bd7657; }
#servizi .story-scroll { inset:82px 0 0; background:var(--paper); scroll-behavior:smooth; }
#servizi .service-opening { min-height:calc(100svh - 82px); }
#servizi .service-opening .scene-image { transform:scale(1.01); }
#servizi .service-opening .scene-shade { background:linear-gradient(95deg,rgba(50,31,37,.64),rgba(50,31,37,.17) 68%,rgba(50,31,37,.07)),linear-gradient(0deg,rgba(50,31,37,.36),transparent 50%); }
#servizi .service-opening .photo-title { max-width:780px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(76px,10vw,138px); line-height:.78; letter-spacing:-.045em; }
#servizi .service-opening .photo-title em { color:#efc2a2; }
#servizi .service-opening .story-description { max-width:510px; font-size:16px; line-height:1.7; }
#servizi .service-details,#servizi .experience-details { background:radial-gradient(ellipse at 8% 0%,rgba(190,119,88,.09),transparent 30%),var(--paper); }
#servizi .service-details-heading .editorial-title,#servizi .experience-details-heading .editorial-title { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(49px,6.6vw,88px); line-height:.9; letter-spacing:-.04em; }
#servizi .service-details-heading>p:last-child,#servizi .experience-details-heading>p:last-child { max-width:720px; color:#65595a; font-size:15px; line-height:1.75; }
#servizi .service-detail-grid { gap:clamp(16px,2.2vw,30px); }
#servizi .service-detail-card { min-height:clamp(330px,38vw,470px); border-radius:34px 10px 34px 10px; box-shadow:0 14px 34px rgba(48,32,35,.10); transition:transform .35s cubic-bezier(.2,.75,.3,1),box-shadow .35s; }
#servizi .service-detail-card:nth-child(3n+2) { border-radius:10px 38px 10px 38px; }
#servizi .service-detail-card:hover { transform:translateY(-8px) rotate(-.3deg); box-shadow:0 24px 45px rgba(48,32,35,.16); }
#servizi .service-detail-copy { background:linear-gradient(0deg,rgba(48,29,35,.86),rgba(48,29,35,.08)); }
#servizi .service-detail-copy>span { display:inline-block; padding:7px 11px; border:1px solid rgba(255,250,244,.56); border-radius:20px 20px 20px 6px; color:#fff6ec; background:rgba(56,31,38,.24); }
#servizi .service-detail-copy h4,#servizi .experience-photo h5 { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(29px,3vw,40px); letter-spacing:-.02em; }
#servizi .experience-details-heading { margin-bottom:35px; }
#servizi .experience-chooser { position:relative; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px 22px; margin:28px 0 5px; padding:14px 17px 14px 22px; border:1px solid rgba(67,40,49,.13); border-radius:32px 32px 32px 8px; background:rgba(255,255,255,.64); }
#servizi .experience-chooser>span { color:#715e5f; font-size:12px; font-weight:600; }
#servizi .experience-chooser>div { display:flex; flex-wrap:wrap; gap:8px; }
#servizi .experience-chooser button { display:inline-flex; min-height:40px; align-items:center; gap:7px; padding:0 15px; border:1px solid rgba(67,40,49,.13); border-radius:24px 24px 24px 7px; color:#49373c; background:#fbf7f1; cursor:pointer; transition:transform .2s,color .2s,background .2s; }
#servizi .experience-chooser button:hover { transform:translateY(-2px); }
#servizi .experience-chooser button[aria-pressed="true"] { color:#fff7ef; background:#8e4f4b; border-color:#8e4f4b; box-shadow:0 7px 18px rgba(142,79,75,.2); }
#servizi .experience-chooser button span { font-size:11px; }
#servizi .experience-season { scroll-margin-top:100px; padding-block:clamp(38px,6vw,70px); border-top:1px solid rgba(67,40,49,.12); }
#servizi .experience-season-heading { margin-bottom:22px; }
#servizi .experience-season-heading>span { display:inline-flex; align-items:center; min-height:28px; padding:0 12px; border-radius:20px 20px 20px 6px; color:#8e4f4b; background:#f0ddd2; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
#servizi .experience-season-heading h4 { margin:13px 0 0; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(42px,5.4vw,68px); font-weight:500; line-height:.92; letter-spacing:-.035em; }
#servizi .experience-culture .experience-season-heading>p { max-width:820px; margin-top:15px; color:#65595a; font-size:14px; line-height:1.75; }
#servizi .experience-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
#servizi .experience-photo { min-height:clamp(250px,28vw,370px); border:0; border-radius:32px 9px 32px 9px; box-shadow:0 12px 30px rgba(48,32,35,.10); transition:transform .35s,box-shadow .35s; }
#servizi .experience-photo:nth-child(3n+2) { border-radius:9px 34px 9px 34px; }
#servizi .experience-photo:hover { transform:translateY(-7px) scale(1.012); box-shadow:0 22px 40px rgba(48,32,35,.18); }
#servizi .experience-photo img { transition:transform .9s cubic-bezier(.18,.65,.25,1); }
#servizi .experience-photo:hover img { transform:scale(1.08); }
#servizi .experience-photo figcaption { padding:70px 20px 18px; background:linear-gradient(0deg,rgba(47,29,35,.82),rgba(47,29,35,.15) 82%,transparent); }
#servizi .experience-photo h5 { margin-bottom:6px; }
#servizi .experience-photo p { max-width:45ch; font-size:12px; line-height:1.6; }

/* Galleria: sequenza organica con reveal fotografico */
#galleria { --paper:#f7f1e9; --ink:#34272b; --muted:#756a69; --forest:#432831; --gold:#bd7657; }
#galleria .gallery-layout { inset:82px 0 0; background:radial-gradient(ellipse at 100% 2%,rgba(190,119,88,.12),transparent 33%),var(--paper); }
#galleria .gallery-heading .editorial-title { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(52px,7vw,92px); line-height:.9; letter-spacing:-.04em; }
#galleria .gallery-heading>p:last-child { color:#65595a; font-size:15px; }
#galleria .gallery-grid { gap:18px; align-items:start; }
#galleria .gallery-card,#galleria .gallery-card-wide { overflow:hidden; border-radius:34px 9px 34px 9px; box-shadow:0 12px 30px rgba(48,32,35,.1); }
#galleria .gallery-card:nth-child(4n+2) { border-radius:9px 36px 9px 36px; }
#galleria .gallery-card:nth-child(4n+3) { transform:translateY(20px); }
#galleria .gallery-card img { transition:transform .8s cubic-bezier(.2,.75,.3,1),filter .6s; }
#galleria .gallery-card:hover img { transform:scale(1.07); filter:saturate(1.12); }
#galleria .gallery-card figcaption { font-family:var(--body); font-size:10px; letter-spacing:.08em; }
#galleria .gallery-instagram { border-radius:24px 24px 24px 7px; background:#8e4f4b; }

/* Recensioni: pagina a scorrimento e contatori animati */
#recensioni { --paper:#f3e8df; --paper-deep:#ead9cd; --ink:#34272b; --muted:#756a69; --forest:#432831; --forest-soft:#66434a; --gold:#bd7657; }
#recensioni.scene { overflow-x:hidden; overflow-y:auto; overscroll-behavior-y:contain; scroll-behavior:smooth; scrollbar-color:#a85f4e transparent; }
#recensioni .reviews-layout { position:relative; inset:auto; min-height:calc(100% - 82px); display:block; overflow:visible; padding:clamp(95px,12vh,145px) clamp(22px,10vw,150px) 90px; background:radial-gradient(ellipse at 94% 6%,rgba(189,118,87,.19),transparent 34%),radial-gradient(ellipse at 3% 90%,rgba(122,76,85,.09),transparent 36%),var(--paper); }
#recensioni .reviews-heading { max-width:780px; margin:0 auto; text-align:center; }
#recensioni .reviews-heading .eyebrow::after { margin-inline:auto; }
#recensioni .reviews-heading .editorial-title { margin:18px 0 15px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(58px,8vw,100px); line-height:.85; letter-spacing:-.045em; }
#recensioni .reviews-heading .editorial-title em { color:#9c594f; }
#recensioni .reviews-heading>p:last-child { color:#65595a; font-size:15px; line-height:1.7; }
#recensioni .review-scores { max-width:940px; gap:clamp(14px,3vw,35px); margin:40px auto 35px; }
#recensioni .review-score { padding:clamp(20px,3vw,34px); border:1px solid rgba(67,40,49,.1); border-radius:34px 10px 34px 10px; color:var(--ink); background:rgba(255,252,247,.83); box-shadow:0 15px 40px rgba(60,37,42,.08); transition:transform .28s,box-shadow .28s; }
#recensioni .review-score:nth-child(2) { border-radius:10px 36px 10px 36px; }
#recensioni .review-score:hover { transform:translateY(-6px); box-shadow:0 22px 45px rgba(60,37,42,.13); }
#recensioni .review-rating strong { color:#8f4e49; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(55px,7vw,82px); letter-spacing:-.04em; }
#recensioni .review-stars { color:#b77a53; letter-spacing:.1em; }
#recensioni .review-count { color:#716666; }
#recensioni .review-quotes { max-width:1000px; gap:20px; margin:42px auto; }
#recensioni .review-quotes blockquote { padding:clamp(24px,4vw,42px); border:1px solid rgba(67,40,49,.1); border-radius:10px 38px 10px 38px; background:rgba(255,252,247,.52); }
#recensioni .review-quotes blockquote:nth-child(2) { border-radius:38px 10px 38px 10px; background:rgba(226,200,185,.38); }
#recensioni .review-quotes blockquote p { font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(24px,3vw,34px); }
#recensioni .review-links { justify-content:center; flex-wrap:wrap; }
#recensioni .review-links a { min-height:47px; padding-inline:19px; border:1px solid rgba(67,40,49,.22); border-radius:25px 25px 25px 7px; color:#54393e; background:rgba(255,252,247,.6); transition:transform .2s,background .2s; }
#recensioni .review-links a:hover { transform:translateY(-2px); color:#fff8f1; background:#8e4f4b; }
#recensioni .reviews-note { max-width:720px; margin:26px auto 0; text-align:center; }

/* Contatti: una colonna, mappa ampia e informazioni in sequenza */
#contatti { --paper:#f8f1e9; --paper-deep:#eddfd3; --ink:#34272b; --muted:#756a69; --forest:#432831; --gold:#bd7657; }
#contatti .contact-layout { position:absolute; inset:82px 0 0; display:block; overflow-x:hidden; overflow-y:auto; padding:clamp(46px,7vw,90px) clamp(20px,10vw,150px) 70px; background:radial-gradient(ellipse at 4% 18%,rgba(190,119,88,.11),transparent 35%),var(--paper); }
#contatti .contact-heading { display:block; min-height:0; max-width:860px; margin:0 auto 36px; padding:0; text-align:center; background:none; }
#contatti .contact-heading .eyebrow::after { margin-inline:auto; }
#contatti .contact-title-block { display:contents; }
#contatti .contact-title-block .eyebrow { display:none; }
#contatti .contact-heading .editorial-title { margin:17px 0 13px; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(61px,8vw,94px); line-height:.88; letter-spacing:-.04em; }
#contatti .contact-intro { max-width:640px; margin:0 auto; color:#65595a; font-size:15px; line-height:1.75; }
#contatti .contact-prompt { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:9px; margin:22px auto 0; color:#8f4e49; }
#contatti .contact-prompt span { font-size:12px; font-weight:700; }
#contatti .contact-prompt strong { font-size:12px; font-weight:600; }
#contatti .contact-map-column { max-width:1000px; margin:0 auto; }
#contatti .contact-map-heading { justify-content:center; gap:10px; margin:0 0 12px; color:#756a69; }
#contatti .contact-map-heading .contact-label { color:#8f4e49; }
#contatti .map-panel { height:clamp(250px,38vw,410px); min-height:250px; border:6px solid rgba(255,255,255,.74); border-radius:48px 12px 48px 12px; box-shadow:0 20px 45px rgba(60,37,42,.12); }
#contatti .map-link { border-radius:22px 22px 22px 7px; background:#8e4f4b; }
#contatti .contact-location-note { margin:14px 4px 0; text-align:center; color:#65595a; font-size:12px; }
#contatti .contact-footer { max-width:1000px; grid-template-columns:1fr; gap:0; margin:32px auto 0; padding:28px clamp(22px,4vw,48px); border:1px solid rgba(67,40,49,.12); border-radius:36px 12px 36px 12px; background:#fffaf4; box-shadow:0 15px 38px rgba(60,37,42,.07); }
#contatti .contact-address { padding:0 0 20px; }
#contatti .contact-address .contact-label { color:#8f4e49; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
#contatti .contact-address address { margin-top:8px; color:#65595a; font-size:13px; line-height:1.6; }
#contatti .contact-methods { display:flex; flex-direction:column; gap:0; border-top:1px solid rgba(67,40,49,.12); }
#contatti .contact-method { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:62px; padding:12px 0; border-bottom:1px solid rgba(67,40,49,.12); transition:padding .2s,color .2s; }
#contatti .contact-method:hover { padding-left:8px; color:#8f4e49; }
#contatti .contact-method>span { color:#756a69; font-size:11px; }
#contatti .contact-method strong { overflow-wrap:anywhere; font-size:14px; font-weight:650; }
#contatti .social-links { display:flex; flex-wrap:wrap; gap:11px; margin-top:22px; }
#contatti .social-links a { min-height:42px; padding:0 15px; border-radius:23px 23px 23px 7px; color:#fff8f1; background:#8e4f4b; transition:transform .2s,background .2s; }
#contatti .social-links a:hover { transform:translateY(-3px); background:#65424a; }
#contatti .social-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }

/* Entrate animate e stati di movimento ridotti */
@keyframes copy-rise { from { opacity:0; transform:translateY(calc(-43% + 24px)); } to { opacity:1; transform:translateY(-43%); } }
@keyframes home-drift { from { transform:scale(1.015) translate3d(0,0,0); } to { transform:scale(1.075) translate3d(-.6%,.4%,0); } }
@keyframes contour-float { from { transform:rotate(-10deg) translateY(0); } to { transform:rotate(7deg) translateY(-16px); } }
#recensioni .review-score,#recensioni .review-quotes blockquote { transition:transform .55s cubic-bezier(.2,.7,.25,1),opacity .55s,box-shadow .28s; }
.has-js #recensioni .reveal-on-view { opacity:0; transform:translateY(22px) scale(.985); }
.has-js #recensioni .reveal-on-view.is-visible { opacity:1; transform:none; }
@media (max-width:980px) {
  .site-header { grid-template-columns:minmax(130px,1fr) auto auto; gap:14px; }
  .primary-nav { gap:12px; }
  .primary-nav a { font-size:8px; }
  #servizi .experience-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #home .home-details { grid-template-columns:1fr; }
  #home .home-paths { grid-template-columns:1fr; }
  #home .home-paths a+a { padding-left:22px; border-left:1px solid rgba(67,40,49,.14); }
}
@media (max-width:760px) {
  .site-header { min-height:72px; grid-template-columns:1fr auto auto; gap:8px; padding-inline:14px; }
  .brand { padding-left:30px; }
  .brand::before { width:23px; height:23px; }
  .brand::after { left:5px; }
  .brand-name { font-size:28px; }
  .brand-place { font-size:6px; }
  .menu-toggle { width:38px; height:38px; border:1px solid currentColor; border-radius:50%; }
  .header-booking { min-height:36px; padding-inline:12px; font-size:7px; }
  .primary-nav { top:72px; right:10px; left:10px; padding:10px 18px 15px; border-radius:0 0 22px 22px; color:#fff8f1; background:#432831; box-shadow:0 16px 30px rgba(0,0,0,.18); }
  .primary-nav a { padding:13px 0; font-size:9px; }
  #home .home-hero { min-height:max(650px,100svh); }
  #home .home-copy { top:49%; left:23px; width:calc(100% - 46px); }
  #home .home-title { font-size:clamp(68px,15vw,100px); }
  #home .home-title span + span { margin-left:.22em; }
  #home .home-lead { max-width:34ch; font-size:15px; }
  #home .home-location { display:none; }
  #home .home-scroll-cue { left:22px; bottom:22px; }
  #home .home-details { gap:22px; padding:58px 23px 48px; }
  #home .home-details-copy .editorial-title { font-size:clamp(47px,12vw,68px); }
  #home .home-paths { grid-template-columns:1fr; }
  #home .home-paths a { min-height:60px; }
  #camere .rooms-scroll,#servizi .story-scroll,#galleria .gallery-layout { top:72px; }
  #servizi .service-opening { min-height:calc(78svh - 72px); }
  #servizi .service-opening .photo-title { font-size:clamp(62px,14vw,90px); }
  #servizi .service-detail-grid { grid-template-columns:1fr; }
  #servizi .service-detail-card { min-height:390px; }
  #servizi .experience-chooser { align-items:flex-start; flex-direction:column; padding:16px; }
  #servizi .experience-chooser>div { gap:6px; }
  #servizi .experience-chooser button { min-height:37px; padding-inline:11px; font-size:12px; }
  #servizi .experience-photo-grid { grid-template-columns:1fr; gap:13px; }
  #servizi .experience-photo { min-height:300px; }
  #galleria .gallery-layout { padding:30px 17px 42px; }
  #galleria .gallery-grid { gap:10px; }
  #galleria .gallery-card:nth-child(4n+3) { transform:none; }
  #galleria .gallery-card { border-radius:22px 7px 22px 7px; }
  #recensioni .reviews-layout { padding:96px 20px 54px; }
  #recensioni .review-scores { grid-template-columns:1fr; gap:12px; margin:28px auto; }
  #recensioni .review-score,#recensioni .review-score:nth-child(2) { border-radius:28px 8px 28px 8px; }
  #recensioni .review-quotes { grid-template-columns:1fr; gap:13px; margin:24px auto; }
  #recensioni .review-quotes blockquote { border-radius:8px 28px 8px 28px; }
  #contatti .contact-layout { inset:72px 0 0; padding:40px 18px 48px; }
  #contatti .contact-heading .editorial-title { font-size:58px; }
  #contatti .map-panel { height:280px; border-width:4px; border-radius:30px 9px 30px 9px; }
  #contatti .contact-method { align-items:flex-start; flex-direction:column; gap:5px; }
  #contatti .contact-method strong { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) {
  #home .scene-image,#home .home-hero::before { animation:none !important; }
  #home .home-copy { animation:none; }
}


/* Rifiniture di contrasto e ritmo visivo */
#home .home-title span:first-child { color:#fff8f0; }
#site-header.is-light .brand-name,#site-header.is-light .brand-place,#site-header.is-light .brand-kicker { color:#34272b; }
#site-header.is-light .brand::before,#site-header.is-light .brand::after { color:#34272b; }
#servizi .service-opening { width:100%; margin:0; border-radius:0 0 70px 0; }
#contatti .contact-heading>.eyebrow { color:#8f4e49; }
#contatti .contact-prompt span,#contatti .contact-prompt strong { color:#8f4e49; }

/* Revisione visiva: alpina, continua e guidata dallo scorrimento */
:root {
  --forest:#344b43;
  --forest-soft:#52685d;
  --paper:#f4f5ef;
  --paper-deep:#e7ebe3;
  --ink:#242d29;
  --muted:#68736c;
  --gold:#a8b69c;
  --line:rgba(255,255,255,.36);
}
html { scroll-behavior:smooth; }
body,.site-shell { background:var(--paper); }
.site-header,.site-header.is-light {
  min-height:82px;
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
  border:0;
}
.site-header { color:#fff; }
.site-header.is-light { color:#263b32; }
.site-header:not(.is-light) .primary-nav a,
.site-header:not(.is-light) .brand,
.site-header:not(.is-light) .header-booking { text-shadow:0 1px 12px rgba(14,25,20,.34); }
.brand { padding-left:0; }
.brand::before,.brand::after { display:none !important; }
.brand-kicker { font-size:7px; font-weight:700; letter-spacing:.24em; }
.brand-name { font-size:34px; letter-spacing:-.04em; }
.brand-place { margin:6px 0 0; font-size:7px; letter-spacing:.17em; }
.primary-nav { gap:clamp(10px,1.6vw,25px); }
.primary-nav a { font-size:9px; letter-spacing:.06em; }
.primary-nav a::after { height:2px; background:#c6d2c1; }
.site-header.is-light .primary-nav a::after { background:#536d5e; }
.header-booking,.site-header.is-light .header-booking {
  border:1px solid currentColor;
  border-radius:999px;
  background:transparent;
  box-shadow:none;
}
.header-booking:hover,.site-header.is-light .header-booking:hover {
  color:#f6f7f1;
  background:#344b43;
  border-color:#344b43;
}
.menu-toggle { border-radius:50%; }
.scroll-progress {
  position:absolute;
  z-index:30;
  top:0;
  left:0;
  width:100%;
  height:3px;
  background:#91a38e;
  transform:scaleX(0);
  transform-origin:left center;
  pointer-events:none;
  will-change:transform;
}

/* Home: un’unica immagine a tutta altezza, senza fasce o schede separate */
#home { --paper:#f4f5ef; --ink:#24302a; --forest:#344b43; --gold:#b5c5ae; }
#home .home-scroll { inset:0; background:#263b32; scrollbar-color:#b8c7b2 transparent; }
#home .home-hero { min-height:max(690px,100svh); height:100svh; isolation:isolate; overflow:hidden; background:#263b32; }
#home .home-hero .scene-image { background-position:center 57%; animation:none !important; transform:translate3d(0,var(--scroll-y,0px),0) scale(1.02); }
#home .home-shade { background:linear-gradient(90deg,rgba(20,34,28,.72),rgba(20,34,28,.31) 55%,rgba(20,34,28,.07)),linear-gradient(0deg,rgba(20,34,28,.65),transparent 58%); }
#home .home-hero::before { display:none; }
#home .home-copy { top:49%; left:clamp(28px,9vw,138px); width:min(750px,80vw); transform:translateY(-43%); }
#home .home-copy .eyebrow::after { background:#c4d0bf; }
#home .home-title { font-size:clamp(78px,10vw,144px); }
#home .home-title span + span { color:#e1e8dc; }
#home .home-lead { max-width:480px; }
#home .home-actions { margin-top:24px; }
#home .home-actions .text-link { display:inline-flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,.58); font-size:10px; }
#home .home-actions .text-link span { font-size:18px; transition:transform .25s; }
#home .home-actions .text-link:hover span { transform:translate(4px,-3px); }
#home .home-location { top:auto; right:clamp(24px,7vw,100px); bottom:clamp(126px,18vh,170px); color:#fff; }
#home .location-dot { background:#c5d2be; box-shadow:0 0 0 6px rgba(197,210,190,.18); }
#home .home-scroll-cue,#home .home-details,#home .home-paths { display:none !important; }
#home .home-facts-overlay {
  position:absolute;
  z-index:3;
  right:auto;
  bottom:clamp(30px,5vh,56px);
  left:clamp(28px,9vw,138px);
  display:grid;
  width:min(720px,calc(100% - 56px));
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,3vw,38px);
  padding-top:17px;
  border-top:1px solid rgba(255,255,255,.4);
}
#home .home-facts-overlay>div { display:flex; flex-direction:column; gap:5px; padding:0; border:0; }
#home .home-facts-overlay strong { color:#fff; font-family:"Manrope","DM Sans",Arial,sans-serif; font-size:13px; font-weight:700; letter-spacing:.02em; }
#home .home-facts-overlay span { color:rgba(255,255,255,.83); font-size:10px; line-height:1.45; }

/* Palette comune: salvia e pietra; nessun rosso o arancio nelle interfacce */
#camere,#servizi,#galleria,#recensioni,#contatti {
  --paper:#f4f5ef;
  --paper-deep:#e7ebe3;
  --ink:#26302b;
  --muted:#68736c;
  --forest:#344b43;
  --forest-soft:#52685d;
  --gold:#a8b69c;
  color:var(--ink);
  background:var(--paper);
}
#camere .rooms-scroll,#servizi .story-scroll,#galleria .gallery-layout { background:var(--paper); scrollbar-color:#879b89 transparent; }
.button-dark,#galleria .gallery-instagram,#contatti .map-link,#contatti .social-links a { color:#f7f8f3; background:#344b43; border-color:#344b43; }
.button-dark:hover,#galleria .gallery-instagram:hover,#contatti .map-link:hover,#contatti .social-links a:hover { color:#fff; background:#52685d; border-color:#52685d; }

/* Servizi: fotografia nitida e ritmo irregolare tra immagini e testi */
#servizi .service-opening { width:100%; margin:0; border-radius:0; }
#servizi .service-opening .scene-image { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.04); }
#servizi .service-opening .scene-shade { background:linear-gradient(90deg,rgba(25,39,33,.62),rgba(25,39,33,.15) 68%,rgba(25,39,33,.04)),linear-gradient(0deg,rgba(25,39,33,.42),transparent 58%); }
#servizi .service-opening .eyebrow,#servizi .service-details-heading .eyebrow,#servizi .experience-details-heading .eyebrow { color:#607568; }
#servizi .service-opening .photo-title em { color:#d5e0d1; }
#servizi .service-details,#servizi .experience-details { background:linear-gradient(135deg,#f4f5ef 0%,#eef1e9 52%,#f5f5ef 100%); }
#servizi .service-details-heading .editorial-title,#servizi .experience-details-heading .editorial-title { color:#26352d; }
#servizi .service-details-heading>p:last-child,#servizi .experience-details-heading>p:last-child { color:#68736c; }
#servizi .service-detail-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:stretch; gap:clamp(16px,2.2vw,30px); }
#servizi .service-detail-card { position:relative; grid-column:span 4; min-height:clamp(360px,36vw,450px); overflow:hidden; border:0; border-radius:28px 28px 28px 8px; background:#dfe5dc; box-shadow:0 16px 38px rgba(35,52,44,.12); }
#servizi .service-detail-card:nth-child(4n+1) { grid-column:span 7; min-height:clamp(420px,44vw,550px); border-radius:8px 34px 8px 34px; }
#servizi .service-detail-card:nth-child(4n+2) { grid-column:span 5; min-height:clamp(370px,38vw,470px); }
#servizi .service-detail-card:nth-child(4n+3) { grid-column:span 5; min-height:clamp(360px,34vw,420px); }
#servizi .service-detail-card:nth-child(4n+4) { grid-column:span 7; min-height:clamp(410px,40vw,500px); border-radius:34px 8px 34px 8px; }
#servizi .service-detail-card img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.035); transition:filter .5s; }
#servizi .service-detail-copy { background:linear-gradient(0deg,rgba(27,43,36,.88),rgba(27,43,36,.16) 72%,transparent); }
#servizi .service-detail-copy>span { border-color:rgba(245,248,241,.58); border-radius:999px; background:rgba(38,59,48,.32); }
#servizi .experience-chooser { border-color:rgba(52,75,67,.15); border-radius:999px; background:rgba(255,255,255,.78); }
#servizi .experience-chooser button { border-color:rgba(52,75,67,.2); border-radius:999px; color:#344b43; background:#f4f5ef; }
#servizi .experience-chooser button[aria-pressed="true"] { color:#f8faf6; background:#52685d; border-color:#52685d; box-shadow:0 8px 20px rgba(52,75,67,.18); }
#servizi .experience-season { border-color:rgba(52,75,67,.15); }
#servizi .experience-season-heading>span { color:#40594b; background:#dfe7dc; border-radius:999px; }
#servizi .experience-season-heading h4 { color:#26352d; }
#servizi .experience-photo-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(14px,1.8vw,24px); }
#servizi .experience-photo { grid-column:span 4; min-height:clamp(320px,31vw,410px); overflow:hidden; border-radius:28px 8px 28px 8px; background:#dfe5dc; box-shadow:0 14px 34px rgba(35,52,44,.10); }
#servizi .experience-photo:nth-child(6n+1) { grid-column:span 7; min-height:clamp(400px,42vw,520px); }
#servizi .experience-photo:nth-child(6n+2) { grid-column:span 5; min-height:clamp(350px,36vw,450px); }
#servizi .experience-photo:nth-child(6n+3) { grid-column:span 5; min-height:clamp(340px,34vw,430px); border-radius:8px 30px 8px 30px; }
#servizi .experience-photo:nth-child(6n+4) { grid-column:span 7; min-height:clamp(400px,40vw,500px); }
#servizi .experience-photo:nth-child(6n+5) { grid-column:span 4; }
#servizi .experience-photo:nth-child(6n) { grid-column:span 8; }
#servizi .experience-photo img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.035); transition:filter .45s; }
#servizi .experience-photo:hover img { filter:brightness(1.04); }
#servizi .experience-photo figcaption { background:linear-gradient(0deg,rgba(25,41,34,.9),rgba(25,41,34,.12) 78%,transparent); }
#servizi .experience-photo p { font-size:13px; }

/* Galleria: mosaico fotografico vivo, senza trattamenti rossi */
#galleria .gallery-layout { background:linear-gradient(140deg,#f5f6f0,#e9eee7 58%,#f4f5ef); }
#galleria .gallery-heading .eyebrow { color:#607568; }
#galleria .gallery-heading .editorial-title { color:#26352d; }
#galleria .gallery-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(12px,1.7vw,24px); align-items:stretch; }
#galleria .gallery-card,#galleria .gallery-card-wide { position:relative; grid-column:span 4; min-height:270px; aspect-ratio:4/3; overflow:hidden; border-radius:30px 8px 30px 8px; background:#dfe5dc; box-shadow:0 14px 32px rgba(35,52,44,.10); }
#galleria .gallery-card:nth-child(6n+1) { grid-column:span 7; grid-row:span 2; min-height:540px; aspect-ratio:auto; border-radius:8px 34px 8px 34px; }
#galleria .gallery-card:nth-child(6n+2) { grid-column:span 5; min-height:310px; }
#galleria .gallery-card:nth-child(6n+3) { grid-column:span 5; min-height:320px; border-radius:34px 8px 34px 8px; }
#galleria .gallery-card:nth-child(6n+4) { grid-column:span 4; min-height:300px; }
#galleria .gallery-card:nth-child(6n+5) { grid-column:span 4; min-height:300px; border-radius:8px 32px 8px 32px; }
#galleria .gallery-card:nth-child(6n) { grid-column:span 4; min-height:300px; }
#galleria .gallery-card:nth-child(4n+3) { transform:none; }
#galleria .gallery-card img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.025); filter:none; transition:filter .4s; }
#galleria .gallery-card:hover img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.025); filter:brightness(1.04); }
#galleria .gallery-card figcaption { background:linear-gradient(0deg,rgba(28,45,37,.75),transparent); }
#galleria .gallery-instagram { border-radius:999px; background:#344b43; }

/* Ristorante: si aggiungono soltanto le immagini dei piatti illustrative */
.restaurant-dishes { position:relative; padding:clamp(48px,7vw,92px) clamp(22px,8vw,120px) clamp(54px,8vw,100px); color:#26302b; background:#f4f5ef; }
.restaurant-dishes-heading { max-width:780px; margin:0 auto clamp(24px,4vw,48px); text-align:center; }
.restaurant-dishes-heading .eyebrow { color:#607568; }
.restaurant-dishes-heading .editorial-title { margin:14px 0 10px; color:#26352d; font-size:clamp(46px,6vw,78px); line-height:.94; }
.restaurant-dishes-heading .editorial-title em { color:#718775; }
.restaurant-dishes-heading>p:last-child { max-width:620px; margin:0 auto; color:#68736c; font-size:13px; line-height:1.65; }
.restaurant-dish-gallery { display:grid; max-width:1200px; grid-template-columns:1.25fr .75fr; align-items:start; gap:clamp(14px,2.5vw,32px); margin:0 auto; }
.restaurant-dish { position:relative; min-width:0; margin:0; overflow:hidden; border-radius:30px 8px 30px 8px; background:#e1e5dd; box-shadow:0 16px 42px rgba(28,45,37,.12); }
.restaurant-dish-table { aspect-ratio:1.4/1; }
.restaurant-dish-close { margin-top:clamp(30px,8vw,90px); aspect-ratio:.82/1; }
.restaurant-dish img { display:block; width:100%; height:100%; object-fit:cover; transform:translate3d(0,var(--scroll-y,0px),0) scale(1.025); }
.restaurant-dish figcaption { position:absolute; right:0; bottom:0; left:0; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; padding:44px 18px 15px; color:#fff; font-family:"Manrope","DM Sans",Arial,sans-serif; font-size:13px; font-weight:650; background:linear-gradient(0deg,rgba(24,38,31,.72),transparent); }
.restaurant-dish figcaption span { font-size:9px; font-weight:500; opacity:.8; }

/* Recensioni: stessa informazione, con ritmi e movimenti diversi */
#recensioni { --paper:#f3f5ef; }
#recensioni.scene { scrollbar-color:#8d9d8e transparent; }
#recensioni .reviews-layout { background:radial-gradient(ellipse at 90% 7%,rgba(153,173,148,.18),transparent 35%),#f3f5ef; }
#recensioni .reviews-heading .editorial-title { color:#26352d; }
#recensioni .reviews-heading .editorial-title em { color:#738775; }
#recensioni .review-score { border-color:rgba(52,75,67,.14); background:#fbfcf8; }
#recensioni .review-score:nth-child(2) { background:#e9eee6; }
#recensioni .review-rating strong { color:#344b43; }
#recensioni .review-stars { color:#a9a878; }
#recensioni .review-quotes blockquote { border-color:rgba(52,75,67,.14); background:#fbfcf8; }
#recensioni .review-quotes blockquote:nth-child(2) { background:#e9eee6; }
#recensioni .review-links a { color:#344b43; border-color:rgba(52,75,67,.25); background:#fbfcf8; }
#recensioni .review-links a:hover { color:#fff; background:#52685d; }

/* Contatti: recapiti semplici, senza riquadri evidenziati */
#contatti { --paper:#f4f5ef; }
#contatti .contact-layout { background:radial-gradient(ellipse at 5% 12%,rgba(160,177,153,.15),transparent 34%),#f4f5ef; }
#contatti .contact-heading .eyebrow,#contatti .contact-heading>.eyebrow,#contatti .contact-map-heading .contact-label,#contatti .contact-address .contact-label,#contatti .contact-prompt span,#contatti .contact-prompt strong { color:#50685a; }
#contatti .contact-heading .editorial-title { color:#26352d; }
#contatti .map-panel { border-color:rgba(255,255,255,.88); box-shadow:0 20px 45px rgba(37,57,47,.1); }
#contatti .map-link { background:#344b43; }
#contatti .contact-footer { border-color:rgba(52,75,67,.12); background:rgba(251,252,248,.72); box-shadow:none; }
#contatti .contact-method,#contatti .contact-method:hover { padding-inline:0; border:0; border-bottom:1px solid rgba(52,75,67,.15); color:#26302b; background:transparent !important; box-shadow:none !important; }
#contatti .contact-method>span { color:#68736c; }
#contatti .contact-method strong { display:inline; padding:0; border:0; color:#26302b; background:transparent; box-shadow:none; }
#contatti .social-links a { background:#344b43; }

/* Movimento legato allo scroll: entrate, livelli fotografici e cambio sezione */
.scene.is-active { animation:scene-arrive .48s cubic-bezier(.2,.7,.25,1) both; }
.scroll-parallax { will-change:transform; }
.has-js .scroll-reveal { opacity:0; transform:translate3d(0,34px,0) scale(.985); transition:opacity .75s ease,transform .85s cubic-bezier(.2,.7,.25,1); transition-delay:var(--reveal-delay,0ms); }
.has-js .scroll-reveal.is-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
.has-js .reveal-on-view { transition-delay:var(--reveal-delay,0ms); }
.has-js .reveal-on-view:not(.is-visible) { opacity:0; transform:translate3d(0,34px,0) scale(.985); }
.has-js .reveal-on-view.is-visible { opacity:1; transform:translate3d(0,0,0) scale(1); }
#servizi .service-detail-card,#servizi .experience-photo,#galleria .gallery-card,#recensioni .review-score,#recensioni .review-quotes blockquote { transition:opacity .75s ease,transform .85s cubic-bezier(.2,.7,.25,1),box-shadow .35s ease; transition-delay:var(--reveal-delay,0ms); }
#servizi .service-detail-card:hover,#servizi .experience-photo:hover,#galleria .gallery-card:hover,#recensioni .review-score:hover { box-shadow:0 23px 48px rgba(35,52,44,.16); }
@keyframes scene-arrive { from { opacity:.72; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:980px) {
  #servizi .service-detail-grid,#servizi .experience-photo-grid,#galleria .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #servizi .service-detail-card,#servizi .service-detail-card:nth-child(n),#servizi .experience-photo,#servizi .experience-photo:nth-child(n),#galleria .gallery-card,#galleria .gallery-card-wide,#galleria .gallery-card:nth-child(n) { grid-column:span 1; min-height:340px; grid-row:auto; }
  #servizi .service-detail-card:nth-child(3n+1),#servizi .experience-photo:nth-child(3n+1),#galleria .gallery-card:nth-child(3n+1) { grid-column:span 2; }
}
@media (max-width:760px) {
  .site-header,.site-header.is-light { min-height:72px; padding-inline:16px; }
  .brand-name { font-size:29px; }
  .brand-place { font-size:6px; }
  .primary-nav { background:rgba(244,245,239,.97); color:#26352d; box-shadow:0 16px 34px rgba(35,52,44,.12); }
  .primary-nav a::after { background:#52685d; }
  #home .home-hero { min-height:max(650px,100svh); height:100svh; }
  #home .home-copy { top:45%; left:22px; width:calc(100% - 44px); }
  #home .home-title { font-size:clamp(66px,14vw,98px); }
  #home .home-location { top:auto; right:23px; bottom:150px; font-size:8px; }
  #home .home-facts-overlay { bottom:27px; left:22px; width:calc(100% - 44px); gap:10px; padding-top:13px; }
  #home .home-facts-overlay strong { font-size:11px; }
  #home .home-facts-overlay span { font-size:9px; }
  #servizi .service-detail-grid,#servizi .experience-photo-grid,#galleria .gallery-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  #servizi .service-detail-card,#servizi .service-detail-card:nth-child(n),#servizi .experience-photo,#servizi .experience-photo:nth-child(n),#galleria .gallery-card,#galleria .gallery-card-wide,#galleria .gallery-card:nth-child(n) { grid-column:auto; min-height:330px; grid-row:auto; }
  #servizi .service-detail-card:nth-child(4n+1),#servizi .experience-photo:nth-child(6n+1),#galleria .gallery-card:nth-child(6n+1) { min-height:390px; }
  .restaurant-dishes { padding-inline:18px; }
  .restaurant-dish-gallery { grid-template-columns:1fr; gap:15px; }
  .restaurant-dish-table,.restaurant-dish-close { margin:0; aspect-ratio:1.2/1; }
  .restaurant-dish figcaption { align-items:flex-start; flex-direction:column; gap:5px; }
  #contatti .contact-method { align-items:flex-start; flex-direction:column; gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  .scene.is-active { animation:none; }
  .has-js .scroll-reveal,.has-js .scroll-reveal.is-visible,.has-js .reveal-on-view,.has-js .reveal-on-view.is-visible { opacity:1; transform:none; transition:none; }
  .scroll-parallax { transform:none !important; }
}

/* Rifinitura: contrasti leggibili e animazioni affidabili dopo ogni cambio sezione */
#home .home-title span + span { color:#f6f8f3; }
#home .eyebrow::after { background:#cbd8c7; }
.site-header.is-on-paper {
  color:#263b32 !important;
  background:rgba(244,245,239,.93) !important;
  backdrop-filter:blur(12px);
  box-shadow:0 6px 24px rgba(35,52,44,.08) !important;
  transition:color .3s ease,background .3s ease,box-shadow .3s ease;
}
.site-header.is-on-paper .brand-name,
.site-header.is-on-paper .brand-place,
.site-header.is-on-paper .brand-kicker,
.site-header.is-on-paper .primary-nav a,
.site-header.is-on-paper .header-booking { color:#263b32; text-shadow:none; }
.site-header.is-on-paper .header-booking { border-color:rgba(52,75,67,.35); }
.site-header.is-on-paper .primary-nav a::after { background:#536d5e; }
.home-scroll,.rooms-scroll,.restaurant-scroll,.story-scroll,.gallery-layout,.contact-layout,#recensioni.scene { scrollbar-color:#879b89 transparent; }
#recensioni .reviews-heading .eyebrow { color:#607568; }

/* Revisione: contrasto stabile, immagini ordinate e homepage da leggere a scorrimento */
.site-header .header-booking { display:inline-flex !important; }
.scene.is-active { animation:none !important; }
.has-js .scroll-reveal,
.has-js .reveal-on-view:not(.is-visible) {
  opacity:1 !important;
  transform:translate3d(0,22px,0) scale(1) !important;
  transition:transform .68s cubic-bezier(.2,.7,.25,1) !important;
  transition-delay:var(--reveal-delay,0ms) !important;
}
.has-js .scroll-reveal.is-visible,
.has-js .reveal-on-view.is-visible { opacity:1 !important; transform:translate3d(0,0,0) scale(1) !important; }

#home .home-story {
  position:relative; display:grid; min-height:min(88svh,900px); grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  align-items:center; gap:clamp(28px,7vw,100px); overflow:hidden; padding:clamp(72px,10vw,138px) clamp(26px,9vw,138px);
  color:#28352d; background:radial-gradient(ellipse at 88% 14%,rgba(180,194,173,.24),transparent 35%),#f3f5ef;
}
#home .home-story-copy { position:relative; z-index:1; max-width:690px; }
#home .home-story-copy .eyebrow { color:#576c5d; }
#home .home-story-copy .editorial-title { margin:18px 0 25px; color:#28352d; font-size:clamp(54px,7vw,98px); line-height:.91; letter-spacing:-.045em; }
#home .home-story-copy .editorial-title em { color:#738775; font-weight:400; }
#home .home-story-copy>p:last-of-type { max-width:54ch; margin:0; color:#536057; font-size:clamp(14px,1.2vw,17px); line-height:1.85; }
.home-story-link { display:inline-flex; align-items:center; gap:12px; margin-top:28px; padding:10px 0; border-bottom:1px solid rgba(52,75,67,.45); color:#344b43; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.home-story-link span { font-size:18px; transition:transform .25s ease; }
.home-story-link:hover span { transform:translate(4px,-3px); }
#home .home-story-art { position:relative; display:grid; min-height:clamp(300px,42vw,540px); place-items:center; }
#home .home-story-art svg { display:block; width:min(100%,560px); overflow:visible; }
.mountain-line { fill:none; stroke:#839785; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.mountain-line-back { stroke:#aab8a7; stroke-width:1.5; }
.mountain-line-front { stroke:#667f6c; stroke-width:2.4; }
.mountain-sun { fill:#d9decf; }
.mountain-path { fill:none; stroke:#b6c2b2; stroke-width:1.5; stroke-dasharray:4 8; stroke-linecap:round; }
#home .home-story-art.is-visible .mountain-path { animation:mountain-trail 1.5s ease both; }
@keyframes mountain-trail { from { stroke-dashoffset:210; } to { stroke-dashoffset:0; } }
#home .home-story-art>span { position:absolute; right:4%; bottom:13%; color:#66776a; font-size:9px; font-weight:700; letter-spacing:.18em; }
#home .home-invitation {
  position:relative; display:flex; min-height:min(78svh,780px); flex-direction:column; align-items:flex-start; justify-content:center; overflow:hidden;
  padding:clamp(72px,10vw,130px) clamp(26px,12vw,180px); color:#26352d; background:#e8ede5;
}
#home .home-invitation .eyebrow { position:relative; z-index:1; color:#607568; }
#home .home-invitation .editorial-title { position:relative; z-index:1; margin:17px 0 22px; color:#26352d; font-size:clamp(64px,9vw,124px); line-height:.85; letter-spacing:-.055em; }
#home .home-invitation .editorial-title em { color:#718775; font-weight:400; }
#home .home-invitation>p:not(.eyebrow) { position:relative; z-index:1; max-width:43ch; color:#59665e; font-size:15px; line-height:1.75; }
#home .home-invitation .home-story-link { position:relative; z-index:1; }
.home-invitation-orbit { position:absolute; top:50%; right:-6vw; width:min(50vw,620px); aspect-ratio:1; border:1px solid rgba(92,119,99,.22); border-radius:50%; transform:translateY(-50%); }
.home-invitation-orbit::before,.home-invitation-orbit::after { position:absolute; inset:11%; content:""; border:1px solid rgba(92,119,99,.18); border-radius:50%; }
.home-invitation-orbit::after { inset:23%; border-color:rgba(92,119,99,.15); }
#home .home-invitation.scroll-reveal,#home .home-invitation.scroll-reveal.is-visible { transform:none !important; }
#home .home-invitation.is-visible .home-invitation-orbit { animation:orbit-pulse 8s ease-in-out infinite alternate; }
@keyframes orbit-pulse { from { opacity:.32; } to { opacity:.8; } }

#servizi .story-scroll { background:#f3f5ef; }
#servizi .service-opening { min-height:clamp(520px,76svh,820px); }
#servizi .service-opening .photo-title { max-width:900px; color:#fff; font-size:clamp(70px,10vw,146px); line-height:.84; }
#servizi .service-opening .photo-title em { color:#dce5d9; }
.useful-services { padding:clamp(46px,6vw,76px) clamp(22px,8vw,120px) clamp(54px,7vw,90px); color:#26352d; background:#f3f5ef; }
.useful-services>.eyebrow { max-width:1240px; margin:0 auto 20px; color:#607568; }
.useful-services-row { display:grid; max-width:1240px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0 auto; border-top:1px solid rgba(52,75,67,.2); border-bottom:1px solid rgba(52,75,67,.2); }
.useful-service { min-width:0; padding:22px clamp(14px,2vw,28px) 24px; border-right:1px solid rgba(52,75,67,.15); }
.useful-service:first-child { padding-left:0; }
.useful-service:last-child { padding-right:0; border-right:0; }
.useful-service>span { color:#718775; font-size:9px; font-weight:700; letter-spacing:.12em; }
.useful-service h3 { margin:14px 0 8px; color:#26352d; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(21px,2.2vw,30px); font-weight:500; line-height:1.05; }
.useful-service p { margin:0; color:#626e65; font-size:12px; line-height:1.65; }
#servizi .service-details { display:none !important; }
#servizi .experience-details { padding:clamp(54px,7vw,92px) clamp(22px,7vw,110px) clamp(65px,8vw,105px); background:#e9eee7; }
#servizi .experience-details-heading { max-width:980px; margin:0 auto clamp(38px,5vw,64px); }
#servizi .experience-details-heading .eyebrow { color:#607568; }
#servizi .experience-details-heading .editorial-title { color:#26352d; font-size:clamp(48px,6vw,82px); line-height:.91; }
#servizi .experience-details-heading .editorial-title em { color:#718775; }
#servizi .experience-details-heading>p:not(.eyebrow) { max-width:70ch; color:#59665e; font-size:14px; line-height:1.8; }
#servizi .experience-chooser { margin-top:24px; border-color:rgba(52,75,67,.16); border-radius:16px; background:#f6f7f2; box-shadow:0 8px 26px rgba(35,52,44,.06); }
#servizi .experience-chooser button { border-color:rgba(52,75,67,.2); border-radius:30px; color:#344b43; background:#edf1e9; }
#servizi .experience-chooser button[aria-pressed="true"] { border-color:#52685d; color:#fff; background:#52685d; }
#servizi .experience-season { max-width:1320px; margin:0 auto clamp(60px,8vw,100px); border:0; }
#servizi .experience-season:last-child { margin-bottom:0; }
#servizi .experience-season-heading { margin:0 auto 20px; padding-bottom:14px; border-bottom:1px solid rgba(52,75,67,.18); }
#servizi .experience-season-heading>span { color:#40594b; background:#dce5d9; }
#servizi .experience-season-heading h4 { color:#26352d; font-size:clamp(25px,3vw,38px); }
#servizi .experience-season-heading p { max-width:78ch; color:#59665e; font-size:13px; line-height:1.8; }
#servizi .experience-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:clamp(14px,1.7vw,23px); }
#servizi .experience-photo,
#servizi .experience-photo:nth-child(n) { position:relative; grid-column:auto; width:100%; min-width:0; min-height:0; height:clamp(250px,22vw,320px); aspect-ratio:auto; margin:0; overflow:hidden; border:0; border-radius:18px 18px 18px 5px; background:#dbe2d8; box-shadow:0 12px 28px rgba(35,52,44,.1); }
#servizi .experience-photo img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.045); transition:transform .5s cubic-bezier(.2,.7,.25,1),filter .5s; }
#servizi .experience-photo:hover { transform:translate3d(0,-4px,0) !important; }
#servizi .experience-photo:hover img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.09); filter:brightness(1.04); }
#servizi .experience-photo figcaption { padding:58px 18px 17px; background:linear-gradient(0deg,rgba(25,41,34,.86),rgba(25,41,34,.14) 76%,transparent); }
#servizi .experience-photo h5 { font-size:clamp(19px,2vw,25px); }
#servizi .experience-photo p { max-width:44ch; font-size:12px; line-height:1.62; }

#galleria .gallery-layout { inset:82px 0 0; padding:clamp(28px,4vw,54px) clamp(20px,5vw,74px) 64px; background:#f3f5ef; }
#galleria .gallery-heading { max-width:1240px; margin:0 auto 24px; }
#galleria .gallery-heading .editorial-title { color:#26352d; }
#galleria .gallery-heading>p:last-child { color:#626e65; }
#galleria .gallery-grid { display:grid; max-width:1380px; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:clamp(12px,1.5vw,20px); margin:0 auto; }
#galleria .gallery-card,
#galleria .gallery-card:nth-child(n),
#galleria .gallery-card-wide { position:relative; grid-column:auto; grid-row:auto; min-width:0; min-height:0; aspect-ratio:1.28/1; margin:0; overflow:hidden; border:0; border-radius:16px 16px 16px 5px; background:#e1e6de; box-shadow:0 9px 24px rgba(35,52,44,.08); }
#galleria .gallery-card img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.035); transition:transform .65s cubic-bezier(.2,.7,.25,1),filter .4s; }
#galleria .gallery-card:hover img { transform:translate3d(0,var(--scroll-y,0px),0) scale(1.075); filter:brightness(1.04); }
#galleria .gallery-card figcaption { background:linear-gradient(0deg,rgba(27,43,36,.78),transparent 80%); }
#galleria .gallery-instagram { display:none !important; }
body[data-view="servizi"] .site-header { color:#26352d; background:rgba(244,245,239,.94); box-shadow:0 5px 24px rgba(35,52,44,.08); backdrop-filter:blur(12px); }
body[data-view="servizi"] .site-header .brand-name,
body[data-view="servizi"] .site-header .brand-kicker,
body[data-view="servizi"] .site-header .brand-place,
body[data-view="servizi"] .site-header .primary-nav a { color:#26352d; text-shadow:none; }
body[data-view="servizi"] .site-header .header-booking { color:#26352d; border-color:rgba(52,75,67,.35); }
body[data-view="servizi"] .site-header .primary-nav a::after { background:#536d5e; }
#servizi .service-opening .story-copy .eyebrow { color:rgba(255,255,255,.96); }

@media (max-width:1050px) {
  #home .home-story { grid-template-columns:minmax(0,1fr) minmax(220px,.7fr); }
  .useful-services-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .useful-service:nth-child(2) { border-right:0; }
  .useful-service:nth-child(3),.useful-service:nth-child(4) { border-top:1px solid rgba(52,75,67,.15); }
  .useful-service:nth-child(3) { padding-left:0; }
  #servizi .experience-photo-grid,#galleria .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #servizi .experience-photo,#servizi .experience-photo:nth-child(n) { grid-column:auto; height:clamp(240px,25vw,300px); min-height:0; aspect-ratio:auto; }
}
@media (max-width:760px) {
  #home .home-story { min-height:0; grid-template-columns:1fr; gap:16px; padding:72px 22px 50px; }
  #home .home-story-copy .editorial-title { font-size:clamp(52px,12vw,75px); }
  #home .home-story-copy>p:last-of-type { font-size:14px; }
  #home .home-story-art { min-height:270px; }
  #home .home-story-art>span { right:2%; bottom:5%; }
  #home .home-invitation { min-height:70svh; padding:74px 22px; }
  #home .home-invitation .editorial-title { font-size:clamp(58px,13vw,86px); }
  .home-invitation-orbit { top:auto; right:-32vw; bottom:-32vw; width:90vw; transform:none; }
  .useful-services { padding:46px 20px 52px; }
  .useful-services-row { grid-template-columns:1fr; }
  .useful-service,.useful-service:first-child,.useful-service:last-child { padding:17px 0; border-right:0; border-top:1px solid rgba(52,75,67,.15); }
  .useful-service:first-child { border-top:0; }
  #servizi .experience-details { padding:52px 18px 60px; }
  #servizi .experience-photo-grid,#galleria .gallery-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
  #servizi .experience-photo,#servizi .experience-photo:nth-child(n) { grid-column:auto; height:250px; min-height:0; aspect-ratio:auto; }
  #galleria .gallery-layout { padding:30px 18px 45px; }
  #galleria .gallery-card,#galleria .gallery-card:nth-child(n),#galleria .gallery-card-wide { aspect-ratio:1.35/1; }
}
@media (prefers-reduced-motion:reduce) {
  .home-invitation-orbit,#home .home-invitation.is-visible .home-invitation-orbit { animation:none !important; opacity:.45; }
  #home .home-story-art.is-visible .mountain-path { animation:none !important; stroke-dashoffset:0; }
  .has-js .scroll-reveal,.has-js .scroll-reveal.is-visible,.has-js .reveal-on-view,.has-js .reveal-on-view.is-visible { transition:none !important; transform:none !important; }
}

/* Direzione finale: il sito accompagna il viaggio, senza pannelli sopra le fotografie. */
.site-header,
.site-header.is-light,
.site-header.is-on-paper {
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  transition:color .4s ease;
}
.site-header:not(.is-light):not(.is-on-paper) { color:#fff !important; }
.site-header:not(.is-light):not(.is-on-paper) :is(.brand,.brand-name,.brand-kicker,.brand-place,.primary-nav a,.header-booking,.menu-toggle) { color:#fff !important; text-shadow:0 2px 16px rgba(16,27,22,.52); }
.site-header.is-light,
.site-header.is-on-paper { color:#24332a !important; }
.site-header.is-light :is(.brand,.brand-name,.brand-kicker,.brand-place,.primary-nav a,.header-booking,.menu-toggle),
.site-header.is-on-paper :is(.brand,.brand-name,.brand-kicker,.brand-place,.primary-nav a,.header-booking,.menu-toggle) { color:#24332a !important; text-shadow:none; }
.site-header .primary-nav a::after { background:currentColor !important; }
.site-header .header-booking,
.site-header.is-light .header-booking,
.site-header.is-on-paper .header-booking {
  min-height:auto;
  padding:9px 0 7px;
  border:0 !important;
  border-bottom:1px solid currentColor !important;
  border-radius:0;
  background:transparent !important;
  box-shadow:none !important;
  letter-spacing:.11em;
}
.site-header .header-booking:hover { opacity:.68; }
.primary-nav { gap:clamp(15px,2.1vw,31px); }
.primary-nav a { font-size:9px; letter-spacing:.09em; }

/* Cambi di scena ampi, poi le immagini e le parole entrano con lo scorrimento. */
.scene.is-active.is-entering { animation:scene-sweep .82s cubic-bezier(.2,.72,.2,1) both !important; }
@keyframes scene-sweep {
  from { clip-path:inset(0 0 7% 0); transform:translate3d(0,20px,0) scale(1.008); }
  to { clip-path:inset(0 0 0 0); transform:translate3d(0,0,0) scale(1); }
}
.scene.is-entering :is(.home-copy,.room-panel-copy,.restaurant-top,.story-copy,.contact-heading,.reviews-heading) {
  animation:copy-arrive .8s cubic-bezier(.2,.7,.25,1) both;
}
@keyframes copy-arrive {
  from { opacity:.25; transform:translate3d(0,28px,0); clip-path:inset(0 0 18% 0); }
  to { opacity:1; transform:translate3d(0,0,0); clip-path:inset(0); }
}
.has-js .scroll-reveal,
.has-js .reveal-on-view:not(.is-visible) {
  opacity:1 !important;
  filter:none;
  clip-path:none;
  transform:translate3d(0,24px,0) scale(.99) !important;
  transition:transform .85s cubic-bezier(.18,.72,.2,1) !important;
  transition-delay:var(--reveal-delay,0ms) !important;
  will-change:transform,clip-path;
}
.has-js .scroll-reveal.is-visible,
.has-js .reveal-on-view.is-visible {
  opacity:1 !important;
  filter:none;
  clip-path:none;
  transform:translate3d(0,0,0) scale(1) !important;
}

/* Home: dal portone del Gran Baita al paesaggio, con una luce che segue la discesa. */
#home .home-hero .scene-image {
  animation:hero-breath 24s ease-in-out infinite alternate !important;
  will-change:transform,background-position;
}
@keyframes hero-breath {
  from { background-position:50% 55%; transform:translate3d(0,var(--scroll-y,0px),0) scale(1.025); }
  to { background-position:53% 59%; transform:translate3d(0,var(--scroll-y,0px),0) scale(1.09); }
}
#home .home-journey {
  --journey-progress:0;
  position:relative;
  display:grid;
  min-height:max(760px,100svh);
  grid-template-columns:minmax(260px,.76fr) minmax(0,1.24fr);
  align-items:center;
  gap:clamp(24px,5vw,76px);
  overflow:hidden;
  padding:clamp(100px,13vh,150px) clamp(24px,7.5vw,112px) clamp(45px,7vh,76px);
  color:#26342c;
  background:linear-gradient(128deg,#f5f5ef 0%,#e9eee6 49%,#f0ede5 100%);
  isolation:isolate;
}
#home .journey-copy { position:relative; z-index:2; max-width:540px; padding-bottom:7vh; }
#home .journey-copy .eyebrow { color:#65786a; }
#home .journey-title {
  margin:20px 0 23px;
  color:#26342c;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(58px,7.6vw,112px);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.045em;
}
#home .journey-title em { color:#768a78; font-weight:400; }
#home .journey-copy>p:not(.eyebrow) { max-width:44ch; margin:0; color:#59675e; font:400 14px/1.85 "Manrope","DM Sans",sans-serif; }
#home .journey-stops { display:flex; flex-wrap:wrap; gap:clamp(14px,2.2vw,32px); margin-top:31px; padding-top:17px; border-top:1px solid rgba(52,75,67,.2); }
#home .journey-stops span { display:flex; flex-direction:column; gap:6px; color:#667269; font:500 9px/1.4 "Manrope","DM Sans",sans-serif; letter-spacing:.07em; text-transform:uppercase; }
#home .journey-stops b { color:#344b3d; font:600 17px/1 "Cormorant Garamond",Georgia,serif; letter-spacing:0; text-transform:none; }
#home .journey-landscape {
  position:relative;
  min-width:0;
  min-height:min(76vh,710px);
  align-self:stretch;
  overflow:hidden;
  background:linear-gradient(180deg,#d9e5e1 0%,#f2eee3 72%,#d6e0d5 100%);
  border-radius:42% 0 0 0 / 24% 0 0 0;
  isolation:isolate;
  transition:background .9s ease,filter .7s ease;
}
#home .journey-sky { position:absolute; z-index:1; inset:0; overflow:hidden; }
#home .journey-sun {
  position:absolute;
  top:var(--sun-y,70%);
  left:var(--sun-x,6%);
  width:clamp(42px,6vw,82px);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle at 36% 32%,#fff5cb 0 7%,#f3d78b 44%,#e8bc68 100%);
  box-shadow:0 0 25px 8px rgba(239,201,122,.28),0 0 95px 24px rgba(239,201,122,.2);
  transform:translate(-50%,-50%);
  transition:top .2s linear,left .2s linear,background .6s ease,box-shadow .6s ease;
  will-change:left,top;
}
#home .journey-cloud { position:absolute; width:120px; height:24px; border-radius:50%; opacity:.42; background:rgba(255,255,255,.82); filter:blur(1px); animation:cloud-drift 28s linear infinite alternate; }
#home .journey-cloud::before,#home .journey-cloud::after { position:absolute; bottom:4px; content:""; width:42px; height:35px; border-radius:50%; background:inherit; }
#home .journey-cloud::before { left:25px; }
#home .journey-cloud::after { left:54px; width:34px; height:28px; }
#home .journey-cloud-one { top:22%; left:18%; }
#home .journey-cloud-two { top:39%; right:10%; width:90px; animation-duration:35s; animation-direction:alternate-reverse; }
@keyframes cloud-drift { from { translate:-24px 0; } to { translate:34px 7px; } }
#home .journey-mountains { position:absolute; z-index:2; right:-5%; bottom:0; width:112%; height:76%; overflow:visible; transform:translate3d(0,var(--mountain-offset,0px),0); transition:filter .9s ease; }
#home .journey-peak { transition:fill .9s ease; }
#home .journey-peak-far { fill:#a7b8ae; opacity:.82; }
#home .journey-peak-mid { fill:#859b8d; opacity:.9; }
#home .journey-peak-near { fill:#536f60; }
#home .journey-route { fill:none; stroke:#f4f1db; stroke-width:4; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:calc(100 - var(--route-draw,0)); opacity:.86; transition:stroke-dashoffset .16s linear,stroke .6s; }
#home .journey-route-dot { position:absolute; z-index:3; left:var(--route-x,9%); top:var(--route-y,83%); width:10px; height:10px; border:2px solid #fffdf3; border-radius:50%; background:#8a6e44; box-shadow:0 0 0 5px rgba(255,255,255,.23); transform:translate(-50%,-50%); transition:left .16s linear,top .16s linear; }
#home .journey-caption { position:absolute; z-index:4; right:clamp(18px,3vw,44px); bottom:clamp(100px,15vh,154px); left:clamp(18px,3vw,44px); display:flex; flex-direction:column; gap:7px; color:#fff; text-shadow:0 2px 16px rgba(22,35,27,.4); }
#home .journey-caption span { font:500 10px/1.4 "Manrope",sans-serif; letter-spacing:.15em; text-transform:uppercase; }
#home .journey-caption b { font:400 clamp(23px,2.6vw,36px)/1 "Cormorant Garamond",Georgia,serif; }
#home .journey-seasons { position:absolute; z-index:5; right:clamp(14px,3vw,42px); bottom:clamp(22px,4vh,42px); left:clamp(14px,3vw,42px); display:flex; justify-content:space-between; gap:7px; padding-top:13px; border-top:1px solid rgba(255,255,255,.45); }
#home .journey-seasons button { padding:8px 3px; border:0; border-bottom:1px solid transparent; color:#fff; background:transparent; font:500 9px/1.4 "Manrope",sans-serif; letter-spacing:.06em; text-shadow:0 2px 12px rgba(22,35,27,.48); cursor:pointer; transition:transform .25s ease,border-color .25s ease; }
#home .journey-seasons button:hover { transform:translateY(-3px); }
#home .journey-seasons button[aria-pressed="true"] { border-color:#fff; }
#home .home-journey[data-season="inverno"] .journey-landscape { background:linear-gradient(180deg,#afc4d3 0%,#e5e9e8 71%,#ccd8dc 100%); }
#home .home-journey[data-season="inverno"] .journey-peak-far { fill:#d3dee1; }
#home .home-journey[data-season="inverno"] .journey-peak-mid { fill:#b2c4ca; }
#home .home-journey[data-season="inverno"] .journey-peak-near { fill:#768d96; }
#home .home-journey[data-season="inverno"] .journey-route { stroke:#fff; }
#home .home-journey[data-season="inverno"] .journey-sun { background:#f2f4ef; box-shadow:0 0 28px 10px rgba(240,247,255,.38),0 0 80px 20px rgba(222,239,249,.3); }
#home .home-journey[data-season="inverno"] .journey-sun::after { position:absolute; top:-4px; right:-8px; width:88%; aspect-ratio:1; border-radius:50%; content:""; background:#afc4d3; transition:background .7s ease; }
#home .home-journey[data-season="tutto-lanno"] .journey-landscape { background:linear-gradient(180deg,#d9dfd3 0%,#eee8d9 70%,#c6d0c3 100%); }
#home .home-journey[data-season="tutto-lanno"] .journey-sun { background:radial-gradient(circle at 36% 32%,#fff2d7 0 7%,#dec79b 48%,#c9ac78 100%); box-shadow:0 0 32px 9px rgba(220,199,155,.27),0 0 85px 18px rgba(220,199,155,.18); }

/* Camere e stagioni hanno un ritmo tipografico proprio. */
#camere .rooms-scroll { scroll-snap-type:y proximity; }
#camere .rooms-scroll,#ristorante .restaurant-scroll,#servizi .story-scroll { inset:0; }
#camere .room-panel { min-height:100svh; }
#ristorante .restaurant-hero { min-height:100svh; }
#servizi .service-opening { min-height:100svh; }
#camere .room-panel { isolation:isolate; }
#camere .room-panel-image { animation:room-breathe 32s ease-in-out infinite alternate; will-change:transform; }
@keyframes room-breathe { from { transform:scale(1.02); } to { transform:scale(1.085); } }
#camere .room-panel-title { font-family:"Cormorant Garamond",Georgia,serif; font-weight:500; letter-spacing:-.035em; }
#camere .room-panel-description,#camere .room-gallery-link { font-family:"Manrope","DM Sans",sans-serif; }
#ristorante { font-family:"Manrope","DM Sans",sans-serif; }
#ristorante :is(.photo-title,.editorial-title,.restaurant-detail h4) { font-family:"Cormorant Garamond",Georgia,serif !important; }
#ristorante :is(.eyebrow,.restaurant-intro,.restaurant-detail p,.restaurant-lounge-copy>p:not(.eyebrow)) { font-family:"Manrope","DM Sans",sans-serif; }
#servizi { font-family:"DM Sans",sans-serif; }
#servizi :is(.photo-title,.editorial-title,.experience-season-heading h4,.useful-service h3) { font-family:"Cormorant Garamond",Georgia,serif; }
#servizi .experience-season-heading h4 { font-weight:500; letter-spacing:-.025em; }
#servizi .useful-service>span { display:inline-block; color:inherit; font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif; font-size:20px; animation:service-symbol-drift 4.8s ease-in-out infinite; }
#servizi .useful-service:nth-child(2)>span { animation-delay:-1.2s; }
#servizi .useful-service:nth-child(3)>span { animation-delay:-2.4s; }
#servizi .useful-service:nth-child(4)>span { animation-delay:-3.6s; }
@keyframes service-symbol-drift { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(-4deg); } }
#servizi .activity-symbol { display:inline-block; margin-right:9px; font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif; font-size:.72em; vertical-align:.12em; filter:drop-shadow(0 2px 6px rgba(0,0,0,.25)); transition:transform .35s cubic-bezier(.2,.7,.25,1); }
#servizi .experience-photo:hover .activity-symbol { transform:translateY(-5px) rotate(-7deg) scale(1.14); }
#contatti { font-family:"Manrope","DM Sans",sans-serif; }
#contatti .editorial-title { font-family:"Cormorant Garamond",Georgia,serif; }
#recensioni { font-family:"DM Sans",sans-serif; }
#recensioni .editorial-title { font-family:"Cormorant Garamond",Georgia,serif; }
.contact-explore { display:flex; flex-wrap:wrap; gap:22px; margin-top:24px; padding-top:16px; border-top:1px solid rgba(52,75,67,.15); }
.contact-explore a { padding:0 0 4px; border-bottom:1px solid rgba(52,75,67,.35); color:#344b43; font-size:10px; letter-spacing:.04em; transition:opacity .2s ease,border-color .2s ease; }
.contact-explore a:hover { opacity:.65; border-color:transparent; }

@media (max-width:980px) {
  .primary-nav { gap:clamp(9px,1.25vw,16px); }
  #home .home-journey { grid-template-columns:minmax(235px,.72fr) minmax(0,1.28fr); gap:22px; padding-inline:clamp(20px,4vw,48px); }
  #home .journey-title { font-size:clamp(54px,7.3vw,82px); }
}
@media (max-width:760px) {
  .site-header,.site-header.is-light,.site-header.is-on-paper { min-height:72px; padding-inline:16px; }
  .primary-nav { top:72px; right:12px; left:12px; display:none; padding:12px 20px 17px; border-radius:0 0 22px 5px; color:#fff; background:rgba(35,51,43,.95) !important; box-shadow:0 18px 34px rgba(16,27,21,.22) !important; }
  .primary-nav.is-open { display:flex; }
  .site-header.is-light .primary-nav a,.site-header.is-on-paper .primary-nav a { color:#fff !important; }
  .primary-nav a { padding:12px 0; font-size:10px; }
  .site-header .menu-toggle { width:38px; height:38px; }
  .site-header .header-booking { font-size:7px; letter-spacing:.07em; }
  #home .home-hero { min-height:max(650px,100svh); }
  #home .home-hero .scene-image { background-position:center 56%; }
  #home .home-copy { top:45%; left:22px; width:calc(100% - 44px); }
  #home .home-title { font-size:clamp(66px,14vw,98px); }
  #home .home-journey { min-height:max(930px,120svh); grid-template-columns:1fr; align-content:start; gap:22px; padding:100px 22px 26px; }
  #home .journey-copy { padding:0; }
  #home .journey-title { margin:13px 0 15px; font-size:clamp(55px,13vw,78px); }
  #home .journey-copy>p:not(.eyebrow) { font-size:13px; }
  #home .journey-stops { margin-top:18px; }
  #home .journey-landscape { min-height:500px; margin:0 -22px; border-radius:34% 0 0 0 / 15% 0 0 0; }
  #home .journey-mountains { width:125%; right:-12%; height:72%; }
  #home .journey-caption { bottom:97px; }
  #home .journey-seasons { bottom:20px; flex-wrap:wrap; }
  #home .journey-seasons button { font-size:8px; }
  #camere .room-panel-image { animation-duration:40s; }
}
@media (prefers-reduced-motion:reduce) {
  .scene.is-active.is-entering,.scene.is-entering :is(.home-copy,.room-panel-copy,.restaurant-top,.story-copy,.contact-heading,.reviews-heading) { animation:none !important; }
  .has-js .scroll-reveal,.has-js .scroll-reveal.is-visible,.has-js .reveal-on-view,.has-js .reveal-on-view.is-visible { opacity:1 !important; filter:none; clip-path:none; transform:none !important; transition:none !important; }
  #home .home-hero .scene-image,#camere .room-panel-image,#home .journey-cloud { animation:none !important; }
  #servizi .useful-service>span { animation:none !important; }
  #home .journey-sun,#home .journey-route,#home .journey-route-dot,#home .journey-mountains { transition:none !important; }
}

/* Revisione: immagini reali, menu che non copre i contenuti e stagioni laterali. */
.site-header {
  transition: color .4s ease, transform .38s cubic-bezier(.2,.7,.2,1), opacity .38s ease;
  will-change: transform;
}
.site-header.is-hidden { opacity: 0; transform: translate3d(0,-115%,0); pointer-events: none; }

#home .home-landscape {
  position: relative;
  display: grid;
  min-height: max(680px, 96svh);
  place-items: center;
  overflow: hidden;
  padding: 92px clamp(24px,7vw,108px) 48px;
  isolation: isolate;
  background: #34453c;
}
#home .home-landscape-image {
  position: absolute;
  inset: 0;
  background-position: center 55%;
  background-size: cover;
  transform: scale(1.025);
  transition: transform 1.2s cubic-bezier(.2,.7,.25,1);
}
#home .home-landscape.is-visible .home-landscape-image { transform: scale(1.07); }
#home .home-landscape-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,rgba(18,28,23,.16),rgba(18,28,23,.54) 67%,rgba(18,28,23,.67));
}
#home .home-landscape-copy {
  position: relative;
  z-index: 1;
  width: min(760px,100%);
  margin: 0 auto;
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 22px rgba(14,24,18,.25);
}
#home .home-landscape-copy .eyebrow { margin: 0; color: rgba(255,255,255,.85); }
#home .home-landscape-copy h2 {
  margin: 22px 0 18px;
  font: 500 clamp(60px,9vw,126px)/.86 "Cormorant Garamond",Georgia,serif;
  letter-spacing: -.045em;
  text-wrap: balance;
}
#home .home-landscape-copy h2 em { color: #e9e0cf; font-weight: 400; }
#home .home-landscape-copy > p:not(.eyebrow) { max-width: 52ch; margin: 0 auto; color: rgba(255,255,255,.92); font: 400 15px/1.8 "Manrope","DM Sans",sans-serif; }
#home .home-landscape-copy > span { display: inline-block; margin-top: 28px; color: rgba(255,255,255,.78); font: 500 9px/1.5 "Manrope","DM Sans",sans-serif; letter-spacing: .2em; text-transform: uppercase; }
#home .home-title,
#home .home-actions .text-link { color: #fff !important; }
#home .home-title span + span { color: #f4eee2 !important; }
#home .home-landscape-image { animation: home-photo-drift 26s ease-in-out infinite alternate; }
@keyframes home-photo-drift { from { transform: scale(1.025) translate3d(0,0,0); } to { transform: scale(1.09) translate3d(0,-.6%,0); } }

#camere .rooms-scroll {
  inset: 82px 0 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0 clamp(20px,7vw,108px) 38px;
  background: #f1efe9;
}
#camere .rooms-opening,
#camere .room-collection,
#camere .rooms-section-label,
#camere .room-endnote { width: min(1320px,100%); margin-inline: auto; }
#camere .rooms-opening {
  display: grid;
  min-height: min(60svh,680px);
  grid-template-columns: minmax(260px,.78fr) minmax(0,1.22fr);
  align-items: center;
  gap: clamp(30px,6vw,92px);
  padding: 26px 0 20px;
}
#camere .rooms-opening-copy { max-width: 480px; padding: 18px 0; }
#camere .rooms-opening-copy .eyebrow { color: #607568; }
#camere .rooms-opening-title {
  margin: 21px 0 18px;
  color: #26352d;
  font: 500 clamp(54px,7vw,96px)/.84 "Cormorant Garamond",Georgia,serif;
  letter-spacing: -.04em;
  text-wrap: balance;
}
#camere .rooms-opening-title em { color: #718775; font-weight: 400; }
#camere .rooms-opening-copy > p:not(.eyebrow) { max-width: 42ch; margin: 0; color: #5e685f; font: 400 14px/1.75 "Manrope","DM Sans",sans-serif; }
#camere .rooms-opening-facts { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(52,75,67,.18); color: #526557; font: 600 9px/1.6 "Manrope","DM Sans",sans-serif; letter-spacing: .08em; text-transform: uppercase; }
#camere .rooms-opening-photo { position: relative; height: min(50svh,540px); min-height: 320px; margin: 0; overflow: hidden; border-radius: 7px 34px 7px 34px; background: #d9ddd4; isolation: isolate; }
#camere .rooms-opening-photo::after { position: absolute; inset: 46% 0 0; background: linear-gradient(180deg,transparent,rgba(18,28,22,.65)); content: ""; }
#camere .rooms-opening-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; transition: transform 1s cubic-bezier(.2,.7,.25,1); }
#camere .rooms-opening-photo:hover img { transform: scale(1.045); }
#camere .rooms-opening-photo figcaption { position: absolute; z-index: 1; right: 22px; bottom: 20px; left: 22px; display: flex; justify-content: space-between; gap: 14px; color: #fff; font: 500 10px/1.4 "Manrope","DM Sans",sans-serif; letter-spacing: .07em; text-transform: uppercase; }
#camere .rooms-section-label { display: flex; justify-content: space-between; gap: 18px; padding: 18px 0 15px; border-bottom: 1px solid rgba(52,75,67,.19); color: #607568; font: 600 9px/1.5 "Manrope","DM Sans",sans-serif; letter-spacing: .14em; text-transform: uppercase; }
#camere .room-collection { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); align-items: start; gap: 38px clamp(18px,4vw,58px); padding: 28px 0 44px; }
#camere .room-card { grid-column: span 6; min-width: 0; }
#camere .room-card:nth-child(even) { margin-top: 50px; }
#camere .room-card-image { position: relative; height: clamp(240px,28vw,370px); margin: 0; overflow: hidden; border-radius: 26px 7px 26px 7px; background: #dce0d7; isolation: isolate; }
#camere .room-card:nth-child(2) .room-card-image,
#camere .room-card:nth-child(3) .room-card-image { height: clamp(220px,23vw,310px); }
#camere .room-card-image::after { position: absolute; inset: 45% 0 0; background: linear-gradient(180deg,transparent,rgba(20,31,24,.64)); content: ""; }
#camere .room-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.7,.25,1),filter .6s ease; }
#camere .room-card:hover .room-card-image img { transform: scale(1.055); filter: saturate(1.04); }
#camere .room-card-image figcaption { position: absolute; z-index: 1; right: 18px; bottom: 16px; left: 18px; display: flex; justify-content: space-between; gap: 12px; color: #fff; font: 500 10px/1.4 "Manrope","DM Sans",sans-serif; letter-spacing: .06em; text-transform: uppercase; }
#camere .room-card-copy { max-width: 600px; padding: 17px 3px 0; }
#camere .room-card-copy .eyebrow { margin: 0; color: #718775; }
#camere .room-card-copy h3 { margin: 8px 0 9px; color: #26352d; font: 500 clamp(29px,3.2vw,42px)/1 "Cormorant Garamond",Georgia,serif; letter-spacing: -.02em; }
#camere .room-card-copy > p:last-child { max-width: 55ch; margin: 0; color: #626b63; font: 400 12px/1.7 "Manrope","DM Sans",sans-serif; }
#camere .room-endnote { display: flex; min-height: 0; align-items: center; flex-wrap: wrap; gap: 15px 26px; padding: 19px 0 12px; border-top: 1px solid rgba(52,75,67,.19); background: transparent; }
#camere .room-endnote p { flex: 1 1 280px; max-width: 55ch; margin: 0; color: #626b63; font: 400 12px/1.7 "Manrope","DM Sans",sans-serif; }
#camere .room-endnote .room-gallery-link { color: #344b43; font: 600 9px/1.5 "Manrope","DM Sans",sans-serif; letter-spacing: .08em; text-transform: uppercase; }
#camere .room-endnote .button { min-height: 42px; padding: 0 20px; }

#servizi .story-scroll { inset: 0; overflow-x: hidden; overflow-y: auto; padding-bottom: 18px; }
#servizi .service-opening { min-height: min(78svh,720px); margin: 0; }
#servizi .useful-services { padding: 32px clamp(20px,7vw,108px) 20px; }
#servizi .useful-services > .eyebrow { margin: 0 0 15px; }
#servizi .useful-services-row { max-width: 1320px; margin-inline: auto; gap: 12px clamp(14px,2vw,26px); }
#servizi .experience-details { padding: 40px clamp(20px,7vw,108px) 38px; background: #e9eee7; }
#servizi .experience-details-heading { max-width: 1080px; margin: 0 auto 25px; }
#servizi .experience-details-heading .editorial-title { margin: 10px 0 8px; font-size: clamp(42px,5.4vw,70px); line-height: .94; }
#servizi .experience-details-heading > p:not(.eyebrow) { max-width: 72ch; margin: 0; color: #59665e; font-size: 13px; line-height: 1.65; }
#servizi .experience-chooser { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 19px 0 20px; padding: 0 0 12px; border: 0; border-bottom: 1px solid rgba(52,75,67,.2); border-radius: 0; background: transparent; box-shadow: none; }
#servizi .experience-chooser > span { color: #607568; font: 600 9px/1.5 "Manrope","DM Sans",sans-serif; letter-spacing: .12em; text-transform: uppercase; }
#servizi .experience-chooser > div { display: flex; flex-wrap: wrap; gap: 8px 24px; }
#servizi .experience-chooser button { display: inline-flex; min-height: 38px; align-items: center; gap: 8px; padding: 3px 0 5px; border: 0; border-bottom: 1px solid transparent; border-radius: 0; color: #41554a; background: transparent; font: 600 10px/1.4 "Manrope","DM Sans",sans-serif; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color .25s ease,border-color .25s ease; }
#servizi .experience-chooser button:hover { color: #18271e; }
#servizi .experience-chooser button[aria-pressed="true"] { border-bottom-color: #506c5a; color: #243b2c; background: transparent; box-shadow: none; }
#servizi .experience-chooser .season-glyph { display: inline-block; font-family: "Apple Color Emoji","Segoe UI Emoji",sans-serif; font-size: 18px; line-height: 1; }
#servizi .experience-chooser button[aria-pressed="false"] .season-glyph { animation: season-sway 2.7s ease-in-out infinite alternate; }
#servizi .experience-chooser button:nth-child(2) .season-glyph { animation-delay: -.9s; }
#servizi .experience-chooser button:nth-child(3) .season-glyph { animation-delay: -1.7s; }
@keyframes season-sway { from { transform: translateX(-5px) rotate(-6deg); } to { transform: translateX(5px) rotate(6deg); } }
#servizi .experience-season-viewport { width: 100%; overflow: hidden; }
#servizi .experience-season-track { display: flex; width: 300%; align-items: stretch; transition: transform .72s cubic-bezier(.2,.7,.2,1); will-change: transform; }
#servizi .experience-season { flex: 0 0 33.333333%; width: 33.333333%; max-width: none; min-width: 0; margin: 0; padding: 0 0 10px; border: 0; }
#servizi .experience-season-heading { max-width: none; margin: 0 0 14px; padding: 0 0 12px; border-bottom: 1px solid rgba(52,75,67,.16); }
#servizi .experience-season-heading > span { display: inline-block; min-height: 0; padding: 0; color: #607568; background: transparent; font-size: 9px; letter-spacing: .13em; }
#servizi .experience-season-heading h4 { margin: 7px 0 0; color: #26352d; font-size: clamp(27px,3.3vw,42px); line-height: 1; }
#servizi .experience-season-heading > p { max-width: 82ch; margin: 11px 0 0; color: #59665e; font-size: 12px; line-height: 1.62; }
#servizi .experience-photo-grid { display: flex; align-items: stretch; gap: 14px; overflow-x: auto; overflow-y: hidden; padding: 6px 2px 13px; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: #8da08f transparent; }
#servizi .experience-photo,
#servizi .experience-photo:nth-child(n) { position: relative; flex: 0 0 clamp(280px,30vw,390px); width: clamp(280px,30vw,390px); height: clamp(300px,31vw,370px); min-height: 0; margin: 0; overflow: hidden; border: 0; border-radius: 22px 7px 22px 7px; background: #dbe2d8; box-shadow: 0 10px 24px rgba(35,52,44,.09); scroll-snap-align: start; }
#servizi .experience-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transform: translate3d(0,var(--scroll-y,0px),0) scale(1.035); transition: transform .75s cubic-bezier(.2,.7,.25,1),filter .5s ease; }
#servizi .experience-photo:hover img { transform: translate3d(0,var(--scroll-y,0px),0) scale(1.08); filter: brightness(1.04); }
#servizi .experience-photo figcaption { padding: 52px 16px 16px; background: linear-gradient(0deg,rgba(25,41,34,.88),rgba(25,41,34,.12) 78%,transparent); }
#servizi .experience-photo h5 { font-size: clamp(19px,2vw,24px); }
#servizi .experience-photo p { max-width: 42ch; font-size: 11px; line-height: 1.55; }

#ristorante .restaurant-lounge-scene { min-height: 100svh; scroll-snap-align: start; }
#ristorante .restaurant-lounge-video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }

@media (max-width: 760px) {
  #home .home-landscape { min-height: max(560px,82svh); padding: 80px 22px 36px; }
  #home .home-landscape-copy h2 { margin: 16px 0 14px; font-size: clamp(54px,13vw,78px); }
  #home .home-landscape-copy > p:not(.eyebrow) { font-size: 12px; }
  #camere .rooms-scroll { inset: 72px 0 0; padding: 0 20px 26px; }
  #camere .rooms-opening { min-height: 0; grid-template-columns: 1fr; gap: 22px; padding: 33px 0 24px; }
  #camere .rooms-opening-copy { max-width: 560px; padding: 0; }
  #camere .rooms-opening-title { margin: 13px 0 12px; font-size: clamp(50px,12vw,72px); }
  #camere .rooms-opening-copy > p:not(.eyebrow) { font-size: 12px; }
  #camere .rooms-opening-facts { gap: 8px 12px; margin-top: 17px; padding-top: 12px; font-size: 8px; }
  #camere .rooms-opening-photo { height: 43svh; min-height: 250px; max-height: 390px; border-radius: 6px 25px 6px 25px; }
  #camere .rooms-opening-photo figcaption { right: 15px; bottom: 14px; left: 15px; font-size: 8px; }
  #camere .rooms-section-label { padding: 14px 0 11px; font-size: 8px; }
  #camere .room-collection { grid-template-columns: 1fr; gap: 27px; padding: 21px 0 30px; }
  #camere .room-card,#camere .room-card:nth-child(even) { grid-column: 1; margin-top: 0; }
  #camere .room-card-image,#camere .room-card:nth-child(2) .room-card-image,#camere .room-card:nth-child(3) .room-card-image { height: clamp(230px,70vw,310px); }
  #camere .room-card-image figcaption { right: 14px; bottom: 13px; left: 14px; font-size: 8px; }
  #camere .room-card-copy { padding-top: 13px; }
  #camere .room-card-copy h3 { font-size: 31px; }
  #camere .room-card-copy > p:last-child { font-size: 11px; }
  #camere .room-endnote { align-items: flex-start; gap: 12px 18px; padding-top: 15px; }
  #camere .room-endnote p { flex-basis: 100%; font-size: 11px; }
  #camere .room-endnote .button { min-height: 39px; }
  #servizi .service-opening { min-height: 66svh; }
  #servizi .useful-services { padding: 24px 20px 12px; }
  #servizi .experience-details { padding: 32px 20px 26px; }
  #servizi .experience-details-heading { margin-bottom: 18px; }
  #servizi .experience-details-heading .editorial-title { font-size: clamp(39px,10vw,56px); }
  #servizi .experience-details-heading > p:not(.eyebrow) { font-size: 11px; }
  #servizi .experience-chooser { align-items: flex-start; flex-direction: column; gap: 7px; margin: 15px 0 15px; }
  #servizi .experience-chooser > div { width: 100%; justify-content: space-between; gap: 12px; }
  #servizi .experience-chooser button { min-height: 34px; font-size: 9px; }
  #servizi .experience-chooser .season-glyph { font-size: 17px; }
  #servizi .experience-season-heading { margin-bottom: 12px; padding-bottom: 10px; }
  #servizi .experience-season-heading h4 { font-size: 29px; }
  #servizi .experience-season-heading > p { font-size: 10px; line-height: 1.58; }
  #servizi .experience-photo-grid { gap: 11px; margin-right: -20px; padding-right: 20px; }
  #servizi .experience-photo,#servizi .experience-photo:nth-child(n) { flex-basis: min(82vw,350px); width: min(82vw,350px); height: 300px; border-radius: 18px 6px 18px 6px; }
  #servizi .experience-photo figcaption { right: 13px; bottom: 13px; left: 13px; padding: 43px 13px 13px; }
  #servizi .experience-photo h5 { font-size: 20px; }
  #servizi .experience-photo p { font-size: 10px; }
  #ristorante .restaurant-lounge-scene { min-height: 82svh; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none !important; }
  .site-header.is-hidden { opacity: 1; transform: none; }
  #home .home-landscape-image,#servizi .experience-season-track,#servizi .experience-chooser .season-glyph { animation: none !important; transition: none !important; }
  #camere .room-card-image img,#camere .rooms-opening-photo img { transition: none !important; }
}

/* Spazio riservato al menu: resta leggibile e non copre i titoli durante lo scroll. */
.site-header {
  background: linear-gradient(180deg, rgba(20, 27, 23, .28), rgba(20, 27, 23, 0));
}
.site-header.is-light {
  background: rgba(244, 243, 236, .97);
  box-shadow: 0 8px 30px rgba(31, 43, 36, .08);
}
.site-header.is-hidden { opacity: 1; transform: none; pointer-events: auto; }
#camere .rooms-scroll,
#ristorante .restaurant-scroll,
#servizi .story-scroll,
#galleria .gallery-layout,
#contatti .contact-layout {
  top: 82px;
  bottom: 0;
  height: auto;
}
#recensioni.scene { overflow: hidden; }
#recensioni .reviews-layout {
  position: absolute;
  inset: 82px 0 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-top: clamp(36px, 5vh, 58px);
  scrollbar-color: #aab5a8 transparent;
}

/* La terza scena aggiunge una pausa visiva alla sequenza della home. */
#home .home-third-scene {
  position: relative;
  display: grid;
  min-height: max(680px, 96svh);
  place-items: center;
  overflow: hidden;
  padding: 92px clamp(24px, 7vw, 108px) 48px;
  isolation: isolate;
  background: #34453c;
}
#home .home-third-image {
  position: absolute;
  inset: 0;
  background-position: center 48%;
  background-size: cover;
  transform: scale(1.035);
  animation: home-third-drift 28s ease-in-out infinite alternate;
}
#home .home-third-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(18, 28, 23, .50), rgba(18, 28, 23, .08) 75%), linear-gradient(0deg, rgba(18, 28, 23, .36), transparent 65%);
}
#home .home-third-copy {
  position: relative;
  z-index: 1;
  width: min(900px, 100%);
  margin: 0 auto;
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 22px rgba(14, 24, 18, .28);
}
#home .home-third-copy .eyebrow { color: rgba(255,255,255,.84); }
#home .home-third-copy h2 {
  margin: 18px 0;
  font: 500 clamp(58px, 8.8vw, 118px)/.88 "Cormorant Garamond", Georgia, serif;
  letter-spacing: -.045em;
  text-wrap: balance;
}
#home .home-third-copy h2 em { color: #e8e0d0; font-weight: 400; }
#home .home-third-copy > p:last-child {
  max-width: 55ch;
  margin: 0 auto;
  color: rgba(255,255,255,.92);
  font: 400 14px/1.8 "Manrope", "DM Sans", sans-serif;
}
@keyframes home-third-drift {
  from { transform: scale(1.035) translate3d(0,0,0); }
  to { transform: scale(1.09) translate3d(0,-.6%,0); }
}

/* Dettagli illustrati nelle camere, senza attribuire dotazioni non verificate. */
#camere .room-card-copy h3 .room-mark {
  display: inline-block;
  margin-right: 3px;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  font-size: .62em;
  vertical-align: .08em;
  filter: drop-shadow(0 3px 5px rgba(57, 75, 63, .15));
  animation: room-mark-float 3.6s ease-in-out infinite alternate;
}
#camere .room-card:nth-child(2) .room-mark { animation-delay: -.7s; }
#camere .room-card:nth-child(3) .room-mark { animation-delay: -1.4s; }
#camere .room-card:nth-child(4) .room-mark { animation-delay: -2.1s; }
#camere .room-card:nth-child(5) .room-mark { animation-delay: -2.8s; }
@keyframes room-mark-float {
  from { transform: translateY(1px) rotate(-3deg); }
  to { transform: translateY(-3px) rotate(3deg); }
}
#camere .rooms-stay-amenities {
  display: flex;
  width: min(1320px, 100%);
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 9px 22px;
  margin: -8px auto 25px;
  padding: 16px 12px;
  border-top: 1px solid rgba(52, 75, 67, .15);
  border-bottom: 1px solid rgba(52, 75, 67, .15);
  color: #526557;
  font: 600 10px/1.5 "Manrope", "DM Sans", sans-serif;
}
#camere .rooms-stay-amenities span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
#camere .rooms-stay-amenities i {
  font: normal 18px/1 "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  animation: service-symbol-drift 4.2s ease-in-out infinite;
}
#camere .rooms-stay-amenities span:nth-child(2) i { animation-delay: -.8s; }
#camere .rooms-stay-amenities span:nth-child(3) i { animation-delay: -1.6s; }
#camere .rooms-stay-amenities span:nth-child(4) i { animation-delay: -2.4s; }
#camere .rooms-stay-amenities span:nth-child(5) i { animation-delay: -3.2s; }

/* Il selettore ha due righe e i tre pannelli condividono la stessa quota di partenza. */
#servizi .experience-chooser {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  justify-content: start;
  gap: 7px;
  margin-top: 18px;
}
#servizi .experience-chooser > div {
  display: grid;
  width: min(520px, 100%);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 18px;
}
#servizi .experience-chooser button {
  min-height: 43px;
  justify-content: center;
  padding-inline: 10px;
  border-bottom-color: rgba(52,75,67,.12);
}
#servizi .experience-chooser button:last-child {
  width: calc(50% - 9px);
  grid-column: 1 / -1;
  justify-self: center;
}
#servizi .experience-season-viewport { height: var(--season-panel-height, auto); transition: height .5s cubic-bezier(.2,.7,.2,1); }
#servizi .experience-season-track { align-items: flex-start; }
#servizi .experience-season { align-self: flex-start; }

/* La scena del camino appare subito dopo l’apertura ed è sempre pronta a partire. */
#ristorante .restaurant-lounge-scene {
  height: min(92svh, 840px);
  min-height: 540px;
  scroll-snap-align: start;
  background: #302d28 url("./assets/video/lounge-fireplace-poster.jpg") center 52% / cover no-repeat;
}
#ristorante .restaurant-lounge-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
#ristorante .restaurant-lounge-shade { background: linear-gradient(90deg, rgba(15,18,16,.66), rgba(15,18,16,.06) 86%), linear-gradient(0deg, rgba(12,17,14,.72), transparent 72%); }
#ristorante .restaurant-lounge-copy { width: min(100%, 1060px); }
#ristorante .restaurant-lounge-copy .photo-title { white-space: normal; text-wrap: balance; }

/* La foto diurna dell’hotel accompagna la sezione contatti. */
#contatti .contact-hotel-photo {
  position: relative;
  width: min(1000px, 100%);
  height: clamp(240px, 35vw, 390px);
  margin: 0 auto 34px;
  overflow: hidden;
  border-radius: 28px 8px 28px 8px;
  background: #6c7771;
  box-shadow: 0 18px 42px rgba(45, 52, 47, .12);
  isolation: isolate;
}
#contatti .contact-photo-pair { position: absolute; inset: 0; overflow: hidden; }
#contatti .contact-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 53%;
}
#contatti .contact-hotel-photo figcaption {
  position: absolute;
  z-index: 2;
  right: clamp(15px, 3vw, 30px);
  bottom: clamp(14px, 2.5vw, 24px);
  left: clamp(15px, 3vw, 30px);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  color: #fff;
  text-shadow: 0 2px 15px rgba(0,0,0,.45);
}
#contatti .contact-photo-caption-copy { font: 500 clamp(15px, 2vw, 22px)/1.2 "Cormorant Garamond", Georgia, serif; }

@media (max-width: 760px) {
  #camere .rooms-scroll,
  #ristorante .restaurant-scroll,
  #servizi .story-scroll,
  #galleria .gallery-layout,
  #contatti .contact-layout,
  #recensioni .reviews-layout { top: 72px; }
  #recensioni .reviews-layout { padding: 30px 20px 54px; }
  #home .home-third-scene { min-height: max(560px, 82svh); padding: 76px 22px 34px; }
  #home .home-third-copy h2 { font-size: clamp(50px, 12.5vw, 78px); }
  #home .home-third-copy > p:last-child { font-size: 12px; }
  #camere .room-card-copy h3 .room-mark { font-size: .68em; }
  #camere .rooms-stay-amenities { justify-content: flex-start; gap: 10px 15px; margin: 0 auto 18px; padding: 14px 0; font-size: 9px; }
  #servizi .experience-chooser { align-items: start; margin: 14px 0; }
  #servizi .experience-chooser > div { width: min(100%, 440px); gap: 3px 10px; }
  #servizi .experience-chooser button { min-height: 40px; font-size: 9px; }
  #servizi .experience-chooser button:last-child { width: calc(50% - 5px); }
  #ristorante .restaurant-lounge-scene { height: 82svh; min-height: 480px; }
  #ristorante .restaurant-lounge-copy .photo-title { font-size: clamp(36px, 10vw, 62px); }
  #contatti .contact-hotel-photo { height: clamp(250px, 68vw, 360px); margin-bottom: 28px; border-radius: 20px 7px 20px 7px; }
  #contatti .contact-hotel-photo figcaption { align-items: flex-start; flex-direction: column; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  #home .home-third-image,#camere .room-card-copy h3 .room-mark,#camere .rooms-stay-amenities i { animation: none !important; }
}

/* Il menu occupa una fascia propria, così le voci restano separate dai contenuti. */
:root { --site-header-height: 86px; }
.site-header { min-height: var(--site-header-height); }
.site-header.is-light,
.site-header.is-on-paper { background: rgba(244,243,236,.98) !important; }
.site-header:not(.is-light):not(.is-on-paper) { background: linear-gradient(180deg,rgba(20,27,23,.42),rgba(20,27,23,.08)) !important; }
.primary-nav { min-width: max-content; flex-wrap: nowrap; }
.primary-nav a,
.brand,
.header-booking { white-space: nowrap; }
#camere .rooms-scroll,
#ristorante .restaurant-scroll,
#servizi .story-scroll,
#galleria .gallery-layout,
#contatti .contact-layout { top: var(--site-header-height); }
#recensioni .reviews-layout { inset: var(--site-header-height) 0 0; }
#servizi .story-scroll { scroll-padding-top: 18px; }

@media (min-width: 761px) and (max-width: 1120px) {
  .site-header { grid-template-columns: minmax(116px,.8fr) auto minmax(100px,.65fr); gap: 12px; padding-inline: 18px; }
  .brand-name { font-size: 28px; }
  .primary-nav { gap: clamp(8px,1vw,13px); }
  .primary-nav a { font-size: 8px; letter-spacing: .035em; }
  .header-booking { padding-inline: 8px; font-size: 7px; letter-spacing: .04em; }
}

/* Selettore su due righe e intestazioni di stagione allineate tra loro. */
#servizi .experience-chooser > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
#servizi .experience-season-heading {
  display: grid;
  grid-template-rows: 12px auto minmax(38px,auto);
  align-content: start;
  min-height: 154px;
}
#servizi .experience-season-heading > span { align-self: start; }
#servizi .experience-season-heading h4 { align-self: start; }
#servizi .experience-season-heading > p { align-self: start; margin-top: 10px; }
#servizi .experience-season-viewport { will-change: height; }

/* Pictogrammi brevi per le dotazioni verificate delle camere. */
#camere .rooms-opening-facts i {
  margin-right: 4px;
  font: normal 14px/1 "Apple Color Emoji","Segoe UI Emoji",sans-serif;
  vertical-align: -1px;
}

@media (max-width: 760px) {
  :root { --site-header-height: 72px; }
  .site-header { min-height: var(--site-header-height); }
  .site-header.is-light,
  .site-header.is-on-paper { background: rgba(244,243,236,.98) !important; }
  #camere .rooms-scroll,
  #ristorante .restaurant-scroll,
  #servizi .story-scroll,
  #galleria .gallery-layout,
  #contatti .contact-layout { top: var(--site-header-height); }
  #recensioni .reviews-layout { inset: var(--site-header-height) 0 0; }
  #servizi .experience-season-heading { min-height: 145px; grid-template-rows: 12px auto minmax(44px,auto); }
}

/* Passaggio: camino dopo i piatti, selettore stagioni sempre a portata di mano. */
#ristorante .restaurant-cellar-image {
  display: block;
  width: min(100%, 470px);
  height: clamp(190px, 23vw, 270px);
  margin-top: 22px;
  border-radius: 22px 7px 22px 7px;
  object-fit: cover;
  box-shadow: 0 14px 32px rgba(39, 34, 29, .12);
}
#ristorante .restaurant-content { padding-bottom: 26px; }
#ristorante .restaurant-dishes { padding-top: clamp(42px, 5vw, 64px); }

#servizi .experience-chooser {
  position: sticky;
  display: flex;
  align-items: center;
  justify-content: space-between;
  top: 0;
  z-index: 8;
  flex-wrap: nowrap;
  gap: 18px;
  margin: 8px 0 16px;
  padding: 11px clamp(12px, 2.4vw, 28px);
  border: 1px solid rgba(52, 75, 67, .12);
  border-radius: 5px 5px 18px 5px;
  background: rgba(233, 238, 231, .97);
  box-shadow: 0 8px 20px rgba(38, 54, 45, .08);
  backdrop-filter: blur(12px);
}
#servizi .experience-chooser > div {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: clamp(12px, 2vw, 26px);
}
#servizi .experience-chooser button {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Le schede restano in colonna: lo scorrimento orizzontale è solo tra le tre stagioni. */
#servizi .experience-photo-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: clamp(16px, 2.4vw, 28px);
  overflow: visible;
  padding: 8px 0 20px;
  scroll-snap-type: none;
  overscroll-behavior-inline: auto;
}
#servizi .experience-photo,
#servizi .experience-photo:nth-child(n) {
  flex: none;
  width: min(100%, 1080px);
  height: clamp(300px, 39vw, 470px);
  min-height: 0;
  aspect-ratio: auto;
  scroll-snap-align: none;
}

@media (max-width: 760px) {
  #ristorante .restaurant-content { padding-bottom: 24px; }
  #ristorante .restaurant-dishes { padding-top: 40px; }
  #ristorante .restaurant-cellar-image { height: clamp(180px, 58vw, 250px); margin-top: 17px; }
  #servizi .experience-chooser {
    gap: 0;
    margin: 5px 0 14px;
    padding: 8px 7px;
  }
  #servizi .experience-chooser > span { display: none; }
  #servizi .experience-chooser > div {
    flex: 1 1 auto;
    width: 100%;
    justify-content: space-between;
    gap: 4px;
  }
  #servizi .experience-chooser button {
    min-width: 0;
    min-height: 38px;
    gap: 5px;
    padding: 2px 5px;
    font-size: 9px;
  }
  #servizi .experience-photo-grid { gap: 12px; margin: 0; padding: 5px 0 14px; }
  #servizi .experience-photo,
  #servizi .experience-photo:nth-child(n) {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    border-radius: 18px 6px 18px 6px;
  }
}
 .site-header.is-on-paper .header-booking,
 .site-header.is-light .header-booking { color: #293630; border-color: rgba(41, 54, 48, .42); }

/* Fiocchi sottili e irregolari sulla sola immagine iniziale. */
#home .home-snowfall {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
#home .home-copy,
#home .home-location { z-index: 3; }
@media (prefers-reduced-motion: reduce) {
  #home .home-snowfall { display: none; }
}

/* Finitura corrente: selettore integrato, passaggi stagionali istantanei e testata stabile. */
.site-header.is-light,
.site-header.is-on-paper {
  background: var(--scene-header-bg, rgba(244, 243, 236, .98)) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  transition: none !important;
}
body[data-view="camere"] { --scene-header-bg: rgba(241, 239, 233, .98); }
body[data-view="ristorante"] { --scene-header-bg: rgba(244, 245, 239, .98); }
body[data-view="servizi"] { --scene-header-bg: #e9eee7; }
body[data-view="galleria"],
body[data-view="recensioni"] { --scene-header-bg: rgba(244, 245, 239, .98); }
body[data-view="contatti"] { --scene-header-bg: rgba(248, 245, 238, .98); }

#servizi .experience-chooser {
  border: 0 !important;
  border-radius: 0 !important;
  background: #e9eee7 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}
#servizi .experience-season-track,
#servizi .experience-season-viewport {
  transition: none !important;
  will-change: auto !important;
}
#servizi .experience-chooser .season-glyph,
#servizi .experience-chooser button[aria-pressed="false"] .season-glyph {
  animation: none !important;
  transform: none !important;
}
#servizi .experience-culture .experience-season-heading,
#servizi .experience-culture .experience-photo-grid {
  margin-inline: clamp(-34px, -2.6vw, -16px);
}
#servizi .experience-culture .experience-season-heading > p {
  max-width: 96ch;
}
#servizi .experience-culture .experience-photo,
#servizi .experience-culture .experience-photo:nth-child(n) {
  height: clamp(280px, 34vw, 410px);
}

/* Contatti in sequenza editoriale: fotografia, mappa e recapiti senza card ripetute. */
#contatti .contact-layout {
  padding: clamp(38px, 5vw, 64px) clamp(20px, 8vw, 120px) 72px;
  background: radial-gradient(ellipse at 4% 20%, rgba(123, 148, 126, .12), transparent 36%), #f4f5ef;
}
#contatti .contact-heading {
  max-width: 1120px;
  margin: 0 auto clamp(24px, 3.5vw, 40px);
  text-align: left;
}
#contatti .contact-heading .eyebrow::after { margin-inline: 0; }
#contatti .contact-heading .editorial-title {
  margin: 12px 0 12px;
  color: #26352d;
  font-size: clamp(58px, 7vw, 88px);
}
#contatti .contact-intro {
  max-width: 60ch;
  margin: 0;
  color: #59665e;
}
#contatti .contact-prompt {
  align-items: flex-start;
  justify-content: flex-start;
  margin: 17px 0 0;
  color: #50685a;
}
#contatti .contact-hotel-photo {
  width: min(100%, 1120px);
  height: clamp(230px, 28vw, 350px);
  margin-bottom: clamp(28px, 4vw, 44px);
  border-radius: 24px 8px 24px 8px;
  box-shadow: 0 14px 34px rgba(37, 57, 47, .12);
}
#contatti .contact-map-column,
#contatti .contact-footer { max-width: 1120px; }
#contatti .contact-map-heading {
  justify-content: space-between;
  margin-bottom: 11px;
  text-align: left;
}
#contatti .map-panel {
  height: clamp(220px, 27vw, 320px);
  min-height: 220px;
  border: 0;
  border-radius: 20px 7px 20px 7px;
  box-shadow: 0 14px 34px rgba(37, 57, 47, .12);
}
#contatti .contact-location-note {
  margin: 12px 2px 0;
  text-align: left;
}
#contatti .contact-footer {
  margin-top: 28px;
  padding: 24px clamp(20px, 3.4vw, 42px) 25px;
  border: 0;
  border-left: 4px solid #718775;
  border-radius: 0 20px 20px 0;
  background: #e9eee7;
  box-shadow: none;
}
#contatti .contact-address { padding: 0 0 12px; }
#contatti .contact-address .contact-label { color: #50685a; }
#contatti .contact-address address { color: #526057; }
#contatti .contact-methods { border-top: 1px solid rgba(52, 75, 67, .18); }
#contatti .contact-method,
#contatti .contact-method:hover {
  min-height: 54px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(52, 75, 67, .16);
  color: #26352d;
  background: transparent !important;
  box-shadow: none !important;
}
#contatti .contact-method:hover { padding-left: 6px; }
#contatti .contact-method > span { color: #68766c; }
#contatti .contact-method strong { color: #26352d; }
#contatti .social-links { margin-top: 17px; }
#contatti .social-links a { background: #52685d; }
#contatti .contact-explore { margin-top: 19px; }

@media (max-width: 760px) {
  #servizi .experience-culture .experience-season-heading,
  #servizi .experience-culture .experience-photo-grid { margin-inline: -10px; }
  #servizi .experience-culture .experience-photo,
  #servizi .experience-culture .experience-photo:nth-child(n) { height: auto; }
  #contatti .contact-layout { padding: 34px 20px 52px; }
  #contatti .contact-heading { margin-bottom: 25px; }
  #contatti .contact-heading .editorial-title { font-size: clamp(54px, 14vw, 68px); }
  #contatti .contact-hotel-photo { height: clamp(230px, 66vw, 330px); margin-bottom: 28px; }
  #contatti .contact-map-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  #contatti .map-panel { height: 245px; min-height: 245px; }
  #contatti .contact-footer { margin-top: 24px; padding: 20px 18px 22px; }
  #contatti .contact-method,
  #contatti .contact-method:hover { align-items: flex-start; flex-direction: column; gap: 5px; }
}

/* Nuovo ritmo tipografico: un carattere riconoscibile per ogni sezione. */
body { font-family: "Outfit", "DM Sans", sans-serif; }
#home :is(.home-title, .home-landscape-copy h2, .home-third-copy h2) { font-family: "Italiana", "Cormorant Garamond", serif; font-weight: 400; }
#camere :is(.rooms-opening-title, .room-card-copy h3) { font-family: "Fraunces", "Cormorant Garamond", serif; font-weight: 400; }
#ristorante :is(.photo-title, .restaurant-main-title, .restaurant-detail h4) { font-family: "Bodoni Moda", "Cormorant Garamond", serif; font-weight: 400; }
#servizi :is(.photo-title, .experience-details-heading .editorial-title, .experience-season-heading h4, .experience-photo h5) { font-family: "Fraunces", "Cormorant Garamond", serif; font-weight: 400; }
#galleria :is(.gallery-heading .editorial-title, .gallery-card figcaption) { font-family: "Italiana", "Cormorant Garamond", serif; font-weight: 400; }
#recensioni :is(.reviews-heading .editorial-title, .review-score strong) { font-family: "Fraunces", "Cormorant Garamond", serif; font-weight: 400; }
#contatti :is(.contact-heading .editorial-title, .contact-label) { font-family: "Bodoni Moda", "Cormorant Garamond", serif; font-weight: 400; }
#home .home-copy > .eyebrow,
#home .home-lead,
#home .home-location,
#camere .rooms-opening-copy > p:not(.eyebrow),
#camere .room-card-copy > p:last-child,
#camere .room-endnote > p,
#ristorante :is(.restaurant-intro, .restaurant-detail > p, .restaurant-lounge-copy > p:last-child),
#servizi :is(.story-description, .experience-details-heading > p:not(.eyebrow), .experience-season-heading > p, .experience-photo figcaption > p, .useful-service > p),
#galleria .gallery-heading > p:last-child,
#recensioni .reviews-heading > p:last-child,
#contatti :is(.contact-intro, .contact-address address, .contact-location-note) { font-family: "Outfit", "DM Sans", sans-serif; }

/* Le tre stelle del Gran Baita restano visibili e si illuminano una alla volta. */
.brand-stars, .rating-stars { display: inline-flex; align-items: center; gap: 2px; color: #d8ae6f; white-space: nowrap; }
.brand-stars { margin-left: 5px; vertical-align: 1px; font-size: 9px; letter-spacing: 0; }
.rating-stars { margin-inline: 4px; font-size: .9em; vertical-align: .02em; }
.brand-stars i, .rating-stars i { display: inline-block; font-style: normal; transform-origin: 50% 55%; animation: hotel-star-turn 9s ease-in-out infinite; }
.brand-stars i:nth-child(2), .rating-stars i:nth-child(2) { animation-delay: -3s; }
.brand-stars i:nth-child(3), .rating-stars i:nth-child(3) { animation-delay: -6s; }
@keyframes hotel-star-turn {
  0%, 72%, 100% { transform: rotate(0) scale(1); }
  78% { transform: rotate(72deg) scale(1.24); }
  84% { transform: rotate(180deg) scale(1); }
  90% { transform: rotate(288deg) scale(1.16); }
}

/* Titoli, testi e fotografie entrano con movimenti diversi mentre si scorre. */
.has-js .scroll-reveal.reveal-heading,
.has-js .reveal-on-view.reveal-heading {
  opacity: 0 !important;
  transform: var(--heading-from, translate3d(0, 30px, 0)) !important;
  clip-path: var(--heading-clip, inset(0 0 18% 0)) !important;
  filter: blur(var(--heading-blur, 0px));
  transition: opacity .75s ease, transform .88s cubic-bezier(.18,.72,.2,1), clip-path .9s cubic-bezier(.18,.72,.2,1), filter .75s ease !important;
  transition-delay: var(--reveal-delay, 0ms) !important;
}
.has-js .scroll-reveal.reveal-heading.is-visible,
.has-js .reveal-on-view.reveal-heading.is-visible {
  opacity: 1 !important; transform: translate3d(0,0,0) scale(1) !important; clip-path: inset(0) !important; filter: blur(0) !important;
}
.reveal-heading--rise { --heading-from: translate3d(0, 34px, 0); --heading-clip: inset(0 0 24% 0); }
.reveal-heading--wipe { --heading-from: translate3d(-18px, 0, 0); --heading-clip: inset(0 100% 0 0); }
.reveal-heading--settle { --heading-from: translate3d(0, 12px, 0) scale(.91); --heading-clip: inset(8% 0 8% 0); --heading-blur: 5px; }
.reveal-heading--slide { --heading-from: translate3d(28px, 0, 0); --heading-clip: inset(0 0 0 100%); }
.has-js .scroll-reveal.reveal-copy,
.has-js .reveal-on-view.reveal-copy {
  opacity: 0 !important; transform: var(--copy-from, translate3d(0, 14px, 0)) !important;
  transition: opacity .68s ease, transform .72s cubic-bezier(.2,.7,.25,1) !important;
  transition-delay: var(--reveal-delay, 60ms) !important;
}
.has-js .scroll-reveal.reveal-copy.is-visible,
.has-js .reveal-on-view.reveal-copy.is-visible { opacity: 1 !important; transform: translate3d(0,0,0) !important; }
.reveal-copy--soft { --copy-from: translate3d(0, 16px, 0); }
.reveal-copy--drift { --copy-from: translate3d(-18px, 8px, 0); }
.reveal-copy--arrive { --copy-from: translate3d(18px, 8px, 0); }
.has-js .scroll-reveal.reveal-image,
.has-js .reveal-on-view.reveal-image {
  opacity: 0 !important; transform: var(--image-from, translate3d(0,18px,0) scale(1.035)) !important;
  clip-path: var(--image-clip, inset(0 0 100% 0 round 20px)) !important;
  transition: opacity .8s ease, transform 1.05s cubic-bezier(.2,.72,.18,1), clip-path 1.05s cubic-bezier(.2,.72,.18,1) !important;
  transition-delay: var(--reveal-delay, 40ms) !important;
}
.has-js .scroll-reveal.reveal-image.is-visible,
.has-js .reveal-on-view.reveal-image.is-visible { opacity: 1 !important; transform: translate3d(0,0,0) scale(1) !important; clip-path: inset(0 round 20px) !important; }
.reveal-image--left { --image-from: translate3d(-26px,0,0) scale(1.04); --image-clip: inset(0 0 0 100% round 20px); }
.reveal-image--right { --image-from: translate3d(26px,0,0) scale(1.04); --image-clip: inset(0 100% 0 0 round 20px); }
.reveal-image--lift { --image-from: translate3d(0,24px,0) scale(1.05); --image-clip: inset(100% 0 0 0 round 20px); }
.reveal-image--zoom { --image-from: translate3d(0,0,0) scale(.92); --image-clip: inset(10% 8% 10% 8% round 38px); }

/* Il pannello delle stagioni usa la stessa larghezza e gli stessi margini per tutte. */
#servizi .experience-culture .experience-season-heading,
#servizi .experience-culture .experience-photo-grid { margin-inline: 0 !important; }
#servizi .experience-culture .experience-season-heading > p { max-width: 82ch; }
#servizi .experience-culture .experience-photo,
#servizi .experience-culture .experience-photo:nth-child(n) { height: clamp(300px, 39vw, 470px); }
#servizi .experience-chooser > div { display: flex !important; width: fit-content; grid-template-columns: none !important; align-items: stretch; gap: clamp(8px, 1.6vw, 20px); }
#servizi .experience-chooser button,
#servizi .experience-chooser button:last-child { width: clamp(106px, 13vw, 158px) !important; min-width: 0; flex: 0 0 clamp(106px, 13vw, 158px); grid-column: auto !important; justify-self: auto; }

/* Recapito e tasto di prenotazione leggibili anche sui display stretti. */
#contatti .contact-method[href^="tel:"] strong { white-space: nowrap; font-family: "Outfit", sans-serif; font-size: clamp(15px, 1.2vw, 17px); font-weight: 600; letter-spacing: .025em; }
#contatti .contact-method[href^="mailto:"] strong { max-width: 100%; overflow-wrap: anywhere; font-family: "Outfit", sans-serif; font-size: clamp(13px, 1.05vw, 15px); }
.booking-open-cta { font-family: "Outfit", "DM Sans", sans-serif; cursor: pointer; }
.header-booking.booking-open-cta { appearance: none; border-radius: 30px 30px 30px 8px; color: inherit; background: transparent; }
.header-booking.booking-open-cta:hover { color: var(--forest); background: #fff; }
.button.booking-open-cta { justify-content: center; }
.booking-dialog { width: min(660px, calc(100% - 30px)); max-width: none; padding: 0; border: 0; color: #27372e; background: transparent; overflow: visible; }
.booking-dialog::backdrop { background: rgba(23, 34, 28, .62); backdrop-filter: blur(7px); }
.booking-dialog-card { position: relative; padding: clamp(34px, 6vw, 66px); border: 1px solid rgba(87, 111, 91, .2); border-radius: 28px 8px 28px 8px; background: radial-gradient(ellipse at 92% 0, rgba(160, 183, 151, .2), transparent 38%), #f4f5ef; box-shadow: 0 28px 90px rgba(9, 18, 12, .3); }
.booking-dialog-card > .eyebrow { color: #5f7563; }
.booking-dialog-card .editorial-title { margin: 18px 0 18px; color: #27372e; font: 400 clamp(46px, 8vw, 78px)/.92 "Italiana", "Cormorant Garamond", serif; }
.booking-dialog-card .editorial-title em { color: #718775; font-style: italic; }
.booking-dialog-card > p:not(.eyebrow) { max-width: 52ch; margin: 0; color: #5d695f; font: 400 15px/1.7 "Outfit", sans-serif; }
.booking-dialog-close { position: absolute; top: 15px; right: 17px; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(52,75,67,.2); border-radius: 50%; color: #344b43; background: transparent; font: 300 28px/1 "Outfit", sans-serif; cursor: pointer; }
.booking-dialog-close:hover { background: #e3e9df; }
.booking-dialog-continue { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; margin-top: 27px; padding: 0 23px; border: 1px solid #344b43; border-radius: 28px 28px 28px 7px; color: #fff; background: #344b43; font: 600 11px/1 "Outfit", sans-serif; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: color .2s, background .2s, transform .2s; }
.booking-dialog-continue:hover { color: #344b43; background: transparent; transform: translateY(-2px); }
.booking-dialog-note { display: block; margin-top: 13px; color: #718076; font: 500 9px/1.5 "Outfit", sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.fireplace-play { position: absolute; z-index: 3; right: 25px; bottom: 25px; padding: 12px 18px; border: 1px solid rgba(255,255,255,.78); border-radius: 25px 25px 25px 7px; color: #fff; background: rgba(31,35,31,.72); font: 600 10px/1 "Outfit", sans-serif; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(8px); }
.fireplace-play[hidden] { display: none; }
.fireplace-play:hover { background: rgba(255,255,255,.95); color: #26352d; }

@media (max-width: 760px) {
  #contatti .contact-method[href^="tel:"] strong { font-size: 15px; }
  #servizi .experience-chooser > div { width: 100%; gap: 4px; }
  #servizi .experience-chooser button,
  #servizi .experience-chooser button:last-child { width: auto !important; min-width: 0; flex: 1 1 0; grid-column: auto !important; }
  .booking-dialog-card { padding: 42px 24px 30px; }
  .booking-dialog-card > p:not(.eyebrow) { font-size: 14px; }
  .fireplace-play { right: 16px; bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-stars i, .rating-stars i { animation: none !important; }
  .has-js .scroll-reveal.reveal-heading, .has-js .scroll-reveal.reveal-heading.is-visible,
  .has-js .reveal-on-view.reveal-heading, .has-js .reveal-on-view.reveal-heading.is-visible,
  .has-js .scroll-reveal.reveal-copy, .has-js .scroll-reveal.reveal-copy.is-visible,
  .has-js .reveal-on-view.reveal-copy, .has-js .reveal-on-view.reveal-copy.is-visible,
  .has-js .scroll-reveal.reveal-image, .has-js .scroll-reveal.reveal-image.is-visible,
  .has-js .reveal-on-view.reveal-image, .has-js .reveal-on-view.reveal-image.is-visible {
    opacity: 1 !important; transform: none !important; clip-path: none !important; filter: none !important; transition: none !important;
  }
}
