/* ==========================================================================
   CÃPERSIANE FOGLIO DI STILE UNIFICATO
   ========================================================================== */

/* ---------------------------------------------------------------
   VARIABILI GLOBALI
   --------------------------------------------------------------- */
:root {
  --dg-dark: #63513D;
  --dg-terracotta: #A9431E;
  --dg-light: #ead9c1;
  --dg-beige: #D3BBA8;
  --dg-cream: #F7F1E1;
  --dg-white: #fff;
  --dg-ink: #2c241b;
  --dg-shadow: 0 28px 80px rgba(44,36,27,.16);
  --font-body: 'Coliner', sans-serif;
  --font-heading: 'The Seasons', serif;
  --menu-bg: #91A981;
  --menu-ink: #2c241b;
  --menu-line: rgba(44, 36, 27, .16);
  --menu-accent: #6d7250;
  --section-dark: #2f2a22;
  --nav-bg: #FAF8F5;
  --nav-border: #E8E2D9;
  --nav-text: #2C2926;
  --nav-accent: #81875F;
  --nav-hover-bg: #F0EAE1;
	  --footer-bg: #5E4F41; /* Marrone/Taupe scuro */
            --footer-text: #D6C5AD; /* Beige/Oro chiaro */
            --footer-border: rgba(214, 197, 173, 0.2); /* Bordo semitrasparente */
            --footer-text-muted: rgba(214, 197, 173, 0.7);
	   --ca-bg: #ece8df;
    --ca-bg2: #e4ded2;
    --ca-ink: #17231c;
    --ca-muted: rgba(23,35,28,.59);
    --ca-line: rgba(23,35,28,.16);
    --ca-accent: #a45136;
    --ca-green: #2e4334;
    --ca-pad: clamp(22px, 4.3vw, 76px);
}


/* ---------------------------------------------------------------
   RESET & TIPOGRAFIA DI BASE
   --------------------------------------------------------------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  width: 100%;
  overflow-x: hidden;
  
}

body {
  font-family: 'Coliner', sans-serif;
  background: var(--dg-cream);
  color: var(--dg-dark);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  min-width: 320px;
}

h1, h2, h3 {
  font-family: 'IvyMode-Light', serif;
  font-weight: 700;
}
@media (min-width: 1200px) {
	 .h1, h1 {
        font-size: 5.25rem;
        color: #fbf6ef !important;
    } .h2, h2 {
        font-size: 2.45rem;
    }
    .h3, h3 {
        font-size: 4.22rem;
        line-height: 1.2;
        font-weight: lighter!important;
    }
}
p {
  font-family: 'Coliner', serif;
  font-weight: 500;
  font-size: 1.25rem;
  color: #2C352E;
}
.hero p {
  font-family: 'Coliner', serif;
  font-weight: 500;
  font-size: 1.25rem;
  color: #fff;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

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

html {
  scroll-behavior: auto;
}

:root {
  /* Palette Colori Principale */
  --bg-primary: #F7F1E1;       /* Cream Warm (Sfondo principale) */
  --text-main: #2C352E;        /* Deep Charcoal/Forest (Testo principale per contrasto elevato) */
  --text-muted: #7A7261;       /* Warm Taupe (Testo secondario / Sottotitoli) */
  
  /* Colori di Accento e Brand */
  --brand-green: #4E6C38;      /* Vineyard Green (Bottoni primari, header, elementi chiave) */
  --brand-green-hover: #3D552C;/* Verde scuro per stati hover */
  --accent-blue: #5B7C8F;     /* Lake Water Blue (Badge, tag, bottoni secondari) */
  --accent-terracotta: #AF5E3C;/* Terracotta (Call to Action speciali, highlight) */
  
  /* Superfici e Card */
  --card-bg: #FFFFFF;          /* Bianco puro per le card per stacco pulito */
  --border-color: #E2D9C5;     /* Bordo delicato a tono con lo sfondo */
}

/* Stili Base di Esempio */
body {
  background-color: var(--bg-primary);
  color: var(--text-main);
  font-family: system-ui, -apple-system, sans-serif;
  line-height: 1.6;
}

h1, h2, h3 {
  color: var(--menu-accent);
}
.hero__content h2, .hero__content h3 {
  color: white;
}
.subtitle {
  color: var(--text-muted);
}

/* Esempio Button Primario */
.btn-primary {
  background-color: var(--brand-green);
  color: #FFFFFF;
  border: none;
  padding: 12px 24px;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.btn-primary:hover {
  background-color: var(--brand-green-hover);
}

/* Esempio Button Accent / CTA */
.btn-accent {
  background-color: var(--accent-terracotta);
  color: #FFFFFF;
  border: none;
  padding: 12px 24px;
  border-radius: 6px;
}
/* ---------------------------------------------------------------
   LOADER, CURSORE PERSONALIZZATO & SMOOTH SCROLL
   --------------------------------------------------------------- */
.smooth-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  will-change: transform;
}

.smooth-content {
  position: relative;
  z-index: 2;
}

.loading {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  background: var(--dg-light);
  transition: opacity .5s ease,visibility .5s ease;
}

.loading.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader {
  width: 68px;
  height: 68px;
  border: 3px solid rgba(99,81,61,.16);
  border-top-color: var(--dg-terracotta);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.dg-cursor {
  position: fixed;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  border: 1px solid var(--dg-terracotta);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%,-50%);
  mix-blend-mode: difference;
  opacity: .8;
}

.dg-cursor.is-active {
  width: 56px;
  height: 56px;
  background: rgba(169,67,30,.16);
}

/* Il contenitore del video DEVE avere overflow: hidden */
.video-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background-color: #000; /* Evita lampi di luce durante il caricamento del video */
}

.bg-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block; /* Importante: elimina spazi vuoti sotto il tag video */
}


.video-gradient-bottom {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 156px;
  background: linear-gradient(
    to bottom,
    rgba(247, 241, 225, 0) 0%,
    rgba(247, 241, 225, 0.15) 30%,
    rgba(247, 241, 225, 0.5) 60%,
    rgba(247, 241, 225, 0.85) 85%,
    #F7F1E1 100%
  );
  pointer-events: none;
  z-index: 2;
}



.gsap-line-mask {
  overflow: hidden;
  display: block;
  
  /* IMPORTANTE: Evita che lettere come g, p, y, q tagliandole in basso vengano nascoste */
  padding-bottom: 0.15em;
  margin-bottom: -0.15em;
}

/* Il contenuto effettivo della riga che GSAP animerÃƒÆ’Ã‚Â  */
.gsap-line-child {
  display: inline-block;
  will-change: transform, opacity; /* Ottimizzazione GPU */
}

/* Stili Tipografici Eleganti */
h1, h2, h3 {
  
  font-weight: 500;
  margin: 0 0 1rem 0;
}






/* ---------------------------------------------------------------
   NAVIGAZIONE, MENU A TENDINA & LANGUAGE SWITCHER
   --------------------------------------------------------------- */
.dg-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9002;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px clamp(20px, 3vw, 54px);
  transition: padding .45s ease, background-color .45s ease, box-shadow .45s ease;
  background: transparent;
  backdrop-filter: blur(0);
  inset: 0 0 auto 0;
}

.dg-nav.scrolled {
  padding-top: 5px;
  padding-bottom: 5px;
  background: rgba(248, 244, 237, .9);
  backdrop-filter: blur(18px);
  box-shadow: 0 12px 38px rgba(44, 36, 27, .08);
}

.dg-nav__brand img {
  width: clamp(146px, 13vw, 205px);
  height: auto;
  transition: filter .35s ease, transform .35s ease;
  transform-origin: left center;
  max-height: 95px;
  object-fit: contain;
}

.dg-nav.scrolled .dg-nav__brand img {
  transform: scale(0.8);
}

.dg-nav__links {
  display: flex;
  align-items: center;
  gap: clamp(20px,3vw,42px);
  list-style: none;
  margin: 0;
}

.dg-nav__links a {
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--dg-dark);
  position: relative;
}

.dg-nav__links a:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 0;
  height: 1px;
  background: var(--dg-terracotta);
  transition: width .35s ease;
}

.dg-nav__links a:hover:after {
  width: 100%;
}

.dg-nav__toggle {
  display: inline-flex !important;
  border: 1px solid rgba(255,255,255,.48);
  background: rgba(248, 244, 237, .9);
  padding: 24px 16px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: .72rem;
  color: #111;
  position: relative;
  z-index: 2;
  align-items: center;
  gap: 14px;
  min-width: 112px;
  backdrop-filter: blur(12px);
  font-weight: 600;
  cursor: pointer;
  transition: color .35s ease, border-color .35s ease, background .35s ease;
}

body.menu-open {
  overflow: hidden;
}

.site-header {
  position: relative;
  z-index: 1;
}

.dg-nav__brand {
  position: relative;
  z-index: 2;
  display: inline-flex;
}

.page-index .dg-nav:not(.scrolled) .dg-nav__brand img, body.menu-open .dg-nav__brand img {
  height: 110px;
  background: rgba(248, 244, 237, .9);
  border-radius: 9px;
  padding: .5rem;
}

.dg-nav:not(.scrolled) .dg-nav__brand img, body.menu-open .dg-nav__brand img {
  height: 110px;
  background: rgba(248, 244, 237, .9);
  border-radius: 9px;
  padding: .5rem;
}

.dg-nav.scrolled .dg-nav__toggle, body:not(.page-index) .dg-nav:not(.scrolled) .dg-nav__toggle {
  color: var(--dg-dark);
  border-color: rgba(99,81,61,.25);
  background: rgba(255,255,255,.78);
}

body.menu-open .dg-nav__toggle {
  color: #fff;
  border-color: rgba(255,255,255,.34);
  background: rgba(255,255,255,.08);
}

.dg-nav__toggle-icon {
  width: 21px;
  height: 14px;
  position: relative;
  display: block;
}

.dg-nav__toggle-icon i {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform .35s ease, top .35s ease;
}

.dg-nav__toggle-icon i:first-child {
  top: 3px;
}

.dg-nav__toggle-icon i:last-child {
  top: 10px;
}

body.menu-open .dg-nav__toggle-icon i:first-child {
  top: 7px;
  transform: rotate(45deg);
}

body.menu-open .dg-nav__toggle-icon i:last-child {
  top: 7px;
  transform: rotate(-45deg);
}

.dg-nav__toggle2 {
  position: relative;
  z-index: 2;
  display: inline-flex !important;
  align-items: center;
  gap: 14px;
  min-width: 112px;
  padding: 24px 16px;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 4px;
  color: #111;
  background: rgba(248, 244, 237, .9);
  backdrop-filter: blur(12px);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .35s ease, border-color .35s ease, background .35s ease;
}

.dg-nav.scrolled .dg-nav__toggle2, body:not(.page-index) .dg-nav:not(.scrolled) .dg-nav__toggle2 {
  color: white;
  border-color: rgba(99,81,61,.25);
  background: #81875f;
}

.menu-panel {
  position: fixed;
  inset: 0;
  z-index: 9001;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100dvh;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background: var(--section-dark);
}

.menu-panel__nav, .menu-panel__visual {
  min-width: 0;
  min-height: 100dvh;
}

.menu-panel__nav {
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(96px, 12vh, 140px) clamp(24px, 5vw, 86px) clamp(25px, 4vw, 54px);
  background: var(--menu-bg);
  color: var(--menu-ink);
}

.menu-panel__topline {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--menu-line);
  font-size: .68rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.menu-panel__links {
  align-self: center;
  display: grid;
  margin-top: 0;
}

.menu-panel__links a {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: baseline;
  gap: 18px;
  padding: clamp(7px, 1.2vh, 13px) 0;
  border-bottom: 1px solid var(--menu-line);
  overflow: hidden;
}

.menu-panel__links a span {
  font-size: .7rem;
  letter-spacing: .15em;
  color: rgba(44,36,27,.48);
}

.menu-panel__links a strong {
  font-family: var(--font-heading);
  font-size: clamp(2.15rem, 2.6vw, 3rem);
  font-weight: 400;
  line-height: .9;
  transition: transform .35s ease, color .35s ease;
  color: white;
}

.menu-panel__links a:hover strong, .menu-panel__links a[aria-current="page"] strong {
  transform: translateX(12px);
  color: var(--menu-accent);
}

.menu-panel__footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  padding-top: 20px;
}

.menu-panel__footer > a {
  font-size: .74rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
}

.language-switcher {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 19px;
  margin-right: 19px;
}

.language-switcher > span {
  width: 100%;
  font-size: .64rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  opacity: .55;
}

.language-switcher button {
  appearance: none;
  border: 0;
  border-bottom: 1px solid transparent;
  padding: 2px 0;
  margin-right: 9px;
  color: inherit;
  background: transparent;
  font: inherit;
  font-size: .72rem;
  letter-spacing: .14em;
  cursor: pointer;
  opacity: .48;
}

.language-switcher button[aria-pressed="true"] {
  opacity: 1;
  border-color: currentColor;
}

.menu-panel__visual {
  position: relative;
  overflow: hidden;
  background: #211e19;
}

.menu-panel__image-wrap, .menu-panel__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.menu-panel__image {
  object-fit: cover;
  transform: scale(1.04);
}

.menu-panel__image.is-next {
  opacity: 0;
}

.menu-panel__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,17,13,.06), rgba(20,17,13,.58));
  pointer-events: none;
}

.menu-panel__caption {
  position: absolute;
  z-index: 2;
  left: clamp(24px, 5vw, 72px);
  right: 30px;
  bottom: clamp(28px, 6vw, 72px);
  color: #fff;
}

.menu-panel__caption span {
  display: block;
  margin-bottom: 8px;
  font-size: .68rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  opacity: .72;
}

.menu-panel__caption strong {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(3.5rem,8vw,9rem);
  font-weight: 400;
  line-height: .8;
}

.footer__languages .language-switcher {
  color: #f2e8d8;
}

.mobile-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(250, 248, 245, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--nav-border);
  box-shadow: 0 -4px 20px rgba(44, 41, 38, 0.05);
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  padding-top: 8px;
}

.mobile-bottom-nav__cta {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin: 0 14px;
  padding: 15px 20px;
  border-radius: 999px;
  background-color: var(--nav-accent);
  color: #fff;
  text-decoration: none;
  transition: background-color 0.25s ease, transform 0.25s ease;
  -webkit-tap-highlight-color: transparent;
}

.mobile-bottom-nav__cta:hover, .mobile-bottom-nav__cta:active, .mobile-bottom-nav__cta:focus {
  background-color: #843f25;
  color: #fff;
  transform: translateY(-1px);
}

.mobile-bottom-nav__label {
  font-family: 'Georgia', serif, system-ui;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 500;
  text-align: center;
  line-height: 1.2;
}

.dg-nav .language-switcher {
  position: relative;
  margin-left: auto;   /* spinge il blocco tutto a destra nella nav */
  margin-right: 8px;
}

.dg-nav .lang-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 44px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, .48);
  border-radius: 6px;
  background: rgba(248, 244, 237, .90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: #2c241b;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .06);
  font-size: .70rem;
  font-weight: 600;
  letter-spacing: .08em;
  cursor: pointer;
  transition: opacity .25s ease;
}

.dg-nav .lang-toggle:hover {
  opacity: .85;
}

.dg-nav .lang-caret {
  color: #a9431e;
  transition: transform .2s ease;
}

.dg-nav .language-switcher.is-open .lang-caret {
  transform: rotate(180deg);
}

.dg-nav .lang-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 6px;
  list-style: none;
  min-width: 60px;
  border: 1px solid rgba(255, 255, 255, .48);
  border-radius: 6px;
  background: rgba(248, 244, 237, .90);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 3px 12px rgba(0, 0, 0, .06);
  z-index: 20;
}

.dg-nav .lang-dropdown a {
  display: block;
  padding: 6px 8px;
  border-radius: 6px;
  color: #2c241b;
  text-decoration: none;
  font-size: .70rem;
  font-weight: 500;
  letter-spacing: .08em;
  opacity: .68;
  transition: background-color .25s ease, color .25s ease, opacity .25s ease;
}

.dg-nav .lang-dropdown a:hover {
  background: rgba(99, 81, 61, .10);
  opacity: 1;
}

.dg-nav .lang-dropdown a.is-active {
  background: #ffffff;
  color: #a9431e;
  opacity: 1;
  font-weight: 600;
}

/* mobile: stessa logica, solo tocco target un filo più comodo */
@media (max-width: 767px) {
  .dg-nav .lang-toggle {
    height: 34px;
  }
  .dg-nav .lang-dropdown a {
    padding: 8px 10px;
  }
}


/* ---------------------------------------------------------------
   TITOLI DI SEZIONE & TIPOGRAFIA COMUNE
   --------------------------------------------------------------- */
section {
  position: relative;
  min-height: 100vh;
  padding: clamp(70px,8vw,10px) 0;
}

.mt-Sect {
  margin-top: 12vh;
}

.page-template-camere .split-section {

    background: var(--dg-cream);
}

.eyebrow {
  font-size: 1.2rem;
  font-weight: 300;
  letter-spacing: .2em;
  text-transform: none;
  font-family: var(--font-body);
  color: #AF5E3C;
  margin-bottom: 18px;
}

.section-title {
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: clamp(2.8rem,5vw,5rem);
  line-height: .95;
  letter-spacing: -.045em;
  color: var(--dg-dark);
  margin-bottom: 26px;
}

.section-title em {
  font-style: italic;
  color:#81875f;
}

.page-template-contatti .section-title, .page-template-contatti .section-title em, .page-template-contatti .section-lead {
  color: white;
  font-weight: 300;
}

.page-template-camere h4 em {
  color: var(--dg-terracotta);
}

.section-lead {
  font-size: clamp(1.02rem,1.35vw,1.25rem);
  font-weight: 300;
  color: #0C2340;
  max-width: 680px;
  letter-spacing: .025rem;
}

.section-head {
  margin-bottom: clamp(34px,5vw,72px);
}

.hero .eyebrow {
  color: var(--dg-light);
}

.room-type__content > p:not(.eyebrow) {
  max-width: 560px;
  font-size: clamp(1rem,1.35vw,1.22rem);
  line-height: 1.8;
  color: rgba(99,81,61,.9);
}

.split-line {
  overflow: hidden !important;
  display: block;
}

.split-char, .split-word {
  display: inline-block;
  will-change: transform;
}

.section-head img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

.rotation-showcase .eyebrow {
  color: rgba(245,234,217,.66);
}

.rotation-showcase .section-title {
  color: #fff;
  max-width: 850px;
}

.rotation-showcase .section-title em {
  color: #d5b79a;
}

.rooms .section-head {
  max-width: 1180px;
  margin-inline: auto;
}

.olive-reveal__content .eyebrow {
  display: block;
  font-size: 0.9rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #c2b59b;
  margin-bottom: 16px;
}

.olive-reveal__content .section-title {
  font-family: 'Cinzel', serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 400;
  line-height: 1.1;
  color: #ffffff;
  text-shadow: 0 10px 30px rgba(0,0,0,0.5);
}


/* ---------------------------------------------------------------
   HERO
   --------------------------------------------------------------- */
.hero {
  min-height: 100svh!important;
  display: flex!important;
  align-items: center!important;
  overflow: hidden;
  background: var(--dg-light);
  height: 100svh!important;
}

.hero:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(circle at 60% 55%,rgba(248,244,237,.12),rgba(44,36,27,.48) 75%),linear-gradient(90deg,rgba(44,36,27,.58),rgba(44,36,27,.06) 58%,rgba(44,36,27,.18));
  pointer-events: none;
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  height: 113vh;
  object-fit: cover;
}

.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
}

.hero__content {
  position: absolute;
  z-index: 9999!important;
  color: var(--dg-white);
  padding-top: clamp(6rem,10vh,8rem)!important;
  padding-left: 4rem;
  padding-bottom: clamp(2.5rem,5vh,4.5rem)!important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100svh;
}

.hero__title {
  font-family: var(--font-heading);
  font-size: clamp(4.2rem,10vw,7.5rem);
  font-weight: 400;
  line-height: .85;
  letter-spacing: -.015em;
  margin-bottom: 30px;
  max-width: 1040px;
  color: var(--dg-white);
  text-shadow: 0 24px 70px rgba(0,0,0,.36);
}

