/* ═══════════════════════════════════════════════════════════
   MULINO BRANDOLINI — BRAND DESIGN TOKENS
   ═══════════════════════════════════════════════════════════

   PALETTE          → --stone / --earth / --cream / --olive / --ink / --gold
   TYPOGRAPHY       → --font-* / --text-* / --weight-* / --tracking-* / --leading-*
   SPACING          → --section-py / --section-px / --inner-*
   RADIUS           → --radius-*
   TRANSITIONS      → --t-*
   PLATFORM COLORS  → --brand-*

   ═══════════════════════════════════════════════════════════ */
:root {

  /* ── PALETTE ─────────────────────────────────────────── */
  --stone:       #c8b89a;
  --stone-light: #e8ddd0;
  --stone-dark:  #8c7660;

  --earth:       #6b4f3a;
  --earth-dark:  #3d2b1f;

  --cream:       #f5f0e8;
  --cream-warm:  #fdf8f0;

  --olive:       #7a8c5c;
  --olive-dark:  #4a5c30;

  --ink:         #1a1410;
  --ink-soft:    #3d3028;

  --rust:        #b85c38;
  --gold:        #c9a84c;

  /* ── THIRD-PARTY BRAND COLORS ────────────────────────── */
  --brand-booking:        #003580;
  --brand-booking-dark:   #002264;
  --brand-booking-accent: #FEBB02;
  --brand-airbnb:         #FF5A5F;
  --brand-airbnb-dark:    #e04e53;
  --brand-whatsapp:       #25D366;
  --brand-whatsapp-dark:  #1db954;

  /* ── TYPOGRAPHY · FAMILIES ───────────────────────────── */
  --font-display: 'EB Garamond', serif;
  --font-body:    'Alegreya Sans', sans-serif;

  /* ── TYPOGRAPHY · SCALE ──────────────────────────────── */
  --text-hero:    clamp(3.5rem, 7vw, 6rem);    /* titolo hero         */
  --text-section: clamp(2rem, 3.5vw, 3.2rem);  /* titoli sezione      */
  --text-quote:   clamp(1.2rem, 2vw, 1.6rem);  /* citazioni           */
  --text-xl:      1.5rem;                       /* logo, form title    */
  --text-lg:      1.25rem;                      /* card title, nav logo*/
  --text-md:      1.1rem;                       /* review, owner quote */
  --text-body:    1rem;                         /* corpo testo         */
  --text-sm:      .875rem;                      /* dettagli, link      */
  --text-xs:      .8rem;                        /* bottoni, label form */
  --text-label:   .75rem;                       /* eyebrow, meta, cite */
  --text-micro:   .7rem;                        /* caption, footnote   */

  /* ── TYPOGRAPHY · WEIGHT ─────────────────────────────── */
  --weight-light:   300;
  --weight-regular: 400;
  --weight-medium:  500;

  /* ── TYPOGRAPHY · TRACKING (letter-spacing) ─────────── */
  --tracking-widest: .22em;  /* section-label, eyebrow  */
  --tracking-wider:  .15em;  /* citazioni, footer tag   */
  --tracking-wide:   .12em;  /* bottoni, uppercase ui   */
  --tracking-normal: .06em;  /* subtitle hero           */
  --tracking-tight:  .04em;  /* testo minore            */
  --tracking-snug:   .02em;  /* logo, micro elementi    */

  /* ── TYPOGRAPHY · LEADING (line-height) ─────────────── */
  --leading-tight:   1.05;   /* display, hero           */
  --leading-snug:    1.15;   /* heading                 */
  --leading-normal:  1.65;   /* serif, card text        */
  --leading-relaxed: 1.8;    /* corpo testo             */
  --leading-loose:   2;      /* prosa lunga             */

  /* ── SPACING ─────────────────────────────────────────── */
  --section-py:   6rem;      /* padding verticale std   */
  --section-px:   2rem;      /* padding laterale std    */
  --inner-xl:  1300px;       /* gallery                 */
  --inner-lg:  1200px;       /* about, storia           */
  --inner-md:  1100px;       /* features, reviews, cont.*/
  --inner-sm:   760px;       /* booking                 */

  /* ── RADIUS ──────────────────────────────────────────── */
  --radius-img:  2px;        /* immagini, card foto     */
  --radius-sm:   4px;        /* small elements          */
  --radius-full: 50%;        /* avatar, badge           */

  /* ── TRANSITIONS ─────────────────────────────────────── */
  --t-fast:  .2s;
  --t-base:  .3s;
  --t-slow:  .4s;
  --t-image: .7s;
}

