:root{
  --cream:#FBF6EE;
  --sand:#F3E9DA;
  --sand-2:#E9DFD0;
  --terra:#C8643B;
  --terra-dark:#A94E2A;
  --sage:#7C8B6A;
  --sage-dark:#4E5C40;
  --cocoa:#3B2A20;
  --cocoa-soft:#5C4636;
  --muted:#7A6352;
  --white:#fff;
  --radius:18px;
  --shadow:0 10px 30px -12px rgba(59,42,32,.28);
  --serif:"Fraunces",Georgia,serif;
  --sans:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;
  --hand:"Caveat","Segoe Print",cursive;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--cream);color:var(--cocoa);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%;height:auto}
a{color:var(--terra-dark)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .5em;color:var(--cocoa)}
h1{font-size:clamp(2.4rem,5.4vw,4.1rem);letter-spacing:-.01em}
h1 em{font-style:italic;color:var(--terra)}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
.wrap{width:min(1140px,100% - 40px);margin-inline:auto}
.hand{font-family:var(--hand);font-weight:500;color:var(--terra)}
.kicker{font-size:1.65rem;line-height:1;margin:0 0 .35em}
.section-head{text-align:center;max-width:640px;margin:0 auto 48px}
section{padding:96px 0}

/* Bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-family:var(--sans);font-weight:700;font-size:1rem;line-height:1;text-decoration:none;white-space:nowrap;border:2px solid transparent;transition:transform .2s,background-color .2s,box-shadow .2s,color .2s}
.btn svg{width:20px;height:20px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible{outline:3px solid var(--sage);outline-offset:3px}
.btn-primary{background:var(--terra);color:var(--white);box-shadow:0 8px 20px -10px rgba(200,100,59,.9)}
.btn-primary:hover{background:var(--terra-dark)}
.btn-ghost{border-color:var(--sage);color:var(--sage-dark);background:transparent}
.btn-ghost:hover{background:var(--sage);color:var(--white)}
.btn-sm{min-height:44px;padding:0 20px;font-size:.95rem}
.btn-sm svg{width:18px;height:18px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn-row-center{justify-content:center}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,246,238,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.scrolled{border-color:var(--sand-2);box-shadow:0 6px 20px -16px rgba(59,42,32,.5)}
.header-inner{display:flex;align-items:center;gap:28px;height:76px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--cocoa);flex:none}
.brand-paw{width:30px;height:30px;color:var(--terra);transform:rotate(-14deg)}
.brand-name{font-family:var(--serif);font-size:1.35rem;font-weight:500;color:var(--cocoa)}
.brand-name .hand{font-size:1.6rem;margin-left:2px}
.main-nav{display:flex;gap:26px;margin-left:auto}
.main-nav a{color:var(--cocoa-soft);text-decoration:none;font-weight:600;font-size:.98rem;position:relative;padding:6px 0}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.main-nav a:hover::after{transform:scaleX(1)}
.header-cta{flex:none}

/* Hero */
.hero{padding:56px 0 96px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero-kicker{font-size:1.9rem;margin:0 0 .2em}
.lead{font-size:1.15rem;color:var(--cocoa-soft);max-width:34em;margin-bottom:30px}
.siua-mini{display:flex;align-items:center;gap:12px;margin-top:30px;color:var(--muted);font-size:.95rem;line-height:1.3}
.siua-mini img{width:44px;height:44px;border-radius:50%}
.siua-mini strong{color:var(--cocoa)}
.hero-media{position:relative;justify-self:center;width:min(420px,100%)}
.arch{border-radius:220px 220px 26px 26px;overflow:hidden;aspect-ratio:9/14;background:var(--sand-2);box-shadow:var(--shadow);border:8px solid var(--white)}
.arch video{width:100%;height:100%;object-fit:cover}
.hero-polaroid{position:absolute;left:-70px;bottom:-34px;width:170px;transform:rotate(-7deg)}
.paw-trail{position:absolute;right:-78px;top:20px;width:90px;height:150px;color:var(--terra);opacity:.22}

/* Polaroid */
.polaroid{margin:0;background:var(--white);padding:10px 10px 6px;border-radius:4px;box-shadow:var(--shadow)}
.polaroid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:2px}
.polaroid figcaption{text-align:center;font-size:1.35rem;line-height:1.1;padding:8px 0 4px;color:var(--cocoa-soft)}