.hero__lead {
  max-width: 60rem;
  font-family: 'Coliner', sans-serif;
  font-size: clamp(1.05rem,1.45vw,1.35rem);
  font-weight: 300;
  color: rgba(255,255,255,.86);
  margin-bottom: 34px;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.hero__scroll {
  position: absolute;
  z-index: 3;
  bottom: clamp(1.5rem,3vh,2.5rem)!important;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.75);
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .22em;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero__scroll:after {
  content: "";
  width: 1px;
  height: 56px;
  margin-top: 14px;
  background: rgba(255,255,255,.65);
}

.hero--inner {
  min-height: 94vh;
}

.hero--inner .hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.hero--inner .pill {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.08);
  color: #fff;
}

.hero-slide {
  height: 100vh;
  width: 102vw;
}

.colIndexHigh {
  z-index: 10;
}

.bkgWatercolor {
  position: absolute;
  top: 15vh;
  right: 0;
  width: 55vw;
  height: auto;
  z-index: 0;
  opacity: .5;
  filter: saturate(0.75);
}

.page-template-olio .bkgWatercolor {
  position: absolute;
  top: 1vh;
  right: 0;
  width: 65vw;
  height: auto;
  min-height: 63vh
    z-index: 0;
  opacity: .5;
  filter: saturate(0.5);
  padding-top: 10vh;
  padding: 9rem;
}

.hero__media, .hero__media img {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100%;
  object-fit: cover;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,rgba(16,20,15,.08),rgba(16,20,15,.32));
  z-index: 1;
  pointer-events: none;
}

.page-template-contatti .bkgWatercolor {
  position: absolute;
  top: 73vh;
  right: -3.6vw;
  transform: translateY(-50%);
  width: 40vw;
  max-width: 408px;
  height: 70vh;
  z-index: 10;
  opacity: .65;
  filter: saturate(0.75);
  padding-top: 10vh;
  padding: 1rem;
}

.page-template-camere .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
180deg, rgba(20, 16, 12, 0.18) 0%, rgba(20, 16, 12, 0.12) 12%, rgba(20, 16, 12, 0.25) 58%, rgba(20, 16, 12, 0.08) 82%, rgba(20, 16, 12, 0.04) 100%), linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.12) 55%, rgba(0, 0, 0, 0.32) 100%);
}


/* ---------------------------------------------------------------
   PULSANTI
   --------------------------------------------------------------- */
.btn-cinematic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 15px 30px;
  border: 1px solid currentColor;
  background: transparent;
  color: var(--dg-dark);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: color .35s ease,border-color .35s ease,transform .35s ease;
}

.btn-cinematic:before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--dg-terracotta);
  transform: translateX(-102%);
  transition: transform .45s cubic-bezier(.16,1,.3,1);
  z-index: -1;
}

.btn-cinematic:hover {
  color: var(--dg-white);
  border-color: var(--dg-terracotta);
  transform: translateY(-2px);
}

.btn-cinematic:hover:before {
  transform: translateX(0);
}

.btn-cinematic--light {
  color: var(--dg-white);
}

.btn-cinematic--light:before {
  background: var(--dg-white);
}

.btn-cinematic--light:hover {
  color: var(--dg-dark);
  border-color: var(--dg-white);
}

.contact-form .btn-primary {
  display: block;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 15px 4rem;
  border: 1px solid currentColor;
  background: transparent;
  color: var(--dg-dark);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: color .35s ease,border-color .35s ease,transform .35s ease;
}

.contact-form .btn-primary:before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--dg-terracotta);
  transform: translateX(-102%);
  transition: transform .45s cubic-bezier(.16,1,.3,1);
  z-index: -1;
}

.contact-form .btn-primary:hover {
  color: var(--dg-white);
  border-color: var(--dg-terracotta);
  transform: translateY(-2px);
}

.contact-form .btn-primary:hover:before {
  transform: translateX(0);
}

.location-section__content .btn-cinematic {
  align-self: flex-start;
}


/* ---------------------------------------------------------------
   INTRO, VALORI & SERVIZI (VALUES / SERVICE NOTES)
   --------------------------------------------------------------- */
.intro {
  background: var(--dg-cream);
}

.image-frame {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--dg-shadow);
  background: var(--dg-light);
}

.image-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.image-frame--tall {
  height: min(740px,82vh);
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: clamp(18px, 2.2vw, 34px);
  margin-top: 40px;
  padding-block: clamp(28px, 6vw, 90px);
}

.value-card {
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(99,81,61,.12);
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 18px 45px rgba(44,36,27,.06);
}

.value-card span {
  font-size: .72rem;
  color: var(--dg-terracotta);
  letter-spacing: .12em;
}

.value-card h3 {
  font-family: var(--font-heading);
  font-size: 1.85rem;
  line-height: 1;
  margin: 12px 0;
}

.value-card p {
  font-size: 1.22rem;
  color: #0C2340;
  margin: 0;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-top: 50px;
}

.service-card {
  background-color: var(--color-surface, #f9f8f6);
  padding: 40px 30px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.05);
  transition: transform 0.3s ease;
}

.service-card:hover {
  transform: translateY(-5px);
}

.service-card h3 {
  font-size: 1.5rem;
  margin-bottom: 15px;
  color: var(--color-text, #333);
}

.service-card p {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--color-text-light, #666);
  margin-bottom: 0;
}

.values-grid .value-card {
  min-height: 260px;
  padding: clamp(28px, 3vw, 46px);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.values-grid--animated {
  perspective: 1200px;
}

.values-grid--animated .value-card {
  backface-visibility: hidden;
}

.reveal-media, .image-frame, .room-main, .gallery-item2, .feature-tile--image, .mosaic__large, .mosaic__small, .location-section__media {
  overflow: hidden;
}

.service-notes {
  padding: clamp(7rem,12vw,12rem) 0;
  background: #f1ede4;
}

.service-notes .values-grid {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: clamp(1rem,2vw,1.6rem);
  padding: 0;
}

.service-notes .value-card {
  position: relative;
  min-height: clamp(340px,38vw,480px);
  padding: clamp(2rem,3.5vw,3.8rem);
  overflow: hidden;
  border: 1px solid rgba(44,54,38,.14);
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(12px);
  transition: transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s ease,background .6s ease;
}

.service-notes .value-card::before {
  content: "";
  position: absolute;
  inset: auto -15% -38% auto;
  width: 220px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(68,86,55,.08);
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}

.service-notes .value-card::after {
  content: "";
  position: absolute;
  right: clamp(1.5rem,2.5vw,2.5rem);
  top: clamp(1.5rem,2.5vw,2.5rem);
  font-size: 1.3rem;
  opacity: .35;
}

.service-notes .value-card span {
  position: relative;
  z-index: 1;
  font-size: .72rem;
  letter-spacing: .2em;
  color: #65715d;
}

.service-notes .value-card h3 {
  position: relative;
  z-index: 1;
  font-size: clamp(2.2rem,3.3vw,3.6rem);
  line-height: .96;
  margin-top: 7.25rem;
  margin-bottom: auto;
  max-width: 9ch;
  text-align: center;
}

.service-notes .value-card p {
  position: relative;
  z-index: 1;
  max-width: 30rem;
  font-size: 1rem;
  line-height: 1.7;
  opacity: .72;
}

.service-notes .value-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 28px 70px rgba(31,41,29,.12);
  background: #f8f5ef;
}

.service-notes .value-card:hover::before {
  transform: scale(1.25);
}


/* ---------------------------------------------------------------
   CAMERE (ROOMS)
   --------------------------------------------------------------- */
.rooms {
  background: linear-gradient(180deg, #81875f 0%, #FFF8ED 100%);
}

.rooms-layout {
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  gap: 28px;
  align-items: stretch;
  height: 77vh;
}

.room-main, .room-card {
  overflow: hidden;
  border-radius: 24px;
  box-shadow: var(--dg-shadow);
  background: var(--dg-white);
}

.room-main img {
  width: 100%;
  height: 100%;
  min-height: 680px;
  object-fit: cover;
}

.room-stack {
  display: grid;
  gap: 28px;
}

.room-card {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  position: absolute;
  width: calc(100% - 5rem);
  max-width: 1240px;
  height: 70vh;
  max-height: 695px;
  min-height: 500px;
  background-color: #f7f4ee;
  border-radius: 24px;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
  gap: 3rem;
  padding: 2rem;
  box-sizing: border-box;
  align-items: center;
  will-change: transform, opacity;
}

.room-card img {
  width: 100%;
  height: 100%;
  min-height: 326px;
  object-fit: cover;
}

.room-card div {
  padding: 16px;
  display: block;
  flex-direction: column;
  justify-content: end;
}

.room-card h3, .experience-card h3 {
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 12px;
}

.room-card p {
  font-size: .96rem;
  margin: 0;
  color: rgba(99,81,61,.78);
}

.room-types {
  position: relative;
  padding: clamp(2px, 9vw, 8px) 0 0;
  background: var(--dg-cream);
}

.room-types__heading {
  max-width: 940px;
  padding-bottom: clamp(70px, 8vw, 130px);
}

.room-type {
  min-height: 90vh;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(420px, .82fr);
  background: #f4efe7;
  overflow: hidden;
}

.room-type--reverse {
  grid-template-columns: minmax(420px, .82fr) minmax(0, 1.18fr);
}

.room-type--reverse .room-type__media {
  order: 2;
}

.room-type--reverse .room-type__content {
  order: 1;
}

.room-type__media {
  position: relative;
  min-height: 90vh;
  overflow: hidden;
  clip-path: inset(0 0 0 0);
}

.room-type__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
}

.room-type__content {
  min-height: 90vh;
  padding: clamp(48px, 7vw, 118px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.room-type__number {
  position: absolute;
  top: clamp(34px,5vw,70px);
  right: clamp(34px,5vw,70px);
  font-size: .8rem;
  letter-spacing: .22em;
  color: var(--dg-terracotta);
}

.room-type__content h3 {
  font-family: var(--font-heading);
  font-size: clamp(3.4rem,6.5vw,8.2rem);
  line-height: .82;
  letter-spacing: -.045em;
  margin: 14px 0 30px;
  color: var(--dg-dark);
}

.room-type__content h3 em {
  color: var(--dg-terracotta);
  font-style: normal;
}

.room-type__content ul {
  list-style: none;
  padding: 0;
  margin: 34px 0 0;
  border-top: 1px solid rgba(99,81,61,.16);
  max-width: 560px;
}

.room-type__content li {
  padding: 14px 0;
  border-bottom: 1px solid rgba(99,81,61,.13);
  font-size: .84rem;
  text-transform: uppercase;
  letter-spacing: .12em;
}

.rooms-container {
  position: relative;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
}

.room-bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 70vh;
  border-radius: 18px;
  overflow: hidden;
}

.room-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 18px;
  display: block;
}

.rooms-title {
  overflow: visible;
}

.rooms-title__line {
  display: block;
  transform-origin: 50% 100%;
  will-change: transform, opacity, filter;
}

.rooms-title__line--accent {
  margin-top: .12em;
}


/* ---------------------------------------------------------------
   ESPERIENZE (DRAG RAIL)
   --------------------------------------------------------------- */
.experiences {
  background: var(--dg-white);
  overflow: hidden;
}

.drag-rail {
  display: flex;
  gap: 28px;
  padding: 0 8vw 40px;
  cursor: grab;
  user-select: none;
  will-change: transform;
  overflow-x: auto;
  scroll-behavior: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.drag-rail.is-dragging {
  cursor: grabbing;
}

.experience-card {
  position: relative;
  flex: 0 0 min(489px,80vw);
  height: 560px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--dg-shadow);
  background: var(--dg-dark);
}

.experience-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s cubic-bezier(.16,1,.3,1);
}

.experience-card:hover img {
  transform: scale(1.06);
}

.experience-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,rgba(44,36,27,.82),rgba(44,36,27,0) 62%);
}

.experience-card div {
  position: absolute;
  z-index: 2;
  left: 28px;
  right: 28px;
  bottom: 28px;
  color: #fff;
}

.experience-card span {
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dg-light);
}

.drag-rail::-webkit-scrollbar {
  display: none;
}

.drag-rail.is-dragging .experience-card img, .drag-rail.is-dragging .experience-card a {
  pointer-events: none;
}

  .reason-card{
    position:relative;
    min-height:280px;
    border-radius:22px;
    overflow:hidden;
    isolation:isolate;
    background:var(--nav-hover-bg);
    border:1px solid var(--nav-border);
    box-shadow:0 14px 40px rgba(0,0,0,.08);
  }

  .reason-card__base,
  .reason-card__vivid{
    position:absolute;inset:0;width:100%;height:100%;
  }
  .reason-card__base{
    background:
      radial-gradient(1px 1px at 22% 28%, rgba(0,0,0,.06) 0, transparent 55%),
      radial-gradient(1px 1px at 68% 62%, rgba(0,0,0,.05) 0, transparent 55%),
      var(--nav-hover-bg);
    background-size:6px 6px,6px 6px,100% 100%;
  }
  .reason-card__vivid{
    will-change:clip-path;
    /* pozze di colore chiare sovrapposte in stile acquerello, senza toni scuri */
    background-image: radial-gradient(42% 36% at var(--b1x, 22%) var(--b1y, 18%), color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 50%, white 50%) 0%, transparent 72%), radial-gradient(48% 42% at var(--b2x, 74%) var(--b2y, 32%), color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 82%, white 18%) 0%, transparent 74%), radial-gradient(58% 50% at var(--b3x, 46%) var(--b3y, 72%), color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 66%, white 34%) 0%, transparent 76%), radial-gradient(1.5px 1.5px at 30% 30%, rgba(255, 255, 255, .5) 0, transparent 60%), radial-gradient(1.5px 1.5px at 68% 70%, rgba(255, 255, 255, .2) 0, transparent 60%), linear-gradient(160deg, color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 45%, white 45%), color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 68%, white 22%));
    background-blend-mode:normal, soft-light, normal, overlay, overlay, normal;
    background-size:100% 100%,100% 100%,100% 100%,7px 7px,9px 9px,100% 100%;
    background-repeat:no-repeat,no-repeat,no-repeat,repeat,repeat,no-repeat;
    background-position:0 0,0 0,0 0,0 0,0 0,0 0;
    animation:reasonShimmer 22s ease-in-out infinite;
  }
  @keyframes reasonShimmer{
    0%,100%{
      background-position:0 0, 0 0, 0 0, 0 0, 0 0, 0 0;
    }
    50%{
      background-position:4% 3%, -3% 4%, 3% -3%, 0 0, 0 0, 0 0;
    }
  }

  .reason-card__content{
    position:relative;z-index:2;height:100%;
    display:flex;flex-direction:column;align-items:flex-start;
    padding:clamp(24px,3vw,32px);
    color:var(--nav-text);
  }
  .reason-card.is-open .reason-card__content{color:var(--section-dark)}

  .reason-card__icon{
    width:44px;height:44px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 16%, transparent);
    color:var(--vivid-color, var(--nav-accent));
    margin-bottom:20px;flex:none;
    transition:background .6s ease, color .6s ease;
  }
  .reason-card.is-open .reason-card__icon{
    background:rgba(255,255,255,.55);color:var(--section-dark);
  }
  .reason-card__icon svg{width:20px;height:20px}

  .reason-card h3{
    font-size: clamp(1.15rem,1.6vw,2.38rem);
    font-weight:400;
    line-height:1.18;
    margin-bottom:10px;
  }
  .reason-card p{
    font-family:system-ui,sans-serif;
    font-size: 1.1rem;
    line-height:1.6;
    max-width:26ch;
    color:color-mix(in srgb, var(--nav-text) 72%, transparent);
    transition:color .6s ease;
  }
  .reason-card.is-open p{color:color-mix(in srgb, var(--section-dark) 85%, transparent)}

  @media (prefers-reduced-motion:reduce){
    .reason-card__vivid,.reason-card__icon,.reason-card p{transition:none!important;animation:none!important}
  }


/* ---------------------------------------------------------------
   ROTATION SHOWCASE & GALLERY
   --------------------------------------------------------------- */
.rotation-showcase {
  position: relative;
  padding: clamp(100px, 14vw, 210px) 0 clamp(130px, 18vw, 163px);
  color: #f5ead9;
  background: var(--section-dark);
  overflow: clip;
  z-index: 0;
}

.rotation-showcase__intro {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(260px,.65fr);
  align-items: end;
  gap: clamp(35px, 8vw, 130px);
  padding: 0 clamp(20px, 5vw, 76px) clamp(70px, 9vw, 140px);
}

.rotation-showcase__copy {
  max-width: 510px;
  margin: 0;
  color: rgba(245,234,217,.72);
  font-size: clamp(1rem,1.3vw,1.25rem);
}

.rotation-gallery {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6vh 0 12vh;
}

.rotation-gallery__item-wrap {
  width: min(42vw, 44vw);
  perspective: 1100px;
  margin-bottom: clamp(-125px, -7vw, -70px);
  transform-style: preserve-3d;
}

.rotation-gallery__item {
  width: 100%;
  aspect-ratio: auto;
  border-radius: clamp(14px, 1.6vw, 28px);
  background-image: var(--gallery-image);
  background-size: cover;
  background-position: center;
  box-shadow: 0 35px 100px rgba(0,0,0,.32);
  transform-style: preserve-3d;
  will-change: transform;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, .52fr);
  min-height: clamp(330px, 36vw, 535px);
  overflow: hidden;
  background: #ebe0cf;
  color: #302a23;
}

.rotation-marquee {
  position: absolute;
  z-index: 1;
  top: 54%;
  left: 0;
  width: 100%;
  overflow: hidden;
  transform: translateY(-50%);
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.rotation-marquee__inner {
  display: flex;
  align-items: center;
  gap: 2rem;
  width: max-content;
  will-change: transform;
}

.rotation-marquee span {
  white-space: nowrap;
  font-family: var(--font-heading);
  font-size: clamp(5rem,13vw,14rem);
  line-height: .8;
  color: rgba(255,255,255,.55);
}

.rotation-marquee i {
  font-style: normal;
  font-size: 3rem;
  color: #d6b797;
}

.rotation-gallery__media {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: clamp(330px, 36vw, 535px);
  overflow: hidden;
  background: #c8b69f;
  transform: translateZ(0);
  will-change: transform;
}

.rotation-gallery__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  opacity: 1;
  visibility: visible;
  transform: scale(1.035);
  backface-visibility: hidden;
  will-change: transform;
}

.rotation-gallery__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(28px, 4vw, 53px);
  padding-top: 20px;
  background: linear-gradient(145deg, #f0e6d7, #dfd0bb);
}

.rotation-gallery__content > span {
  position: absolute;
  top: clamp(24px, 3vw, 42px);
  right: clamp(24px, 3vw, 42px);
  font-size: .68rem;
  letter-spacing: .2em;
  opacity: .52;
}

.rotation-gallery__content h3 {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 2.8vw, 2.8rem);
  font-weight: 400;
  line-height: .94;
}

.rotation-gallery__content p {
  max-width: 390px;
  margin: 0;
  font-size: clamp(.92rem, 1.05vw, 1.08rem);
  line-height: 1.65;
  opacity: .72;
}


/* ---------------------------------------------------------------
   DUAL ROTATION
   --------------------------------------------------------------- */
.dual-rotation {
  position: relative;
  height: 400vh;
  background: #142016;
  color: #f4f0e7;
}

.dual-rotation__sticky {
  position: relative;
  top: 0;
  height: 100vh;
  display: flex;
  grid-template-columns: minmax(280px,.75fr) 1.25fr;
  align-items: center;
  gap: clamp(2rem,5vw,6rem);
  padding: 0px 144px 80px;
  overflow: hidden;
  box-sizing: border-box;
  justify-content: space-between;
  width: 100%;
}

.dual-rotation__copy {
  position: relative;
  z-index: 3;
  max-width: 34rem;
}

.dual-rotation__copy h2 {
  font-size: clamp(3rem,5vw,6.7rem);
  line-height: .92;
  margin: 1.2rem 0 1.5rem;
}

.dual-rotation__copy > p:last-child {
  font-size: clamp(1rem,1.25vw,1.3rem);
  line-height: 1.7;
  opacity: .78;
}

.dual-rotation__counter {
  display: flex;
  gap: .5rem;
  font-size: .85rem;
  letter-spacing: .14em;
  opacity: .65;
}

.dual-rotation__visuals {
  position: relative;
  width: 70vw;
  height: min(76vh,850px);
  perspective: 1400px;
}

.dual-rotation__image {
  position: absolute;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 30px 80px rgba(0,0,0,.3);
  background: #283426;
  will-change: transform,clip-path;
}

.dual-rotation__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dual-rotation__image--main {
  inset: 0 11% 10% 0;
}

.dual-rotation__image--detail {
  width: 42%;
  height: 43%;
  right: 0;
  bottom: 11px;
  border: 8px solid #142016;
  z-index: 2;
  margin-bottom: 0;
}