/* ─────────────────────────────────────────────────────────
   RESET & BASE
───────────────────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--cream-warm);color:var(--ink);overflow-x:hidden}

/* ── FOCUS ── */
:focus-visible{outline:2px solid var(--earth);outline-offset:3px;border-radius:2px}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9999;opacity:.4}

/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.2rem 3rem;display:flex;justify-content:space-between;align-items:center;transition:background var(--t-slow),padding var(--t-slow)}
nav.scrolled{background:rgba(245,240,232,.96);padding:.8rem 3rem;backdrop-filter:blur(8px);border-bottom:1px solid rgba(200,184,154,.3)}
.nav-logo{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-snug);color:var(--cream);text-decoration:none;transition:color var(--t-base)}
nav.scrolled .nav-logo{color:var(--earth-dark)}
.nav-logo{display:flex;align-items:center;text-decoration:none}
.nav-logo-img{height:46px;width:auto;display:block;margin-right:8px}
.nav-logo-scrolled{display:none}
nav.scrolled .nav-logo-default{display:none}
nav.scrolled .nav-logo-scrolled{display:block}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:rgba(245,240,232,.85);text-decoration:none;transition:color var(--t-base);font-weight:var(--weight-regular)}
nav.scrolled .nav-links a{color:var(--stone-dark)}
.nav-links a:hover{color:var(--gold)}

/* ── BURGER ── */
.burger{display:none;flex-direction:column;justify-content:center;gap:5px;cursor:pointer;background:none;border:none;padding:.5rem;z-index:101}
.burger span{display:block;width:22px;height:1.5px;background:var(--cream);transition:transform var(--t-base),opacity var(--t-base),background var(--t-base)}
nav.scrolled .burger span{background:var(--earth-dark)}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── HERO ── */
.hero{height:100vh;min-height:620px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,20,16,.46) 0%,rgba(26,20,16,.65) 100%)}
.hero-wheel{position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:520px;height:520px;opacity:.07;animation:rotate 80s linear infinite}
@keyframes rotate{to{transform:translateY(-50%) rotate(360deg)}}
.hero-content{position:relative;text-align:center;color:var(--cream);padding:2rem;max-width:780px}
.hero-eyebrow{font-size:var(--text-label);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--stone);margin-bottom:1.5rem;opacity:0;animation:fadeUp .8s .3s forwards}
.hero-title{font-family:var(--font-display);font-size:var(--text-hero);font-weight:var(--weight-light);line-height:var(--leading-tight);letter-spacing:.02em;margin-bottom:.2rem;opacity:0;animation:fadeUp .9s .5s forwards;text-shadow:0 2px 20px rgba(26,20,16,.4)}
.hero-title em{font-style:italic;color:var(--stone-light);font-weight:var(--weight-light)}
.hero-subtitle{font-family:var(--font-display);font-size:var(--text-quote);font-weight:var(--weight-light);letter-spacing:var(--tracking-normal);color:var(--stone-light);margin-bottom:3rem;opacity:0;animation:fadeUp .9s .7s forwards}
.hero-ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp .9s .9s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.btn-primary{display:inline-block;padding:.9rem 2.4rem;background:var(--earth);color:var(--cream);text-decoration:none;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;transition:background var(--t-base),transform var(--t-fast);border:1px solid var(--earth)}
.btn-primary:hover{background:var(--earth-dark);transform:translateY(-2px)}
.btn-outline{display:inline-block;padding:.9rem 2.4rem;background:transparent;color:var(--cream);text-decoration:none;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;border:1px solid rgba(245,240,232,.5);transition:border-color var(--t-base),transform var(--t-fast)}
.btn-outline:hover{border-color:var(--stone);transform:translateY(-2px)}
.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--stone-light);font-size:var(--text-micro);letter-spacing:var(--tracking-wide);text-transform:uppercase;opacity:0;animation:fadeUp 1s 1.4s forwards}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--stone),transparent);animation:sPulse 2s 2s infinite}
@keyframes sPulse{0%,100%{transform:scaleY(1);opacity:.6}50%{transform:scaleY(.5);opacity:1}}

