/* V5 — a warm, tactile editorial palette sampled from the Dolomites hero. */
:root {
  --paper: #eee8dc;
  --ivory: #f4f0e6;
  --stone: #d9d2c5;
  --stone-light: #e7e1d5;
  --ink: #262a27;
  --muted: #6d695f;
  --line: #c8c0b2;
  --accent: #9a7544;
  --alpine-blue: #28536a;
  --pine: #28332f;
  --paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 .035'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

html { scroll-padding-top: 96px; }
body { background-color: var(--ivory); background-image: var(--paper-grain); background-size: 180px 180px; color: var(--ink); }
.section { padding-top: clamp(76px, 7.2vw, 112px); padding-bottom: clamp(76px, 7.2vw, 112px); }
.wordmark-name { font-size: 84px; font-weight: 400; }
.wordmark-small {
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 3px;
}
.wordmark-mountain {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: square;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
}

header {
  height: 96px;
  padding: 0 4.5%;
  background: rgba(244, 240, 230, .97);
  border-color: rgba(38, 42, 39, .14);
  color: var(--ink);
  transition: background-color .45s ease, color .45s ease, border-color .45s ease, box-shadow .45s ease;
}
header .wordmark { width: 136px; height: 70px; color: currentColor; }
header nav { gap: clamp(16px, 2vw, 32px); font-size: 13px; }
header nav a { padding: 10px 0 7px; border-bottom: 1px solid transparent; }
header nav a:hover, header nav a[aria-current] { border-color: currentColor; }
.header-actions { gap: 14px; }
.language-toggle { color: currentColor; border-color: currentColor; width: 43px; height: 43px; }
.button {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--ivory);
  letter-spacing: .02em;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.button:hover { background: var(--alpine-blue); border-color: var(--alpine-blue); }
.button.outline { background: transparent; color: var(--ink); border-color: var(--ink); }

header.home-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  background: transparent;
  border-color: rgba(255,255,255,.25);
  color: white;
}
.home-header .header-actions .button { background: transparent; color: white; border-color: rgba(255,255,255,.7); }
.home-header .header-actions .button:hover { background: white; color: var(--ink); }
.home-header.scrolled {
  background: rgba(244,240,230,.95);
  color: var(--ink);
  border-color: rgba(38,42,39,.14);
  box-shadow: 0 8px 30px rgba(35,30,25,.055);
  backdrop-filter: blur(10px);
}
.home-header.scrolled .header-actions .button { background: var(--ink); color: var(--ivory); border-color: var(--ink); }

.destination-hero {
  position: relative;
  height: 100svh;
  min-height: 680px;
  overflow: hidden;
  isolation: isolate;
  background: #322d29;
  color: white;
}
.destination-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  animation: hero-arrive 1.6s cubic-bezier(.2,.7,.2,1) both;
}
.destination-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, rgba(14,13,12,.30) 0%, transparent 35%, transparent 62%, rgba(14,13,12,.48) 100%);
}
.destination-hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  padding: 118px 6% 54px;
}
.destination-place {
  position: absolute;
  top: 125px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-size: 10px;
  letter-spacing: .3em;
  white-space: nowrap;
  text-transform: uppercase;
  text-shadow: 0 1px 10px rgba(0,0,0,.35);
}
.destination-logo { transform: translateY(-5vh); color: white; filter: drop-shadow(0 2px 12px rgba(0,0,0,.26)); }
.destination-logo .wordmark { width: clamp(300px, 31vw, 470px); height: auto; color: white; }
.destination-cta {
  position: absolute;
  bottom: 45px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  font-size: 11px;
  letter-spacing: .25em;
  text-transform: uppercase;
  white-space: nowrap;
}
.destination-cta span { padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.8); }
.destination-cta i { font-style: normal; font-size: 17px; animation: soft-drop 2.2s ease-in-out infinite; }
.destination-caption { position: absolute; z-index: 1; right: 28px; bottom: 28px; font-size: 9px; letter-spacing: .22em; opacity: .74; }