.dual-rotation__steps {
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: none!important;
}

.dual-rotation__steps article {
  height: 100vh;
}

.dual-rotation__progress {
  position: relative;
  left: clamp(1.25rem,4vw,4rem);
  right: clamp(1.25rem,4vw,4rem);
  bottom: clamp(1.1rem,2.5vh,2rem);
  height: 2px;
  background: rgba(255,255,255,.2);
  z-index: 5;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.2);
  overflow: hidden;
  visibility: hidden;
}

.dual-rotation__progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform-origin: left center;
  will-change: transform;
  background-color: #ffffff;
  transform: scaleX(0);
}


/* ---------------------------------------------------------------
   SEZIONE OLIO / OLIVE REVEAL / INK REVEAL
   --------------------------------------------------------------- */
.olio {
  background: var(--dg-cream);
}

.artwork-stage {
  position: relative;
  width: 85vw;
  max-width: 700px;
  aspect-ratio: 9 / 16;
  margin: 0 auto;
  box-shadow: 0 20px 40px rgba(0,0,0,0.06);
  background-color: #f7f4ee;
  overflow: hidden;
}

.layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sketch-layer {
  opacity: 0.85;
  mix-blend-mode: multiply;
  filter: contrast(110%) grayscale(20%);
}

.color-layer {
  mix-blend-mode: multiply;
  filter: url(#watercolor-bleed);
  -webkit-mask-image: radial-gradient(circle at 50% 40%, black 0%, transparent 10%);
  mask-image: radial-gradient(circle at 50% 40%, black 0%, transparent 10%);
  -webkit-mask-size: 0% 0%;
  mask-size: 0% 0%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.paper-texture {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(rgba(0,0,0,0.03) 1px, transparent 0);
  background-size: 4px 4px;
  mix-blend-mode: multiply;
  opacity: 0.7;
}

.ink-reveal {
  position: relative;
  width: min(1100px, 92vw);
  aspect-ratio: 4 / 3;
  margin: 0 auto 4rem;
  overflow: hidden;
  background: var(--dg-cream);
}

.ink-reveal__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: transparent;
  mask: url(#inkMask);
  -webkit-mask: url(#inkMask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.ink-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

#inkReveal {
  transform: translateZ(0);
  backface-visibility: hidden;
}

#inkReveal svg, #rimSvg {
  pointer-events: none;
}

.oilImgHeight {
  height: 70vh;
  object-fit: cover;
}

.oil-manifesto {
  position: relative;
  min-height: 90vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #ebe5d8;
}

.oil-manifesto__inner {
  position: relative;
  z-index: 2;
  max-width: 980px;
  width: 100vw;
  text-align: center;
}

.oil-marquee {
  position: absolute;
  left: -5%;
  top: 30%;
  display: flex;
  width: max-content;
  transform: translateY(-50%) rotate(-5deg);
  font-family: var(--font-heading);
  font-size: clamp(5rem,15vw,15rem);
  line-height: .75;
  white-space: nowrap;
  color: rgba(66,76,44,.09);
}

.oil-marquee div {
  animation: oilMarquee 24s linear infinite;
}

.oil-story {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  background: #f4f0e7;
}

.oil-story--reverse {
  grid-template-columns: .85fr 1.15fr;
  background: #24301f;
  color: #f4f0e7;
}

.oil-story--reverse .oil-story__media {
  order: 2;
}

.oil-story__media {
  min-height: 100svh;
  overflow: hidden;
}

.oil-story__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oil-story__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3rem,7vw,8rem);
}

.oil-story__copy span {
  font-size: .75rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .6;
}

.oil-story__copy h2 {
  font-size: clamp(3rem,6vw,7rem);
  line-height: .92;
  margin: 1.5rem 0;
}

.oil-story__copy p {
  max-width: 34rem;
  font-size: 1.15rem;
  line-height: 1.75;
  opacity: .8;
}

.oil-gallery__grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: 42vh 42vh;
  gap: 1rem;
  margin-top: 3rem;
}

.oil-gallery__grid figure {
  margin: 0;
  overflow: hidden;
}

.oil-gallery__grid figure:first-child {
  grid-row: 1/3;
}

.oil-gallery__grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.oil-gallery__note {
  margin-top: 1rem;
  font-size: .85rem;
  opacity: .55;
}

.oil-tasting {
  padding: clamp(5rem,10vw,10rem) 0;
  background: #a94831;
}

.oil-tasting__panel {
  padding: clamp(3rem,7vw,8rem);
  background: #7e321f;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.olive-reveal-section {
  position: relative;
  width: 100%;
  height: 98vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
}

.olive-reveal__bg-underlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, #262c22 0%, #121510 100%);
  z-index: 1;
}

.olive-reveal__svg-mask {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

.olive-reveal__content {
  position: relative;
  z-index: 3;
  text-align: center;
  color: #f4f1ea;
  pointer-events: auto;
  padding: 0 24px;
}

.page-template-contatti .olive-reveal-section {
  width: 100%;
  height: auto;
  position: relative;
}

.page-template-contatti .olive-reveal__svg-mask {
  width: 100%;
  height: auto;
  display: block;
}


/* ---------------------------------------------------------------
   DESTINATION GRID / MUST-SEE
   --------------------------------------------------------------- */
.destination-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1px;
  background: #d8d0c0;
}

.destination-card {
  position: relative;
  min-height: 72vh;
  overflow: hidden;
  background: #1f261e;
  color: #fff;
}

.destination-card--wide {
  grid-column: 1/-1;
  min-height: 82vh;
}

.destination-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1.2s cubic-bezier(.2,.8,.2,1);
}

.destination-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,transparent 35%,rgba(10,15,10,.82));
}

.destination-card > div {
  position: absolute;
  left: clamp(2rem,5vw,5rem);
  bottom: clamp(2rem,5vw,5rem);
  z-index: 2;
  max-width: 38rem;
}

.destination-card span {
  font-size: .75rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.destination-card h3 {
  font-size: clamp(2.5rem,5vw,5.5rem);
  line-height: .95;
  margin: .7rem 0;
}

.destination-card p {
  max-width: 32rem;
  font-size: 1.05rem;
  line-height: 1.6;
  opacity: .86;
}

.destination-card:hover img {
  transform: scale(1.045);
}

.must-see__grid {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1rem;
  margin-top: 4rem;
}

.page-template-storia .must-see__grid {
  display: grid;
  grid-template-columns: repeat(1,1fr);
  gap: 1rem;
  margin-top: 4rem;
}


/* ---------------------------------------------------------------
   GALLERY & VIDEO
   --------------------------------------------------------------- */
.gallery-item2 {
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 20px 55px rgba(44,36,27,.12);
  width: 100%;
  margin-left: 0;
  height: 80vh;
  object-fit: cover;
  position: relative;
  min-height: 520px;
  clip-path: none;
  background: #ddd4c8;
}

.gallery-item2 img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  transform-origin: center top;
}

.gallery {
  background: var(--dg-white);
}

.gallery-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr 1fr;
  grid-auto-rows: 330px;
  gap: 22px;
}

.gallery-item {
  margin: 0;
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 20px 55px rgba(44,36,27,.12);
}

.gallery-item--wide {
  grid-column: span 2;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s cubic-bezier(.16,1,.3,1);
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-item2--animated {
  min-height: 0 !important;
  clip-path: none !important;
}

.gallery-item2--animated img {
  display: block;
}

.gallery-item2, .gallery-item2--animated {
  position: relative;
  height: 80vh !important;
  min-height: 520px !important;
  overflow: hidden;
  clip-path: none !important;
  background: #ddd4c8;
}

.gallery-item2__mask {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  clip-path: inset(0 0 0 0);
  transform: translateZ(0);
}

.gallery-item2__mask img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: cover;
  transform-origin: center top;
  backface-visibility: hidden;
}

.spacer {
  height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.video-wrap {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.video-wrap video, .video-wrap .detectVi {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100vh;
  object-fit: cover;
}

#siteFooter {
    background-color: var(--footer-bg);
    color: var(--footer-text);
    padding-top: 6rem;
    padding-bottom: 2rem;
}
#siteFooter {
    background-color: #81875f; /* Colore marrone principale basato sull'immagine */
    color: rgba(255, 255, 255, 0.7);
    padding: 60px 0 30px;
    font-family: var(--family);
    font-size: 0.85rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}

#siteFooter a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

#siteFooter {
            background-color: #81875f; 
            color:white;
            padding-top: 6rem;
            padding-bottom: 2rem;
        }

        /* --- GRIGLIA CONTATTI --- */
        .contact-grid {
            border-top: 1px solid var(--footer-border);
            border-bottom: 1px solid var(--footer-border);
            padding: 2.5rem 0;
            margin-bottom: 4rem;
        }

        .contact-col {
            padding: 1rem 2rem;
            text-align: center;
        }

/* ---------------------------------------------------------------
   LOCATION / DOVE SIAMO
   --------------------------------------------------------------- */
.location-section {
  padding: 0;
  background: #e9ddcc;
}

.location-section__grid {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(380px,.85fr);
  padding: 0;
}

.location-section__media {
  position: relative;
  min-height: clamp(620px,72vw,920px);
}

.location-section__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.location-section__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(30,25,20,.36));
}

.location-section__marker {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 52%;
  display: none!important;
  align-items: center;
  gap: 9px;
  padding: 10px 15px;
  border-radius: 999px;
  color: #fff;
  background: rgba(37,31,25,.72);
  backdrop-filter: blur(10px);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.location-section__marker span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 7px rgba(255,255,255,.2);
}

.location-section__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(70px,9vw,150px) clamp(28px,7vw,115px);
}

.location-section__facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 42px 0 46px;
  border-top: 1px solid rgba(99, 81, 61, 0.22);
  border-bottom: 1px solid rgba(99, 81, 61, 0.22);
  border-top-color: color-mix(in srgb, currentColor 22%, transparent);
  border-bottom-color: color-mix(in srgb, currentColor 22%, transparent);
}

.location-section__facts div {
  padding: 21px 12px 21px 0;
}

.location-section__facts div + div {
  padding-left: 20px;
  border-left: 1px solid rgba(99,81,61,.18);
}

.location-section__facts span {
  display: block;
  margin-bottom: 5px;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.62;
  color: inherit;
}

.location-section__facts strong {
  font-weight: 400;
  display: block;
  font-size: 1.05rem;
  color: inherit;
}

.location-section__facts > div {
  padding: 22px 24px;
}

.location-section__facts > div:first-child {
  padding-left: 0;
}

.location-section__facts > div + div {
  padding-left: 24px;
  border-left: 1px solid rgba(99, 81, 61, 0.22);
  border-left-color: color-mix(in srgb, currentColor 22%, transparent);
}

.footer .location-section__facts {
  border-top-color: color-mix(in srgb, currentColor 28%, transparent);
  border-bottom-color: color-mix(in srgb, currentColor 28%, transparent);
}

.footer .location-section__facts > div + div {
  border-left-color: color-mix(in srgb, currentColor 28%, transparent);
}


/* ---------------------------------------------------------------
   SPECIFICHE (SPECS)
   --------------------------------------------------------------- */
.specs {
  display: grid;
  gap: 0;
  margin: 34px 0;
  border-top: 1px solid rgba(99,81,61,.22);
}

.specs div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 22px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(99,81,61,.18);
}

.specs strong {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--dg-terracotta);
}

.specs span {
  color: rgba(99,81,61,.82);
}


/* ---------------------------------------------------------------
   CTA STRIP
   --------------------------------------------------------------- */
.cta-strip {
  padding: 110px 0;
  background: linear-gradient(120deg,var(--dg-light),var(--dg-cream));
}

section.cta-strip {
  min-height: 50vh;
}

.cta-strip__box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  border-radius: 38px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(99,81,61,.12);
  padding: clamp(30px,5vw,68px);
  box-shadow: var(--dg-shadow);
}

.cta-strip__box h2 {
  margin-bottom: 14px;
}


/* ---------------------------------------------------------------
   FAQ
   --------------------------------------------------------------- */
.faq-wrap {
  max-width: 980px;
  margin: 8rem auto;
}

.faq-item {
  border-bottom: 1px solid rgba(99,81,61,.16);
  padding: 28px 0;
}

.faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--dg-dark);
  font-family: var(--font-heading);
  font-size: clamp(2.1rem,4vw,4.6rem);
  line-height: .9;
  text-align: left;
}

.faq-q span:last-child {
  font-family: serif;
  font-size: 2rem;
  transition: transform .35s ease;
}

.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .45s ease;
}

.faq-a p {
  padding: 18px 0 0;
  margin: 0;
  color: rgba(99,81,61,.8);
  font-size: 1.03rem;
}

.faq-item.is-open .faq-q span:last-child {
  transform: rotate(45deg);
}

.faq-item.is-open .faq-a {
  max-height: 240px;
}


/* ---------------------------------------------------------------
   CONTATTI
   --------------------------------------------------------------- */
.contact {
  min-height: auto;
  background: linear-gradient(135deg,var(--dg-light),var(--dg-beige));
  padding-bottom: 120px;
}

.contact-form {
  display: grid;
  gap: 16px;
}

.contact-form label {
  display: grid;
  gap: 8px;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
}

.contact-form input, .contact-form textarea {
  width: 100%;
  border: 1px solid rgba(99,81,61,.2);
  background: rgba(255,255,255,.62);
  border-radius: 14px;
  padding: 15px 16px;
  color: var(--dg-dark);
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.contact-form input:focus, .contact-form textarea:focus {
  outline: none;
  border-color: var(--dg-terracotta);
  background: #fff;
}

.contact-panel {
  align-items: start;
  background: rgba(248,244,237,.72);
  border: 1px solid rgba(99,81,61,.14);
  box-shadow: var(--dg-shadow);
  border-radius: 28px;
  padding: clamp(28px,6vw,76px);
  backdrop-filter: blur(12px);
}

.contact-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 32px;
  align-items: stretch;
}

.contact-info-card {
  border-radius: 34px;
  padding: 44px;
  background: #cfbaa3;
  color: #fff;
  min-height: 100%;
}


.contact-info-card a {
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.35);
}

.contact-list {
  display: grid;
  gap: 22px;
  margin-top: 34px;
}

.contact-list div {
  border-top: 1px solid rgba(255,255,255,.16);
  padding-top: 20px;
}

.map-placeholder {
  position: relative;
  min-height: 520px;
  border-radius: 34px;
  overflow: hidden;
  box-shadow: var(--dg-shadow);
}

.map-placeholder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.map-placeholder:after {
  content: "Montresor ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â· Lazise";
  position: absolute;
  left: 24px;
  bottom: 24px;
  border-radius: 999px;
  padding: 12px 18px;
  background: rgba(248,244,237,.82);
  color: var(--dg-dark);
  letter-spacing: .13em;
  text-transform: uppercase;
  font-size: .8rem;
}

.contact-panel, .contact-info-card {
  width: 100%;
}

.map-placeholder::after {
  content: "Montresor Lazise";
}

.contact-layout > * {
  min-width: 0;
}

.contact-layout p:has(iframe), .map-placeholder p:has(iframe) {
  margin: 0;
  max-width: none;
}

.contact-layout iframe, .map-placeholder iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 600 / 450;
  border: 0;
  border-radius: 18px;
}


/* ---------------------------------------------------------------
   FOOTER
   --------------------------------------------------------------- */
.footer {
  background: #2c2720;
  color: #f2e8d8;
  padding: clamp(75px, 9vw, 130px) 0 28px;
}

.footer-logo {
  width: clamp(170px,17vw,240px);
  opacity: 1;
  margin-bottom: 28px;
}

.footer p {
  margin: 0;
  color: rgba(234,217,193,.75);
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
}

.footer-links a {
  font-size: .78rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(234,217,193,.84);
}

.footer-links a:hover {
  color: #fff;
}

.footer__inner {
  display: grid;
  grid-template-columns: minmax(280px,1.5fr) repeat(3,minmax(150px,.55fr));
  gap: clamp(35px,6vw,95px);
  padding-left: clamp(20px,5vw,76px);
  padding-right: clamp(20px,5vw,76px);
}

.footer__lead {
  max-width: 520px;
}

.footer__lead p {
  max-width: 410px;
  font-size: clamp(1rem,1.25vw,1.2rem);
  color: rgba(242,232,216,.68);
}