/* ── SHARED ── */
section{padding:var(--section-py) var(--section-px)}
.section-label{font-size:var(--text-label);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--olive-dark);margin-bottom:1rem}
.section-title{font-family:var(--font-display);font-size:var(--text-section);font-weight:var(--weight-regular);line-height:var(--leading-snug);color:var(--earth-dark);margin-bottom:1.5rem}
.section-title em{font-style:italic;color:var(--earth)}
.section-body{font-size:var(--text-body);line-height:var(--leading-relaxed);color:var(--ink-soft);font-weight:var(--weight-light);max-width:56ch}
.divider{width:48px;height:1px;background:var(--gold);margin:2rem 0}
.fade-in{opacity:0;transform:translateY(30px);transition:opacity var(--t-image) ease,transform var(--t-image) ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fd1{transition-delay:.1s}.fd2{transition-delay:.22s}.fd3{transition-delay:.34s}

/* ── ABOUT ── */
.about-wrap{max-width:var(--inner-lg);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;padding:7rem 4rem}
.about-stack{position:relative;height:480px}
.about-main{position:absolute;top:0;left:0;width:78%;height:85%;overflow:hidden;border-radius:var(--radius-img)}
.about-main img{width:100%;height:100%;object-fit:cover;object-position:center}
.about-accent{position:absolute;bottom:0;right:0;width:50%;height:50%;overflow:hidden;border-radius:var(--radius-img);border:6px solid var(--cream-warm)}
.about-accent img{width:100%;height:100%;object-fit:cover;object-position:center top}
.about-badge{position:absolute;top:50%;left:60%;transform:translate(-50%,-50%);width:90px;height:90px;border-radius:var(--radius-full);background:var(--earth);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;border:3px solid var(--cream-warm)}
.about-badge span{font-family:var(--font-display);color:var(--cream);line-height:1.1;text-align:center}
.about-badge .yr{font-size:1.5rem;font-weight:var(--weight-medium)}
.about-badge .sc{font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--stone-light)}

/* ── STORIA ── */
.storia-section{background:var(--earth-dark);padding:0;overflow:hidden;position:relative}
.storia-section::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:0;border-left:1px dashed rgba(200,184,154,.28);transform:translateX(-50%)}
.storia-inner{max-width:var(--inner-lg);margin:0 auto;padding:7rem 4rem}
.storia-header{text-align:center;margin-bottom:2rem}
.storia-header .section-label{color:var(--stone)}
.storia-header .section-title{color:var(--cream);margin-bottom:0}
.storia-header .section-title em{color:var(--stone-light)}
.storia-quote{text-align:center;max-width:680px;margin:0 auto 2rem;padding:0 2rem;position:relative}
.storia-quote::before{content:'\201C';font-family:var(--font-display);font-size:8rem;color:rgba(200,184,154,.1);position:absolute;top:-2rem;left:50%;transform:translateX(-50%);line-height:1;pointer-events:none}
.storia-quote p{font-family:var(--font-display);font-size:var(--text-quote);font-style:italic;color:var(--stone-light);line-height:var(--leading-normal);font-weight:var(--weight-light);position:relative}
.storia-quote cite{display:block;margin-top:1.2rem;font-family:var(--font-body);font-size:var(--text-label);letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--stone-dark);font-style:normal}
.storia-museo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:2rem;max-width:720px;margin-left:auto;margin-right:auto}
.storia-museo-item{aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(200,184,154,.15);clip-path:inset(0 0 100% 0);transition:clip-path .95s cubic-bezier(.4,0,.2,1)}
.storia-museo-item picture{display:block;width:100%;height:100%}
.storia-museo-item img{width:100%;height:100%;object-fit:cover;filter:sepia(.15);transition:transform .6s}
.storia-museo-item:hover img{transform:scale(1.04)}
.storia-timeline{display:grid;grid-template-columns:1fr 1fr;gap:0;position:relative}
.storia-node{padding:3rem 4rem;position:relative}
.storia-node:nth-child(odd){text-align:right;padding-right:5rem}
.storia-node:nth-child(even){text-align:left;padding-left:5rem}
.storia-node::after{content:'';position:absolute;top:3.5rem;width:10px;height:10px;border-radius:var(--radius-full);background:var(--gold);border:2px solid var(--earth-dark);box-shadow:0 0 0 4px rgba(201,168,76,.2)}
.storia-node:nth-child(odd)::after{right:-5px}
.storia-node:nth-child(even)::after{left:-5px}
.storia-node-year{font-family:var(--font-display);font-size:2.8rem;color:rgba(201,168,76,.38);font-weight:var(--weight-light);line-height:1;margin-bottom:.5rem;display:block}
.storia-node-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--stone-light);font-weight:var(--weight-regular);margin-bottom:.7rem}
.storia-node-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:rgba(200,184,154,.78);font-weight:var(--weight-light)}
.storia-prose{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:5rem;padding-top:5rem;border-top:1px solid rgba(200,184,154,.1);align-items:start}
.storia-prose-text{font-size:var(--text-sm);line-height:var(--leading-loose);color:rgba(200,184,154,.8);font-weight:var(--weight-light)}
.storia-prose-text p+p{margin-top:1.2rem}
.storia-prose-text strong{color:var(--stone);font-weight:var(--weight-regular)}
.storia-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(200,184,154,.1);border:1px solid rgba(200,184,154,.1)}
.storia-fact{background:rgba(255,255,255,.02);padding:1.6rem 1.4rem;text-align:center;transition:background var(--t-base)}
.storia-fact:hover{background:rgba(255,255,255,.05)}
.storia-fact-num{font-family:var(--font-display);font-size:2.4rem;color:var(--gold);font-weight:var(--weight-light);line-height:1;display:block;margin-bottom:.3rem}
.storia-fact-label{font-size:var(--text-label);letter-spacing:.18em;text-transform:uppercase;color:var(--stone-dark);font-weight:var(--weight-light)}
.storia-owner{grid-column:1/-1;display:flex;align-items:center;gap:2rem;padding:2.5rem;border:1px solid rgba(200,184,154,.12);margin-top:3rem;background:rgba(255,255,255,.02)}
.storia-owner-avatar{width:72px;height:72px;border-radius:var(--radius-full);overflow:hidden;background:linear-gradient(135deg,var(--earth),var(--stone-dark));display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-display);font-size:1.6rem;color:var(--cream);font-weight:var(--weight-light);border:2px solid rgba(200,184,154,.2)}
.storia-owner-avatar img{width:140%;height:140%;object-fit:cover;object-position:center top;display:block}
.storia-owner-quote{font-family:var(--font-display);font-size:var(--text-md);font-style:italic;color:var(--stone-light);line-height:var(--leading-normal);font-weight:var(--weight-light);margin-bottom:.5rem}
.storia-owner-name{font-size:var(--text-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--stone-dark)}