/* Numeri */
.numbers{background:var(--sand);padding:72px 0}
.numbers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
.num-big{display:block;font-family:var(--serif);font-size:4.2rem;line-height:1;color:var(--terra);font-weight:500}
.num-big sup{font-size:.45em;vertical-align:top;position:relative;top:.3em}
.num-label{display:block;font-weight:700;font-size:1.05rem;margin:10px 0 8px}
.num p{color:var(--cocoa-soft);font-size:.98rem;max-width:22em;margin:0 auto}

/* Chi sono */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center}
.about-photo{position:relative;margin:0}
.about-photo img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:var(--shadow);transform:rotate(-1.5deg)}
.tape{position:absolute;top:-14px;left:50%;width:110px;height:30px;background:rgba(124,139,106,.45);transform:translateX(-50%) rotate(-4deg)}
.about-text p{color:var(--cocoa-soft)}
.siua-card{display:flex;gap:18px;align-items:center;background:var(--white);border-radius:var(--radius);padding:18px 22px;margin-top:26px;box-shadow:0 6px 20px -14px rgba(59,42,32,.4);border:1px solid var(--sand-2)}
.siua-card img{width:72px;height:72px;border-radius:50%;flex:none}
.siua-card strong{font-family:var(--serif);font-size:1.15rem;font-weight:500;color:var(--cocoa)}
.siua-card p{margin:4px 0 0;font-size:.95rem}

/* Stanza */
.room{background:var(--white)}
.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.room-text p{color:var(--cocoa-soft)}
.checks{list-style:none;padding:0;margin:20px 0 0}
.checks li{position:relative;padding-left:34px;margin-bottom:12px;color:var(--cocoa-soft)}
.checks li::before{content:"";position:absolute;left:0;top:4px;width:22px;height:22px;border-radius:50%;background:var(--sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
.room-photo{position:relative;margin:0;background:var(--white);padding:12px 12px 8px;border-radius:6px;box-shadow:var(--shadow);transform:rotate(1.5deg)}
.room-photo.reveal.in{transform:rotate(1.5deg)}
.room-photo img{width:100%;aspect-ratio:712/855;object-fit:cover;border-radius:3px}
.room-photo figcaption{text-align:center;font-size:1.5rem;color:var(--cocoa-soft);padding:8px 0 2px}
.photo-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:var(--radius);background:var(--sand);border:2px dashed var(--sand-2);text-align:center;color:var(--muted)}
.photo-slot svg{width:42px;height:42px;color:var(--terra);opacity:.35}
.photo-slot .hand{font-size:1.5rem;line-height:1.1;color:var(--muted)}
.slot-a{aspect-ratio:3/4}
.slot-b{aspect-ratio:3/4;margin-bottom:40px}

/* Giornata */
.timeline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.timeline::before{content:"";position:absolute;top:13px;left:6%;right:6%;border-top:2px dashed var(--sand-2)}
.timeline li{position:relative;padding-top:44px}
.timeline li::before{content:"";position:absolute;top:4px;left:0;width:20px;height:20px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 6px var(--cream)}
.t-time{font-family:var(--hand);font-size:1.5rem;color:var(--terra);display:block;line-height:1}
.timeline h3{margin:6px 0 8px}
.timeline p{color:var(--cocoa-soft);font-size:.98rem;margin:0}

/* Galleria */
.gallery{background:var(--sand)}
.polaroids{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.polaroids .polaroid:nth-child(1){transform:rotate(-3deg)}
.polaroids .polaroid:nth-child(2){transform:rotate(2.5deg) translateY(14px)}
.polaroids .polaroid:nth-child(3){transform:rotate(-1.5deg)}
.polaroids .polaroid:nth-child(4){transform:rotate(3deg) translateY(10px)}
.polaroids .polaroid{transition:transform .3s}
.polaroids .polaroid:hover{transform:rotate(0) scale(1.04);z-index:2}

/* Come funziona */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:56px}
.step{background:var(--white);border-radius:var(--radius);padding:28px 24px;border:1px solid var(--sand-2)}
.step-n{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--sand);color:var(--terra);font-family:var(--serif);font-size:1.4rem;margin-bottom:14px}
.step p{color:var(--cocoa-soft);font-size:.98rem;margin:0}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.info-card{background:var(--sand);border-radius:var(--radius);padding:30px 32px}
.info-card h3{display:flex;align-items:center;gap:10px}
.info-card h3 svg{width:24px;height:24px;color:var(--terra)}
.info-card ul{margin:0;padding-left:20px;color:var(--cocoa-soft)}
.info-card li{margin-bottom:8px}
.info-card li::marker{color:var(--terra)}