.footer__cta {
  display: inline-flex;
  gap: 15px;
  align-items: center;
  margin-top: 34px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(242,232,216,.5);
  font-size: .75rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.footer__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.footer__label {
  margin: 0 0 9px !important;
  color: rgba(242,232,216,.44) !important;
  font-size: .65rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.footer__nav a, .footer__nav span {
  color: rgba(242,232,216,.78);
  font-size: .95rem;
}

.footer__nav a {
  transition: color .25s ease, transform .25s ease;
}

.footer__nav a:hover {
  color: #fff;
  transform: translateX(4px);
}

.footer__bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: clamp(70px,8vw,120px);
  padding: 22px clamp(20px,5vw,76px) 0;
  border-top: 1px solid rgba(242,232,216,.13);
  color: rgba(242,232,216,.48);
  font-size: .67rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.footer.footer--centered {
  position: relative;
  overflow: hidden;
  padding: clamp(82px, 9vw, 135px) 0 0;
  background: #728f63;
  color: var(--dg-light, #ead9c1);
}

.footer.footer--centered::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 48px;
  background: rgba(234, 217, 193, .28);
  transform: translateX(-50%);
}

.footer--centered .footer__inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  gap: 0 !important;
  padding-left: clamp(24px, 5vw, 76px) !important;
  padding-right: clamp(24px, 5vw, 76px) !important;
  text-align: center !important;
}

.footer--centered .footer__lead {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  grid-column: auto !important;
  width: 100% !important;
  max-width: 980px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: center !important;
}

.footer--centered .footer__brand {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0 0 clamp(28px, 4vw, 44px);
}

.footer--centered .footer-logo {
  display: block;
  width: clamp(180px, 16vw, 245px);
  max-width: 100%;
  height: auto;
  margin: 0 auto !important;
}

.footer--centered .footer__lead .footer__claim {
  width: 100%;
  max-width: 720px !important;
  margin: 0 auto clamp(44px, 5vw, 64px) !important;
  font-family: var(--font-heading) !important;
  font-size: clamp(2rem, 3.5vw, 4rem) !important;
  font-weight: 400 !important;
  line-height: 1.04 !important;
  letter-spacing: -.025em;
  text-align: center !important;
  color: var(--dg-light, #ead9c1) !important;
}

.footer--centered .footer__contacts {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
  max-width: 980px !important;
  margin: 0 auto clamp(42px, 5vw, 62px) !important;
  border-top: 1px solid rgba(234, 217, 193, .16);
  border-bottom: 1px solid rgba(234, 217, 193, .16);
}

.footer--centered .footer__contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  min-width: 0;
  min-height: 118px;
  padding: 28px 18px;
  text-align: center !important;
  color: var(--dg-light, #ead9c1);
}

.footer--centered .footer__contact + .footer__contact {
  border-left: 1px solid rgba(234, 217, 193, .16);
}

.footer--centered .footer__label {
  display: block;
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: .64rem !important;
  font-weight: 400 !important;
  line-height: 1.3;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: rgba(234, 217, 193, .48) !important;
}

.footer--centered .footer__contact strong, .footer--centered .footer__contact a {
  max-width: 100%;
  overflow-wrap: anywhere;
  font-family: var(--font-body) !important;
  font-size: clamp(.9rem, 1vw, 1rem) !important;
  font-weight: 400 !important;
  line-height: 1.45;
  letter-spacing: .01em;
  color: rgba(234, 217, 193, .9) !important;
}

.footer--centered a.footer__contact {
  transition: background-color .3s ease;
}

.footer--centered a.footer__contact:hover {
  background: rgba(255, 255, 255, .035);
}

.footer--centered .footer__cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 !important;
  padding: 15px 26px !important;
  border: 1px solid rgba(234, 217, 193, .45) !important;
  border-radius: 999px;
  font-family: var(--font-body) !important;
  font-size: .72rem !important;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .15em !important;
  text-transform: uppercase;
  color: var(--dg-light, #ead9c1) !important;
  transition: color .3s ease, background-color .3s ease, border-color .3s ease, transform .3s ease;
}

.footer--centered .footer__cta:hover {
  color: var(--dg-dark, #63513D) !important;
  background: var(--dg-light, #ead9c1) !important;
  border-color: var(--dg-light, #ead9c1) !important;
  transform: translateY(-2px);
}

.footer--centered .footer__cta span {
  transition: transform .3s ease;
}

.footer--centered .footer__cta:hover span {
  transform: translate(3px, -3px);
}

.footer--centered .footer__bottom {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  width: calc(100% - clamp(48px, 10vw, 152px)) !important;
  max-width: none !important;
  gap: 28px !important;
  margin: clamp(68px, 8vw, 112px) auto 0 !important;
  padding: 23px 0 27px !important;
  border-top: 1px solid rgba(234, 217, 193, .13) !important;
  text-align: center;
  font-family: var(--font-body);
  font-size: .65rem;
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(234, 217, 193, .46);
}

.footer--centered .footer__bottom > .footer__copyright, .footer--centered .footer__bottom > span:first-child {
  justify-self: start;
  text-align: left;
}

.footer--centered .footer__bottom-center {
  justify-self: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  min-width: 0;
  text-align: center !important;
}

.footer--centered .footer__type {
  display: block;
  white-space: normal;
}

.footer--centered .footer__legal {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px 9px;
  font-size: .61rem;
  letter-spacing: .07em;
  text-transform: none;
}

.footer--centered .footer__legal a.iubenda-embed, .footer--centered .footer__legal a.iubenda-embed:link, .footer--centered .footer__legal a.iubenda-embed:visited, .footer--centered .footer__legal a.iubenda-embed:hover, .footer--centered .footer__legal a.iubenda-embed:focus, .footer--centered .footer__legal a.iubenda-embed:active {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-family: var(--font-body) !important;
  font-size: inherit !important;
  font-weight: 400 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  text-transform: none !important;
  text-decoration: none !important;
  color: rgba(234, 217, 193, .5) !important;
}

.footer--centered .footer__legal a.iubenda-embed:hover, .footer--centered .footer__legal a.iubenda-embed:focus {
  color: var(--dg-terracotta, #A9431E) !important;
}

.footer--centered .footer__legal-separator {
  opacity: .35;
}

.footer--centered .footer__credits {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 2px 0 0 !important;
  font-family: var(--font-body) !important;
  font-size: .58rem !important;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .075em !important;
  text-transform: none !important;
  color: rgba(234, 217, 193, .38) !important;
  transition: color .25s ease;
}

.footer--centered .footer__credits:hover {
  color: var(--dg-light, #ead9c1) !important;
}

.footer--centered .footer__scrolltop, .footer--centered .footer__bottom > a[data-scroll-top] {
  justify-self: end !important;
  text-align: right;
  color: rgba(234, 217, 193, .56) !important;
}

.footer--centered .footer__scrolltop:hover, .footer--centered .footer__bottom > a[data-scroll-top]:hover {
  color: var(--dg-light, #ead9c1) !important;
}

.footer__funding {
  margin: 2.5rem auto 0;
  text-align: center;
}

.footer__funding-link {
  display: inline-block;
  background: #fff;
  padding: 1rem 1.25rem;
  border-radius: 8px;
  line-height: 0;
  transition: opacity .25s ease;
  margin-top: 3rem;
}

.footer__funding-link:hover, .footer__funding-link:focus-visible {
  opacity: .85;
}

.footer__funding-img {
  display: block;
  width: 100%;
  max-width: 150px;
  height: auto;
}


/* ---------------------------------------------------------------
   SWIPER PERSONALIZZATO
   --------------------------------------------------------------- */
.section-swiper {
  position: relative;
  border-radius: 12px;
  height: 70vh;
  object-fit: cover;
}

.section-swiper .swiper-slide img {
  height: 70vh;
  object-fit: cover;
}

.section-swiper .swiper-button-next, .section-swiper .swiper-button-prev {
  width: 48px;
  height: 48px;
  background-color: rgba(255, 255, 255, 0.85);
  color: #B25329;
  border-radius: 50%;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(178, 83, 41, 0.15);
  transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  padding: 1rem;
}

.section-swiper .swiper-button-next::after, .section-swiper .swiper-button-prev::after {
  font-size: 16px;
  font-weight: 600;
}

.section-swiper .swiper-button-prev {
  left: 20px;
}

.section-swiper .swiper-button-next {
  right: 20px;
}

.section-swiper .swiper-button-next:hover, .section-swiper .swiper-button-prev:hover {
  background-color: #B25329;
  color: #FFFFFF;
  border-color: #B25329;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(178, 83, 41, 0.25);
}

.section-swiper .swiper-pagination {
  bottom: 18px !important;
}

.section-swiper .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background-color: #FFFFFF;
  opacity: 0.6;
  margin: 0 6px !important;
  transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  border-radius: 20px;
}

.section-swiper .swiper-pagination-bullet-active {
  width: 28px;
  background-color: #B25329;
  opacity: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}


/* ---------------------------------------------------------------
   VARIE / UTILITY
   --------------------------------------------------------------- */
.reveal-title, .reveal-line, .reveal-media, .reveal-card {
  will-change: transform,opacity;
}

[data-section-sequence] {
  position: relative;
}

[data-section-sequence] img {
  backface-visibility: hidden;
}


/* ---------------------------------------------------------------
   KEYFRAMES
   --------------------------------------------------------------- */
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes oilMarquee {
  to {
    transform: translateX(-100%);
  }
}


/* ==========================================================================
   MEDIA QUERIES ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â RESPONSIVE (da schermo grande a piccolo)
   ========================================================================== */

/* ============================================================
   Breakpoint (max-width: 991px)
   ============================================================ */
@media (max-width: 991px) {
  .dg-cursor {
    display: none;
  }

  .dg-nav {
    background: rgba(248,244,237,.94);
    backdrop-filter: blur(12px);
    padding: 16px 20px;
  }
  .dg-nav__toggle {
    display: block;
  }
  .dg-nav__links {
    position: absolute;
    top: 100%;
    left: 16px;
    right: 16px;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    background: rgba(248,244,237,.96);
    border: 1px solid rgba(99,81,61,.12);
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 24px 50px rgba(44,36,27,.12);
  }
  .dg-nav__links.is-open {
    display: flex;
  }
  .page-index .dg-nav:not(.scrolled) {
    background: transparent;
  }
  .menu-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0,62%) minmax(0,38%);
  }
  .menu-panel__nav, .menu-panel__visual {
    min-height: 0;
  }
  .menu-panel__nav {
    padding: 14px 22px 22px;
    min-height: 100vh;
  }
  .menu-panel__links a {
    padding: 6px 0;
    line-height: 3.8;
  }
  .menu-panel__links a strong {
    font-size: clamp(2rem,7vw,3.7rem);
  }
  .menu-panel__footer {
    align-items: center;
  }
  .menu-panel__visual {
    grid-row: 2;
    display: none;
  }
  .menu-panel__caption {
    bottom: 24px;
  }
  .menu-panel__caption strong {
    font-size: clamp(3.3rem,14vw,6rem);
  }
  .dg-nav__toggle2 {
    display: none!important;
  }

  .eyebrow {
    font-size: 0.8rem;
  }

  .hero {
    min-height: 100vh;
    z-index: 0 !important;
    margin-top: 5rem;
  }


.hero {

    background: white;

}


.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,rgb(36 179 0 / 8%),rgb(126 152 120 / 32%));
  z-index: 1;
  pointer-events: none;
}

.hero {
    min-height: 80svh !important;
  
    height: 80svh !important;
}
.oil-manifesto__inner {
    position: relative;
    z-index: 0;
    max-width: 980px;
    width: 100vw;
    text-align: center;
}
.video-gradient-bottom {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 80%;
    background: linear-gradient(to bottom, rgba(247, 241, 225, 0) 0%, rgba(247, 241, 225, 0.15) 30%, rgba(247, 241, 225, 0.5) 60%, rgba(247, 241, 225, 0.85) 85%, #F7F1E1 100%);
    pointer-events: none;
    z-index: 1;display:none
}
	.room-gallery-row{position: relative;width:100vw;margin-left: -5vw;margin-top: -6rem;height: 70vh;}
	
  .hero__title {
    font-size: clamp(3.6rem,14vw,6.7rem);
  }
  .hero__actions {
    flex-direction: column;
    align-items: flex-start;
  }
  .hero--inner {
    min-height: 88vh;
  }
  .hero__content {
    justify-content: center;
    text-align: center;
    min-height: 88svh;
    padding-bottom: clamp(4rem,8vh,6rem)!important;
    padding-left: 2rem;
    display: flex;
    flex-direction: column;
    padding-top: clamp(9rem,10vh,8rem)!important;
    color: white;
    z-index: 999!important;
    background: rgba(0,0,0,.25);
  }
	.h1, h1 {
    font-size: 2rem!important; color: #fff;
}
.hero__content h2{
  color: #ffffff;
}
  .values-grid, .rooms-layout, .contact-panel {
    grid-template-columns: 1fr;
  }
  .service-notes .values-grid {
    grid-template-columns: 1fr;
  }
  .service-notes .value-card {
    min-height: 300px;
  }

  .reason-card__content{
    position:relative;z-index:2;height:100%;
    display:flex;flex-direction:column;align-items:center;
    padding:clamp(24px,3vw,32px);
    color:var(--nav-text);text-align:center
  }
  .reason-card.is-open .reason-card__content{color:var(--section-dark)}

  .reason-card__icon{
    width:44px;height:44px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:color-mix(in srgb, var(--vivid-color, var(--nav-accent)) 16%, transparent);
    color:var(--vivid-color, var(--nav-accent));
    margin-bottom:20px;flex:none;
    transition:background .6s ease, color .6s ease;
  }
  .reason-card.is-open .reason-card__icon{
    background:rgba(255,255,255,.55);color:var(--section-dark);
  }
  .reason-card__icon svg{width:20px;height:20px}

  .reason-card h3{
    font-size: clamp(1.55rem,1.6vw,2.38rem);
    font-weight:400;
    line-height:1.18;
    margin-bottom:10px;text-align:center
  }
  .reason-card p{
    font-family:system-ui,sans-serif;
    font-size: 1rem;
    line-height:1.6;
    max-width:40ch;
    color:color-mix(in srgb, var(--nav-text) 72%, transparent);
    transition:color .6s ease;
  }
  .room-main img {
    min-height: 420px;
  }
  .room-card {
    grid-template-columns: 1fr;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    opacity: 1 !important;
    display: flex !important;
    flex-direction: column-reverse !important;
    gap: 1.25rem !important;
    padding: 1.25rem !important;
    border-radius: 18px !important;
    box-sizing: border-box !important;
  }
  .room-card img {
    min-height: 184px;
  }
  .room-type, .room-type--reverse {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .room-type--reverse .room-type__media, .room-type--reverse .room-type__content {
    order: initial;
  }
  .room-type__media {
    min-height: 62vh;
  }
  .room-type__content {
    min-height: auto;
    padding: 72px clamp(24px,7vw,70px) 90px;
  }
  .rooms-container {
    height: auto !important;
    min-height: auto !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
    padding: 2rem 1rem 90px 1rem !important;
  }
  .room-bg {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    width: 100% !important;
    height: 220px !important;
    flex-shrink: 0 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
  }
  .room-bg img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    display: block !important;
  }

  .rotation-showcase__intro {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .rotation-gallery__item-wrap {
    width: min(68vw,620px);
    margin-bottom: -9vw;
  }

  .dual-rotation__sticky {
    grid-template-columns: 1fr;
    padding: 2rem 1.25rem;
    align-content: start;
    position: relative;
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
  }
  .dual-rotation__copy {
    max-width: none;
  }
  .dual-rotation__copy h2 {
    font-size: clamp(2.6rem,11vw,4.7rem);
  }
  .dual-rotation__visuals {
    height: 62vh;
    width: 100%;
  }
  .dual-rotation__image--main {
    inset: 0 8% 8% 0;
  }
  .dual-rotation__image--detail {
    width: 44%;
    height: 42%;
    border-width: 5px;
  }
  .dual-rotation {
    height: auto;
    min-height: 0;
    padding: 6rem 0;
    background: #142016;
  }
  .dual-rotation__progress {
    display: none;
  }
  .dual-rotation__steps {
    display: grid!important;
    position: relative;
    inset: auto;
    padding: 0 1.25rem;
    gap: 1rem;
    pointer-events: auto;
  }
  .dual-rotation__steps article {
    height: auto;
    min-height: 180px;
    border-top: 1px solid rgba(255,255,255,.18);
    padding: 1.5rem 0;
    color: #fff;
    display: none;
  }
  .dual-rotation__steps article::before {
    content: attr(data-title);
    display: block;
    font-family: var(--font-heading);
    font-size: clamp(2rem,8vw,3.2rem);
    line-height: 1;
    margin-bottom: .7rem;
  }
  .dual-rotation__steps article::after {
    content: attr(data-text);
    display: block;
    max-width: 34rem;
    line-height: 1.65;
    opacity: .72;
  }

  .oil-story, .oil-story--reverse {
    grid-template-columns: 1fr;
  }
  .oil-story--reverse .oil-story__media {
    order: 0;
  }
  .oil-story__media {
    min-height: 62vh;
  }
  .oil-story__copy {
    min-height: 60vh;
  }

  .destination-card, .destination-card--wide {
    grid-column: auto;
    min-height: 65vh;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 300px;
  }
  .gallery-item--wide {
    grid-column: auto;
  }
  .gallery-item2 {
    height: 72vh;
    min-height: 460px;
  }
  .gallery-item2, .gallery-item2--animated {
    height: 72vh !important;
    min-height: 460px !important;
  }

  .location-section__grid {
    grid-template-columns: 1fr;
  }
  .location-section__media {
    min-height: 58vh;
  }
  .location-section__content {
    padding: 75px 24px 90px;
  }

  .specs div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .contact-layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .contact-layout .contact-info-card, .contact-layout .contact-panel {
    width: 100%;
    max-width: 100%;
  }
  .contact-layout .contact-panel {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .contact-info-card {
    padding: 32px 24px;
    border-radius: 26px;
    min-height: 0;
  }
  .map-placeholder {
    min-height: 0;
    border-radius: 22px;
  }
  .contact-layout iframe, .map-placeholder iframe {
    aspect-ratio: 1 / 1;
  }

  .footer__inner {
    grid-template-columns: 1.2fr 1fr 1fr;
  }
  .footer__lead {
    grid-column: 1/-1;
    padding-bottom: 24px;
  }
  .footer--centered .footer__inner {
    display: flex !important;
  }
  .footer--centered .footer__lead {
    grid-column: auto !important;
    padding-bottom: 0 !important;
  }
  .footer--centered .footer__contacts {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .footer--centered .footer__bottom {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  }

  .section-swiper {
    position: relative;
    border-radius: 12px;
    height: 46vh;
    object-fit: cover;
  }
  .section-swiper .swiper-slide img {
    height: 46vh;
    object-fit: cover;
  }

	#siteFooter {
    background-color: #81875f; 
    color: rgba(255, 255, 255, 0.7);
    padding: 10px 0 30px;
    font-family: var(--family);
    font-size: 0.85rem;
    letter-spacing: 1px;
    text-transform: uppercase;
}
}

/* ============================================================
   Breakpoint (max-width: 768px)
   ============================================================ */
@media (max-width: 768px) {
  .language-switcher {
    position: relative;
    flex-direction: block;
    align-items: flex-start;
    gap: 10;
  }
  .language-switcher:not(.is-open) button[aria-pressed="false"] {
    display: none;
  }
  .language-switcher button[aria-pressed="true"]::after {
    content: "";
    font-size: 0.55rem;
    display: inline-block;
    margin-left: 4px;
    transition: transform 0.2s ease;
  }
  .language-switcher.is-open button[aria-pressed="true"]::after {
    transform: rotate(180deg);
  }
  .language-switcher.is-open {
   
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    padding: 6px 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    z-index: 99;
  }
  .language-switcher.is-open button {
    margin-right: 0;
    padding: 6px 0;
    width: 100%;
    text-align: left;
  }

  .dual-rotation__sticky {
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    padding: 40px 20px;
    gap: 20px;
  }
  .dual-rotation__visuals {
    position: relative;
    width: 100%;
    height: 260px;
  }
  .dual-rotation__image--main img, .dual-rotation__image--detail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dual-rotation__image--detail {
    position: absolute;
    bottom: -10px;
    right: -10px;
    width: 45%;
    height: auto;
    z-index: 2;
  }

  .footer--centered .footer__bottom {
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }
}

/* ============================================================
   Breakpoint (max-width: 767px)
   ============================================================ */
@media (max-width: 767px) {
  .hero__content {
    padding-bottom: 5rem;
  }

  .dual-rotation__sticky {
    padding-top: 6rem;
  }
  .dual-rotation__visuals {
    height: 46vh;
  }
  .dual-rotation__copy > p:last-child {
    font-size: .95rem;
  }

  .oil-gallery__grid {
    grid-template-columns: 1fr;
    grid-template-rows: 58vh 42vh 42vh;
  }
  .oil-gallery__grid figure:first-child {
    grid-row: auto;
  }
  .oil-marquee {
    font-size: 28vw;
    top: 10%;
  }

  .destination-grid {
    grid-template-columns: 1fr;
  }
  .destination-card, .destination-card--wide {
    grid-column: 1;
    min-height: 68vh;
  }
  .must-see__grid {
    grid-template-columns: 1fr;
  }

  .video-wrap, .video-wrap.min-vh-md-60 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .video-wrap video, .video-wrap .detectVi, #slide-video {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    object-fit: contain;
  }
}

/* ============================================================
   Breakpoint (max-width: 680px)
   ============================================================ */
@media (max-width: 680px) {
  .dg-nav__toggle {
    min-width: auto;
    padding: 11px 13px;
  }
  .dg-nav__toggle-label {
    display: none;
  }
  .dg-nav__brand {
    width: auto;
    max-height: 73px;
  }
  .dg-nav__brand img {
    width: 101px;
    padding: .2rem!important;
    max-height: 50px;
  }
  .menu-panel {
    grid-template-rows: minmax(0,68%) minmax(0,32%);
  }
  .menu-panel__topline span:last-child {
    display: none;
  }
  .menu-panel__links a {
    grid-template-columns: 38px 1fr;
    gap: 11px;
  }
  .menu-panel__links a strong {
    font-size: clamp(1.85rem,9vw,3rem);
  }
  .menu-panel__footer {
    gap: 14px;
  }
  .menu-panel__footer > a {
    max-width: 140px;
    text-align: right;
    line-height: 1.35;
  }

  .values-grid {
    padding-block: 50px 76px;
  }
  .values-grid .value-card {
    min-height: 220px;
  }

  .room-types {
    padding-top: 90px;
  }
  .room-type__media {
    min-height: 54vh;
  }
  .room-type__content h3 {
    font-size: clamp(3.2rem,16vw,5rem);
  }
  .rooms-title__line {
    display: inline;
  }
  .rooms-title__line::after {
    content: " ";
  }
  .rooms-title__line--accent {
    display: block;
    margin-top: .28em;
  }

  .rotation-showcase {
    padding-top: 95px;
  }
  .rotation-showcase__intro {
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 70px;
  }
  .rotation-gallery {
    padding-top: 2vh;
  }
  .rotation-gallery__item-wrap {
    width: 82vw;
    margin-bottom: -12vw;
    perspective: 850px;
  }
  .rotation-gallery__item {
    aspect-ratio: 1.25;
    border-radius: 16px;
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .rotation-marquee {
    top: 58%;
  }
  .rotation-marquee__inner {
    gap: 1rem;
  }
  .rotation-gallery__media {
    min-height: 54vw;
  }
  .rotation-gallery__media img {
    min-height: 54vw;
  }
  .rotation-gallery__content {
    min-height: 245px;
    padding: 28px 24px 30px;
  }
  .rotation-gallery__content h3 {
    max-width: 85%;
  }

  .gallery-item2 {
    height: 68vh;
    min-height: 420px;
  }
  .gallery-item2, .gallery-item2--animated {
    height: 51vh !important;
    min-height: 420px !important;
  }

  .location-section__media {
    min-height: 440px;
  }
  .location-section__facts {
    grid-template-columns: 1fr;
  }
  .location-section__facts div, .location-section__facts div + div {
    padding: 17px 0;
    border-left: 0;
  }
  .location-section__facts div + div {
    border-top: 1px solid rgba(99,81,61,.18);
  }
  .location-section__facts > div, .location-section__facts > div:first-child {
    padding: 18px 0;
  }
  .location-section__facts > div + div {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid rgba(99, 81, 61, 0.22);
    border-top-color: color-mix(in srgb, currentColor 22%, transparent);
  }
  .footer .location-section__facts > div + div {
    border-top-color: color-mix(in srgb, currentColor 28%, transparent);
  }

  .footer__inner {
    grid-template-columns: 1fr 1fr;
    gap: 45px 24px;
  }
  .footer__lead {
    grid-column: 1/-1;
  }
  .footer__languages {
    grid-column: 1/-1;
  }
  .footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .footer.footer--centered {
    padding-top: 82px;
    padding-bottom: calc(96px + env(safe-area-inset-bottom));
  }
  .footer.footer--centered::before {
    height: 32px;
  }
  .footer--centered .footer__inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
    text-align: center !important;
  }
  .footer--centered .footer__lead {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }
  .footer--centered .footer__brand {
    justify-content: center !important;
    margin-bottom: 28px;
  }
  .footer--centered .footer-logo {
    width: 175px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .footer--centered .footer__lead .footer__claim {
    max-width: 340px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 38px !important;
    font-size: clamp(2rem, 10.5vw, 3.15rem) !important;
    line-height: 1.03 !important;
    text-align: center !important;
  }
  .footer--centered .footer__contacts {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 390px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 38px !important;
  }
  .footer--centered .footer__contact {
    min-height: 0;
    padding: 20px 12px;
    text-align: center !important;
  }
  .footer--centered .footer__contact + .footer__contact {
    border-left: 0 !important;
    border-top: 1px solid rgba(234, 217, 193, .16);
  }
  .footer--centered .footer__cta {
    width: min(100%, 330px);
  }
  .footer--centered .footer__bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(100% - 44px) !important;
    gap: 11px !important;
    margin-top: 58px !important;
    padding-top: 24px !important;
    padding-bottom: 10px !important;
    text-align: center !important;
  }
  .footer--centered .footer__bottom > *, .footer--centered .footer__bottom > .footer__copyright, .footer--centered .footer__bottom > span:first-child, .footer--centered .footer__bottom-center {
    align-self: center !important;
    justify-self: center !important;
    width: auto;
    max-width: 100%;
    text-align: center !important;
  }
  .footer--centered .footer__bottom-center {
    gap: 7px;
  }
  .footer--centered .footer__legal {
    justify-content: center !important;
    gap: 5px 8px;
  }
  .footer--centered .footer__credits {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin-top: 2px !important;
    text-align: center !important;
  }
  .footer--centered .footer__scrolltop, .footer--centered .footer__bottom > a[data-scroll-top] {
    display: none !important;
  }
}

/* ============================================================
   Breakpoint (max-width: 575.98px)
   ============================================================ */
@media (max-width: 575.98px) {
  .footer__funding-img {
    max-width: 150px;
  }
  .footer__funding-link {
    padding: .75rem 1rem;
  }
}

/* ============================================================
   Breakpoint (max-width: 575px)
   ============================================================ */
@media (max-width: 575px) {
  .dg-nav__brand img {
    width: 142px;
  }

  section {
    padding: 82px 0;
  }

  .hero__lead {
    font-size: 1rem;
  }

  .btn-cinematic {
    width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }

  .image-frame--tall {
    height: 520px;
  }
  .value-card {
    padding: 20px;
  }

  .experience-card {
    height: 500px;
  }
  .drag-rail {
    padding-left: 20px;
    padding-right: 20px;
  }

  .contact-panel {
    padding: 26px 20px;
    border-radius: 22px;
  }
  .contact-info-card {
    padding: 26px 20px;
    border-radius: 20px;
  }
  .contact-layout .contact-panel {
    padding: 26px 20px;
  }

  .container {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ============================================================
   Breakpoint (max-width: 380px)
   ============================================================ */
@media (max-width: 380px) {
  .room-card {
    padding: 1rem !important;
    gap: 1rem !important;
  }
  .room-bg {
    height: 170px !important;
  }
}

/* ============================================================
   Breakpoint (min-width: 768px)
   ============================================================ */
@media (min-width: 768px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}

/* ============================================================
   Breakpoint (min-width: 769px)
   ============================================================ */
@media (min-width: 769px) {
  .mobile-bottom-nav {
    display: none;
  }
}

/* ============================================================
   Breakpoint (min-width: 992px)
   ============================================================ */
@media (min-width: 992px) {
  .services-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ============================================================
   Accessibilita: riduzione animazioni
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .values-grid .value-card, .gallery-item2, .gallery-item2 img {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    clip-path: none !important;
  }

  .rotation-gallery__item {
    transform: none !important;
  }
  .rotation-marquee__inner {
    transform: none !important;
  }

  .gallery-item2 {
    height: 68vh !important;
    min-height: 420px !important;
  }
  .gallery-item2__mask {
    clip-path: none !important;
  }
  .gallery-item2__mask img {
    transform: none !important;
  }

  *, *:before, *:after {
    animation-duration: .01ms!important;
    animation-iteration-count: 1!important;
    scroll-behavior: auto!important;
    transition-duration: .01ms!important;
  }
}



.bkgWatercolor {
  position: absolute;
  top: 15%;
  right: 0vw;
  transform: translateY(-50%);
  width: 45vw;
  max-width: 913px;
  min-width: 320px;
  height: auto;
  z-index: 1;
  pointer-events: none;
  /* FONDAMENTALE: permette alle sbavature d'acquerello di uscire senza venire tagliate */
  overflow: visible !important;
}
.page-template-camere .bkgWatercolor {
  position: absolute;
  top: 55%;
  right: 37vw;
  transform: translateY(-50%);
  width: 25vw;
  max-width: 916px;
  min-width: 320px;
  height: auto;
  z-index: 0;
  pointer-events: none;
  /* FONDAMENTALE: permette alle sbavature d'acquerello di uscire senza venire tagliate */
  overflow: visible !important;
  opacity: .4;
}
.olive-reveal-section {
  width: 100%;
  height: auto;
  position: relative;
  display: block;
  overflow: visible !important;
}

.olive-reveal__svg-mask {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible !important;
}

.olive-reveal__painting {
  width: 100%;
  height: 100%;
  object-fit: contain;
}





/* ---------------- REASONS SECTION ---------------- */
  .reasons{position:relative;padding:clamp(40px,8vw,90px) 0 clamp(70px,10vw,120px);overflow:hidden;margin-top: 20vh;}
  .reasons__head{position:relative;z-index:2;max-width:640px;margin:0 auto clamp(36px,6vw,64px);text-align:center}
  .reasons__head .section-title{
    font-size: clamp(1.9rem,4.2vw,4.2rem);
    font-weight:400;
    line-height:1.12;
    letter-spacing:-.015em;
    margin-bottom:16px;
  }
  .reasons__head .section-title em{font-style:italic;color:var(--menu-accent)}
  .reasons__lead{
    font-size: 1.2rem;
    line-height:1.65;
    color:color-mix(in srgb, var(--nav-text) 75%, transparent);
  }


  .reasons__botanical{
    position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
  }
  .reasons__botanical svg{position:absolute;opacity:.10;color:var(--nav-accent)}
  .leaf-vine-1{width:220px;height:220px;top:-40px;left:-30px;transform:rotate(-18deg)}
  .leaf-vine-2{width:150px;height:150px;bottom:10%;left:4%;transform:rotate(24deg);opacity:.08!important}
  .leaf-olive-1{width:260px;height:130px;top:6%;right:-60px;transform:rotate(12deg)}
  .leaf-olive-2{width:190px;height:95px;bottom:-20px;right:12%;transform:rotate(-10deg);color:var(--acqua-accent)}

  .splash-grid{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(208px,1fr));
    gap:clamp(14px,2vw,24px);
    max-width: 80%;
    margin:0 auto;
  }
  @media (max-width:480px){ .splash-grid{grid-template-columns:1fr} }







/* ==========================================================================
   CAMERE DRAG GALLERY
   ========================================================================== */

/* Sezione Contenitore */
.v21-room-drag-gallery,
.camere-drag-section {
  padding: clamp(110px, 12vw, 185px) 0;
  background: linear-gradient(180deg, #f8fff7, #f7f1e1);
  overflow: hidden;
}

.v21-room-drag-gallery .section-head,
.camere-drag-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(36px, 5vw, 72px);
}

.camere-drag-hint {
  margin: 0;
  color: var(--muted, #766861);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Area di Drag */
.drag-gallery,
.camere-drag-gallery {
  width: 100%;
  overflow: hidden;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y; /* Consente lo scroll verticale su mobile durante il drag */
}

.drag-gallery.is-dragging,
.camere-drag-gallery.is-dragging {
  cursor: grabbing;
}

/* Binario di Scorrimento */
.drag-track,
.camere-drag-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  padding: 0 clamp(20px, 4vw, 64px);
  will-change: transform;
}

/* Schede della Galleria */
.camere-type-card {
  position: relative;
  flex: 0 0 clamp(320px, 38vw, 560px); /* Evita il ridimensionamento o schiacciamento */
  height: clamp(430px, 66vh, 720px);
  border-radius: var(--radius, 4px);
  overflow: hidden;
  background: #d8cbbc;
  color: #fff;
  box-shadow: 0 26px 80px rgba(37, 31, 29, 0.08);
}

.camere-type-card figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.camere-type-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
  pointer-events: none; /* Impedisce il drag nativo dell'immagine */
  image-rendering: auto;
}

/* Overlay Sfumato */
.camere-type-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, 0.35));
  pointer-events: none;
}

.camere-type-card.camere2::after {
  background: 
    linear-gradient(180deg, transparent 18%, rgba(0, 0, 0, 0.12)),
    linear-gradient(90deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.08));
}

/* Contenuto interno alle Schede */
.camere-type-card div {
  position: absolute;
  z-index: 2;
  left: clamp(18px, 3vw, 42px);
  right: clamp(18px, 3vw, 42px);
  bottom: clamp(18px, 3vw, 42px);
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.camere-type-card span {
  display: block;
  font-size: 0.74rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.camere-type-card h3,
.camere-type-card strong {
  margin-bottom: 8px;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.4rem, 2.5vw, 2.8rem);
  font-weight: 400;
  line-height: 1.05;
}

.camere-type-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.6;
}

/* Responsive Override per Mobile */
@media (max-width: 991px) {
  .camere-type-card {
    flex: 0 0 min(82vw, 480px);
    height: min(58vh, 520px);
  }
}

 :root{
    --cream:#F7F1E1;
    --cream-deep:#EFE6D2;
    --ink:#2C241B;
    --muted:#7A6F62;
    --green:#4E6C38;
    --green-deep:#33472A;
    --terracotta:#A9431E;
    --lake:#5B7C8F;
    --hair: rgba(44,36,27,.15);
    --hair-strong: rgba(44,36,27,.28);
  }


  .intro .scrollcue{
    margin-top:1.2rem;
    width:1px; height:52px;
    background:var(--hair-strong);
    position:relative;
    overflow:hidden;
  }
  .intro .scrollcue::after{
    content:'';
    position:absolute; left:0; top:-100%;
    width:100%; height:100%;
    background:var(--terracotta);
    animation:cueDrop 2.2s ease-in-out infinite;
  }
  @keyframes cueDrop{
    0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}
  }

 /* ===========================================================
     1) RECENSIONI ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â quaderno delle voci
     =========================================================== */
  .rec{background:var(--cream); position:relative;}
  .rec-scroll{height:340vh; position:relative;}
  .rec-pin{
    position:relative;
    height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    padding:0 6vw;
  }
  .rec-vines{
    position:absolute; inset:-10% -5%;
    width:110%; height:120%;
    pointer-events:none;
    opacity:.5;
  }
  .rec-vines path{fill:none; stroke:var(--green); stroke-width:1;}
  .rec-vines circle{fill:var(--terracotta); opacity:.55;}
  .rec-vines .vine-back{opacity:.35;}

  .rec-inner{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 0.9fr 1.6fr;
    gap:clamp(2rem, 6vw, 6rem);
    align-items:center;
    max-width:1180px;
    width:100%;
  }
  .rec-rating{
    display:flex;
    flex-direction:column;
    gap:.6rem;
    border-right:1px solid var(--hair);
    padding-right:clamp(1.5rem, 3vw, 3rem);
  }
  .rec-rating__num{
    font-family:'Seasons', serif;
    font-size:clamp(4rem, 9vw, 7.5rem);
    line-height:.9;
    color:var(--green-deep);
  }
  .rec-rating__label{
    font-size:.86rem;
    color:var(--muted);
    max-width:16ch;
    font-style:italic;
    font-family:'Seasons', serif;
  }
  .rec-rating__stars{
    display:flex; gap:.3rem; margin-top:.4rem;
  }
  .rec-rating__stars span{
    width:6px; height:6px; border-radius:50%;
    background:var(--terracotta);
    display:inline-block;
  }

  .rec-quotes{position:relative; min-height:clamp(220px, 32vw, 320px);}
  .rec-quote{
    position:absolute; inset:0;
    display:flex; flex-direction:column; justify-content:center;
    gap:1.4rem;
    opacity:0;
    pointer-events:none;
  }
  .rec-quote.is-active{opacity:1; pointer-events:auto;}
  .rec-quote p{
    font-family:'Seasons', serif;
    font-weight:400;
    font-size:clamp(1.5rem, 2.6vw, 2.35rem);
    line-height:1.25;
    color:var(--ink);
    max-width:30ch;
  }
  .rec-quote cite{
    font-style:normal;
    font-size:.82rem;
    letter-spacing:.03em;
    color:var(--muted);
  }
  .rec-rule{
    margin-top:1.6rem;
    width:64px; height:1px;
    background:var(--terracotta);
    transform-origin:left;
  }
  .rec-progress{
    position:absolute;
    left:clamp(6vw, 8vw, 10vw);
    bottom:6vh;
    display:flex; gap:.4rem;
    z-index:3;
  }
  .rec-progress i{
    width:18px; height:1px; background:var(--hair-strong);
    display:block; transition:background .3s;
  }
  .rec-progress i.is-active{background:var(--green);}

  @media (max-width:860px){
    .rec-scroll{height:auto;}
    .rec-pin{position:relative; height:auto; min-height:auto; padding:14vh 6vw;}
    .rec-inner{grid-template-columns:1fr; gap:2.4rem;}
    .rec-rating{border-right:none; border-bottom:1px solid var(--hair); padding-right:0; padding-bottom:1.4rem;}
    .rec-quotes{min-height:220px;}
  }

  /* ===========================================================
     2) MAPPA ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â planimetria viva
     =========================================================== */
  .map-sec{background:var(--cream-deep); padding:14vh 0;}
  .map-head{
    max-width:640px;
    margin:0 auto 6vh;
    padding:0 6vw;
    text-align:center;
  }
  .map-head h2{
    font-family:'Seasons', serif; font-weight:400;
    font-size:clamp(2rem, 4vw, 3rem);
  }
  .map-head p{color:var(--muted); margin-top:.8rem;}

  .map-grid{
    display:grid;
    grid-template-columns: 1.05fr .95fr;
    gap:clamp(1.5rem, 4vw, 4rem);
    max-width:1320px;
    margin:0 auto;
    padding:0 6vw;
    align-items:start;
  }
  .map-visual{
    position:sticky;
    top:8vh;
    height:82vh;
    border-radius:2px;
    overflow:hidden;
    background:#e7ddc4;
  }
  .map-visual img{
    width:100%; height:100%; object-fit:cover;
    transform:scale(1.08);
    will-change:transform;
  }
  .pin{
    position:absolute;
    width:10px; height:10px;
    margin:-5px 0 0 -5px;
    border-radius:50%;
    background:var(--terracotta);
    opacity:.28;
    transform:scale(.7);
    transition:opacity .5s ease, transform .5s ease, background .5s ease;
  }
  .pin::before{
    content:'';
    position:absolute; inset:-9px;
    border-radius:50%;
    border:1px solid var(--terracotta);
    opacity:0;
    transform:scale(.6);
    transition:opacity .5s ease, transform .5s ease;
  }
  .pin.is-active{opacity:1; transform:scale(1); background:var(--terracotta);}
  .pin.is-active::before{opacity:.55; transform:scale(1);}
  .pin__label{
    position:absolute;
    top:14px; left:50%;
    transform:translateX(-50%);
    white-space:nowrap;
    font-size:.72rem;
    letter-spacing:.02em;
    color:#fff;
    background:rgba(44,36,27,.72);
    padding:.25rem .55rem;
    border-radius:2px;
    opacity:0;
    transition:opacity .4s ease .1s;
  }
  .pin.is-active .pin__label{opacity:1;}

  .map-items{list-style:none;}
  .map-item{
    min-height:64vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-top:1px solid var(--hair);
    padding:2.4rem 0;
    opacity:.4;
    transition:opacity .5s ease;
  }
  .map-item:last-child{border-bottom:1px solid var(--hair);}
  .map-item.is-active{opacity:1;}
  .map-item h3{
    font-family:'Seasons', serif; font-style:italic; font-weight:400;
    font-size:clamp(1.5rem, 2.4vw, 2.1rem);
    color:var(--green-deep);
    margin-bottom:.6rem;
  }
  .map-item p{color:var(--ink); max-width:38ch; font-size:.98rem;}

  @media (max-width:900px){
    .map-grid{grid-template-columns:1fr;}
    .map-visual{position:relative; top:auto; height:52vh; margin-bottom:2rem;}
    .map-item{min-height:auto; padding:1.8rem 0; opacity:1;}
  }

  /* ===========================================================
     3) SERVIZI ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â indice degli spazi
     =========================================================== */
  .serv-sec{background:var(--cream); padding:14vh 0 16vh;}
  .serv-head{
    max-width:640px;
    margin:0 auto 6vh;
    padding:0 6vw;
    text-align:center;
  }
  .serv-head h2{
    font-family:'Seasons', serif; font-weight:400;
    font-size:clamp(2rem, 4vw, 3rem);
  }
  .serv-head p{color:var(--muted); margin-top:.8rem;}

  .serv-grid{
    display:grid;
    grid-template-columns: .8fr 1.2fr;
    gap:clamp(1.5rem, 4vw, 4rem);
    max-width:1320px;
    margin:0 auto;
    padding:0 6vw;
  }
  .serv-index{list-style:none;}
  .serv-item{
    border-top:1px solid var(--hair);
    padding:clamp(1.6rem, 3vw, 2.6rem) 0;
    cursor:default;
  }
  .serv-index li:last-child{border-bottom:1px solid var(--hair);}
  .serv-item span{
    display:block;
    font-family:'Seasons', serif;
    font-size:clamp(1.4rem, 2.6vw, 2.2rem);
    color:var(--muted);
    transition:color .5s ease, transform .5s ease, font-style .3s ease;
    transform-origin:left center;
  }
  .serv-item p{
    max-width:34ch;
    color:var(--muted);
    font-size:.92rem;
    margin-top:.6rem;
    opacity:0;
    max-height:0;
    overflow:hidden;
    transition:opacity .5s ease, max-height .5s ease, margin-top .5s ease;
  }
  .serv-item.is-active span{
    color:var(--green-deep);
    font-style:italic;
    transform:scale(1.04);
  }
  .serv-item.is-active p{opacity:1; max-height:6em; margin-top:.6rem;}

  .serv-frame{
    position:sticky;
    top:8vh;
    height:78vh;
    border-radius:2px;
    overflow:hidden;
    background:#e7ddc4;
  }
  .serv-panel{
    position:absolute; inset:0;
    background-size:cover;
    background-position:center;
    clip-path:inset(0 0 100% 0);
    will-change:clip-path, background-position;
  }
  .serv-panel.is-active{clip-path:inset(0 0 0 0);}

  @media (max-width:900px){
    .serv-grid{grid-template-columns:1fr;}
    .serv-frame{position:relative; top:auto; height:44vh; margin-bottom:2rem;}
    .serv-item p{opacity:1; max-height:none; margin-top:.5rem;}
    .serv-item span{color:var(--green-deep); font-style:italic;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
    .rec-pin{position:relative !important; height:auto !important;}
    .rec-scroll{height:auto !important;}
    .rec-quote{position:relative; opacity:1 !important; pointer-events:auto; margin-bottom:2rem;}
    .map-visual, .serv-frame{position:relative !important; top:auto !important;}
    .map-item, .pin, .serv-panel{opacity:1 !important; clip-path:inset(0) !important;}
  }

.faq-body{padding:4vh 0 18vh;}
  .faq-grid{
    display:grid;
    grid-template-columns: .62fr 1.38fr;
    gap:clamp(1.5rem, 5vw, 5rem);
    max-width:86vw;
    margin:0 auto;
    padding:0 6vw;
    align-items:start;
  }

  .faq-nav{position:sticky; top:12vh;}
  .faq-nav ul{list-style:none; display:flex; flex-direction:column; gap:.2rem;}
  .faq-nav li{
    padding:.7rem 0;
    border-left:1px solid var(--hair);
    padding-left:1.1rem;
    cursor:pointer;
    transition:border-color .4s ease;
  }
  .faq-nav li span{
    font-family:'Seasons', serif; font-style:italic;
    font-size:clamp(1rem, 1.6vw, 1.25rem);
    color:var(--muted);
    transition:color .4s ease;
  }
  .faq-nav li.is-active{border-left-color:var(--terracotta);}
  .faq-nav li.is-active span{color:var(--green-deep);}

  .faq-group{scroll-margin-top:14vh;}
  .faq-group + .faq-group{margin-top:clamp(3rem, 6vw, 5rem);}
  .faq-group h2{
    font-family:'Seasons', serif; font-weight:400;
    font-size:clamp(1.5rem, 2.6vw, 2rem);
    margin-bottom:1.4rem;
    color:var(--ink);
  }

  .faq-item{
    border-top:1px solid var(--hair);
  }
  .faq-item:last-child{border-bottom:1px solid var(--hair);}

  .faq-item summary{
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.2rem;
    padding:1.35rem 0;
    cursor:pointer;
  }
  .faq-item summary::-webkit-details-marker{display:none;}

  .faq-item summary .q{
    font-size:clamp(1.05rem, 1.9vw, 1.28rem);
    color:var(--ink);
    transition:color .35s ease;
    max-width:44ch;
  }
  .faq-item[open] summary .q{color:var(--green-deep);}

  .faq-toggle{
    position:relative;
    width:16px; height:16px;
    flex:0 0 auto;
  }
  .faq-toggle i{
    position:absolute; left:0; top:50%;
    width:100%; height:1px;
    background:var(--terracotta);
    transform:translateY(-50%);
  }
  .faq-toggle i:last-child{transform:translateY(-50%) rotate(90deg);}
  .faq-item[open] .faq-toggle{transform:rotate(45deg);}

  .faq-answer-wrap{overflow:hidden; height:0;}
  .faq-answer{
    padding:0 0 1.6rem;
  }
  .faq-answer p{
    max-width:56ch;
    color:var(--muted);
    font-size:.98rem;
  }
  .faq-rule{
    width:44px; height:1px;
    background:var(--terracotta);
    transform-origin:left;
    transform:scaleX(0);
    margin-bottom:1rem;
  }

  @media (max-width:860px){
    .faq-grid{grid-template-columns:1fr;}
    .faq-nav{
      position:static;
      flex-direction:row;
      display:flex;
      gap:1.4rem;
      overflow-x:auto;
      padding-bottom:.5rem;
      margin-bottom:1rem;
    }
    .faq-nav ul{flex-direction:row;}
    .faq-nav li{border-left:none; border-bottom:2px solid var(--hair); padding-left:0; padding-bottom:.5rem; white-space:nowrap;}
    .faq-nav li.is-active{border-left:none; border-bottom-color:var(--terracotta);}
  }


   .body-grid{
    max-width:1180px; margin:0 auto; padding:0 6vw 16vh;
    display:grid; grid-template-columns:.95fr 1.05fr;
    gap:clamp(2rem, 5vw, 5rem);
  }

  .info-block + .info-block{ margin-top:2.6rem; padding-top:2.2rem; border-top:1px solid var(--hair); }
  .info-block h3{
    font-family:'Seasons', serif; font-style:italic; font-weight:400;
    font-size:1.2rem; color:var(--green-deep); margin-bottom:.6rem;
  }
  .info-block p, .info-block a{
    font-size:1rem; color:var(--ink);
  }
  .info-block .muted{ color:var(--muted); font-size:.92rem; margin-top:.2rem; }
  .info-block a{ text-decoration:none; border-bottom:1px solid var(--hair-strong); transition:border-color .3s ease, color .3s ease; }
  .info-block a:hover{ color:var(--terracotta); border-color:var(--terracotta); }

  .triangulate{ margin-top:2.6rem; }
  .triangulate svg{ width:100%; height:auto; display:block; }
  .triangulate text{ font-family:'Montserrat', sans-serif; font-size:11px; fill:var(--muted); }
  .triangulate .pt{ fill:var(--terracotta); }
  .triangulate .lbl-place{ font-family:'Seasons', serif; font-style:italic; font-size:14px; fill:var(--green-deep); }
  .triangulate path{ fill:none; stroke:var(--hair-strong); stroke-width:1; stroke-dasharray:4 4; }

  .map-embed{
    margin-top:2.6rem; border-radius:2px; overflow:hidden;
    filter:sepia(.15) saturate(.85);
    border:1px solid var(--hair);
  }
  .map-embed iframe{ width:100%; height:260px; border:0; display:block; }

  /* form */
  .form-wrap h2{
    font-family:'Seasons', serif; font-weight:400;
    font-size:clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom:.5rem;
  }
  .form-wrap > p{ color:var(--muted); margin-bottom:2.4rem; max-width:42ch; }

  .field{ position:relative; margin-bottom:2rem; }
  .field label{
    display:block; font-size:.8rem; letter-spacing:.02em; color:var(--muted); margin-bottom:.5rem;
  }
  .field input, .field textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--hair-strong);
    padding:.5rem 0; font-family:'Montserrat', sans-serif; font-weight:300; font-size:1rem; color:var(--ink);
    outline:none;
  }
  .field textarea{ resize:vertical; min-height:90px; }
  .field .field-line{
    position:absolute; left:0; bottom:0; height:1px; width:100%;
    background:var(--terracotta); transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
    pointer-events:none;
  }
  .field.is-focus .field-line{ transform:scaleX(1); }

  .row-2{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; }

  .submit{
    margin-top:1rem;
    background:none; border:none; cursor:pointer;
    font-family:'Seasons', serif; font-style:italic; font-size:1.15rem; color:var(--green-deep);
    display:inline-flex; align-items:center; gap:.6rem;
    padding-bottom:.3rem; border-bottom:1px solid var(--hair-strong);
    transition:border-color .3s ease, color .3s ease;
  }
  .submit:hover{ color:var(--terracotta); border-color:var(--terracotta); }
  .submit svg{ width:16px; height:16px; transition:transform .3s ease; }
  .submit:hover svg{ transform:translateX(4px); }

  .form-note{ margin-top:1.6rem; font-size:.82rem; color:var(--muted); opacity:0; }
  .form-note.is-visible{ opacity:1; }

  @media (max-width:900px){
    .body-grid{ grid-template-columns:1fr; }
    .row-2{ grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  }


/* ==========================================================================
   NUEVOS ESTILOS: GSAP CINEMATICO & GALERÃƒÆ’Ã‚ÂA HORIZONTAL & WEBGL
   ========================================================================== */

/* 2. Hero CinemÃƒÆ’Ã‚Â¡tico Initial States */
.hero__media {
  overflow: hidden;
  will-change: transform, filter;
}

.hero-video-cinematic {
  will-change: transform, filter;
  filter: brightness(0.4) blur(8px);
  transform: scale(1.15);
}

.hero__content h1,
.hero__content .h1 {
  will-change: transform, opacity, clip-path;
  display: inline-block;
}

/* 3. Section Pinning (Ãƒâ€šÃ‚Â¿Por quÃƒÆ’Ã‚Â© elegirnos?) */
.perche-sceglierci-section {
  position: relative;
  width: 100%;
}

.reasons-container article,
.reasons article,
.reasons .value-card {
  will-change: transform, opacity;
}

/* 4. GalerÃƒÆ’Ã‚Â­a Horizontal */
.gallery-horizontal-wrapper {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--dg-cream);
  padding: 80px 0;
}