/* ── STORIA · SCROLL ANIMATIONS ── */

/* Museum photo clip-path reveal */
.storia-museo-item.revealed{clip-path:inset(0 0 0% 0)}

/* Gold dot pulse on node entry */
.storia-node::after{transition:box-shadow .6s ease}
.storia-node.node-pulse::after{box-shadow:0 0 0 7px rgba(201,168,76,.3),0 0 28px rgba(201,168,76,.22)}

/* Quote word-by-word reveal */
.storia-quote-word{opacity:0;transform:translateY(10px);display:inline-block;transition:opacity .4s ease,transform .4s ease}
.storia-quote-word.visible{opacity:1;transform:translateY(0)}

/* Fact numbers count-up glow */
.storia-fact-num.counting{color:var(--gold)}

/* prefers-reduced-motion */
@media(prefers-reduced-motion:reduce){
  /* Hero */
  .hero-eyebrow,.hero-title,.hero-subtitle,.hero-ctas,.scroll-hint{animation:none!important;opacity:1!important;transform:none!important}
  .hero-wheel{animation:none!important}
  .scroll-line{animation:none!important}
  /* Storia */
  .storia-museo-item{clip-path:none!important;transition:none!important}
  .storia-quote-word{opacity:1!important;transform:none!important;transition:none!important}
  .storia-node::after{transition:none!important}
}

/* ── FEATURES ── */
.features-section{background:linear-gradient(to bottom,var(--cream-warm),var(--stone-light));padding:var(--section-py) var(--section-px)}
.features-inner{max-width:var(--inner-md);margin:0 auto}
.features-header{text-align:center;margin-bottom:4rem}
.features-header .section-label{color:var(--olive-dark)}
.features-header .section-title{color:var(--earth-dark);margin-bottom:0}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid rgba(140,118,96,.2)}
.feature-item{padding:2.8rem 2rem;border-right:1px solid rgba(140,118,96,.2);text-align:center;transition:background var(--t-base);background:rgba(255,255,255,.5)}
.feature-item:nth-child(3n){border-right:none}
.feature-item:nth-child(n+4){border-top:1px solid rgba(140,118,96,.2)}
.feature-item:hover{background:white}
.feature-icon-wrap{width:52px;height:52px;border-radius:var(--radius-full);border:1px solid rgba(140,118,96,.25);display:flex;align-items:center;justify-content:center;margin:0 auto 1.3rem;transition:border-color var(--t-base),background var(--t-base)}
.feature-item:hover .feature-icon-wrap{border-color:var(--earth);background:rgba(107,79,58,.06)}
.feature-icon-wrap svg{width:22px;height:22px;stroke:var(--stone-dark);stroke-width:1.5;fill:none;transition:stroke var(--t-base)}
.feature-item:hover .feature-icon-wrap svg{stroke:var(--earth)}
.feature-title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--earth-dark);margin-bottom:.6rem;font-weight:var(--weight-regular)}
.feature-desc{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-soft);font-weight:var(--weight-light)}



