/*
Theme Name: A casa di Alice
Theme URI: https://www.acasadialicerooms.it/
Author: Rada Polo Marketing
Description: Tema one-page per il B&B A casa di Alice (Tavullia): camere, preventivo interattivo, servizi, galleria, dintorni, recensioni, FAQ e contatti. Ottimizzato per SEO e campagne Google Ads.
Version: 1.1.1
Requires at least: 5.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: acasadialice
*/

/* =========================================================
   A casa di Alice — B&B Tavullia
   Palette dal logo: rosa cerchio + crema, con verde salvia
   ========================================================= */
:root{
  --cream:#FBF5EF; --paper:#fff; --blush:#F8E6E6; --blush-2:#F2D3D6;
  --rose:#E4838F; --rose-d:#B8475A; --rose-l:#F7B9C1;
  --ink:#2B2024; --muted:#6F6064; --line:rgba(43,32,36,.12);
  --sage:#6F8F78; --sage-s:#E3ECE4; --gold:#C79B5B; --sea:#5B9BB0;
  --night:#231A1E;
  --r:28px; --r-s:16px;
  --shadow:0 24px 60px -28px rgba(43,32,36,.35);
  --ease:cubic-bezier(.2,.8,.2,1);
  --serif:'Fraunces',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif;
  --gut:clamp(18px,4vw,40px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.6;font-size:17px;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
:focus-visible{outline:3px solid var(--rose-d);outline-offset:3px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--gut)}
.ico{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- tipografia ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;letter-spacing:-.015em}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem);text-wrap:balance}
h2 em,h1 em{font-style:italic;font-weight:400;color:var(--rose-d)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-d);margin-bottom:18px}
.eyebrow .fl{width:22px;height:22px;color:var(--rose);animation:spin 24s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.lead{color:var(--muted);font-size:1.12rem;max-width:56ch;margin-top:18px}
.sec{padding:clamp(72px,10vw,130px) 0;position:relative}
.sec-head{margin-bottom:clamp(36px,5vw,60px)}
.sec-head.center{text-align:center}.sec-head.center .lead{margin-inline:auto}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 28px;border-radius:999px;font-weight:700;font-size:.98rem;letter-spacing:.01em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .25s,color .25s;white-space:nowrap}
.btn:hover{transform:translateY(-3px)}
.btn-rose{background:var(--rose-d);color:#fff;box-shadow:0 14px 30px -12px rgba(184,71,90,.7)}
.btn-rose:hover{background:#a23c4e;box-shadow:0 20px 36px -12px rgba(184,71,90,.8)}
.btn-ghost{border:1.5px solid currentColor}
.btn-white{background:#fff;color:var(--ink)}
.btn-wa{background:#1FA855;color:#fff;box-shadow:0 14px 30px -14px rgba(31,168,85,.8)}
.btn-wa:hover{background:#188c46}
.btn-sm{padding:10px 20px;font-size:.88rem}
.chip{padding:10px 20px;border-radius:999px;border:1.5px solid var(--line);font-weight:600;font-size:.92rem;transition:all .25s;background:var(--paper)}
.chip:hover{border-color:var(--rose-d);color:var(--rose-d)}
.chip[aria-pressed=true],.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips.center{justify-content:center}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}

/* ---------- header ---------- */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--rose),var(--rose-d));z-index:200}
.hdr{position:fixed;inset:0 0 auto 0;z-index:150;transition:background .35s,box-shadow .35s,padding .35s;color:#fff;padding:14px 0}
.hdr.scrolled{background:rgba(251,245,239,.88);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);color:var(--ink);box-shadow:0 1px 0 var(--line);padding:8px 0}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{white-space:nowrap;display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.25rem;font-weight:500}
.brand img{width:46px;height:46px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(255,255,255,.7)}
.nav{display:flex;align-items:center;gap:6px}
.nav a.l{padding:9px 14px;border-radius:999px;font-weight:500;font-size:.95rem;position:relative;transition:background .25s}
.nav a.l:hover,.nav a.l.act{background:rgba(255,255,255,.18)}
.hdr.scrolled .nav a.l:hover,.hdr.scrolled .nav a.l.act{background:var(--blush)}
.hdr-r{display:flex;align-items:center;gap:10px}
.lang{display:flex;border:1.5px solid currentColor;border-radius:999px;overflow:hidden;font-size:.78rem;font-weight:700;opacity:.9}
.lang button{padding:6px 11px;letter-spacing:.06em}
.lang button[aria-pressed=true]{background:currentColor}
.lang button[aria-pressed=true] span{color:var(--night);mix-blend-mode:normal}
.hdr.scrolled .lang button[aria-pressed=true] span{color:var(--cream)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1.5px solid currentColor;position:relative}
.burger i{position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:2px;transition:transform .35s var(--ease),opacity .2s}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:21px}.burger i:nth-child(3){top:26px}
.menu-open .burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .burger i:nth-child(2){opacity:0}
.menu-open .burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:140;background:var(--night);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:90px var(--gut) 40px;clip-path:circle(0 at calc(100% - 44px) 44px);transition:clip-path .7s var(--ease);visibility:hidden}
.menu-open .mmenu{clip-path:circle(150% at calc(100% - 44px) 44px);visibility:visible}
.mmenu a{font-family:var(--serif);font-size:clamp(2rem,9vw,3rem);padding:6px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.mmenu .btn{margin-top:22px;font-family:var(--sans);font-size:1rem;border:0}
.menu-open{overflow:hidden}
.menu-open .hdr{color:#fff;background:transparent;box-shadow:none;backdrop-filter:none}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;color:#fff;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.slides{position:absolute;inset:-6% 0;z-index:-2;will-change:transform}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.6s ease;transform:scale(1.02)}
.slide.on{opacity:1;animation:kb 12s ease-out forwards}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1%,1%)}}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(35,26,30,.6) 0%,rgba(35,26,30,.18) 38%,rgba(35,26,30,.82) 100%),radial-gradient(70% 50% at 20% 100%,rgba(184,71,90,.32),transparent 70%)}
.hero-in{width:100%;padding-block:150px 40px}
.hero .eyebrow{color:var(--rose-l)}.hero .eyebrow .fl{color:var(--rose-l)}
.hero h1{font-size:clamp(2.8rem,8vw,6.6rem);max-width:13ch;font-weight:500}
.hero h1 em{color:var(--rose-l)}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.hero h1 .w>span{display:inline-block;transform:translateY(105%);animation:up 1.1s var(--ease) forwards;animation-delay:calc(.15s + var(--i)*.07s)}
@keyframes up{to{transform:none}}
.hero-row{display:flex;flex-wrap:wrap;gap:28px 60px;align-items:flex-end;justify-content:space-between;margin-top:28px}
.hero p.lead{color:rgba(255,255,255,.88);max-width:46ch;margin:0;font-size:1.15rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-meta{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.rate-pill{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);padding:10px 18px 10px 14px;border-radius:999px;font-size:.9rem;font-weight:500}
.rate-pill b{color:#FFD27A;letter-spacing:2px}
.dots{display:flex;gap:8px}
.dots button{width:34px;height:4px;border-radius:4px;background:rgba(255,255,255,.35);overflow:hidden;position:relative}
.dots button.on::after{content:"";position:absolute;inset:0;background:#fff;transform-origin:0 50%;animation:fill 6.5s linear forwards}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.qb{margin-top:38px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:0;background:rgba(255,255,255,.96);color:var(--ink);border-radius:24px;padding:10px;box-shadow:0 30px 70px -20px rgba(0,0,0,.55)}
.qb label{display:flex;flex-direction:column;padding:10px 20px;border-right:1px solid var(--line);cursor:pointer;min-width:0}
.qb label span{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.qb input,.qb select{border:0;background:transparent;font:inherit;font-weight:600;color:var(--ink);padding:3px 0 0;outline:none;width:100%;min-width:0;cursor:pointer}
.qb .btn{border-radius:16px;padding:0 30px}
.qb label:focus-within{background:var(--blush);border-radius:16px}

/* ---------- marquee ---------- */
.mq{background:var(--ink);color:var(--cream);overflow:hidden;padding:16px 0;white-space:nowrap}
.mq-t{display:inline-flex;gap:46px;animation:mq 38s linear infinite;padding-right:46px}
.mq:hover .mq-t{animation-play-state:paused}
.mq span{display:inline-flex;align-items:center;gap:46px;font-family:var(--serif);font-style:italic;font-size:1.25rem}
.mq span::after{content:"✿";color:var(--rose);font-style:normal;font-size:1rem}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- about ---------- */
.about-g{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,90px);align-items:center}
.about p{color:var(--muted);margin-top:18px;font-size:1.1rem;max-width:52ch}
.about .btn{margin-top:30px}
.collage{position:relative;aspect-ratio:1/1.05}
.collage figure{position:absolute;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.collage img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.collage figure:hover img{transform:scale(1.07)}
.collage .c1{inset:0 22% 26% 0}
.collage .c2{inset:40% 0 0 38%;border:8px solid var(--cream)}
.collage .bloom{position:absolute;right:-6%;top:-6%;width:34%;color:var(--rose);opacity:.55;animation:spin 40s linear infinite;z-index:-1}
.collage .tag{position:absolute;left:4%;bottom:6%;background:var(--paper);padding:14px 20px;border-radius:20px;box-shadow:var(--shadow);font-size:.92rem;display:flex;gap:12px;align-items:center;z-index:2}
.collage .tag .ico{color:var(--rose-d);font-size:1.6rem}
.collage .tag b{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:500;line-height:1.1}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:clamp(50px,7vw,80px)}
.stat{background:var(--paper);border-radius:var(--r-s);padding:26px 22px;border:1px solid var(--line);transition:transform .4s var(--ease),box-shadow .4s}
.stat:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.stat b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:var(--rose-d)}
.stat b small{font-size:.5em;margin-left:3px;color:var(--ink);font-weight:500}
.stat>span{display:block;margin-top:10px;font-size:.9rem;color:var(--muted);line-height:1.35}

/* ---------- rooms ---------- */
.rooms{background:linear-gradient(180deg,var(--cream),var(--blush) 140%)}
.rtabs{display:inline-flex;background:var(--paper);padding:6px;border-radius:999px;border:1px solid var(--line);margin-bottom:34px;gap:4px}
.rtabs button{padding:13px 30px;border-radius:999px;font-weight:700;transition:all .3s var(--ease);display:flex;gap:10px;align-items:baseline}
.rtabs button small{font-weight:500;opacity:.7;font-size:.82rem}
.rtabs button[aria-selected=true]{background:var(--ink);color:#fff}
.rpanel{display:grid;grid-template-columns:1.15fr .85fr;gap:0;background:var(--paper);border-radius:36px;overflow:hidden;box-shadow:var(--shadow);animation:fadeIn .7s var(--ease)}
@keyframes fadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.car{position:relative;min-height:520px;background:var(--ink);overflow:hidden}
.car-t{position:absolute;inset:0;display:flex;transition:transform .8s var(--ease)}
.car-t img{min-width:100%;height:100%;object-fit:cover}
.car button.ar{position:absolute;top:50%;translate:0 -50%;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;transition:transform .3s var(--ease),background .2s;z-index:2;box-shadow:0 8px 20px -6px rgba(0,0,0,.4)}
.car button.ar:hover{transform:scale(1.12);background:#fff}
.car .prev{left:16px}.car .next{right:16px}
.car-d{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:2}
.car-d button{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.5);transition:all .3s}
.car-d button.on{background:#fff;width:28px;border-radius:6px}
.rinfo{padding:clamp(26px,4vw,50px);display:flex;flex-direction:column}
.rinfo .n{font-size:.85rem;color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.rinfo h3{font-size:clamp(2rem,3.4vw,2.9rem);margin:6px 0 4px}
.rinfo .from{margin:10px 0 18px;color:var(--muted)}
.rinfo .from b{font-family:var(--serif);font-weight:500;font-size:2.4rem;color:var(--rose-d);line-height:1}
.feat{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.feat li{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--cream);border-radius:999px;font-size:.88rem;font-weight:500}
.feat .ico{color:var(--rose-d);font-size:1.05rem}
.rates{border-top:1px solid var(--line);margin-top:auto}
.rate{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);transition:padding .3s var(--ease),background .3s}
.rate:hover{padding-left:10px;background:linear-gradient(90deg,var(--blush),transparent)}
.rate .rlab{flex:1;font-weight:500}
.rate .pr{font-family:var(--serif);font-size:1.5rem;font-weight:500}
.rnote{margin-top:16px;font-size:.88rem;color:var(--muted)}
.rnote a{color:var(--rose-d);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ---------- calcolatore ---------- */
.calc{background:var(--night);color:var(--cream);overflow:hidden}
.calc::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 90% 0%,rgba(228,131,143,.28),transparent 60%),radial-gradient(50% 50% at 0% 100%,rgba(111,143,120,.25),transparent 60%);pointer-events:none}
.calc .eyebrow{color:var(--rose-l)}.calc h2 em{color:var(--rose-l)}.calc .lead{color:rgba(251,245,239,.7)}
.steps{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:26px}
.steps li{display:flex;align-items:center;gap:12px;font-size:.95rem;color:rgba(251,245,239,.85)}
.steps li b{width:32px;height:32px;border-radius:50%;background:var(--rose-d);display:grid;place-items:center;font-family:var(--serif);font-size:1rem;font-weight:500;color:#fff}
.calc-g{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:46px;position:relative}
.panel{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:32px;padding:clamp(22px,3.4vw,40px);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.fld{margin-bottom:22px}
.fld>span,.fld>legend{display:block;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,245,239,.6);margin-bottom:9px}
fieldset{border:0}
.rsel{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rsel label{cursor:pointer}
.rsel input{position:absolute;opacity:0}
.rsel .c{display:block;padding:16px 18px;border-radius:18px;border:1.5px solid rgba(255,255,255,.2);transition:all .3s var(--ease)}
.rsel .c b{display:block;font-family:var(--serif);font-weight:500;font-size:1.4rem}
.rsel .c small{opacity:.7;font-size:.82rem}
.rsel input:checked+.c{background:var(--cream);color:var(--ink);border-color:var(--cream);transform:translateY(-3px)}
.rsel input:focus-visible+.c{outline:3px solid var(--rose-l);outline-offset:3px}
.dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fi{width:100%;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.2);color:#fff;font:inherit;font-weight:500;transition:border .25s,background .25s;color-scheme:dark}
.fi:focus{outline:none;border-color:var(--rose-l);background:rgba(255,255,255,.12)}
.steppers{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stp{display:flex;align-items:center;justify-content:space-between;border:1.5px solid rgba(255,255,255,.2);border-radius:16px;padding:6px}
.stp button{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.1);font-size:1.3rem;transition:background .2s,transform .2s}
.stp button:hover{background:var(--rose-d);transform:scale(1.06)}
.stp output{font-family:var(--serif);font-size:1.35rem;min-width:2ch;text-align:center}
.togs{display:flex;flex-wrap:wrap;gap:10px}
.tog{cursor:pointer}
.tog input{position:absolute;opacity:0}
.tog span{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1.5px solid rgba(255,255,255,.2);font-size:.92rem;font-weight:500;transition:all .25s}
.tog input:checked+span{background:var(--rose-d);border-color:var(--rose-d)}
.tog input:focus-visible+span{outline:3px solid var(--rose-l);outline-offset:3px}
.res h3{font-size:1.5rem;margin-bottom:6px}
.res .sub{color:rgba(251,245,239,.65);font-size:.95rem;min-height:1.5em}
.ribbon{display:flex;gap:8px;overflow-x:auto;padding:18px 2px 14px;margin:0 -2px;scrollbar-width:thin;scrollbar-color:var(--rose-d) transparent}
.nt{flex:none;width:68px;border-radius:18px;padding:10px 0;text-align:center;border:1.5px solid transparent;animation:pop .5s var(--ease) backwards;animation-delay:calc(var(--i)*.04s)}
@keyframes pop{from{opacity:0;transform:scale(.6) translateY(10px)}}
.nt small{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.nt b{display:block;font-family:var(--serif);font-size:1.5rem;font-weight:500;line-height:1.15}
.nt i{display:block;font-style:normal;font-size:.82rem;font-weight:700}
.nt.wk{background:rgba(111,143,120,.28);border-color:rgba(111,143,120,.6)}
.nt.we{background:rgba(228,131,143,.28);border-color:rgba(228,131,143,.7)}
.nt.su{background:rgba(199,155,91,.25);border-color:rgba(199,155,91,.7)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:rgba(251,245,239,.65);margin-bottom:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}
.lines{margin:14px 0;border-top:1px solid rgba(255,255,255,.14)}
.lines div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.95rem}
.total{display:flex;justify-content:space-between;align-items:flex-end;margin:20px 0 6px}
.total span{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,245,239,.6);font-weight:700}
.total b{font-family:var(--serif);font-weight:500;font-size:clamp(3rem,6vw,4.6rem);line-height:.9;color:var(--rose-l)}
.disc{font-size:.82rem;color:rgba(251,245,239,.55);margin-bottom:20px}
.acts{display:flex;flex-wrap:wrap;gap:12px}
.acts .btn-ghost{color:var(--cream)}
.err{color:#FFB4B4;font-size:.92rem;min-height:1.4em;margin-top:6px}
.empty{padding:36px 0;text-align:center;color:rgba(251,245,239,.6)}
.empty .ico{font-size:2.6rem;margin-bottom:10px;color:var(--rose-l)}

/* ---------- servizi ---------- */
.svc-top{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-end}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-top:40px}
.sc{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:28px 24px;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .4s;overflow:hidden;transform-style:preserve-3d;animation:fadeIn .6s var(--ease) backwards;animation-delay:calc(var(--i)*.05s)}
.sc::before{content:"";position:absolute;inset:auto -30% -60% auto;width:70%;aspect-ratio:1;border-radius:50%;background:var(--blush);transition:transform .6s var(--ease);transform:scale(.4)}
.sc:hover{box-shadow:var(--shadow);transform:translateY(-8px)}
.sc:hover::before{transform:scale(1.6)}
.sc .ib{position:relative;width:56px;height:56px;border-radius:18px;background:var(--sage-s);color:var(--sage);display:grid;place-items:center;font-size:1.7rem;margin-bottom:18px;transition:transform .5s var(--ease),background .3s,color .3s}
.sc:hover .ib{transform:rotate(-8deg) scale(1.08);background:var(--rose-d);color:#fff}
.sc h3{position:relative;font-size:1.28rem;margin-bottom:6px}
.sc p{position:relative;font-size:.95rem;color:var(--muted);line-height:1.5}
.sc.extra{background:linear-gradient(145deg,var(--blush),#fff 70%);border-color:var(--blush-2)}
.sc.extra .ib{background:var(--rose-d);color:#fff}
.sc .new{position:absolute;top:16px;right:16px;background:var(--rose-d);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:5px 11px;border-radius:999px;z-index:1}
.sc.hide{display:none}

/* ---------- galleria ---------- */
.gal{background:var(--paper)}
.masonry{columns:3;column-gap:18px;margin-top:38px}
.gi{break-inside:avoid;margin-bottom:18px;position:relative;border-radius:22px;overflow:hidden;cursor:zoom-in;display:block;width:100%;animation:fadeIn .6s var(--ease) backwards;background:var(--blush)}
.gi img{width:100%;transition:transform 1.1s var(--ease),filter .5s}
.gi:hover img{transform:scale(1.07)}
.gi::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(35,26,30,.7));opacity:0;transition:opacity .4s}
.gi:hover::after,.gi:focus-visible::after{opacity:1}
.gi span{position:absolute;left:20px;right:20px;bottom:16px;color:#fff;font-weight:500;z-index:2;opacity:0;transform:translateY(10px);transition:all .4s var(--ease);text-align:left;display:flex;justify-content:space-between;align-items:center}
.gi:hover span,.gi:focus-visible span{opacity:1;transform:none}
.gi.hide{display:none}
.lb{position:fixed;inset:0;z-index:300;background:rgba(20,14,17,.94);display:none;flex-direction:column;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(8px)}
.lb.open{display:flex;animation:lbin .4s var(--ease)}
@keyframes lbin{from{opacity:0}}
.lb img{max-width:min(1200px,92vw);max-height:78vh;border-radius:14px;box-shadow:0 40px 100px rgba(0,0,0,.6);transition:opacity .25s,transform .35s var(--ease);touch-action:pan-y}
.lb img.sw{opacity:0;transform:scale(.97)}
.lb .cap{color:#fff;margin-top:16px;text-align:center;font-size:.98rem}
.lb .cap small{display:block;opacity:.6;margin-top:3px}
.lb button{position:absolute;color:#fff;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;transition:background .2s,transform .2s;font-size:1.4rem}
.lb button:hover{background:var(--rose-d);transform:scale(1.08)}
.lb .x{top:20px;right:20px}.lb .p{left:20px;top:50%;translate:0 -50%}.lb .n{right:20px;top:50%;translate:0 -50%}

/* ---------- banner Tavullia ---------- */
.ban{position:relative;color:#fff;padding:clamp(100px,16vw,200px) 0;overflow:hidden;isolation:isolate}
.ban .bg{position:absolute;inset:-18% 0;z-index:-2;background-size:cover;background-position:center;will-change:transform}
.ban::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(35,26,30,.88),rgba(35,26,30,.35))}
.ban .eyebrow{color:var(--rose-l)}.ban h2 em{color:var(--rose-l)}
.ban p{max-width:48ch;margin:20px 0 30px;font-size:1.15rem;color:rgba(255,255,255,.85)}

/* ---------- dintorni ---------- */
.around{background:var(--cream)}
.ar-g{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);margin-top:36px;align-items:start}
.radar-w{position:relative;background:var(--paper);border-radius:36px;padding:clamp(10px,2vw,24px);border:1px solid var(--line);box-shadow:var(--shadow)}
.radar{width:100%;height:auto;display:block}
.radar .ring{fill:none;stroke:var(--line);stroke-dasharray:3 7}
.radar .rl{font-size:13px;fill:var(--muted);font-weight:700;text-anchor:middle}
.radar .cp{font-size:13px;fill:var(--muted);text-anchor:middle;font-family:var(--serif);font-style:italic}
.radar .pulse{fill:var(--rose);opacity:.35;transform-origin:350px 350px;animation:pls 2.6s ease-out infinite}
@keyframes pls{from{transform:scale(.6);opacity:.5}to{transform:scale(2.4);opacity:0}}
.radar .dot{cursor:pointer;transition:opacity .35s}
.radar .dot circle.d{transition:r .35s var(--ease),stroke-width .3s;stroke:#fff;stroke-width:3}
.radar .dot:hover circle.d,.radar .dot.sel circle.d{r:15;stroke-width:4}
.radar .dot text{font-size:14px;font-weight:700;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:5px;stroke-linejoin:round}
.radar .dot.dim{opacity:.18}
.radar .dot:focus-visible{outline:none}
.radar .dot:focus-visible circle.d{stroke:var(--ink)}
.radar .link{stroke:var(--rose);stroke-width:2;stroke-dasharray:5 6;opacity:0;transition:opacity .4s}
.radar .link.on{opacity:.8}
.cap2{text-align:center;font-size:.85rem;color:var(--muted);margin-top:6px}
.dcard{background:var(--paper);border-radius:32px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:sticky;top:96px}
.dcard .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--blush)}
.dcard .ph img{width:100%;height:100%;object-fit:cover;animation:zin 1s var(--ease)}
@keyframes zin{from{opacity:0;transform:scale(1.1)}}
.dcard .tm{position:absolute;left:18px;bottom:18px;background:var(--paper);padding:8px 16px;border-radius:999px;font-weight:700;font-size:.9rem;display:flex;gap:8px;align-items:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.4)}
.dcard .tm .ico{color:var(--rose-d)}
.dcard .bd{padding:clamp(22px,3vw,34px);animation:fadeIn .6s var(--ease)}
.dcard .cat{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:999px;color:#fff;margin-bottom:12px}
.dcard h3{font-size:clamp(1.7rem,2.6vw,2.2rem);margin-bottom:10px}
.dcard p{color:var(--muted);font-size:1rem;margin-bottom:20px}
.pills{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin-top:20px;scrollbar-width:none}
.pills::-webkit-scrollbar{display:none}
.pill{flex:none;padding:9px 16px;border-radius:999px;background:var(--paper);border:1.5px solid var(--line);font-size:.88rem;font-weight:600;transition:all .25s}
.pill small{opacity:.6;margin-left:6px;font-weight:500}
.pill.sel{background:var(--ink);color:#fff;border-color:var(--ink)}
.pill.dim{display:none}

/* ---------- recensioni ---------- */
.rev{background:var(--blush);overflow:hidden}
.sum{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
.sm{background:var(--paper);border-radius:var(--r);padding:26px 30px;display:flex;align-items:center;gap:22px;box-shadow:0 14px 40px -24px rgba(43,32,36,.4)}
.sm .lg{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:1.7rem;color:#fff;flex:none}
.sm.g .lg{background:conic-gradient(from -45deg,#EA4335 0 25%,#FBBC05 0 50%,#34A853 0 75%,#4285F4 0);}
.sm.g .lg span{background:var(--paper);color:#4285F4;width:42px;height:42px;border-radius:12px;display:grid;place-items:center}
.sm.b .lg{background:#003580}
.sm.a .lg{background:#FF385C}.sm.a .lg .ico{width:34px;height:34px;stroke-width:1.9}
.sm .t small{display:inline;font-size:.55em;color:var(--muted);font-family:var(--sans)}
.sm.g .st{color:#E8A317;letter-spacing:3px;font-size:1rem}
.sml{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.85rem;font-weight:700;color:var(--rose-d);text-decoration:underline;text-underline-offset:3px}
.sml .ico{font-size:.95rem}
.sm b.t{font-family:var(--serif);font-size:1.6rem;font-weight:500;display:block;line-height:1.1}
.sm .st{color:var(--muted);font-size:.9rem;font-weight:500}
.sm small{color:var(--muted);font-size:.85rem;display:block}
.rev-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}
.rctl{display:flex;gap:10px}
.rctl button{width:48px;height:48px;border-radius:50%;background:var(--paper);display:grid;place-items:center;border:1px solid var(--line);transition:all .25s}
.rctl button:hover{background:var(--ink);color:#fff;transform:scale(1.08)}
.rtrack{scroll-padding-inline:var(--gut);display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px var(--gut) 24px;margin:0 calc(var(--gut)*-1);scrollbar-width:none;cursor:grab}
.rtrack::-webkit-scrollbar{display:none}
.rtrack.drag{cursor:grabbing;scroll-snap-type:none}
.rc{flex:none;width:min(370px,84vw);scroll-snap-align:start;background:var(--paper);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:14px;transition:transform .4s var(--ease),box-shadow .4s;user-select:none;animation:fadeIn .6s var(--ease) backwards}
.rc:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow)}
.rc.hide{display:none}
.rc header{display:flex;align-items:center;gap:14px}
.av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:1.3rem;color:#fff;font-weight:500;flex:none}
.rc header b{display:block;line-height:1.2}
.rc header small{color:var(--muted);font-size:.8rem}
.rc .sc2{margin-left:auto;font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--rose-d)}
.rc .sc2 small{font-size:.7rem;color:var(--muted)}
.rc .src{margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--cream)}
.rc .q{font-size:1rem;line-height:1.55;flex:1}
.rc .q::before{content:"“";font-family:var(--serif);font-size:2.4rem;color:var(--rose);line-height:0;vertical-align:-.45em;margin-right:4px}
.rc .pc{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.rc .pc p{display:flex;gap:8px}
.rc .pc .ok{color:var(--sage)}.rc .pc .no{color:var(--rose-d)}
.rev-foot{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem;margin-top:6px}
.rev-foot .ico{color:var(--sage)}

/* ---------- FAQ ---------- */
.faq-g{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:start}
.faq-g .sec-head{position:sticky;top:110px;margin:0}
.fq{border-bottom:1px solid var(--line)}
.fq button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;padding:24px 0;font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.45rem);font-weight:500;transition:color .25s}
.fq button:hover{color:var(--rose-d)}
.fq .pm{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;flex:none;transition:all .4s var(--ease)}
.fq[data-open=true] .pm{background:var(--rose-d);color:#fff;border-color:var(--rose-d);transform:rotate(135deg)}
.fq .a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.fq[data-open=true] .a{grid-template-rows:1fr}
.fq .a>div{overflow:hidden}
.fq .a p{padding:0 56px 26px 0;color:var(--muted)}

/* ---------- contatti ---------- */
.contact{background:var(--paper)}
.ct-g{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,70px);align-items:start}
.cc{display:flex;flex-direction:column;gap:14px;margin-top:34px}
.ccard{display:flex;align-items:center;gap:18px;padding:18px 22px;border-radius:22px;border:1px solid var(--line);background:var(--cream);transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
.ccard:hover{transform:translateX(8px);border-color:var(--rose);box-shadow:var(--shadow)}
.ccard .ib{width:52px;height:52px;border-radius:16px;background:var(--blush);color:var(--rose-d);display:grid;place-items:center;font-size:1.4rem;flex:none}
.ccard.wa .ib{background:#DDF5E6;color:#188c46}
.ccard small{display:block;color:var(--muted);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.ccard b{font-weight:600;overflow-wrap:anywhere}
.form{background:var(--cream);border-radius:32px;padding:clamp(24px,4vw,44px);border:1px solid var(--line)}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ff{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.ff label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ff input,.ff textarea{padding:15px 18px;border-radius:16px;border:1.5px solid var(--line);background:var(--paper);font:inherit;transition:border .25s,box-shadow .25s}
.ff input:focus,.ff textarea:focus{outline:none;border-color:var(--rose-d);box-shadow:0 0 0 4px rgba(184,71,90,.12)}
.ff textarea{min-height:140px;resize:vertical}
.ff.bad input,.ff.bad textarea{border-color:#D14343}
.fmsg{min-height:1.5em;font-size:.92rem;color:var(--sage);font-weight:600;margin-top:12px}
.fmsg.e{color:#D14343}

/* ---------- CTA + footer ---------- */
.cta{background:var(--rose-d);color:#fff;text-align:center;padding:clamp(70px,10vw,120px) 0;position:relative;overflow:hidden}
.cta .fl{position:absolute;width:420px;color:rgba(255,255,255,.1);animation:spin 50s linear infinite}
.cta .fl.a{left:-120px;top:-120px}.cta .fl.b{right:-140px;bottom:-160px}
.cta h2{max-width:16ch;margin:0 auto}.cta h2 em{color:#FFD9DE}
.cta p{margin:18px auto 30px;max-width:44ch;color:rgba(255,255,255,.85);font-size:1.15rem;position:relative}
.cta .btn{position:relative}.cta h2{position:relative}
.ftr{background:var(--night);color:rgba(251,245,239,.7);padding:46px 0 34px;font-size:.92rem}
.ftr .wrap{display:flex;flex-wrap:wrap;gap:24px 50px;justify-content:space-between;align-items:center}
.ftr .brand{color:var(--cream)}
.ftr nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.ftr nav a:hover{color:var(--rose-l)}
.ftr .bot{width:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,.1);padding-top:24px;font-size:.84rem}
.fab{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.fab a,.fab button{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;box-shadow:0 14px 30px -8px rgba(0,0,0,.5);transition:transform .35s var(--ease),opacity .3s}
.fab a{background:#1FA855;color:#fff;font-size:1.6rem}
.fab a:hover,.fab button:hover{transform:scale(1.1) rotate(-6deg)}
.fab button{width:48px;height:48px;background:var(--ink);color:#fff;opacity:0;pointer-events:none;transform:translateY(10px)}
.fab button.show{opacity:1;pointer-events:auto;transform:none}
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,40px);background:var(--ink);color:#fff;padding:14px 24px;border-radius:999px;z-index:400;opacity:0;transition:all .45s var(--ease);font-weight:500;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .nav,.nav-cta{display:none}.burger{display:block}
  .about-g,.rpanel,.calc-g,.ar-g,.faq-g,.ct-g{grid-template-columns:1fr}
  .car{min-height:380px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .masonry{columns:2}
  .faq-g .sec-head,.dcard{position:static}
  .collage{max-width:560px;margin:0 auto;width:100%}
  .qb{grid-template-columns:1fr 1fr}
  .qb label:nth-child(2){border-right:0}
  .qb label:nth-child(1),.qb label:nth-child(2){border-bottom:1px solid var(--line)}
  .qb label:nth-child(3){grid-column:1/-1;border-right:0}
  .qb .btn{grid-column:1/-1;padding:16px;margin-top:8px}
  .hero-meta{align-items:flex-start}
}
@media(max-width:620px){
  body{font-size:16px}
  .sum,.fr,.dates,.steppers{grid-template-columns:1fr}
  .masonry{columns:2;column-gap:12px}.gi{margin-bottom:12px;border-radius:16px}
  .rsel{grid-template-columns:1fr 1fr}
  .rtabs{display:flex;width:100%}.rtabs button{flex:1;justify-content:center;padding:13px 10px}
  .rtabs button small{display:none}
  .hero-in{padding-top:120px}
  .lb .p{left:8px}.lb .n{right:8px}.lb button{width:44px;height:44px}
  .fq .a p{padding-right:0}
  .qb label{padding:9px 14px}
  .brand span{display:none}
  .lang{font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
  .hero h1 .w>span{transform:none}
}

/* evita che contenuti a scorrimento allarghino le colonne della griglia */
.ar-g>*,.about-g>*,.calc-g>*,.faq-g>*,.ct-g>*,.rpanel>*{min-width:0}

/* ---------- recensioni: categorie, gruppi, piattaforme ---------- */
.cats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:36px}
.cg{background:rgba(255,255,255,.65);border-radius:var(--r);padding:24px 28px}
.cg h3{font-size:1.15rem;margin-bottom:14px}.cg h3 span{color:var(--rose-d);font-style:italic;font-weight:400}
.bar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) 3ch;align-items:center;gap:14px;padding:5px 0;font-size:.9rem}
.bar .tr{height:8px;background:var(--blush-2);border-radius:8px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),var(--rose-d));border-radius:8px;transition:width 1.2s var(--ease) .2s}
.rv.in .bar i{width:var(--w)}
.bar b{text-align:right;font-family:var(--serif);font-weight:500}
.rc footer{display:flex;align-items:center;gap:8px;margin-top:auto}
.rc .src{margin:0;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--cream)}
.rc .src.a{background:#FFE3E8;color:#C2183A}.rc .src.b{background:#DCE8F8;color:#003580}.rc .src.g{background:#FFF2CF;color:#8A6200}
.rc .trn{font-size:.75rem;color:var(--muted);font-style:italic}
.rc .sc2.stars{font-size:.95rem;letter-spacing:1px;color:#E8A317;font-family:var(--sans)}.rc .sc2.stars small{color:var(--line);font-size:.95rem}
.grp{display:flex;align-items:center;gap:24px;margin-top:28px;padding:26px 32px;background:var(--paper);border-radius:var(--r);border:1px solid var(--line);flex-wrap:wrap}
.gico{width:60px;height:60px;border-radius:20px;background:var(--sage-s);color:var(--sage);display:grid;place-items:center;font-size:1.8rem;flex:none}
.gtx{flex:1;min-width:240px}.gtx h3{font-size:1.4rem;margin-bottom:4px}.gtx p{color:var(--muted);font-size:.98rem}
.gac{display:flex;gap:10px;flex-wrap:wrap}
.alt{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px;color:rgba(251,245,239,.7);font-size:.95rem}
.alt .btn-ghost{color:var(--cream)}
@media(max-width:1020px){.sum{grid-template-columns:1fr}.cats{grid-template-columns:1fr}}

.ftr .legal{width:100%;border-top:1px solid rgba(255,255,255,.1);padding-top:22px;font-size:.82rem;line-height:1.7;color:rgba(251,245,239,.6)}
.ftr .legal b{color:var(--cream);font-weight:700}
.ftr .legal a{text-decoration:underline;text-underline-offset:3px}.ftr .legal a:hover{color:var(--rose-l)}

.fnote{margin-top:14px;font-size:.84rem;color:var(--muted)}.fnote a{color:var(--rose-d);text-decoration:underline;text-underline-offset:3px;font-weight:500}

.ftr .credit a{color:var(--cream);font-weight:700;text-decoration:underline;text-underline-offset:3px}.ftr .credit a:hover{color:var(--rose-l)}

.ftr{padding-bottom:88px}

/* barra di amministrazione WordPress */
body.admin-bar .hdr{top:32px}
body.admin-bar .progress{top:32px}
@media(max-width:782px){body.admin-bar .hdr,body.admin-bar .progress{top:46px}}