.gallery-container {
  width: 100%;
  height: 80vh;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.gallery-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 40px;
  padding: 0 5vw;
  will-change: transform;
}

.gallery-image {
  flex: 0 0 70vw;
  max-width: 850px;
  height: 65vh;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--dg-shadow);
}

.gallery-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.gallery-image:hover img {
  transform: scale(1.05);
}

/* 5. WebGL / Three.js Canvas Laghetto */
.laghetto-section {
  position: relative;
  min-height: 100vh;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

#laghetto-canvas-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

#laghetto-canvas-container canvas {
  width: 100% !important;
  height: 100% !important;
  display: block;
}

.laghetto-content {
  position: relative;
  z-index: 2;
  color: #ffffff;
  text-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

.car{ width:100%; padding:8vh 0; position:relative; }
  .car-head{ padding:0 6vw; margin-bottom:5vh; }
  .car-head p{
    font-family:'Seasons', serif; font-style:italic; color:var(--terracotta);
    font-size:.95rem; margin-bottom:.6rem;
  }
  .car-head h2{
    font-family:'Seasons', serif; font-weight:400;
    font-size:clamp(1.9rem, 4vw, 3rem); max-width:16ch;
  }

  .car-viewport{
    position:relative;
    overflow:hidden;
    padding-left:6vw;
    cursor:grab;
  }
  .car-viewport.no-native-cursor{cursor:none;}
  .car-viewport:active{cursor:grabbing;}
  .car-viewport.no-native-cursor:active{cursor:none;}

  .car-track{
    display:flex;
    will-change:transform;
  }
  .car-slide{
    flex:0 0 auto;
    width:min(62vw, 640px);
    margin-right:clamp(1rem, 2.4vw, 2rem);
    user-select:none;
  }
  .car-slide img{
    width:100%;
    height:64vh;
    object-fit:cover;
    display:block;
    border-radius:2px;
    -webkit-user-drag:none;
    pointer-events:none;
  }
  .car-slide figcaption{
    margin-top:1rem;
    font-family:'Seasons', serif; font-style:italic;
    font-size:1.1rem; color:var(--green-deep);
  }

  .car-foot{
    display:flex; align-items:center; gap:1.4rem;
    padding:3.2rem 6vw 0;
  }
  .car-count{
    font-family:'Seasons', serif; font-size:.95rem; color:var(--muted);
    letter-spacing:.02em; white-space:nowrap;
  }
  .car-bar{ flex:1; height:1px; background:var(--hair); position:relative; max-width:280px; }
  .car-bar i{
    position:absolute; left:0; top:0; height:1px; width:20%;
    background:var(--terracotta); display:block;
  }
  .car-hint{
    font-size:.78rem; color:var(--muted); margin-left:auto;
    display:none;
  }
  @media (hover:hover) and (pointer:fine){
    .car-hint{display:inline;}
  }

  .cursor{
    position:fixed; top:0; left:0;
    width:60px; height:60px;
    border-radius:50%;
    border:1px solid var(--terracotta);
    background:rgba(247,241,225,.88);
    display:flex; align-items:center; justify-content:center;
    pointer-events:none;
    opacity:0;
    z-index:80;
    transition:opacity .25s ease, transform .25s ease;
  }
  .cursor.is-visible{opacity:1;}
  .cursor svg{ width:18px; height:18px; color:var(--terracotta); transition:transform .3s ease; }
  .cursor.is-left svg{ transform:rotate(180deg); }

  @media (max-width:760px){
    .car-slide{width:78vw;height: 60vh;}
    .car-slide img{ height:48vh; }
    .car-head{ margin-bottom:3.5vh; }
  }

  @media (prefers-reduced-motion: reduce){
    *{transition-duration:.001ms !important;}
  }
.carousel-container {
  overflow: hidden;
  width: 100%;
  touch-action: pan-y; /* Fondamentale per il drag solo orizzontale su mobile */
  cursor: grab;
  user-select: none;
}

.carousel-container:active {
  cursor: grabbing;
}

.carousel-track {
  display: flex;
  will-change: transform;
}

/* ==========================================================================
   CAROUSEL & DRAG GALLERIES
   ========================================================================== */

/* Contenitori principali per il trascinamento orizzontale */
.car-viewport,
#viewport,
.drag-gallery,
.camere-drag-gallery {
  width: 100%;
  overflow: hidden;
  user-select: none;
  touch-action: pan-y;
  cursor: none !important; /* Disabilita il cursore nativo a favore del cursore custom */
}

.drag-gallery.is-dragging,
.camere-drag-gallery.is-dragging,
.car-viewport.is-dragging {
  cursor: none !important;
}

/* Track di scorrimento interno */
.car-track,
#track,
.drag-track,
.camere-drag-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  padding: 0 clamp(20px, 4vw, 64px);
  will-change: transform;
}