.maison-collection { padding: clamp(92px, 9vw, 138px) 4.5% clamp(100px, 10vw, 148px); background-color: var(--ivory); }
.maison-collection-head { width: min(720px, 100%); margin: 0 auto clamp(48px, 5.5vw, 78px); text-align: center; }
.maison-collection-head .eyebrow { margin-bottom: 24px; color: var(--muted); }
.maison-collection-head h2 { font-size: clamp(56px, 7.2vw, 110px); line-height: .95; letter-spacing: -.035em; margin-bottom: 28px; }
.maison-collection-head > p:last-child { width: min(430px, 100%); margin: auto; color: var(--muted); }
.houses-choice { white-space: nowrap; }
.maison-duet { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 72px); align-items: start; }
.maison-editorial, .maison-editorial.armonia { display: block; margin: 0; }
.maison-editorial.armonia .maison-editorial-photo { order: initial; }
.maison-editorial-photo { height: min(68svh, 760px); background: var(--stone); }
.maison-editorial-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,18,16,.28), transparent 35%); pointer-events: none; }
.maison-editorial-photo > span { z-index: 1; bottom: 22px; left: 22px; font-size: 9px; }
.maison-editorial-copy { padding: 32px 0 0; }
.maison-editorial-copy .eyebrow { color: var(--muted); margin-bottom: 9px; }
.maison-editorial-copy h3 { font-size: clamp(50px, 5vw, 76px); margin-bottom: 18px; letter-spacing: -.025em; }
.maison-editorial-copy > p:not(.eyebrow) { max-width: 440px; color: var(--muted); }
.maison-editorial-copy .maison-specs { max-width: 440px; border-color: var(--line); color: var(--ink); }
.maison-editorial-copy .text-link { border-color: var(--accent); }
.maison-price { color: var(--muted); }
.maison-rating { margin: -8px 0 18px; color: var(--accent) !important; font-size: 11px; letter-spacing: .04em; }
.maison-rating span { letter-spacing: .12em; }
.armonia-opening .maison-rating { color: rgba(255,255,255,.88) !important; }