/* FAQ */
.faq{background:var(--white)}
.faq-wrap{max-width:780px}
.faq-list details{border-bottom:1px solid var(--sand-2);padding:4px 0}
.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;font-family:var(--serif);font-size:1.2rem;color:var(--cocoa)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:var(--sans);font-size:1.6rem;line-height:1;color:var(--terra);transition:transform .25s;flex:none}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{color:var(--cocoa-soft);margin:0 0 18px}

/* Prenota */
.book{background:var(--cocoa);color:var(--cream);text-align:center;position:relative;overflow:hidden}
.book-inner{position:relative;max-width:680px}
.book h2{color:var(--cream)}
.book p{color:#E6D7C5}
.book .kicker{color:#F0A27E}
.book-paw{position:absolute;width:220px;height:220px;right:-160px;top:-40px;color:var(--terra);opacity:.14;transform:rotate(20deg)}
.phone-big{display:inline-block;font-family:var(--serif);font-size:clamp(2rem,5vw,3rem);color:var(--cream);text-decoration:none;margin:6px 0 26px;border-bottom:3px solid var(--terra)}
.btn-ghost-light{border-color:#E6D7C5;color:var(--cream)}
.btn-ghost-light:hover{background:var(--cream);color:var(--cocoa)}

/* Footer */
.site-footer{background:#2E2019;color:#BFA994;padding:28px 0;font-size:.9rem}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
.site-footer .brand-name{color:var(--cream);font-size:1.15rem}

/* Barra contatti mobile */
.mobile-bar{display:none}

/* Animazioni */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.polaroids .polaroid.reveal.in:nth-child(1){transform:rotate(-3deg)}
.polaroids .polaroid.reveal.in:nth-child(2){transform:rotate(2.5deg) translateY(14px)}
.polaroids .polaroid.reveal.in:nth-child(3){transform:rotate(-1.5deg)}
.polaroids .polaroid.reveal.in:nth-child(4){transform:rotate(3deg) translateY(10px)}
.polaroids .polaroid.reveal.in:hover{transform:rotate(0) scale(1.04)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .btn,.polaroid{transition:none}
}

/* Tablet */
@media (max-width:1020px){
  .main-nav{display:none}
  .header-cta{margin-left:auto}
  .hero-grid,.about-grid,.room-grid{grid-template-columns:1fr;gap:56px}
  .hero-media{width:min(360px,80%)}
  .hero-polaroid{left:-50px;width:140px}
  .timeline,.steps{grid-template-columns:1fr 1fr}
  .timeline::before{display:none}
  .polaroids{grid-template-columns:1fr 1fr}
  .about-photo{max-width:460px}
}

/* Telefono */
@media (max-width:640px){
  body{font-size:16px;padding-bottom:84px}
  section{padding:72px 0}
  .wrap{width:min(1140px,100% - 32px)}
  .header-inner{height:64px}
  .header-cta{display:none}
  .brand-name{font-size:1.2rem}
  .brand-name .hand{font-size:1.4rem}
  .hero{padding:32px 0 80px}
  .hero-text .btn-row{flex-direction:column;align-items:stretch}
  .hero-text .btn{width:100%}
  .hero-media{width:82%}
  .hero-polaroid{left:-28px;bottom:-30px;width:118px}
  .paw-trail{right:-40px;width:60px}
  .numbers-grid,.timeline,.steps,.info-grid{grid-template-columns:1fr}
  .numbers-grid{gap:36px}
  .polaroids{gap:18px}
  .polaroid figcaption{font-size:1.15rem}
  .info-card{padding:24px}
  .book-paw{display:none}
  .book .btn-row{flex-direction:column;align-items:stretch}
  .footer-inner{flex-direction:column;text-align:center}
  .mobile-bar{display:flex;gap:10px;position:fixed;left:12px;right:12px;bottom:12px;z-index:60;padding:8px;background:rgba(251,246,238,.96);border-radius:999px;box-shadow:0 10px 30px -10px rgba(59,42,32,.5);border:1px solid var(--sand-2)}
  .mobile-bar .btn-primary{flex:1}
  .btn-wa{width:52px;padding:0;background:var(--sage);color:var(--white);flex:none}
  .btn-wa svg{width:24px;height:24px}
}