/* ── EVENTI ── */
.eventi-section{background:var(--cream);padding:var(--section-py) var(--section-px)}
.eventi-inner{max-width:var(--inner-lg);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.eventi-types{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
.eventi-type{display:flex;align-items:center;gap:.8rem;padding:.8rem 1rem;border:1px solid rgba(200,184,154,.35);background:rgba(245,240,232,.6)}
.eventi-type-icon{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.eventi-type-icon svg{width:16px;height:16px;stroke:var(--earth);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.eventi-type span{font-size:var(--text-xs);letter-spacing:.08em;color:var(--ink-soft);font-weight:var(--weight-regular)}
.eventi-photos{position:relative;height:520px}
.eventi-photo-main{position:absolute;top:0;right:0;width:85%;height:75%;overflow:hidden;border-radius:var(--radius-img)}
.eventi-photo-main img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-image) ease}
.eventi-photo-main:hover img{transform:scale(1.04)}
.eventi-photo-secondary{position:absolute;bottom:0;left:0;width:52%;height:48%;overflow:hidden;border-radius:var(--radius-img);border:5px solid var(--cream-warm)}
.eventi-photo-secondary img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-image) ease}
.eventi-photo-secondary:hover img{transform:scale(1.04)}

/* ── GALLERY ── */
.gallery-section{background:var(--cream-warm);padding:var(--section-py) var(--section-px)}
.gallery-inner{max-width:var(--inner-xl);margin:0 auto}
.gallery-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem}
.gallery-all-link{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--earth);text-decoration:none;border-bottom:1px solid var(--stone);padding-bottom:.2rem;transition:color var(--t-base),border-color var(--t-base)}
.gallery-all-link:hover{color:var(--earth-dark);border-color:var(--earth)}
.gallery-cta{text-align:center;margin-top:2.5rem}
.btn-outline-dark{display:inline-block;padding:.9rem 2.4rem;background:transparent;color:var(--earth-dark);text-decoration:none;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--earth);transition:background var(--t-base),color var(--t-base),transform var(--t-fast)}
.btn-outline-dark:hover{background:var(--earth);color:var(--cream);transform:translateY(-2px)}
.gallery-grid{display:grid;grid-template-columns:2.4fr 1fr 1.4fr;grid-template-rows:340px 260px 300px;gap:14px}
.gallery-item{overflow:hidden;cursor:pointer;position:relative}
.gallery-item::after{content:'';position:absolute;inset:0;background:rgba(61,43,31,0);transition:background var(--t-slow)}
.gallery-item:hover::after{background:rgba(61,43,31,.2)}
.gallery-item img,.gallery-item picture{width:100%;height:100%;display:block}
.gallery-item img{object-fit:cover;transition:transform var(--t-image) ease}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-label{position:absolute;bottom:0;left:0;right:0;padding:.6rem .9rem;background:linear-gradient(to top,rgba(26,20,16,.65),transparent);color:rgba(245,240,232,.85);font-size:var(--text-micro);letter-spacing:.18em;text-transform:uppercase;font-weight:var(--weight-light);opacity:0;transition:opacity var(--t-base)}
.gallery-item:hover .gallery-label{opacity:1}
/* Gallery 6 items */
.gi1{grid-column:1;grid-row:1/3}
.gi2{grid-column:2;grid-row:1}
.gi3{grid-column:3;grid-row:1}
.gi4{grid-column:2/4;grid-row:2}
.gi5{grid-column:1;grid-row:3}
.gi6{grid-column:2/4;grid-row:3}

/* ── NEARBY ── */
.nearby-section{background:var(--stone-light);padding:var(--section-py) var(--section-px)}
.nearby-inner{max-width:var(--inner-md);margin:0 auto}
.nearby-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:3.5rem}
.nearby-col{background:white;padding:2rem 1.8rem;border:1px solid rgba(200,184,154,.3)}
.nearby-col-title{display:flex;align-items:center;gap:.7rem;font-size:var(--text-label);letter-spacing:.28em;text-transform:uppercase;color:var(--earth);margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(200,184,154,.4);font-weight:var(--weight-medium)}
.nearby-col-title svg{width:15px;height:15px;stroke:var(--earth);fill:none;stroke-width:2;flex-shrink:0}
.nearby-item{display:flex;justify-content:space-between;align-items:baseline;padding:.65rem 0;border-bottom:1px solid rgba(200,184,154,.2)}
.nearby-item:last-child{border-bottom:none}
.nearby-name{font-size:var(--text-sm);color:var(--ink-soft);font-weight:var(--weight-regular)}
.nearby-dist{font-size:var(--text-xs);color:var(--stone-dark);font-weight:var(--weight-light);white-space:nowrap;margin-left:1rem}
.nearby-dist strong{color:var(--earth);font-weight:600}