/* Schede singole all'interno dei carousel */
.car-slide,
.camere-type-card {
  position: relative;
  flex: 0 0 clamp(320px, 38vw, 560px);
  height: clamp(430px, 48vh, 720px);
  border-radius: 4px;
  overflow: hidden;
  background: #d8cbbc;
  color: #fff;
  box-shadow: 0 26px 80px rgba(37, 31, 29, 0.08);
  user-select: none;
  cursor: none !important;
}

.car-slide img,
.camere-type-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}


/* ==========================================================================
   CURSORE CUSTOM DEFINITIVO
   (Nessun salto di posizione / Direzione adattiva / Controllo VisibilitÃƒÆ’Ã‚Â )
   ========================================================================== */

#cursor,
.cursor {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(4px);
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none !important;
  z-index: 999999 !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease, background-color 0.25s ease;
  will-change: transform;
}

/* VisibilitÃƒÆ’Ã‚Â  attivata unicamente sugli elementi autorizzati via JS */
#cursor.is-visible,
.cursor.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Dimensioni dell'icona SVG interna (evita conflitti di transform con GSAP) */
#cursor svg,
.cursor svg {
  width: 20px;
  height: 20px;
  transition: transform 0.25s ease;
}

/* Rotazione dell'indicatore quando ci si muove verso sinistra */
#cursor.is-left svg,
.cursor.is-left svg {
  transform: rotate(180deg);
}

/* Stato Hover generico */
#cursor.is-active,
.cursor.is-active {
  background: rgba(255, 255, 255, 0.85);
}
#cursor.is-active svg,
.cursor.is-active svg {
  transform: scale(1.2);
}
#cursor.is-left.is-active svg,
.cursor.is-left.is-active svg {
  transform: rotate(180deg) scale(1.2);
}