.public-reviews {
  padding: clamp(86px, 8vw, 124px) 6%;
  background-color: var(--stone-light);
  background-image: var(--paper-grain);
  background-size: 180px 180px;
  background-blend-mode: multiply;
  box-shadow: inset 0 1px rgba(87, 76, 62, .10);
}
.public-reviews-head { width: min(780px, 100%); margin: 0 auto clamp(48px, 5vw, 72px); text-align: center; }
.public-reviews-head .eyebrow { margin-bottom: 20px; }
.public-reviews-head h2 { font-size: clamp(48px, 6vw, 88px); line-height: .98; letter-spacing: -.03em; margin-bottom: 24px; }
.reviews-overall { color: var(--accent); font-size: 13px; letter-spacing: .08em; }
.reviews-overall span { letter-spacing: .15em; }
.public-review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(24px, 4vw, 64px); width: min(1280px, 100%); margin: 0 auto; }
.public-review { display: flex; flex-direction: column; min-width: 0; padding: clamp(25px, 3vw, 38px) 0 0; border-top: 1px solid var(--line); }
.public-review[hidden] { display: none; }
.review-stars { color: var(--accent); letter-spacing: .18em; font-size: 14px; }
.review-comment { margin: 22px 0 14px; white-space: pre-line; font-family: var(--serif); font-size: clamp(19px, 1.7vw, 24px); line-height: 1.5; }
.review-comment.is-collapsed { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 8; }
.review-read-more,.reviews-show-all { width: max-content; padding: 5px 0; border: 0; border-bottom: 1px solid var(--accent); background: transparent; color: var(--ink); font: inherit; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.public-review footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 22px; margin-top: auto; padding-top: 30px; color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.reviews-show-all { display: block; margin: 50px auto 0; }

.wellness { background: var(--pine); color: var(--ivory); }
.wellness-copy { padding: clamp(65px, 7vw, 105px) clamp(45px, 9vw, 140px); }
.wellness p:not(.eyebrow), .wellness-copy .note { color: #d7d1c5; }
.wellness-copy .button.light { background: transparent; color: var(--ivory); border-color: #d8d1c8; }
.wellness-copy .button.light:hover { background: var(--ivory); color: var(--ink); }
.wellness figure { min-height: min(78svh, 850px); }

.inclusive { background-color: var(--stone-light); padding: clamp(82px, 8vw, 120px) 10%; }
.inclusive-top { gap: 12%; }
.inclusive .services { border-color: var(--line); }
.inclusive .service { border-color: var(--line); }
.inclusive .service span, .space-number { color: var(--accent); }
.stay-teaser { background: var(--pine); color: var(--ivory); padding-top: clamp(78px, 7vw, 105px); padding-bottom: clamp(78px, 7vw, 105px); }
.stay-teaser .button.light { background: transparent; color: var(--ivory); border-color: #d7d1c8; }
.contacts { background-color: var(--ivory); }
footer { background-color: var(--stone); border-color: var(--line); }
.whatsapp { background: var(--pine); border: 1px solid rgba(255,255,255,.22); }

.essenza-opening { padding: clamp(96px, 9vw, 138px) 7% clamp(70px, 7vw, 98px); background-color: var(--ivory); }
.essenza-opening .maison-title { margin: 0; grid-template-columns: 1.25fr .75fr; }
.essenza-opening .maison-title h1 { font-size: clamp(100px, 13vw, 190px); letter-spacing: -.04em; }
.detail-story { background-color: var(--stone-light); padding-top: clamp(78px, 7.5vw, 112px); padding-bottom: clamp(78px, 7.5vw, 112px); }
.detail-highlights { border-color: var(--line); }
.detail-highlights span { border-color: var(--line); }
.armonia-opening::after { background: linear-gradient(0deg, rgba(21,19,17,.74), transparent 78%); }
.space-tour { background-color: var(--ivory); padding-top: clamp(82px, 7.5vw, 118px); }
.space-photo { background: var(--stone); }
.space-count { background: rgba(244,240,230,.93); color: var(--ink); }
.space-link { color: var(--ink); border-color: var(--accent); }
.detail-facts { background-color: var(--stone-light); }

.booking-page { background-color: var(--stone-light); padding-top: clamp(58px, 6vw, 88px); }
.booking-form { background: var(--ivory); border-color: var(--line); box-shadow: 0 18px 55px rgba(39,34,29,.05); }
.booking-aside { background-color: #d7cfc1; }
.demo-banner { border-color: var(--line); border-left-color: var(--accent); }
input, select { border-color: #b8b0a5; color: var(--ink); }
input:focus, select:focus { border-color: var(--ink); outline-color: var(--accent); }
.accept input { accent-color: var(--ink); }

.legal { max-width: 980px; }
#legal-reader, .reader-footer { background: var(--ivory); }
#legal-reader::backdrop { background: rgba(27,24,21,.78); }
#lightbox { background-color: var(--ivory); background-image: var(--paper-grain); background-size: 180px 180px; }

.maison-collection,
.inclusive,
.contacts,
.essenza-opening,
.detail-story,
.space-tour,
.detail-facts,
.booking-page,
.booking-aside,
footer,
#legal-reader,
.reader-footer {
  background-image: var(--paper-grain);
  background-size: 180px 180px;
  background-blend-mode: multiply;
}
.maison-collection,
.inclusive,
.contacts,
.essenza-opening,
.detail-story,
.space-tour,
.detail-facts,
.booking-page { box-shadow: inset 0 1px rgba(87, 76, 62, .10); }
.eyebrow, .category-number, .space-number { color: var(--accent); }
.text-link:hover, .space-link:hover { color: var(--alpine-blue); border-color: var(--alpine-blue); }
.booking-form input, .booking-form select { background: rgba(248, 244, 235, .78); }

.tax-field { position: relative; }
.tax-label-row { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.booking-form .tax-label-row label { margin: 0; }
.tax-info-trigger {
  display: grid;
  width: 44px;
  height: 44px;
  margin: -11px;
  padding: 13px;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--accent);
}
.tax-info-trigger svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: square; }
.tax-info-trigger:hover { color: var(--alpine-blue); }
.tax-info-panel {
  position: absolute;
  z-index: 18;
  top: calc(100% + 10px);
  right: 0;
  width: min(480px, calc(100vw - 18%));
  max-height: min(520px, 70vh);
  overflow: auto;
  padding: 24px 26px;
  border: 1px solid var(--line);
  background: var(--ivory);
  background-image: var(--paper-grain);
  background-size: 180px 180px;
  box-shadow: 0 18px 48px rgba(39, 34, 29, .16);
  color: var(--ink);
  font-size: 13px;
  line-height: 1.55;
}
.tax-info-back {
  position: sticky;
  top: -1px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 5px 0;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--ivory);
  color: var(--ink);
  font-size: 12px;
}
.tax-info-back:hover { color: var(--alpine-blue); border-color: var(--alpine-blue); }
.tax-info-back .ui-arrow { width: 14px; height: 14px; }
.tax-info-panel strong { display: block; font-family: var(--serif); font-size: 21px; font-weight: 400; line-height: 1.25; }
.tax-info-panel p { margin: 12px 0; }
.tax-info-panel ul { margin: 0; padding-left: 20px; }
.tax-info-panel li { margin: 0 0 8px; padding-left: 3px; }
.tax-info-panel .tax-info-note { margin: 16px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }

.ui-arrow {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.text-link, .space-link { display: inline-flex; align-items: center; gap: 8px; }
.button .ui-arrow { transition: transform .3s ease; }
.button:hover .ui-arrow-up-right { transform: translate(2px, -2px); }
.space-link .ui-arrow, .text-link .ui-arrow { width: 14px; height: 14px; }
.space-count .ui-arrow { width: 13px; height: 13px; }
.destination-cta i, .gallery-controls button { display: grid; place-items: center; }
.destination-cta .ui-arrow { width: 18px; height: 18px; }
.gallery-controls .ui-arrow { width: 20px; height: 20px; }
.skip .ui-arrow { width: 14px; height: 14px; margin-left: 6px; vertical-align: middle; }

@keyframes hero-arrive { from { opacity: 0; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
@keyframes soft-drop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
@supports (animation-timeline: view()) {
  .maison-editorial, .wellness, .inclusive-top { animation: quiet-reveal both linear; animation-timeline: view(); animation-range: entry 5% cover 24%; }
  @keyframes quiet-reveal { from { opacity: .25; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
}

@media (max-width: 900px) {
  header.home-header nav { background: rgba(244,240,230,.98); color: var(--ink); border-color: var(--line); }
  header.home-header .menu-toggle { color: currentColor; }
  .maison-duet { grid-template-columns: 1fr; gap: 80px; }
  .maison-editorial.armonia { padding-top: 0; }
  .maison-editorial-photo { height: min(72svh, 700px); }
  .booking-forms { display: contents; }
  #stay-form { order: 1; }
  .booking-aside { order: 2; }
  #guest-form { order: 3; }
  #saved-result { order: 4; }
}

@media (max-width: 760px) {
  .ui-arrow { width: 15px; height: 15px; }
  .destination-cta .ui-arrow { width: 17px; height: 17px; }
  .tax-info-panel {
    position: fixed;
    top: 50%;
    right: auto;
    left: 7vw;
    width: 86vw;
    max-height: 76svh;
    padding: 22px 20px;
    transform: translateY(-50%);
    font-size: 13px;
  }
  html { scroll-padding-top: 82px; }
  .section { padding-top: 64px; padding-bottom: 64px; }
  header { height: 82px; padding: 0 5%; }
  header .wordmark { width: 105px; height: 58px; }
  header nav { top: 82px; }
  .home-header .language-toggle { border-color: rgba(255,255,255,.72); }
  .home-header.scrolled .language-toggle { border-color: var(--ink); }
  .destination-hero { min-height: 620px; height: 100svh; }
  .destination-hero > img { object-position: 48% 50%; }
  .destination-hero-content { padding: 100px 7% 40px; }
  .destination-place { top: 103px; font-size: 8px; letter-spacing: .22em; }
  .destination-logo { transform: translateY(-8vh); }
  .destination-logo .wordmark { width: min(78vw, 330px); }
  .destination-cta { bottom: 34px; font-size: 10px; }
  .destination-caption { display: none; }
  .maison-collection { padding: 78px 7% 90px; }
  .maison-collection-head { margin-bottom: 46px; text-align: left; }
  .maison-collection-head h2 { font-size: 57px; }
  .maison-collection-head > p:last-child { margin-left: 0; }
  .maison-duet { gap: 64px; }
  .maison-editorial, .maison-editorial.armonia { display: block; margin: 0; }
  .maison-editorial-photo { height: 64svh; min-height: 430px; max-height: 590px; }
  .maison-editorial-copy { padding-top: 25px; }
  .maison-editorial-copy h3 { font-size: 54px; }
  .public-reviews { padding: 74px 7% 82px; }
  .public-reviews-head { text-align: left; margin-bottom: 42px; }
  .public-reviews-head h2 { font-size: 49px; }
  .public-review-grid { grid-template-columns: 1fr; gap: 46px; }
  .review-comment { font-size: 19px; line-height: 1.55; }
  .public-review footer { display: grid; }
  .wellness figure { min-height: 60svh; }
  .wellness-copy { padding: 62px 7% 68px; }
  .inclusive { padding: 72px 7%; }
  .essenza-opening { padding: 108px 7% 62px; }
  .essenza-opening .maison-title { display: block; }
  .essenza-opening .maison-title h1 { font-size: clamp(82px, 25vw, 112px); }
  .essenza-opening .maison-title > div:last-child { margin-top: 30px; }
  .armonia-opening { height: calc(100svh - 82px); min-height: 620px; }
  .space-tour { padding-top: 74px; }
  .booking-page { padding-top: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .destination-hero > img, .destination-cta i, .maison-editorial, .wellness, .inclusive-top { animation: none !important; }
}
.booking-aside .average-nightly-note{margin:7px 0 18px;font-size:12px;line-height:1.55;color:var(--muted)}