/* ── MAP ── */
.map-section{padding:0}
.map-wrapper{position:relative;width:100%;height:420px;overflow:hidden}
.map-wrapper iframe{width:100%;height:100%;border:none}

/* ── REVIEWS ── */
.reviews-section{background:var(--earth-dark);padding:var(--section-py) var(--section-px)}
.reviews-inner{max-width:var(--inner-md);margin:0 auto}
.reviews-header{text-align:center;margin-bottom:1rem}
.reviews-header .section-label{color:var(--stone)}
.reviews-header .section-title{color:var(--cream);margin-bottom:0}
.reviews-avg{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin:1.5rem 0 3.5rem}
.reviews-score{font-family:var(--font-display);font-size:3.8rem;color:var(--gold);font-weight:var(--weight-light);line-height:1}
.reviews-stars{display:flex;gap:4px}
.reviews-stars svg{width:15px;height:15px;fill:var(--gold)}
.reviews-count{font-size:var(--text-xs);color:var(--stone-dark);letter-spacing:var(--tracking-tight);margin-top:.25rem}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.review-card{background:rgba(255,255,255,.04);padding:2rem 1.8rem;border:1px solid rgba(200,184,154,.1);transition:background var(--t-base);display:flex;flex-direction:column}
.review-card:hover{background:rgba(255,255,255,.07)}
.review-stars{display:flex;gap:3px;margin-bottom:1rem}
.review-stars svg{width:12px;height:12px;fill:var(--gold)}
.review-text{font-family:var(--font-display);font-size:var(--text-md);font-style:italic;color:var(--stone-light);line-height:var(--leading-normal);margin-bottom:1.5rem;font-weight:var(--weight-light);flex:1}
.review-author{display:flex;align-items:center;gap:.8rem;margin-top:auto}
.review-avatar{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-md);color:var(--cream);font-weight:var(--weight-medium);flex-shrink:0}
.review-name{font-size:var(--text-sm);color:var(--stone);font-weight:var(--weight-regular)}
.review-meta{font-size:var(--text-label);color:var(--stone-dark);font-weight:var(--weight-light)}
.review-source{display:flex;align-items:center;gap:.35rem;margin-left:auto;font-size:var(--text-label);color:var(--stone-dark)}
.review-source svg{width:12px;height:12px;stroke:var(--stone-dark);fill:none;stroke-width:1.5}

/* ── BOOKING ── */
.booking-section{background:var(--stone-light);padding:5rem var(--section-px);text-align:center}
.booking-inner{max-width:var(--inner-sm);margin:0 auto}
.booking-platforms{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2.5rem}
.platform-btn{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.6rem;min-height:56px;background:white;border:1px solid rgba(140,118,96,.3);text-decoration:none;color:var(--ink-soft);font-size:var(--text-sm);letter-spacing:var(--tracking-tight);text-transform:uppercase;font-weight:var(--weight-medium);transition:transform var(--t-fast),box-shadow var(--t-fast);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.platform-btn:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.18)}
.platform-btn--booking{background:var(--brand-booking);color:#fff;border-color:var(--brand-booking)}
.platform-btn--booking:hover{background:var(--brand-booking-dark);box-shadow:0 6px 20px rgba(0,53,128,.35)}
.platform-btn--airbnb{background:var(--brand-airbnb);color:#fff;border-color:var(--brand-airbnb)}
.platform-btn--airbnb:hover{background:var(--brand-airbnb-dark);box-shadow:0 6px 20px rgba(255,90,95,.35)}
.platform-btn--whatsapp{background:var(--brand-whatsapp);color:#fff;border-color:var(--brand-whatsapp)}
.platform-btn--whatsapp:hover{background:var(--brand-whatsapp-dark);box-shadow:0 6px 20px rgba(37,211,102,.35)}
.btn-coming{font-size:var(--text-micro);letter-spacing:.06em;color:rgba(255,255,255,.7);font-style:italic;margin-left:.2rem;text-transform:none}

/* ── CONTACT ── */
.contact-section{background:var(--cream-warm);padding:var(--section-py) var(--section-px)}
.contact-inner{max-width:var(--inner-md);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}
.contact-detail{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.2rem}
.contact-detail-icon{width:32px;height:32px;border-radius:var(--radius-full);border:1px solid rgba(200,184,154,.5);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.1rem}
.contact-detail-icon svg{width:14px;height:14px;stroke:var(--earth);fill:none;stroke-width:2}
.contact-detail-text{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--ink-soft);font-weight:var(--weight-light)}
.contact-detail-label{font-size:var(--text-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--stone-dark);display:block;margin-bottom:.1rem}
.contact-detail-text a{color:var(--earth);text-decoration:none}
.contact-detail-text a:hover{text-decoration:underline}
.contact-form{background:white;padding:2.5rem;border:1px solid rgba(200,184,154,.4)}
.form-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--earth-dark);margin-bottom:.4rem;font-weight:var(--weight-regular)}
.form-subtitle{font-size:var(--text-sm);color:var(--stone-dark);margin-bottom:2rem;font-weight:var(--weight-light)}
.form-group{margin-bottom:1.2rem}
.form-group label{display:block;font-size:var(--text-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--stone-dark);margin-bottom:.4rem}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.8rem 1rem;border:1px solid rgba(200,184,154,.5);background:var(--cream-warm);font-family:var(--font-body);font-size:var(--text-sm);color:var(--ink);font-weight:var(--weight-light);outline:none;transition:border-color var(--t-base);border-radius:0;-webkit-appearance:none;appearance:none}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--earth);background:white}
.form-group textarea{height:110px;resize:none}
.form-group select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238c7660' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.form-note{font-size:var(--text-label);color:var(--stone-dark);margin-bottom:1.5rem;font-weight:var(--weight-light);line-height:var(--leading-normal)}
.form-consent{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:1.2rem}
.form-consent input[type="checkbox"]{width:16px;height:16px;min-width:16px;margin-top:2px;accent-color:var(--earth);cursor:pointer}
.form-consent label{font-size:var(--text-xs);line-height:var(--leading-normal);color:var(--stone-dark);font-weight:var(--weight-light);cursor:pointer}
.form-consent label a{color:var(--earth);text-decoration:underline}
.required-star{color:var(--rust);font-weight:var(--weight-medium)}
.btn-submit{width:100%;padding:1rem;background:var(--earth);color:var(--cream);border:none;font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:var(--tracking-wider);text-transform:uppercase;cursor:pointer;transition:background var(--t-base),opacity var(--t-base);font-weight:var(--weight-regular)}
.btn-submit:hover:not(:disabled){background:var(--earth-dark)}
.btn-submit:disabled{opacity:.4;cursor:not-allowed}
.form-success{display:none;text-align:center;padding:1.5rem;color:var(--olive-dark);font-family:var(--font-display);font-size:var(--text-md);font-style:italic}