/* Stato Dragging durante l'interazione sul carousel */
#cursor.is-dragging,
.cursor.is-dragging {
  background: rgba(255, 255, 255, 0.95) !important;
}
#cursor.is-dragging svg,
.cursor.is-dragging svg {
  transform: scale(1.35);
}
#cursor.is-left.is-dragging svg,
.cursor.is-left.is-dragging svg {
  transform: rotate(180deg) scale(1.35);
}



  .cp-services,
  .cp-services * { box-sizing: border-box; }

  .cp-services {
    --cp-bg: #ece8df;
    --cp-bg-2: #e5e0d5;
    --cp-ink: #17231c;
    --cp-muted: rgba(23,35,28,.58);
    --cp-line: rgba(23,35,28,.16);
    --cp-accent: #a45136;
    --cp-green: #2e4334;
    --cp-pad: clamp(22px, 4.2vw, 72px);
    position: relative;
    width: 100%;
    color: var(--cp-ink);
    background: var(--cp-bg);
    overflow: clip;
    isolation: isolate;
  }

  /* ---------- INTRO ---------- */
  .cp-services__intro {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: clamp(36px, 7vw, 120px);
    align-items: end;
    padding: clamp(90px, 11vw, 170px) var(--cp-pad) clamp(64px, 8vw, 116px);
    border-bottom: 1px solid var(--cp-line);
  }

  .cp-services__eyebrow {
    display: block;
    margin-bottom: 18px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--cp-accent);
  }

  .cp-services__title {
    max-width: 1000px;
    margin: 0;
    font: inherit;
    font-size: clamp(48px, 7.3vw, 118px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.05em;
  }

  .cp-services__lede {
    max-width: 560px;
    margin: 0 0 3px;
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1.65;
    color: var(--cp-muted);
  }

  /* ---------- DOPPIA LISTA ---------- */
  .cp-services__lists {
    padding: clamp(70px, 9vw, 132px) var(--cp-pad);
  }

  .cp-services__lists-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 30px;
    margin-bottom: clamp(38px, 5vw, 72px);
  }

  .cp-services__section-title {
    max-width: 820px;
    margin: 0;
    font: inherit;
    font-size: clamp(38px, 5.5vw, 82px);
    font-weight: 400;
    line-height: .95;
    letter-spacing: -.04em;
  }

  .cp-services__microcopy {
    max-width: 390px;
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--cp-muted);
  }

  .cp-services__columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--cp-line);
    border-bottom: 1px solid var(--cp-line);
  }

  .cp-services__column {
    min-width: 0;
    padding: clamp(34px, 4vw, 64px) clamp(28px, 4vw, 64px);
  }

  .cp-services__column + .cp-services__column {
    border-left: 1px solid var(--cp-line);
  }

  .cp-services__column-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
  }

  .cp-services__column-title {
    margin: 0;
    font: inherit;
    font-size: clamp(26px, 2.8vw, 42px);
    font-weight: 400;
    letter-spacing: -.025em;
  }

  .cp-services__badge {
    flex: 0 0 auto;
    padding: 7px 10px 6px;
    border: 1px solid var(--cp-line);
    border-radius: 999px;
    font-size: 9px;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-services__service-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .cp-services__service {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 20px;
    gap: 14px;
    align-items: center;
    min-height: 58px;
    padding: 13px 0;
    border-top: 1px solid var(--cp-line);
  }

  .cp-services__service:first-child { border-top: 0; }

  .cp-services__service-index {
    font-size: 10px;
    letter-spacing: .14em;
    color: var(--cp-muted);
  }

  .cp-services__service-name {
    font-size: clamp(15px, 1.25vw, 18px);
    line-height: 1.35;
  }

  .cp-services__service-mark {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1px solid var(--cp-green);
    justify-self: end;
  }

  .cp-services__column--included .cp-services__service-mark {
    background: var(--cp-green);
  }

  .cp-services__column--extra .cp-services__service-mark {
    background: transparent;
    border-color: var(--cp-accent);
  }

  /* ---------- 3 BLOCCHI EDITORIALI ---------- */
  .cp-services__features {
    border-top: 1px solid var(--cp-line);
  }

  .cp-services__feature {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: min(860px, 88svh);
    border-bottom: 1px solid var(--cp-line);
    background: var(--cp-bg);
  }

  .cp-services__feature:nth-child(2) {
    background: var(--cp-bg-2);
  }

  .cp-services__feature-copy,
  .cp-services__feature-media {
    min-width: 0;
  }

  .cp-services__feature-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(58px, 7vw, 118px) var(--cp-pad);
  }

  .cp-services__feature-no {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: clamp(24px, 3vw, 42px);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-services__feature-no::before {
    content: "";
    width: 34px;
    height: 1px;
    background: currentColor;
  }

  .cp-services__feature-title {
    max-width: 700px;
    margin: 0;
    font: inherit;
    font-size: clamp(48px, 6vw, 92px);
    font-weight: 400;
    line-height: .91;
    letter-spacing: -.045em;
  }

  .cp-services__feature-text {
    max-width: 590px;
    margin: clamp(24px, 3vw, 42px) 0 0;
    font-size: clamp(15px, 1.25vw, 19px);
    line-height: 1.7;
    color: var(--cp-muted);
  }

  .cp-services__feature-note {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 30px;
    font-size: 10px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--cp-accent);
  }

  .cp-services__feature-note::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
  }

  .cp-services__feature-media {
    position: relative;
    overflow: hidden;
    min-height: 620px;
    background: #d8d2c7;
  }

  .cp-services__feature-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
      linear-gradient(to bottom, rgba(23,35,28,.02), rgba(23,35,28,.09)),
      radial-gradient(circle at 70% 20%, rgba(255,255,255,.1), transparent 45%);
  }

  .cp-services__feature-image {
    position: absolute;
    inset: -4%;
    width: 108%;
    height: 108%;
    object-fit: cover;
    object-position: center;
    will-change: transform;
  }

  .cp-services__feature--reverse .cp-services__feature-media {
    order: 1;
  }

  .cp-services__feature--reverse .cp-services__feature-copy {
    order: 2;
  }

  /* ---------- FOOT NOTE ---------- */
  .cp-services__outro {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 30px;
    align-items: center;
    padding: clamp(46px, 6vw, 86px) var(--cp-pad);
  }

  .cp-services__outro p {
    max-width: 780px;
    margin: 0;
    font-size: clamp(17px, 1.6vw, 24px);
    line-height: 1.45;
  }

  .cp-services__outro small {
    max-width: 360px;
    font-size: 10px;
    line-height: 1.55;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  /* ---------- MOBILE ---------- */
  @media (max-width: 900px) {
    .cp-services__intro {
      grid-template-columns: 1fr;
      gap: 28px;
      padding-top: clamp(78px, 18vw, 118px);
    }

    .cp-services__title {
      font-size: clamp(50px, 14.5vw, 82px);
      line-height: .9;
    }

    .cp-services__lists-head {
      display: grid;
      grid-template-columns: 1fr;
      align-items: start;
      gap: 22px;
    }

    .cp-services__columns {
      grid-template-columns: 1fr;
    }

    .cp-services__column {
      padding-left: 0;
      padding-right: 0;
    }

    .cp-services__column + .cp-services__column {
      border-left: 0;
      border-top: 1px solid var(--cp-line);
    }

    .cp-services__feature {
      grid-template-columns: 1fr;
      min-height: 0;
    }

    .cp-services__feature-copy,
    .cp-services__feature--reverse .cp-services__feature-copy {
      order: 1;
    }

    .cp-services__feature-media,
    .cp-services__feature--reverse .cp-services__feature-media {
      order: 2;
    }

    .cp-services__feature-copy {
      min-height: auto;
      padding-top: clamp(62px, 13vw, 92px);
      padding-bottom: clamp(54px, 12vw, 82px);
    }

    .cp-services__feature-title {
      font-size: clamp(48px, 13vw, 74px);
    }

    .cp-services__feature-media {
      min-height: 0;
      height: clamp(360px, 73svh, 620px);
    }

    .cp-services__outro {
      grid-template-columns: 1fr;
      gap: 18px;
    }
  }

  @media (max-width: 560px) {
    .cp-services {
      --cp-pad: 20px;
    }

    .cp-services__intro {
      padding-left: 20px;
      padding-right: 20px;
    }

    .cp-services__section-title {
      font-size: clamp(40px, 12vw, 62px);
    }

    .cp-services__service {
      grid-template-columns: 32px minmax(0, 1fr) 16px;
      gap: 10px;
      min-height: 55px;
    }

    .cp-services__column-title {
      font-size: 29px;
    }

    .cp-services__feature-copy {
      padding-left: 20px;
      padding-right: 20px;
    }

    .cp-services__feature-title {
      font-size: clamp(45px, 13.2vw, 64px);
    }

    .cp-services__feature-text {
      font-size: 15px;
      line-height: 1.65;
    }

    .cp-services__feature-media {
      height: clamp(330px, 61svh, 520px);
    }

    .cp-services__outro {
      padding-left: 20px;
      padding-right: 20px;
    }
  }

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








.cp-territory,
  .cp-territory * { box-sizing: border-box; }

  .cp-territory {
    --cp-bg: #ece8df;
    --cp-ink: #17231c;
    --cp-muted: rgba(23,35,28,.58);
    --cp-line: rgba(23,35,28,.16);
    --cp-accent: #a45136;
    --cp-green: #2e4334;
    --cp-lake: #cbd5d0;
    --cp-pad: clamp(22px, 4vw, 72px);
    position: relative;
    width: 100%;
    color: var(--cp-ink);
    background: var(--cp-bg);
    overflow: clip;
    isolation: isolate;
  }

  .cp-territory__intro {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
    gap: clamp(28px, 6vw, 96px);
    align-items: end;
    padding: clamp(80px, 10vw, 150px) var(--cp-pad) clamp(54px, 7vw, 100px);
    border-bottom: 1px solid var(--cp-line);
  }

  .cp-territory__eyebrow {
    margin: 0 0 18px;
    font: inherit;
    font-size: 11px;
    line-height: 1;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--cp-accent);
  }

  .cp-territory__title {
    max-width: 980px;
    margin: 0;
    font-family: inherit;
    font-size: clamp(44px, 7vw, 112px);
    font-weight: 400;
    line-height: .9;
    letter-spacing: -.045em;
  }

  .cp-territory__intro-copy {
    max-width: 520px;
    margin: 0;
    font: inherit;
    font-size: clamp(15px, 1.25vw, 19px);
    line-height: 1.65;
    color: var(--cp-muted);
  }

  .cp-territory__stage {
    position: relative;
    min-height: 420vh;
  }

  .cp-territory__sticky {
    position: relative;
    height: 100vh;
    min-height: 650px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, .42fr);
    background: var(--cp-bg);
    overflow: hidden;
  }

  .cp-territory__map-wrap {
    position: relative;
    min-width: 0;
    border-right: 1px solid var(--cp-line);
  }

  .cp-territory__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
  }

  .cp-territory__map-noise {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: .35;
    pointer-events: none;
    background-image:
      radial-gradient(circle at 20% 20%, rgba(255,255,255,.48), transparent 34%),
      radial-gradient(circle at 85% 76%, rgba(46,67,52,.07), transparent 36%);
  }

  .cp-territory__north {
    position: absolute;
    top: 28px;
    left: 28px;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-territory__north::before {
    content: '';
    width: 1px;
    height: 28px;
    background: var(--cp-ink);
    transform-origin: bottom;
    transform: rotate(10deg);
  }

  .cp-territory__progress {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 4;
    width: 100%;
    height: 2px;
    background: var(--cp-line);
  }

  .cp-territory__progress > span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--cp-accent);
    transform: scaleX(0);
    transform-origin: left center;
  }

  .cp-territory__copy {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(36px, 5vw, 76px);
  }

  .cp-territory__counter {
    position: absolute;
    top: clamp(30px, 5vw, 64px);
    left: clamp(36px, 5vw, 76px);
    right: clamp(36px, 5vw, 76px);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--cp-line);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-territory__slides {
    position: relative;
    min-height: 350px;
  }

  .cp-territory__slide {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(28px);
    pointer-events: none;
  }

  .cp-territory__slide.is-active {
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .cp-territory__kicker {
    display: block;
    margin-bottom: 20px;
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--cp-accent);
  }

  .cp-territory__name {
    margin: 0;
    max-width: 560px;
    font-family: inherit;
    font-size: clamp(48px, 5.2vw, 86px);
    font-weight: 400;
    line-height: .92;
    letter-spacing: -.04em;
  }

  .cp-territory__distance {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 28px 0 20px;
  }

  .cp-territory__distance strong {
    font: inherit;
    font-size: clamp(34px, 3vw, 52px);
    font-weight: 400;
    line-height: 1;
  }

  .cp-territory__distance span {
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-territory__desc {
    max-width: 520px;
    margin: 0;
    font: inherit;
    font-size: clamp(14px, 1.15vw, 18px);
    line-height: 1.65;
    color: var(--cp-muted);
  }

  .cp-territory__hint {
    position: absolute;
    bottom: clamp(28px, 5vw, 60px);
    left: clamp(36px, 5vw, 76px);
    right: clamp(36px, 5vw, 76px);
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--cp-muted);
  }

  .cp-territory__hint::before {
    content: '';
    width: 38px;
    height: 1px;
    background: var(--cp-muted);
  }

  /* SVG */
  .cp-map-grid,
  .cp-map-contour,
  .cp-map-road {
    fill: none;
    vector-effect: non-scaling-stroke;
  }

  .cp-map-grid { stroke: rgba(23,35,28,.075); stroke-width: 1; }
  .cp-map-contour { stroke: rgba(23,35,28,.09); stroke-width: 1; }
  .cp-map-road { stroke: rgba(23,35,28,.2); stroke-width: 1.2; stroke-dasharray: 2 7; }

  .cp-map-lake {
    fill: var(--cp-lake);
    opacity: .9;
    stroke: rgba(23,35,28,.16);
    stroke-width: 1.2;
    vector-effect: non-scaling-stroke;
  }

  .cp-map-lake-label {
    fill: rgba(23,35,28,.42);
    font-family: inherit;
    font-size: 13px;
    letter-spacing: .23em;
    text-transform: uppercase;
  }

  .cp-map-origin-ring {
    fill: rgba(164,81,54,.08);
    stroke: rgba(164,81,54,.24);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
  }

  .cp-map-origin-dot { fill: var(--cp-accent); }

  .cp-map-origin-label {
    fill: var(--cp-ink);
    font-family: inherit;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
  }

  .cp-map-origin-sub {
    fill: rgba(23,35,28,.48);
    font-family: inherit;
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .cp-map-route {
    fill: none;
    stroke: var(--cp-accent);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
    opacity: .95;
  }

  .cp-map-route-halo {
    fill: none;
    stroke: rgba(164,81,54,.12);
    stroke-width: 7;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
  }

  .cp-map-dest { opacity: .25; }
  .cp-map-dest.is-active { opacity: 1; }

  .cp-map-dest-dot {
    fill: var(--cp-bg);
    stroke: var(--cp-ink);
    stroke-width: 1.5;
    vector-effect: non-scaling-stroke;
  }

  .cp-map-dest.is-active .cp-map-dest-dot {
    fill: var(--cp-accent);
    stroke: var(--cp-accent);
  }

  .cp-map-dest-label {
    fill: var(--cp-ink);
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: -.01em;
  }

  .cp-map-dest-km {
    fill: rgba(23,35,28,.5);
    font-family: inherit;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .cp-map-scale {
    fill: rgba(23,35,28,.48);
    font-family: inherit;
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .cp-territory__outro {
    position: relative;
    z-index: 2;
    min-height: 42vh;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    padding: clamp(60px, 8vw, 120px) var(--cp-pad);
    border-top: 1px solid var(--cp-line);
    background: var(--cp-bg);
  }

  .cp-territory__outro p {
    max-width: 760px;
    margin: 0;
    font-size: clamp(24px, 3.1vw, 50px);
    line-height: 1.08;
    letter-spacing: -.025em;
  }

  .cp-territory__outro small {
    max-width: 300px;
    font-size: 11px;
    line-height: 1.6;
    letter-spacing: .04em;
    color: var(--cp-muted);
  }

  @media (max-width: 900px) {
    .cp-territory {
      --cp-pad: clamp(18px, 5.5vw, 28px);
      overflow: visible;
    }

    .cp-territory__intro {
      grid-template-columns: 1fr;
      gap: 26px;
      align-items: start;
      padding-top: clamp(64px, 18vw, 98px);
      padding-bottom: clamp(46px, 12vw, 72px);
    }

    .cp-territory__eyebrow {
      margin-bottom: 14px;
      font-size: 9px;
    }

    .cp-territory__title {
      font-size: clamp(46px, 14.5vw, 76px);
      line-height: .91;
    }

    .cp-territory__intro-copy {
      max-width: 34rem;
      font-size: 15px;
      line-height: 1.6;
    }

    .cp-territory__stage {
      min-height: auto;
      position: relative;
    }

    .cp-territory__sticky {
      position: relative;
      top: auto;
      height: auto;
      min-height: 0;
      display: block;
      overflow: visible;
      background: var(--cp-bg);
    }

    .cp-territory__map-wrap {
      position: sticky;
      top: 0;
      z-index: 3;
      width: 100%;
      height: clamp(360px, 54svh, 560px);
      min-height: 360px;
      border-right: 0;
      border-bottom: 1px solid var(--cp-line);
      background: var(--cp-bg);
      overflow: hidden;
    }

    .cp-territory__map {
      width: 118%;
      height: 118%;
      left: -9%;
      top: -9%;
    }

    .cp-territory__north {
      top: 18px;
      left: 18px;
      font-size: 8px;
    }

    .cp-territory__north::before { height: 22px; }

    .cp-territory__copy {
      position: relative;
      z-index: 4;
      display: block;
      padding: 0 var(--cp-pad);
      background: linear-gradient(to bottom, rgba(236,232,223,.97), var(--cp-bg) 18%);
    }

    .cp-territory__counter {
      position: sticky;
      top: clamp(360px, 54svh, 560px);
      z-index: 5;
      left: auto;
      right: auto;
      padding: 16px 0 14px;
      background: rgba(236,232,223,.94);
      -webkit-backdrop-filter: blur(10px);
      backdrop-filter: blur(10px);
      font-size: 8px;
    }

    .cp-territory__slides {
      min-height: 0;
      display: block;
    }

    .cp-territory__slide {
      position: relative;
      inset: auto;
      min-height: clamp(320px, 52svh, 520px);
      padding: clamp(48px, 13vw, 76px) 0;
      display: flex;
      justify-content: center;
      opacity: .28;
      visibility: visible;
      transform: translateY(22px);
      pointer-events: auto;
      border-bottom: 1px solid var(--cp-line);
    }

    .cp-territory__slide.is-active {
      opacity: 1;
      transform: none;
    }

    .cp-territory__slide:last-child { border-bottom: 0; }

    .cp-territory__kicker {
      margin-bottom: 14px;
      font-size: 9px;
    }

    .cp-territory__name {
      max-width: 100%;
      font-size: clamp(44px, 13vw, 68px);
      line-height: .92;
    }

    .cp-territory__distance {
      margin: 22px 0 16px;
      gap: 8px;
    }

    .cp-territory__distance strong {
      font-size: clamp(30px, 9vw, 44px);
    }

    .cp-territory__distance span {
      font-size: 9px;
      letter-spacing: .12em;
    }

    .cp-territory__desc {
      max-width: 38rem;
      font-size: 14px;
      line-height: 1.6;
    }

    .cp-territory__hint { display: none; }

    .cp-map-origin-label { font-size: 15px; }
    .cp-map-origin-sub { font-size: 8px; }
    .cp-map-dest-label { font-size: 14px; }
    .cp-map-dest-km { font-size: 8px; }
    .cp-map-lake-label { font-size: 11px; }

    .cp-territory__outro {
      min-height: 0;
      align-items: flex-start;
      flex-direction: column;
      padding-top: clamp(62px, 15vw, 90px);
      padding-bottom: clamp(62px, 15vw, 90px);
    }
  }

  @media (max-width: 560px) {
    .cp-territory__map-wrap {
      height: 48svh;
      min-height: 330px;
      max-height: 470px;
    }

    .cp-territory__counter {
      top: min(48svh, 470px);
    }

    .cp-territory__map {
      width: 132%;
      height: 132%;
      left: -16%;
      top: -14%;
    }

    .cp-territory__slide {
      min-height: 48svh;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .cp-territory__slide,
    .cp-map-dest,
    .cp-map-route { transition: none !important; }
  }















 .cp-around,
  .cp-around * { box-sizing: border-box; }

  .cp-around {
    --ca-bg: #ece8df;
    --ca-bg2: #e4ded2;
    --ca-ink: #17231c;
    --ca-muted: rgba(23,35,28,.59);
    --ca-line: rgba(23,35,28,.16);
    --ca-accent: #a45136;
    --ca-green: #2e4334;
    --ca-pad: clamp(22px, 4.3vw, 76px);

  }

  /* ========== HERO ========== */
  .cp-around__hero {
    position: relative;
    min-height: min(960px, 100svh);
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
    border-bottom: 1px solid var(--ca-line);
    background: var(--ca-bg);
  }

  .cp-around__hero-copy {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(100px, 12vw, 185px) var(--ca-pad) clamp(56px, 7vw, 100px);
  }

  .cp-around__eyebrow {
    display: block;
    margin: 0 0 18px;
    font-size: 10px;
    line-height: 1;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ca-accent);
  }

  .cp-around__hero-title {
    max-width: 1000px;
    margin: 0;
    font: inherit;
    font-size: clamp(54px, 7.5vw, 124px);
    font-weight: 400;
    line-height: .86;
    letter-spacing: -.055em;
  }

  .cp-around__hero-lede {
    max-width: 650px;
    margin: clamp(28px, 4vw, 52px) 0 0;
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.65;
    color: var(--ca-muted);
  }

  .cp-around__hero-media {
    position: relative;
    min-height: 650px;
    overflow: hidden;
    border-left: 1px solid var(--ca-line);
    background: #d5d0c6;
  }

  .cp-around__hero-img {
    position: absolute;
    inset: -5%;
    width: 110%;
    height: 110%;
    object-fit: cover;
    object-position: 55% center;
    will-change: transform;
  }

  .cp-around__hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
      linear-gradient(to top, rgba(18,30,23,.20), transparent 48%),
      linear-gradient(to right, rgba(236,232,223,.08), transparent 30%);
  }

  .cp-around__hero-caption {
    position: absolute;
    z-index: 4;
    right: 24px;
    bottom: 22px;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid rgba(255,255,255,.34);
    background: rgba(15,25,19,.28);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: rgba(255,255,255,.92);
    font-size: 9px;
    line-height: 1.4;
    letter-spacing: .13em;
    text-transform: uppercase;
  }

  /* ========== 4 DISTANZE ========== */
  .cp-around__distances {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-bottom: 1px solid var(--ca-line);
  }

  .cp-around__distance {
    min-height: 190px;
    padding: clamp(28px, 3.6vw, 58px) var(--ca-pad);
    border-right: 1px solid var(--ca-line);
  }

  .cp-around__distance:last-child { border-right: 0; }

  .cp-around__distance span {
    display: block;
    margin-bottom: 17px;
    font-size: 9px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ca-muted);
  }

  .cp-around__distance strong {
    display: block;
    margin: 0 0 9px;
    font: inherit;
    font-size: clamp(37px, 3.6vw, 60px);
    font-weight: 400;
    line-height: .9;
    letter-spacing: -.04em;
  }

  .cp-around__distance p {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--ca-muted);
  }

  /* ========== INTRO ALLE DESTINAZIONI ========== */
  .cp-around__destinations-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: clamp(36px, 7vw, 120px);
    align-items: end;
    padding: clamp(90px, 11vw, 166px) var(--ca-pad) clamp(62px, 8vw, 110px);
    border-bottom: 1px solid var(--ca-line);
  }

  .cp-around__section-title {
    max-width: 920px;
    margin: 0;
    font: inherit;
    font-size: clamp(46px, 6.5vw, 102px);
    font-weight: 400;
    line-height: .89;
    letter-spacing: -.05em;
  }

  .cp-around__section-copy {
    max-width: 560px;
    margin: 0;
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1.65;
    color: var(--ca-muted);
  }

  /* ========== BLOCCHI TERRITORIO ========== */
  .cp-around__places {
    border-bottom: 1px solid var(--ca-line);
  }

  .cp-around__place {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: min(840px, 88svh);
    border-bottom: 1px solid var(--ca-line);
    background: var(--ca-bg);
  }

  .cp-around__place:nth-child(even) {
    background: var(--ca-bg2);
  }

  .cp-around__place-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(58px, 7vw, 118px) var(--ca-pad);
  }

  .cp-around__place-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 18px;
    margin-bottom: clamp(24px, 3vw, 44px);
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: .17em;
    text-transform: uppercase;
    color: var(--ca-muted);
  }

  .cp-around__place-meta b {
    color: var(--ca-accent);
    font-weight: 500;
  }

  .cp-around__place-meta i {
    width: 28px;
    height: 1px;
    background: var(--ca-line);
  }

  .cp-around__place-title {
    max-width: 700px;
    margin: 0;
    font: inherit;
    font-size: clamp(52px, 6.3vw, 98px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.05em;
  }

  .cp-around__place-text {
    max-width: 620px;
    margin: clamp(25px, 3vw, 42px) 0 0;
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1.72;
    color: var(--ca-muted);
  }

  .cp-around__place-details {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 30px;
  }

  .cp-around__pill {
    padding: 8px 11px 7px;
    border: 1px solid var(--ca-line);
    border-radius: 999px;
    font-size: 9px;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ca-muted);
  }

  .cp-around__place-media {
    position: relative;
    min-width: 0;
    min-height: 620px;
    overflow: hidden;
    background: #d5d0c6;
  }

  .cp-around__place-img {
    position: absolute;
    inset: -5%;
    width: 110%;
    height: 110%;
    object-fit: cover;
    object-position: center;
    will-change: transform;
  }

  .cp-around__place-media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
      linear-gradient(to bottom, rgba(22,32,26,.02), rgba(22,32,26,.11)),
      radial-gradient(circle at 70% 15%, rgba(255,255,255,.14), transparent 46%);
  }

  .cp-around__place-photo-label {
    position: absolute;
    z-index: 4;
    left: 22px;
    bottom: 19px;
    margin: 0;
    font-size: 8px;
    line-height: 1.4;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
    text-shadow: 0 1px 15px rgba(0,0,0,.45);
  }

  .cp-around__place--reverse .cp-around__place-media { order: 1; }
  .cp-around__place--reverse .cp-around__place-copy { order: 2; }

  /* ========== GIORNATA / EDITORIALE ========== */
  .cp-around__rhythm {
    padding: clamp(90px, 10vw, 77px) var(--ca-pad);
    border-bottom: 1px solid var(--ca-line);
  }

  .cp-around__rhythm-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr);
    gap: clamp(35px, 7vw, 100px);
    align-items: end;
    margin-bottom: clamp(50px, 7vw, 92px);
  }

  .cp-around__rhythm-title {
    max-width: 880px;
    margin: 0;
    font: inherit;
    font-size: clamp(43px, 5.6vw, 86px);
    font-weight: 400;
    line-height: .92;
    letter-spacing: -.045em;
  }

  .cp-around__rhythm-copy {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--ca-muted);
  }

  .cp-around__rhythm-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--ca-line);
  }

  .cp-around__moment {
    position: relative;
    min-height: 260px;
    padding: 28px clamp(20px, 2.3vw, 38px) 34px 0;
    border-right: 1px solid var(--ca-line);
  }

  .cp-around__moment:not(:first-child) {
    padding-left: clamp(20px, 2.3vw, 38px);
  }

  .cp-around__moment:last-child { border-right: 0; }

  .cp-around__moment small {
    display: block;
    margin-bottom: 50px;
    font-size: 9px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ca-accent);
  }

  .cp-around__moment h3 {
    margin: 0 0 13px;
    font: inherit;
    font-size: clamp(24px, 2.3vw, 37px);
    font-weight: 400;
    line-height: 1;
    letter-spacing: -.03em;
  }

  .cp-around__moment p {
    max-width: 290px;
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ca-muted);
  }

  /* ========== CHIUSURA ========== */
  .cp-around__closing {
    position: relative;
    min-height: min(850px, 88svh);
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #243229;
    color: white;
  }

  .cp-around__closing-img {
    position: absolute;
    inset: -5%;
    width: 110%;
    height: 110%;
    object-fit: cover;
    object-position: center;
    opacity: .64;
    will-change: transform;
  }

  .cp-around__closing::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
      linear-gradient(to top, rgba(15,24,18,.82) 4%, rgba(15,24,18,.22) 62%, rgba(15,24,18,.08)),
      linear-gradient(to right, rgba(15,24,18,.44), transparent 64%);
  }

  .cp-around__closing-copy {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: clamp(70px, 9vw, 138px) var(--ca-pad);
  }

  .cp-around__closing-copy span {
    display: block;
    margin-bottom: 18px;
    font-size: 9px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255,255,255,.67);
  }

  .cp-around__closing-copy h2 {
    max-width: 1050px;
    margin: 0;
    font: inherit;
    font-size: clamp(50px, 7vw, 112px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.055em;
  }
.page-template-territorio .cp-around__closing-copy h2 {
    max-width: 1050px;
    margin: 0;
    font: inherit;
    font-size: clamp(50px, 7vw, 112px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.055em;color:white
  }
  .cp-around__closing-copy p {
    max-width: 620px;
    margin: 28px 0 0;
    font-size: clamp(15px, 1.2vw, 19px);
    line-height: 1.65;
    color: rgba(255,255,255,.74);
  }

  .cp-around__credits {
    padding: 12px var(--ca-pad) 14px;
    border-bottom: 1px solid var(--ca-line);
    font-size: 8px;
    line-height: 1.5;
    letter-spacing: .07em;
    color: var(--ca-muted);
  }
#cp-dintorniHome{padding: 3rem;
    min-height: 70vh;
    padding-top: 15%;}
  /* ========== MOBILE ========== */
  @media (max-width: 900px) {
    .cp-around {
      --ca-pad: clamp(19px, 5.5vw, 28px);
      overflow: visible;
    }

    .cp-around__hero {
      min-height: 0;
      grid-template-columns: 1fr;
    }

    .cp-around__hero-copy {
      min-height: auto;
      padding-top: clamp(86px, 20vw, 125px);
      padding-bottom: clamp(50px, 12vw, 78px);
    }

    .cp-around__hero-title {
      font-size: clamp(54px, 15.6vw, 84px);
      line-height: .87;
    }

    .cp-around__hero-media {
      min-height: 0;
      height: clamp(430px, 66svh, 690px);
      border-left: 0;
      border-top: 1px solid var(--ca-line);
    }

    .cp-around__distances {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cp-around__distance {
      min-height: 155px;
      padding: 28px var(--ca-pad);
      border-bottom: 1px solid var(--ca-line);
    }

    .cp-around__distance:nth-child(2n) { border-right: 0; }

    .cp-around__destinations-head {
      grid-template-columns: 1fr;
      gap: 25px;
      padding-top: clamp(78px, 18vw, 112px);
    }

    .cp-around__section-title {
      font-size: clamp(48px, 13.8vw, 74px);
    }

    .cp-around__place {
      grid-template-columns: 1fr;
      min-height: 0;
    }

    .cp-around__place-copy,
    .cp-around__place--reverse .cp-around__place-copy {
      order: 1;
      padding-top: clamp(60px, 14vw, 90px);
      padding-bottom: clamp(54px, 13vw, 84px);
    }

    .cp-around__place-media,
    .cp-around__place--reverse .cp-around__place-media {
      order: 2;
      height: clamp(370px, 64svh, 620px);
      min-height: 0;
    }

    .cp-around__place-title {
      font-size: clamp(49px, 13.6vw, 72px);
    }

    .cp-around__rhythm-head {
      grid-template-columns: 1fr;
      gap: 24px;
    }

    .cp-around__rhythm-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cp-around__moment {
      min-height: 220px;
      padding: 27px 20px 31px 0;
      border-bottom: 1px solid var(--ca-line);
    }

    .cp-around__moment:nth-child(2n) {
      border-right: 0;
      padding-left: 20px;
    }

    .cp-around__moment:nth-child(n+3) {
      padding-top: 31px;
    }

    .cp-around__closing {
      min-height: 72svh;
    }
  }

  @media (max-width: 560px) {
    .cp-around { --ca-pad: 20px; }

    .cp-around__distances {
      grid-template-columns: 1fr 1fr;
    }

    .cp-around__distance {
      min-height: 145px;
      padding: 24px 20px;
    }

    .cp-around__distance strong {
      font-size: 38px;
    }

    .cp-around__distance p {
      font-size: 11px;
    }

    .cp-around__place-media {
      height: clamp(335px, 57svh, 510px);
    }

    .cp-around__rhythm-grid {
      grid-template-columns: 1fr;
    }

    .cp-around__moment,
    .cp-around__moment:not(:first-child),
    .cp-around__moment:nth-child(2n) {
      min-height: 0;
      padding: 28px 0 34px;
      border-right: 0;
      border-bottom: 1px solid var(--ca-line);
    }

    .cp-around__moment small { margin-bottom: 30px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .cp-around *,
    .cp-around *::before,
    .cp-around *::after {
      animation-duration: .001ms !important;
      transition-duration: .001ms !important;
      scroll-behavior: auto !important;
    }
  }



.availability-overlay {
  position: fixed;
  inset: 0;
  background: rgba(44, 36, 27, .38);
  backdrop-filter: blur(2px);
  z-index: 40;
  opacity: 0;
  transition: opacity .3s ease;
}
.availability-overlay.is-visible { opacity: 1; }

.availability-panel {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: min(420px, 100%);
  padding: 28px 24px;
  overflow-y: auto;
  background: rgba(248, 244, 237, .96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-left: 1px solid rgba(255, 255, 255, .48);
  box-shadow: -8px 0 30px rgba(0, 0, 0, .12);
  color: #2c241b;
  z-index: 50;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.availability-panel.is-open { transform: translateX(0); }

.availability-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.availability-panel__header h2 {
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: .02em;
  margin: 0;
  color: #2c241b;
}
.availability-panel__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, .48);
  border-radius: 6px;
  background: transparent;
  color: #2c241b;
  cursor: pointer;
  transition: background-color .2s ease;
}
.availability-panel__close:hover { background: rgba(99, 81, 61, .10); }

.availability-form__row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.availability-form__row label {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #63513d;
}
.availability-form__row input,
.availability-form__row select,
.availability-form__row textarea {
  padding: 10px 12px;
  border: 1px solid rgba(99, 81, 61, .25);
  border-radius: 6px;
  background: #ffffff;
  color: #2c241b;
  font-size: .85rem;
  font-family: inherit;
}
.availability-form__row input:focus,
.availability-form__row select:focus,
.availability-form__row textarea:focus {
  outline: none;
  border-color: #a9431e;
}

.availability-form__submit {
  width: 100%;
  padding: 12px;
  margin-top: 8px;
  border: none;
  border-radius: 6px;
  background: #a9431e;
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .2s ease;
}
.availability-form__submit:hover { opacity: .9; }

.availability-form__feedback {
  margin-top: 12px;
  font-size: .78rem;
  color: #63513d;
}

@media (max-width: 767px) {
.availability-panel {
    display: block;
    width: 100%;
    margin-top: 8dvh;
    
    /* 1. RIPRISTINA LE INTERAZIONI: Permette lo scroll e i click sul pannello */
    pointer-events: auto; 
    
    /* 2. DEFINISCI UN'ALTEZZA MASSIMA: Lo scroll funziona solo se c'è un limite fisico */
    height: calc(100dvh - 15dvh); /* Occupa tutto lo spazio rimanente dello schermo */
    
    /* 3. ABILITA LO SCROLL: 'auto' mostra la barra solo se il contenuto eccede */
    overflow-y: auto; 
    
    /* Rimosso min-height: 110dvh per evitare che il pannello sia più alto dello schermo stesso */
    z-index: 99;
}
.availability-panel .ccm-block-express-form { margin: 0; }

.availability-panel .form-group { margin-bottom: 16px; }

.availability-panel .form-group label,
.availability-panel .control-label {
  display: block;
  margin-bottom: 6px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #63513d;
}

.availability-panel input[type="text"],
.availability-panel input[type="email"],
.availability-panel input[type="tel"],
.availability-panel input[type="date"],
.availability-panel input[type="number"],
.availability-panel select,
.availability-panel textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(99, 81, 61, .25);
  border-radius: 6px;
  background: #ffffff;
  color: #2c241b;
  font-size: .85rem;
  font-family: inherit;
}

.availability-panel input:focus,
.availability-panel select:focus,
.availability-panel textarea:focus {
  outline: none;
  border-color: #a9431e;
}

.availability-panel .text-muted.small {
  margin-left: 6px;
  font-size: .68rem;
  color: #a9431e;
}

.availability-panel .btn,
.availability-panel button[type="submit"],
.availability-panel input[type="submit"] {
  width: 100%;
  padding: 12px;
  margin-top: 8px;
  border: none;
  border-radius: 6px;
  background: #a9431e;
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}

.availability-panel .ccm-block-express-form .alert,
.availability-panel .ccm-block-express-form .alert-success {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 6px;
  background: rgba(169, 67, 30, .08);
  color: #63513d;
  font-size: .78rem;
}



        /* Bordi verticali per la colonna centrale (solo desktop) */
        @media (min-width: 768px) {
            .contact-col.middle-col {
                border-left: 1px solid var(--footer-border);
                border-right: 1px solid var(--footer-border);
            }
        }

        /* Bordi orizzontali per le colonne (solo mobile) */
        @media (max-width: 767px) {
            .contact-col.middle-col {
                border-top: 1px solid var(--footer-border);
                border-bottom: 1px solid var(--footer-border);
                padding: 2rem 0;
                margin: 1rem 0;
            }
            .contact-col {
                padding: 1rem 0;
            }
        }

        .contact-label {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.15em;
            color: var(--footer-text-muted);
            margin-bottom: 0.75rem;
            display: block;
        }

        .contact-value {
            font-size: 1.1rem;
            font-weight: 400;
            margin: 0;
        }

        .contact-value a {
            color: var(--footer-text);
            text-decoration: none;
            transition: opacity 0.3s;
        }
        
        .contact-value a:hover {
            opacity: 0.7;
        }

        /* --- PULSANTE --- */
        .btn-outline-gold {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--footer-text);
            background: transparent;
            border: 1px solid var(--footer-border);
            border-radius: 50px;
            padding: 1rem 2.5rem;
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            text-decoration: none;
            transition: all 0.3s ease;
            margin-bottom: 5rem;
        }

        .btn-outline-gold:hover {
            background-color: var(--footer-text);
            color: var(--footer-bg);
            border-color: var(--footer-text);
        }

        .btn-outline-gold i {
            margin-left: 10px;
            font-size: 0.9em;
        }

        /* --- BOX LOGHI --- */
        .logos-box {
            background-color: #fff;
            padding: 15px;
            border-radius: 8px; /* Leggermente arrotondato come nell'immagine */
            display: inline-block;
            margin-bottom: 3rem;
            max-width: 100%;
        }

        .logos-box img {
            max-height: 187px;
            width: auto;
            display: block;
        }

        /* --- SUB-FOOTER --- */
        .sub-footer {
            border-top: 1px solid var(--footer-border);
            padding-top: 2rem;
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--footer-text-muted);
        }

        .sub-footer a {
            color: var(--footer-text-muted);
            text-decoration: none;
            transition: color 0.3s;
        }

        .sub-footer a:hover {
            color: var(--footer-text);
        }

        .sub-footer-links span {
            margin: 0 10px;
        }
        
        .back-to-top {
            cursor: pointer;
            transition: color 0.3s;
        }
        .back-to-top:hover {
            color: var(--footer-text);
        }

        @media (max-width: 991px) {
            .sub-footer {
                flex-direction: column;
                gap: 1.5rem;
                text-align: center;
            }
        }

   







    .section-container {
        width: 100%;
    }

 .sectionCard {
        height: 100vh;
        width: 100%;
        perspective: 1000px;
        transform-style: preserve-3d;
        padding: 2rem;
    }

    .contentCard {
          height: 80%;
        width: 53%;
        min-width: 500px;
        max-width: 50vw;
        aspect-ratio: 9 / 14;
        transform-origin: center center;
        border-radius: 2rem;
        overflow: hidden;
        position: relative;
    }

    .contentCard img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sectionCard.intro h2 {
        font-family: 'Syne', sans-serif;
        font-weight: 800;
        font-size: 5rem;
        letter-spacing: -0.02em;
        background: linear-gradient(135deg, #FF6B35 0%, #F7C59F 50%, #fff 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        margin-bottom: 1.5rem;
        margin-top: auto;
    }

   .sectionCard.intro p {
        font-family: 'Syne', sans-serif;
        font-size: 1.1rem;
        font-weight: 400;
        color: rgba(255, 255, 255, 0.5);
        max-width: 500px;
        line-height: 1.5;
        letter-spacing: 0.02em;
    }

    .line {
        height: 12rem;
        width: 1px;
        margin-top: auto;
        position: relative;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.1);
    }

    .line::before {
        content: '';
        position: absolute;
        top: -100%;
        left: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.6), transparent);
        animation: lineScroll 2s ease-in-out infinite;
    }

    @keyframes lineScroll {
        0% { top: -100%; }
        100% { top: 100%; }
    }

    .card-overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 30%, transparent 60%);
        padding: 2.5rem;
        font-family: 'Syne', sans-serif;
        z-index: 999!important;
    }

    .card-number {
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.3em;
        color: rgba(255, 255, 255, 0.5);
        text-transform: uppercase;
        margin-bottom: 0.75rem;
    }

    .card-name {
        font-size: 2rem;
        font-weight: 800;
        color: #fff;
        letter-spacing: -0.02em;
        line-height: 1.1;
        margin-bottom: 0.5rem;
    }

    .card-role {
        font-size: 0.9rem;
        font-weight: 500;
        color: rgba(255, 255, 255, 0.7);
        letter-spacing: 0.05em;
    }

    .card-divider {
        width: 40px;
        height: 3px;
        background: linear-gradient(90deg, #FF6B35, #F7C59F);
        margin: 1rem 0;
        border-radius: 2px;
    }

    .card-quote {
      font-size: 1rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 1);
    font-style: italic;
    line-height: 1.5;
    }

    /* Tablet */
    @media (max-width: 1024px) {
        .contentCard {
            width: 50%;
            min-width: 280px;
            max-width: 360px;
        }
    }

    /* Mobile */
    @media (max-width: 768px) {
        .contentCard {
            width: 85%;
            min-width: unset;
            max-width: unset;
            border-radius: 1.5rem;
        }

        .sectionCard { padding: 1rem; }

}
    /* Small mobile */
    @media (max-width: 480px) {
       .contentCard {
            width: 92%;
            height: 53%;
            border-radius: 1rem;
        }

        .card-overlay { padding: 1.5rem; }
        .card-name { font-size: 1.4rem; }
        .card-number { font-size: 0.65rem; }
        .card-role { font-size: 0.8rem; }
        .card-quote { font-size: 0.7rem; }
        .card-divider { width: 30px; height: 2px; margin: 0.75rem 0; }
        .line { height: 6rem; }
    }
		
		



        :root {
            --bg-soft: #FAF8F5; /* Colore di sfondo caldo e morbido */
            --text-main: #2C2A25; /* Grigio antracite quasi nero per massima leggibilità ma più morbido del nero puro */
            --text-muted: #6B6862; /* Grigio caldo per testi secondari */
            --border-light: #E8E4DB; /* Bordo sottile ed elegante */
            --accent: #A39171; /* Accento dorato/terracotta molto tenue per le icone */
        }

        body {
            font-family: 'Inter', sans-serif;
            color: var(--text-main);
            background-color: #fff;
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden;
        }

        /* Tipografia */
        h1, h2, h3, .font-serif {
            font-family: 'Playfair Display', serif;
            font-weight: 400;
        }

        .section-title {
            font-size: clamp(2rem, 4vw, 3rem);
            line-height: 1.2;
            margin-bottom: 1rem;
            color: var(--text-main);
        }

        .section-subtitle {
            font-size: 1.1rem;
            color: var(--text-muted);
            line-height: 1.6;
            font-weight: 300;
            margin-bottom: 3rem;
        }

        /* Layout Colonne */
        .minimal-section {
            background-color: var(--bg-soft);
        }

        .img-col {
            position: relative;
            overflow: hidden;
            min-height: 50vh; /* Altezza minima per mobile */
        }

        @media (min-width: 992px) {
            .img-col {
                min-height: 100vh; /* Copre l'intera altezza dello schermo su desktop */
            }
            .content-col {
                min-height: 100vh;
            }
        }

   .bg-image {
       
            width:100%;
            height: 100vh;
            background-size: cover;
background-position:center center;
  object-fit: cover;
  pointer-events: none;
        }
     .bg-image img {
          width:100%;
          height: 100%;  object-fit: cover;
          background-size: cover;background-position:center center
        }
        /* Stile Lista Minimalista */
        .content-wrapper {
            max-width: 540px; /* Contenitore per mantenere il testo leggibile */
            width: 100%;
        }

        .location-list {
            margin: 0;
            padding: 0;
        }

        .location-item {
            padding: 1.25rem 0;
            border-bottom: 1px solid var(--border-light);
            transition: border-color 0.3s ease;
        }

        /* Rimuovi bordo dall'ultimo elemento per pulizia visiva */
        .location-item:last-child {
            border-bottom: none;
        }

        .location-item:hover {
            border-color: var(--accent);
        }

        .item-icon {
            font-size: 1.4rem;
            color: var(--accent);
            width: 35px;
            display: inline-block;
        }

        .item-name {
            font-size: 1.05rem;
            font-weight: 400;
        }

        .item-distance {
            font-family: 'Inter', sans-serif;
            font-weight: 500;
            font-size: 1rem;
            color: var(--text-main);
        }
        
        .small-text {
            font-size: 0.85rem;
            color: var(--text-muted);
            font-weight: 300;
        }

        /* Classe per elementi da animare con GSAP */
        .gsap-reveal {
            opacity: 0;
            visibility: hidden;
        }
        
        .page-template-territorio .cp-services__feature-image img{width:100%;height:100%;object-fit:cover}
        
        
            .cp-around__closing1 {
    position: relative;
    width: 90vw;
    margin-left: 5vw;
}
       .cp-around__closing1 ul li{
   gap:15px
}

   @media (max-width: 991px) {
       
       .site-header {
    
    z-index: 999;
}
       
          .bkgWatercolor {
  position: absolute;
  top: 20%;
  right: 0vw;
  transform: translateY(-50%);
  width: 45vw;
  max-width: 913px;
  min-width: 320px;
  height: auto;
  z-index: 1;
  pointer-events: none;

  overflow: visible !important;opacity:.5
}
      
      
      .minimal-section .img-col {
  height: 50vh;object-fit:cover
}
      
      
      
      
     .minimal-section .img-col .bg-image {
    width: 100%;
    height: 50vh;
 
}
      .page-template-camere .bkgWatercolor {
  position: absolute;
  top: 78%;
  right: 25vw;
  transform: translateY(-50%);
  width: 25vw;
  max-width: 916px;
  min-width: 320px;
  height: auto;
  z-index: 0;
  pointer-events: none;
  
  overflow: visible !important;
  opacity: .4;
}
        }