/* ── FOOTER ── */
footer{background:var(--earth-dark);padding:4.5rem 5rem 2rem}
.footer-top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(200,184,154,.1)}
.footer-logo{display:block;height:90px;width:auto;margin-bottom:1rem;border-radius:var(--radius-sm);border:1px solid rgba(200,184,154,.12)}
.footer-brand{font-family:var(--font-display);font-size:var(--text-xl);color:var(--stone-light);font-weight:var(--weight-light);letter-spacing:var(--tracking-snug);display:block;margin-bottom:.3rem}
.footer-tagline{font-size:var(--text-label);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--stone-dark);margin-bottom:1.2rem}
.footer-desc{font-size:var(--text-sm);line-height:1.75;color:rgba(200,184,154,.45);font-weight:var(--weight-light);max-width:27ch}
.footer-social{display:flex;gap:.6rem;margin-top:1.6rem}
.footer-social a{width:36px;height:36px;border-radius:var(--radius-full);border:1px solid rgba(200,184,154,.18);display:flex;align-items:center;justify-content:center;color:var(--stone-dark);text-decoration:none;transition:border-color var(--t-base),color var(--t-base)}
.footer-social a:hover{border-color:var(--gold);color:var(--gold)}
.footer-social a svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.footer-col-title{font-size:var(--text-micro);letter-spacing:.28em;text-transform:uppercase;color:var(--stone);margin-bottom:1.2rem;font-weight:var(--weight-medium)}
.footer-col-links{list-style:none;display:flex;flex-direction:column;gap:.65rem}
.footer-col-links a{font-size:var(--text-sm);color:rgba(200,184,154,.45);text-decoration:none;font-weight:var(--weight-light);transition:color var(--t-base)}
.footer-col-links a:hover{color:var(--stone)}
.footer-contact-item{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.85rem}
.footer-contact-item svg{width:13px;height:13px;stroke:var(--stone-dark);fill:none;stroke-width:2;flex-shrink:0;margin-top:3px}
.footer-contact-item span{font-size:var(--text-sm);color:rgba(200,184,154,.45);font-weight:var(--weight-light);line-height:1.5}
.footer-contact-item a{color:rgba(200,184,154,.45);text-decoration:none;transition:color var(--t-base)}
.footer-contact-item a:hover{color:var(--stone)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1.8rem;flex-wrap:wrap;gap:1rem}
.footer-copy{font-size:var(--text-label);color:rgba(140,118,96,.38)}
.footer-bottom-links{display:flex;gap:2rem}
.footer-bottom-links a{font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase;color:rgba(140,118,96,.38);text-decoration:none;transition:color var(--t-base)}
.footer-bottom-links a:hover{color:var(--stone-dark)}

/* ── RESPONSIVE ── */
@media(max-width:1050px){.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
  nav{padding:1rem 1.5rem} nav.scrolled{padding:.7rem 1.5rem}
  .burger{display:flex}
  .nav-links{
    display:flex;flex-direction:column;
    position:fixed;top:0;right:-100%;
    width:min(280px,80vw);height:100vh;
    background:var(--earth-dark);
    padding:5rem 2rem 2rem;
    gap:1.2rem;
    transition:right .35s cubic-bezier(.4,0,.2,1);
    z-index:100;
    box-shadow:-4px 0 30px rgba(0,0,0,.25);
  }
  .nav-links.open{right:0}
  .nav-links a{color:var(--stone-light)!important;font-size:var(--text-sm);letter-spacing:.18em}
  .about-wrap{grid-template-columns:1fr;gap:3rem;padding:4rem 1.5rem}
  .about-stack{height:320px}
  .natura-inner{margin:0 auto;padding:0 1rem}
  .storia-section::before{display:none}
  .storia-inner{padding:5rem 1.5rem}
  .storia-timeline{grid-template-columns:1fr}
  .storia-node{padding:2rem 1.5rem 2rem 3rem!important;text-align:left!important}
  .storia-node::after{left:4px!important;right:auto!important}
  .storia-prose{grid-template-columns:1fr;gap:2.5rem}
  .storia-facts{grid-template-columns:1fr 1fr}
  .storia-owner{flex-direction:column;text-align:center}
  .storia-museo{grid-template-columns:1fr;gap:8px}
  .storia-museo-item{aspect-ratio:16/9}
  .features-grid{grid-template-columns:1fr}
  .feature-item{border-right:none!important;border-top:none!important;border-bottom:1px solid rgba(140,118,96,.15)}
  .feature-item:last-child{border-bottom:none}
  .eventi-inner{grid-template-columns:1fr;gap:3rem}
  .eventi-photos{height:340px}
  .eventi-types{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:200px;gap:8px}
  .gallery-item{grid-column:auto;grid-row:auto}
  .gi1,.gi4{grid-column:1/3}
  .nearby-columns{grid-template-columns:1fr;gap:2px}
  .reviews-grid{grid-template-columns:1fr;gap:2px}
  .contact-inner{grid-template-columns:1fr;gap:3rem}
  .form-row{grid-template-columns:1fr}
  footer{padding:3rem 1.5rem 1.5rem}
  .footer-top{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .gallery-header{flex-direction:column;align-items:flex-start;gap:1rem}
  .booking-platforms{flex-direction:column;align-items:stretch}
  .platform-btn{justify-content:center}
}
@media(max-width:560px){.footer-top{grid-template-columns:1fr}}

/* ──────────────────────────────────────────────────────────────
   TOAST NOTIFICATION
   ────────────────────────────────────────────────────────────── */
.toast {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  z-index: 9999;
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  min-width: 280px;
  max-width: 360px;
  padding: 1rem 1.1rem 1rem 1rem;
  border-radius: var(--radius-md, 6px);
  background: var(--earth-dark);
  border: 1px solid rgba(201,168,76,.22);
  box-shadow: 0 8px 32px rgba(26,20,16,.32), 0 2px 8px rgba(0,0,0,.18);
  font-family: var(--font-body);
  color: var(--cream);
  pointer-events: none;
  opacity: 0;
  transform: translateX(calc(100% + 2rem));
  transition: opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1);
}
.toast--visible {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
.toast--error {
  border-color: rgba(184,92,56,.35);
}
.toast--error .toast-icon {
  color: var(--rust);
  background: rgba(184,92,56,.18);
}
.toast-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgba(201,168,76,.18);
  color: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
}
.toast-icon svg {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
}
.toast-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.toast-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--cream);
  line-height: 1.2;
}
.toast-msg {
  font-size: var(--text-xs);
  color: var(--stone-light);
  line-height: 1.4;
}
.toast-close {
  flex-shrink: 0;
  background: none;
  border: none;
  cursor: pointer;
  padding: .15rem;
  color: var(--stone);
  opacity: .7;
  transition: opacity .2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.toast-close:hover { opacity: 1; }
.toast-close svg { width: .9rem; height: .9rem; stroke: currentColor; }

@media(max-width:480px) {
  .toast { right: 1rem; left: 1rem; min-width: 0; max-width: none; }
}
