@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');

:root{--bg:#070605;--panel:#0e0b08;--panel2:#090705;--gold:#c7a66f;--gold2:#e5cc96;--text:#eee4d2;--muted:#b8ad98;--line:#8a6a3a88;--red:#751e1e;--green:#285a2b;--past:#3b3935;--font-title:"Cinzel",Georgia,"Times New Roman",serif;--font-body:"Cormorant Garamond",Georgia,"Times New Roman",serif}
*{box-sizing:border-box}html,body{width:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.5}a{color:var(--gold);text-decoration:none}img{max-width:100%;height:auto}.site{width:100%;max-width:1220px;margin:0 auto;background:#050403;box-shadow:0 0 90px #000;overflow:hidden}.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 22px}.header{background:#050403;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.header-inner{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:22px}.logo{display:flex;align-items:center;gap:12px;text-transform:uppercase;line-height:1.05;font-size:25px;color:#efe4cf;flex:0 0 auto}.crest{width:58px;height:58px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:30px}.menu{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}.menu a{text-transform:uppercase;font-size:13px;color:#e1d4bd;white-space:nowrap}.hero{background:var(--panel);border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:.95fr 1.35fr;align-items:stretch}.hero-text{padding:62px 46px 56px 0;position:relative;z-index:2}.hero-image{min-height:500px;background:url("../img/hero.jpg") center center/cover no-repeat;border-left:1px solid var(--line);filter:contrast(1.06) saturate(.92)}h1{font-size:55px;line-height:1.05;text-transform:uppercase;margin:0;color:#f0e5d1}.gold-line{height:1px;background:linear-gradient(90deg,var(--gold),transparent);width:430px;max-width:100%;margin:22px 0}.hero h2{font-size:25px;line-height:1.18;color:var(--gold);font-weight:normal;margin:0 0 22px}p{font-size:15px;color:#d7cfbf}.btn,button{display:inline-block;border:1px solid var(--gold);background:#080604;color:var(--gold2);padding:11px 20px;text-transform:uppercase;font-family:var(--font-title);cursor:pointer;letter-spacing:.03em}.btn:hover,button:hover{background:#1a120a}.section-title{text-align:center;text-transform:uppercase;letter-spacing:.07em;font-size:31px;color:#eadfcc;margin:42px 0 22px}.section-title:before,.section-title:after{content:"";display:inline-block;width:105px;height:1px;background:var(--line);vertical-align:middle;margin:0 18px}.story{display:grid;grid-template-columns:1fr 1fr;background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.story-box{padding:34px}.story-child{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;align-items:center}.story-child img{width:190px;height:260px;object-fit:cover;object-position:center;border:1px solid var(--line);filter:contrast(1.08) saturate(.95)}h3{color:var(--gold);font-size:23px;text-transform:uppercase;margin:0 0 14px}.env-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.env-card{background:#080604;border:1px solid var(--line);overflow:hidden;display:block;min-width:0}.env-card img{display:block;width:100%;height:175px;object-fit:cover;object-position:center center;filter:contrast(1.08) saturate(.95)}.caption{text-align:center;background:#070504;padding:13px 8px;text-transform:uppercase;color:#eadfcc;font-size:21px;line-height:1.05}.caption small{display:block;color:var(--gold);font-size:12px;margin-top:4px}.center{text-align:center}.services{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.service{background:var(--panel);border:1px solid var(--line);padding:22px 12px;text-align:center;min-height:198px}.service .icon{font-size:38px;color:var(--gold);margin-bottom:12px}.service h4{text-transform:uppercase;font-size:17px;margin:0 0 10px;color:#eadfcc}.service p{font-size:13px;margin:0}.paranormal{background:linear-gradient(180deg,#0c0907,#060504);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 24px;text-align:center;margin-top:38px}.phenomena{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:22px}.phenomenon{text-transform:uppercase;font-size:12px;color:#d7c9b0}.phenomenon span{display:block;color:var(--gold);font-size:30px;margin-bottom:8px}.bottom{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:18px;margin:36px 0 48px}.panel{background:var(--panel);border:1px solid var(--line);padding:26px;min-width:0}.calendar-box{width:100%;max-width:100%}.calendar-title{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;color:var(--gold);font-size:18px;margin-bottom:11px}.cal-nav{width:30px;height:30px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--gold2);background:#090604}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;width:100%}.calendar.small{max-width:420px;margin:0 auto}.weekday,.day{border:1px solid #5c4628;min-height:34px;display:flex;align-items:center;justify-content:center;background:#0b0907;color:#e3d7c2;line-height:1}.weekday{font-size:12px;text-transform:uppercase;color:var(--gold)}.day.free{background:var(--green);cursor:pointer}.day.busy{background:var(--red)!important;color:#ffc2b2!important;border-color:#b34b3d;cursor:not-allowed;pointer-events:none}.day.past{background:var(--past);color:#8f887b;border-color:#4f4a42;cursor:not-allowed;opacity:.82}.day.today{box-shadow:inset 0 0 0 2px var(--gold2)}.day.empty{opacity:.25}.legend{text-align:center;margin-top:13px;color:#d8cfbd}.legend span{display:inline-block;margin:3px 0}.sq{display:inline-block;width:14px;height:14px;margin:0 6px -2px 12px}.sq.g{background:var(--green)}.sq.r{background:var(--red)}.sq.p{background:var(--past)}.page-title{padding:46px 0 12px}.form-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:50px}label{display:block;margin:12px 0 5px;color:#cdb783}input,select,textarea{width:100%;padding:12px;background:#070504;border:1px solid #7d6137;color:#f0e5d1;font-family:var(--font-title);max-width:100%}.notice{border:1px solid var(--line);padding:10px;color:var(--gold2);background:#0004}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:50px}table{border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:8px;color:#e6dccb;text-align:left}footer{border-top:1px solid var(--line);padding:24px;text-align:center;color:#8f826d}
@media(max-width:1100px){.services,.phenomena{grid-template-columns:repeat(3,minmax(0,1fr))}.menu{gap:12px}.menu a{font-size:12px}}
@media(max-width:900px){.site{max-width:100%}.hero-grid,.story,.bottom,.form-grid{grid-template-columns:1fr}.hero-text{padding:44px 24px}.hero-image{border-left:0;border-top:1px solid var(--line);min-height:360px}.env-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.services,.phenomena{grid-template-columns:repeat(2,minmax(0,1fr))}.header-inner{align-items:flex-start;flex-direction:column;padding:16px 22px}.wrap .header-inner{padding-left:0;padding-right:0}.menu{justify-content:flex-start}.section-title:before,.section-title:after{width:55px}}
@media(max-width:620px){.wrap{padding:0 15px}.header{position:relative}.logo{font-size:19px}.crest{width:46px;height:46px;font-size:24px}.menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.menu a{border:1px solid #3b2d1a;padding:8px;text-align:center;white-space:normal;font-size:11px}.hero-grid{display:flex;flex-direction:column}.hero-image{order:-1;min-height:245px;background-position:center center}.hero-text{padding:28px 15px 32px}h1{font-size:37px}.hero h2{font-size:20px}p{font-size:14px}.env-grid,.gallery-grid,.services,.phenomena{grid-template-columns:1fr}.story-box{padding:22px 18px}.story-child{grid-template-columns:1fr}.story-child img{width:100%;height:260px}.section-title{font-size:24px;margin-top:34px}.section-title:before,.section-title:after{display:none}.panel{padding:18px}.calendar{gap:2px}.weekday,.day{min-height:32px;font-size:12px}.caption{font-size:18px}.bottom{margin-bottom:30px}}

/* FIX v6.1 - feedback prenotazione e calendario */
.notice{margin:0 0 22px 0;border-radius:2px;font-size:15px;line-height:1.45}
.notice.success{border-color:#5d8b46;background:#13210f;color:#e7f4dc}
.notice.error{border-color:#9b3b2f;background:#230d0a;color:#ffd4c8}
.day.selected{outline:2px solid var(--gold2);outline-offset:-3px}
.day.busy.selected{box-shadow:inset 0 0 0 2px var(--gold2)}
button{width:auto;max-width:100%}
form button{margin-top:16px;width:100%}
@media(max-width:620px){.notice{margin-left:0;margin-right:0}.form-grid{gap:16px}}

/* FIX v6.3 - intervallo date prenotazione */
.date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-help{font-size:13px;color:#b8ad98;margin:8px 0 4px}
@media(max-width:620px){.date-range{grid-template-columns:1fr}}

/* FIX v6.4 - selezione intervallo calendario */
.calendar-select .day.free{cursor:pointer}
.day.selected{outline:2px solid var(--gold2);outline-offset:-3px;box-shadow:inset 0 0 0 2px rgba(229,204,150,.45)}
.day.selected-start,.day.selected-end{border-color:var(--gold2);color:#fff4d8}
.day.busy.selected,.day.past.selected{outline:none;box-shadow:none}
.date-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-help{font-size:13px;color:#b8ad98;margin:8px 0 12px}
@media(max-width:620px){.date-range{grid-template-columns:1fr}}

/* FIX v6.8 - allineamento larghezza blocchi home
   La hero/copertina ora usa la stessa larghezza utile dei blocchi interni della home. */
.hero{background:transparent;border-bottom:0}
.hero>.wrap.hero-grid{width:calc(100% - 44px);max-width:1116px;padding:0;background:var(--panel);border-bottom:1px solid var(--line)}
@media(max-width:620px){.hero>.wrap.hero-grid{width:calc(100% - 30px);max-width:none}}

/* FIX v6.9 - foto reali da backoffice */
.admin-thumb{width:120px;height:78px;object-fit:cover;object-position:center;border:1px solid var(--line);display:block}
.admin-table td,.admin-table th{vertical-align:middle;font-size:13px}
.admin-table a{display:inline-block;margin:2px 0}
code{color:var(--gold2);background:#0006;padding:2px 4px;border:1px solid #3b2d1a}
@media(max-width:800px){.admin-table{display:block;overflow-x:auto}.admin-thumb{width:92px;height:62px}}


/* FIX v7.0 - icone immagine e menu admin */
.service-icon{width:64px;height:64px;object-fit:contain;object-position:center;display:block;margin:0 auto 14px auto}
.phenomenon-icon{width:50px;height:50px;object-fit:contain;object-position:center;display:block;margin:0 auto 10px auto}
.phenomenon div{display:block;color:#d7c9b0;line-height:1.25}
.admin-header .logo{font-size:22px}
.admin-header .menu a{font-size:12px}
.admin-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:900px){.admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.service-icon{width:66px;height:66px}.phenomenon-icon{width:54px;height:54px}}


/* V1.1 - titolo hero, pagine contenuto e link servizi */
.hero-text{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}
.hero-title{margin:0;text-align:center;line-height:.98}
.hero-title .hero-main{display:block;font-size:64px;letter-spacing:.04em;text-transform:uppercase;color:#f2e8d8}
.hero-title .hero-sub{display:block;font-size:36px;letter-spacing:.08em;text-transform:uppercase;color:#f2e8d8;margin-top:8px}
.hero-text .gold-line{margin-left:auto;margin-right:auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.btn-small{padding:8px 14px;font-size:12px;margin-top:8px}
a.service{color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}
a.service:hover{transform:translateY(-2px);border-color:var(--gold);background:#130d08}
.service-more{display:block;margin-top:12px;color:var(--gold);text-transform:uppercase;font-size:11px;letter-spacing:.06em}
.content-grid{display:grid;grid-template-columns:1.5fr .75fr;gap:20px;margin:0 0 52px 0}
.rich-text p{font-size:16px;line-height:1.65}.rich-text h3{margin-top:4px}.side-note{align-self:start}.intro-text{text-align:center;max-width:820px;margin:0 auto 30px auto;color:#d7cfbf}.services-list{margin-bottom:55px}.detail-icon{width:86px;height:86px;object-fit:contain;display:block;margin:0 0 18px 0}.gold-list{margin:0;padding-left:18px;color:#d7cfbf}.gold-list li{margin:10px 0}.gold-list li::marker{color:var(--gold)}
@media(max-width:900px){.content-grid{grid-template-columns:1fr}.hero-title .hero-main{font-size:52px}.hero-title .hero-sub{font-size:30px}}
@media(max-width:620px){.hero-title .hero-main{font-size:40px}.hero-title .hero-sub{font-size:23px}.detail-icon{margin-left:auto;margin-right:auto}.service-detail{text-align:center}}


/* V1.3 - selettore lingue */
.lang-switch{display:flex;align-items:center;gap:6px;color:var(--gold);font-size:12px;text-transform:uppercase;white-space:nowrap}
.lang-switch a{color:#b8ad98;border:1px solid #3b2d1a;padding:5px 7px;line-height:1;background:#080604}
.lang-switch a.active{color:var(--gold2);border-color:var(--gold);background:#1a120a}
.lang-switch span{color:#6e5631}
@media(max-width:900px){.lang-switch{margin-top:8px}}
@media(max-width:620px){.lang-switch{width:100%;justify-content:center;margin-top:10px}.lang-switch a{padding:7px 10px}}


/* FIX V1.4 - selettore lingua compatto e menu pubblico su una riga */
.public-header .header-inner{gap:14px;min-height:86px;align-items:center}
.public-header .logo{font-size:20px;gap:10px;min-width:155px}
.public-header .crest{width:48px;height:48px;font-size:24px;flex:0 0 auto}
.public-menu{flex:1 1 auto;display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:10px;min-width:0;overflow:visible}
.public-menu a{font-size:11px;letter-spacing:.035em;white-space:nowrap;padding:4px 0}
.lang-select-wrap{flex:0 0 auto;display:flex;align-items:center;margin-left:4px}
.lang-select{width:58px;min-width:58px;height:32px;padding:4px 8px;background:#080604;border:1px solid var(--gold);color:var(--gold2);font-family:var(--font-title);font-size:12px;text-transform:uppercase;cursor:pointer}
@media(max-width:1180px){.public-menu{gap:8px}.public-menu a{font-size:10.5px}.public-header .logo{font-size:18px;min-width:145px}.public-header .crest{width:44px;height:44px}}
@media(max-width:980px){.public-header .header-inner{align-items:flex-start;flex-direction:column}.public-menu{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}.lang-select-wrap{position:absolute;right:22px;top:18px}.public-menu a{font-size:11px;border:1px solid #3b2d1a;padding:7px 9px}}
@media(max-width:620px){.public-header .logo{font-size:19px}.public-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}.public-menu a{text-align:center;white-space:normal}.lang-select-wrap{right:15px;top:17px}.lang-select{height:31px}}


/* FIX V1.5 - menu multilingua compatto */
.public-header .header-inner{flex-wrap:nowrap}
.public-menu{flex:1 1 auto;min-width:0;gap:12px;flex-wrap:nowrap;white-space:nowrap}
.public-menu a{font-size:12px;white-space:nowrap}
.lang-select-wrap{flex:0 0 auto;margin-left:8px}
.lang-select{width:auto;min-width:58px;padding:7px 8px;font-size:12px}
@media(max-width:1000px){.public-header .header-inner{flex-wrap:wrap}.public-menu{flex-wrap:wrap;white-space:normal}.public-menu a{font-size:11px}}

/* V2.2 - tariffe dinamiche e fasce orarie */
.price-label{color:var(--gold2);font-size:15px;font-weight:bold;margin-top:12px;line-height:1.35}
.rates-list .rate-card{min-height:260px}
.admin-table textarea{min-width:260px}

/* V2.3 - calendario con disponibilità parziale e scelta orario */
.day.partial{background:#8a6a21!important;color:#fff0bf!important;border-color:#d2aa45;cursor:pointer}
.sq.y{background:#8a6a21}
.slot-panel{margin:16px 0 18px 0;border:1px solid var(--line);padding:14px;background:#070504}
.slot-panel h4{margin:0 0 8px 0;text-transform:uppercase;color:var(--gold);font-size:16px}
.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.slot-option{display:flex;align-items:center;gap:8px;margin:0;padding:10px;border:1px solid var(--line);background:#0b0907;color:#e6dccb;cursor:pointer;font-size:13px;line-height:1.25}
.slot-option input{width:auto;margin:0;accent-color:#c7a66f}
.slot-option.slot-free{border-color:#40753c;background:#10220f}
.slot-option.slot-busy{border-color:#7b2b25;background:#250d0b;color:#9a8d7b;cursor:not-allowed;opacity:.75}
.slot-option.slot-busy input{cursor:not-allowed}
@media(max-width:620px){.slot-grid{grid-template-columns:1fr}.slot-option{font-size:12px}}


/* V2.3.1 - pulizia pagina servizi/tariffe */
.services.services-list{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.services.services-list .service{min-height:0;padding:26px 18px;display:flex;flex-direction:column;justify-content:flex-start}
.services.services-list .service h4{font-size:18px;line-height:1.15;min-height:42px;display:flex;align-items:center;justify-content:center}
.services.services-list .service p{font-size:14px;line-height:1.45;margin:6px 0 0}
.rates-list .rate-card{min-height:310px}
.rates-list .price-label{display:block;margin-top:auto;padding-top:14px;color:var(--gold2);font-size:16px;font-weight:bold;line-height:1.35}
@media(max-width:900px){.services.services-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.services.services-list{grid-template-columns:1fr}.services.services-list .service h4{min-height:0}}

/* V2.3.3 - fasce speciali booking */
.booking-fixed-slot{border:1px solid var(--line);padding:10px;background:#080604;color:var(--gold2);margin:10px 0 14px 0}
.duration-panel h4{margin-bottom:10px}


/* V2.3.4 - tariffa in booking */
.tariffa-booking-box{border:1px solid var(--line);background:#0a0705;padding:10px 12px;margin:12px 0;color:#e7dcc6;font-size:14px}
.tariffa-booking-box strong{color:var(--gold)}
.tariffa-booking-box span{color:var(--gold2)}


/* FIX V2.3.6 - calendario per servizio e spinner prenotazione */
.booking-loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9999;display:none;align-items:center;justify-content:center}
.booking-loading-box{border:1px solid var(--gold);background:#080604;color:var(--gold2);padding:24px 28px;text-align:center;min-width:260px;box-shadow:0 0 40px #000;font-size:16px;text-transform:uppercase;letter-spacing:.04em}
.booking-spinner{width:42px;height:42px;border:3px solid rgba(199,166,111,.28);border-top-color:var(--gold2);border-radius:50%;margin:0 auto 14px auto;animation:palaisSpin .85s linear infinite}
button.is-loading{opacity:.65;cursor:wait}
@keyframes palaisSpin{to{transform:rotate(360deg)}}


/* V2.4 - calendario e disponibilità manuale */
.day.closed{background:#3f3b34;color:#9d9586;border-color:#595248;cursor:not-allowed;opacity:.86}
.admin-block-calendar{max-width:760px;margin:20px auto 0 auto}
.admin-day-block{border:1px solid #5c4628;min-height:84px;background:#0b0907;color:#e3d7c2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;text-align:center}
.admin-day-number{font-size:18px;color:#eadfcc}
.admin-day-block small{font-size:11px;color:#b8ad98}
.admin-switch{width:46px;height:24px;border-radius:999px;background:#285a2b;display:inline-flex;align-items:center;padding:3px;border:1px solid #8a6a3a88;transition:.2s}
.admin-switch span{width:16px;height:16px;border-radius:50%;background:#e5cc96;display:block;transition:.2s}
.admin-switch.checked{background:#751e1e}
.admin-switch.checked span{transform:translateX(20px)}
.slot-option.slot-closed{background:#3f3b34;color:#9d9586;border-color:#595248}


/* FIX v2.4.1 - calendario e tariffe */
.day.closed{background:#2a2722;color:#81796b;border-color:#4b4337;cursor:not-allowed;pointer-events:none;opacity:.9}
.rate-card img.service-icon{display:block}


/* FIX V2.4.2 - nessun focus automatico sul calendario */
.day.today{box-shadow:none!important}
.calendar-select .day:focus{outline:none}


/* V3.1 - admin switch e azioni prenotazioni */
.admin-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.admin-mini-btn{display:inline-block;border:1px solid var(--line);background:#080604;color:var(--gold2);padding:6px 10px;text-transform:uppercase;font-size:11px;line-height:1;text-decoration:none}
.admin-mini-btn:hover{border-color:var(--gold);background:#140d07}
.admin-delete-btn{border-color:#7b2b25;color:#ffd0c4}
.admin-delete-btn:hover{background:#250d0b;border-color:#b34b3d}
.admin-switch{width:48px;height:25px;border-radius:999px;background:#651c17;display:inline-flex;align-items:center;padding:3px;border:1px solid #8a6a3a88;transition:.2s;vertical-align:middle;box-sizing:border-box;text-decoration:none}
.admin-switch span{width:17px;height:17px;border-radius:50%;background:#d7c9b0;display:block;transition:.2s;box-shadow:0 1px 3px #0008}
.admin-switch.active{background:#285a2b}
.admin-switch.active span{transform:translateX(21px);background:#e5cc96}
.switch-form-row{display:flex;align-items:center;gap:10px;margin:18px 0;color:#e6dccb;cursor:pointer}
.switch-checkbox{position:absolute;opacity:0;pointer-events:none;width:1px!important;height:1px!important}
.switch-checkbox:checked + .form-switch{background:#285a2b}
.switch-checkbox:checked + .form-switch span{transform:translateX(21px);background:#e5cc96}
.admin-detail-table th{width:230px;color:var(--gold);vertical-align:top;background:#080604}
.admin-detail-table td{vertical-align:top;word-break:break-word}
@media(max-width:760px){.admin-actions{flex-direction:column;align-items:flex-start}.admin-detail-table th{width:auto;display:block}.admin-detail-table td{display:block}}


/* V4 gallery back navigation */
.back-bar{margin:-4px 0 22px 0}
.photo-detail{margin-bottom:50px;text-align:center}
.photo-detail-image img{display:block;width:100%;max-height:720px;object-fit:contain;object-position:center;margin:0 auto;border:1px solid var(--line);background:#050403}
.photo-detail-caption{padding-top:18px}
.photo-detail-caption h3{margin-bottom:8px}

/* V4 gallery photo navigation */
.photo-back-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.photo-nav-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.photo-counter{color:var(--gold2);font-size:14px;text-transform:uppercase;letter-spacing:.04em}
.photo-nav-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.photo-nav-btn.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.photo-detail-image{position:relative;overflow:hidden}
.photo-swipe-area{touch-action:pan-y}
.photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:72px;border:1px solid rgba(199,166,111,.65);background:rgba(0,0,0,.52);color:var(--gold2);display:flex;align-items:center;justify-content:center;font-size:54px;line-height:1;text-decoration:none;transition:.2s}
.photo-arrow:hover{background:rgba(35,22,12,.82);border-color:var(--gold);color:#fff2cd}
.photo-arrow-left{left:14px}
.photo-arrow-right{right:14px}
@media(max-width:760px){.photo-nav-top{justify-content:center;text-align:center}.photo-nav-buttons{justify-content:center;width:100%}.photo-arrow{width:40px;height:58px;font-size:42px;background:rgba(0,0,0,.42)}.photo-arrow-left{left:8px}.photo-arrow-right{right:8px}.photo-detail-image img{max-height:78vh}}


/* ==========================================================
   FIX DEFINITIVO CSS - Home crop + icone servizi + date bloccate
   Da mantenere nella prossima release completa.
   ========================================================== */

/* HOME: immagine centrale controllata e allineata in alto */
.hero,
.hero-section,
.home-hero,
.home-hero-section,
.palais-hero {
    align-items: stretch !important;
}

.hero-grid,
.home-hero-grid,
.palais-hero-grid,
.hero-inner,
.home-hero-inner,
.palais-hero-inner {
    align-items: stretch !important;
}

.hero-text,
.hero-copy,
.home-hero-text,
.palais-hero-text {
    align-self: stretch !important;
    justify-content: flex-start !important;
    align-items: center !important;
    padding-top: 56px !important;
    padding-bottom: 36px !important;
}

.hero-image,
.hero-photo,
.home-hero-image,
.home-central-image,
.palais-hero-image,
.hero-media {
    height: 460px !important;
    max-height: 460px !important;
    min-height: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
    background-position: top center !important;
}

.hero-image img,
.hero-photo img,
.home-hero-image img,
.home-central-image img,
.palais-hero-image img,
.hero-media img,
img.home-central-photo,
img.hero-central-photo {
    display: block !important;
    width: 100% !important;
    height: 460px !important;
    max-height: 460px !important;
    object-fit: cover !important;
    object-position: top center !important;
}

/* Evita che eventuali immagini verticali allarghino/rompano la hero */
.hero-grid > .hero-image,
.hero-grid > .hero-photo,
.home-hero-grid > .home-hero-image,
.home-hero-grid > .home-central-image,
.palais-hero-grid > .palais-hero-image {
    min-width: 0 !important;
}

/* Icone servizi: dimensione stabile e nessun alt visibile se immagine non caricata */
.service-icon,
.servizio-icon,
.service-detail-icon,
.servizio-detail-icon,
.event-icon,
.detail-icon {
    display: block;
    width: 72px;
    height: 72px;
    max-width: 72px;
    max-height: 72px;
    object-fit: contain;
    object-position: center center;
    margin: 0 auto 14px auto;
    font-size: 0;
    color: transparent;
}

.service-detail-icon-wrap,
.servizio-detail-icon-wrap,
.event-icon-wrap {
    min-height: 48px;
    text-align: center;
    margin-bottom: 10px;
}

.service-detail-icon-wrap img[alt],
.servizio-detail-icon-wrap img[alt],
.event-icon-wrap img[alt],
.service-icon[alt],
.servizio-icon[alt],
.event-icon[alt],
.detail-icon[alt] {
    font-size: 0;
    color: transparent;
}

.service-icon:not([src]),
.servizio-icon:not([src]),
.service-detail-icon:not([src]),
.servizio-detail-icon:not([src]),
.event-icon:not([src]),
.detail-icon:not([src]) {
    display: none !important;
}

/* DATE BLOCCATE ADMIN: switch verde = disponibile, rosso = bloccata */
.admin-day-block .admin-switch,
.admin-block-calendar .admin-switch,
.date-block-switch,
.switch-date,
.availability-switch {
    background: #285a2b !important;
    border-color: #6f9b55 !important;
}

.admin-day-block .admin-switch span,
.admin-block-calendar .admin-switch span,
.date-block-switch span,
.switch-date span,
.availability-switch span {
    background: #e5cc96 !important;
    transform: translateX(21px) !important;
}

.admin-day-block .admin-switch.checked,
.admin-day-block .admin-switch.blocked,
.admin-day-block .admin-switch.busy,
.admin-day-block .admin-switch.non-disponibile,
.admin-block-calendar .admin-switch.checked,
.admin-block-calendar .admin-switch.blocked,
.admin-block-calendar .admin-switch.busy,
.admin-block-calendar .admin-switch.non-disponibile,
.date-block-switch.checked,
.date-block-switch.blocked,
.date-block-switch.busy,
.date-block-switch.non-disponibile,
.switch-date.checked,
.switch-date.blocked,
.switch-date.busy,
.switch-date.non-disponibile,
.availability-switch.checked,
.availability-switch.blocked,
.availability-switch.busy,
.availability-switch.non-disponibile {
    background: #751e1e !important;
    border-color: #b34b3d !important;
}

.admin-day-block .admin-switch.checked span,
.admin-day-block .admin-switch.blocked span,
.admin-day-block .admin-switch.busy span,
.admin-day-block .admin-switch.non-disponibile span,
.admin-block-calendar .admin-switch.checked span,
.admin-block-calendar .admin-switch.blocked span,
.admin-block-calendar .admin-switch.busy span,
.admin-block-calendar .admin-switch.non-disponibile span,
.date-block-switch.checked span,
.date-block-switch.blocked span,
.date-block-switch.busy span,
.date-block-switch.non-disponibile span,
.switch-date.checked span,
.switch-date.blocked span,
.switch-date.busy span,
.switch-date.non-disponibile span,
.availability-switch.checked span,
.availability-switch.blocked span,
.availability-switch.busy span,
.availability-switch.non-disponibile span {
    transform: translateX(0) !important;
    background: #e5cc96 !important;
}

.admin-day-block small.available,
.admin-day-block small.disponibile,
.admin-day-block .state-available,
.admin-day-block .state-disponibile {
    color: #9fd28b !important;
}

.admin-day-block small.blocked,
.admin-day-block small.non-disponibile,
.admin-day-block .state-blocked,
.admin-day-block .state-non-disponibile {
    color: #ffc2b2 !important;
}

@media (max-width: 980px) {
    .hero-image,
    .hero-photo,
    .home-hero-image,
    .home-central-image,
    .palais-hero-image,
    .hero-media {
        height: 390px !important;
        max-height: 390px !important;
    }

    .hero-image img,
    .hero-photo img,
    .home-hero-image img,
    .home-central-image img,
    .palais-hero-image img,
    .hero-media img,
    img.home-central-photo,
    img.hero-central-photo {
        height: 390px !important;
        max-height: 390px !important;
    }

    .hero-text,
    .hero-copy,
    .home-hero-text,
    .palais-hero-text {
        padding-top: 32px !important;
    }
}

@media (max-width: 640px) {
    .hero-image,
    .hero-photo,
    .home-hero-image,
    .home-central-image,
    .palais-hero-image,
    .hero-media {
        height: 320px !important;
        max-height: 320px !important;
    }

    .hero-image img,
    .hero-photo img,
    .home-hero-image img,
    .home-central-image img,
    .palais-hero-image img,
    .hero-media img,
    img.home-central-photo,
    img.hero-central-photo {
        height: 320px !important;
        max-height: 320px !important;
    }
}

/* === V6.1 mobile menu + mobile photo tap navigation === */
.mobile-menu-toggle{display:none;width:42px;height:36px;border:1px solid var(--line);background:#090604;padding:7px;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;z-index:60}
.mobile-menu-toggle span{display:block;width:22px;height:2px;background:var(--gold2);transition:transform .2s ease,opacity .2s ease}
.mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-menu-toggle.is-open span:nth-child(2){opacity:0}
.mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:760px){
    .public-header .header-inner{position:relative;min-height:72px;display:flex;flex-direction:row!important;align-items:center!important;justify-content:flex-start;gap:0;padding-top:10px;padding-bottom:10px;flex-wrap:wrap!important}
    .public-header .logo{font-size:17px;min-width:0;max-width:calc(100% - 112px);margin-right:auto;order:1}
    .public-header .crest{width:42px;height:42px;font-size:23px}
    .mobile-menu-toggle{display:inline-flex;order:2;margin-left:0;margin-right:3px;flex:0 0 auto}
    .lang-select-wrap{position:static!important;right:auto!important;top:auto!important;z-index:61;order:3;flex:0 0 auto;margin-left:0}
    .lang-select{min-width:52px;max-width:58px}
    .public-menu{display:none!important;order:4;flex:0 0 100%;width:100%;grid-template-columns:1fr!important;gap:6px;margin-top:10px;padding:8px 0 3px;border-top:1px solid var(--line)}
    .public-menu.is-open{display:grid!important}
    .public-menu a{display:block;text-align:left;white-space:normal;border:1px solid #3b2d1a;padding:10px 12px;font-size:12px;background:#080604}
    .photo-arrow{display:none!important}
    .photo-detail-image{cursor:pointer;touch-action:pan-y}
    .photo-detail-image:before,.photo-detail-image:after{position:absolute;top:50%;transform:translateY(-50%);z-index:4;color:rgba(199,166,111,.38);font-size:34px;pointer-events:none;font-family:Georgia,"Times New Roman",serif}
    .photo-detail-image:before{content:'‹';left:12px}
    .photo-detail-image:after{content:'›';right:12px}
}
@media(max-width:360px){
    .public-header .logo{font-size:15px;max-width:calc(100% - 106px)}
    .public-header .crest{width:38px;height:38px;font-size:21px}
    .mobile-menu-toggle{width:40px;height:34px}
    .lang-select{min-width:50px;max-width:54px;font-size:12px}
}

/* V6.x booking date fields: dates are selected only from the calendar */
.date-display-readonly{
  cursor:pointer;
  background:rgba(255,255,255,.04);
  color:#f1e6d1;
  border:1px solid rgba(207,168,91,.35);
}
.date-display-readonly:focus{
  outline:2px solid rgba(207,168,91,.45);
  outline-offset:2px;
}
.date-only-calendar-help{
  margin-top:-4px;
  color:#d1bd8a;
}


/* === V7.0 logo araldico da affresco nell'header === */
.public-header .crest.crest-image,
.crest.crest-image{
    padding:0;
    overflow:hidden;
    background:#0b0704;
    border:1px solid rgba(199,166,111,.85);
    box-shadow:0 0 0 2px rgba(0,0,0,.35), 0 0 18px rgba(199,166,111,.13);
}
.public-header .crest.crest-image img,
.crest.crest-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:50%;
}
.public-header .logo{align-items:center}
@media(max-width:760px){
    .public-header .crest.crest-image{width:46px;height:46px}
}
@media(max-width:360px){
    .public-header .crest.crest-image{width:40px;height:40px}
}


/* REL 7.1 - font antico elegante e leggibile
   Titoli/menu/pulsanti: Cinzel. Testi lunghi: Cormorant Garamond. */
body,
p,
.rich-text p,
.intro-text,
.notice,
.form-help,
label,
input,
select,
textarea,
th,
td,
footer,
.gold-list,
.tariffa-booking-box,
.slot-option{
    font-family:var(--font-body);
    font-weight:500;
    letter-spacing:.01em;
}

h1,
h2,
h3,
h4,
.hero-title,
.hero-title .hero-main,
.hero-title .hero-sub,
.section-title,
.caption,
.logo,
.menu a,
.public-menu a,
.btn,
button,
.service-more,
.price-label,
.calendar-title,
.weekday,
.lang-select,
.page-title,
.service h4{
    font-family:var(--font-title);
    font-weight:600;
    letter-spacing:.045em;
}

p,
.rich-text p,
.service p,
.panel p,
.story-box p{
    font-size:16px;
    line-height:1.58;
}

.public-menu a,
.menu a{
    font-weight:600;
    letter-spacing:.035em;
}

.hero h2,
.price-label,
.caption small{
    font-family:var(--font-body);
    font-weight:600;
    letter-spacing:.02em;
}

input,
select,
textarea{
    font-size:16px;
}

@media(max-width:620px){
    p,
    .rich-text p,
    .service p,
    .panel p,
    .story-box p{font-size:15.5px;line-height:1.55}
    .public-menu a,.menu a{letter-spacing:.02em}
}

/* REL 7.1.1 - Font più grande/leggibile + fix servizi mobile
   Intervento solo CSS: non modifica ASP, database o logiche prenotazione. */
html{font-size:17px}
body{font-size:17px;line-height:1.62}
p,
.rich-text p,
.service p,
.panel p,
.story-box p,
.intro-text,
.service-long-text,
.gold-list,
.notice,
.form-help,
label,
th,
td{
    font-size:17px;
    line-height:1.64;
}

h1{font-size:58px;line-height:1.04}
h3{font-size:25px;line-height:1.18}
.section-title{font-size:33px}
.hero h2{font-size:27px;line-height:1.22}
.hero-title .hero-main{font-size:68px}
.hero-title .hero-sub{font-size:38px}
.service h4{font-size:19px;line-height:1.22}
.service-more{font-size:12px}
.caption{font-size:22px}
.public-menu a,.menu a{font-size:12.5px;line-height:1.25}
.btn,button{font-size:13px;line-height:1.25}
input,select,textarea{font-size:17px;line-height:1.35}

/* Mobile: forzo la lista servizi a mostrarsi tutta in verticale.
   Serve a evitare che su dispositivi piccoli resti visibile solo una card. */
@media(max-width:760px){
    .services,
    .services.services-list{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:14px!important;
        width:100%!important;
        height:auto!important;
        max-height:none!important;
        min-height:0!important;
        overflow:visible!important;
        opacity:1!important;
        visibility:visible!important;
        transform:none!important;
    }

    .services .service,
    .services.services-list .service{
        display:flex!important;
        flex-direction:column!important;
        width:100%!important;
        height:auto!important;
        max-height:none!important;
        min-height:0!important;
        overflow:visible!important;
        opacity:1!important;
        visibility:visible!important;
        position:relative!important;
        left:auto!important;
        top:auto!important;
        transform:none!important;
        padding:24px 18px!important;
    }

    .services .service h4,
    .services.services-list .service h4{
        min-height:0!important;
        font-size:20px!important;
        line-height:1.2!important;
        margin-bottom:10px!important;
    }

    .services .service p,
    .services.services-list .service p{
        display:block!important;
        font-size:17px!important;
        line-height:1.55!important;
    }

    .service-icon{width:72px!important;height:72px!important;margin-bottom:15px!important}
}

@media(max-width:620px){
    html{font-size:16.5px}
    body{font-size:16.5px;line-height:1.6}
    p,
    .rich-text p,
    .service p,
    .panel p,
    .story-box p,
    .intro-text,
    .service-long-text,
    .gold-list,
    .notice,
    .form-help,
    label,
    th,
    td{font-size:16.5px!important;line-height:1.6!important}

    h1{font-size:41px!important;line-height:1.08!important}
    h3{font-size:24px!important}
    .section-title{font-size:27px!important}
    .hero h2{font-size:22px!important}
    .hero-title .hero-main{font-size:43px!important}
    .hero-title .hero-sub{font-size:25px!important}
    .public-menu a,.menu a{font-size:13px!important;line-height:1.25!important}
    .btn,button{font-size:13px!important}
    .caption{font-size:20px!important}
}

@media(max-width:380px){
    h1{font-size:36px!important}
    .hero-title .hero-main{font-size:38px!important}
    .hero-title .hero-sub{font-size:22px!important}
    .public-header .logo{font-size:15.5px!important}
}

/* FIX V7.1.2 - home: griglia Eventi e Servizi 5 + 5 su desktop */
@media (min-width:1001px){
    #servizi + .services{
        grid-template-columns:repeat(5,minmax(0,1fr))!important;
        gap:14px!important;
        align-items:stretch;
    }
    #servizi + .services .service{
        min-height:240px;
    }
}
@media (min-width:701px) and (max-width:1000px){
    #servizi + .services{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media (max-width:700px){
    #servizi + .services{
        grid-template-columns:1fr!important;
    }
}

/* REL 7.1.3 - pagina Eventi e Servizi: griglia desktop 5 + 5
   Uniforma la pagina servizi.asp alla griglia della home. */
@media (min-width: 1101px){
    .services.services-list{
        display:grid!important;
        grid-template-columns:repeat(5,minmax(0,1fr))!important;
        gap:14px!important;
        align-items:stretch!important;
    }
    .services.services-list .service{
        min-width:0!important;
        width:100%!important;
        min-height:230px;
        padding:24px 12px;
    }
    .services.services-list .service h4{
        font-size:15px;
        line-height:1.15;
        min-height:42px;
        letter-spacing:.035em;
    }
    .services.services-list .service p{
        font-size:14px;
        line-height:1.35;
    }
}

@media (min-width: 901px) and (max-width: 1100px){
    .services.services-list{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
}

@media (max-width: 900px){
    .services.services-list{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media (max-width: 620px){
    .services.services-list{
        grid-template-columns:1fr!important;
    }
}

/* REL 7.1.7 - Home: riallineamento blocco Storia / Bambina Bianca
   - Box sinistro e destro alla stessa altezza
   - Foto Bambina Bianca più grande e allineata al top
   - Colonna testo sinistra leggermente più compatta */
@media (min-width: 901px){
    .story{
        align-items:stretch!important;
        grid-template-columns:1.05fr .95fr!important;
    }

    .story > .story-box{
        height:100%!important;
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
        padding:30px 30px!important;
    }

    .story > .story-box:first-child{
        padding-right:24px!important;
    }

    .story > .story-box:first-child p{
        max-width:95%!important;
    }

    .story-child{
        height:100%!important;
        display:grid!important;
        grid-template-columns:230px minmax(0,1fr)!important;
        gap:22px!important;
        align-items:start!important;
    }

    .story-child img{
        width:230px!important;
        height:300px!important;
        object-fit:cover!important;
        object-position:center top!important;
        align-self:start!important;
        margin-top:0!important;
    }

    .story-child > div{
        align-self:start!important;
    }
}

@media (min-width: 901px) and (max-width: 1080px){
    .story-child{
        grid-template-columns:205px minmax(0,1fr)!important;
        gap:18px!important;
    }
    .story-child img{
        width:205px!important;
        height:285px!important;
    }
    .story > .story-box{
        padding:28px 24px!important;
    }
}

@media (max-width: 900px){
    .story > .story-box{
        height:auto!important;
    }
    .story-child{
        align-items:start!important;
    }
    .story-child img{
        object-position:center top!important;
    }
}

/* REL 7.1.8 - Home: foto Bambina Bianca accanto al titolo, non agganciata al top del box
   La foto resta a sinistra del titolo/testo e il gruppo immagine+testo viene allineato correttamente. */
@media (min-width: 901px){
    .story{
        align-items:stretch!important;
        grid-template-columns:1.02fr .98fr!important;
    }

    .story > .story-box{
        height:auto!important;
        min-height:300px!important;
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
    }

    .story > .story-box:first-child{
        padding:30px 26px!important;
    }

    .story > .story-box:first-child p{
        max-width:96%!important;
    }

    .story > .story-box:nth-child(2){
        padding:30px 28px!important;
    }

    .story-child{
        height:auto!important;
        min-height:0!important;
        display:grid!important;
        grid-template-columns:218px minmax(0,1fr)!important;
        gap:22px!important;
        align-items:start!important;
        align-self:stretch!important;
        margin-top:0!important;
    }

    .story-child img{
        width:218px!important;
        height:270px!important;
        display:block!important;
        object-fit:cover!important;
        object-position:center top!important;
        align-self:start!important;
        justify-self:start!important;
        margin:0!important;
    }

    .story-child > div{
        align-self:start!important;
        padding-top:0!important;
        margin-top:0!important;
    }

    .story-child h3{
        margin-top:0!important;
        padding-top:0!important;
        line-height:1.08!important;
    }
}

@media (min-width: 901px) and (max-width: 1080px){
    .story-child{
        grid-template-columns:190px minmax(0,1fr)!important;
        gap:18px!important;
    }

    .story-child img{
        width:190px!important;
        height:255px!important;
    }
}

@media (max-width: 900px){
    .story-child{
        height:auto!important;
        min-height:0!important;
    }

    .story-child img{
        margin:0 0 14px 0!important;
        object-position:center top!important;
    }
}

/* REL 7.1.18 - admin ambienti responsive + WhatsApp contatti */
.admin-edit-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.admin-table-responsive{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.admin-row-actions{
    display:flex;
    align-items:center;
    gap:5px;
    flex-wrap:wrap;
}
.admin-row-actions .admin-mini-btn{
    margin:2px 0;
}
.wa-inline-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.wa-inline-link svg,
.whatsapp-cta svg{
    fill:#7dbb6b;
    flex:0 0 auto;
}
.whatsapp-cta{
    display:inline-flex;
    align-items:center;
    gap:9px;
    border:1px solid #5d8b46;
    background:#10200e;
    color:#e7f4dc;
    padding:10px 15px;
    text-transform:uppercase;
    font-family:var(--font-title);
    letter-spacing:.04em;
    font-size:13px;
    margin-top:8px;
}
.whatsapp-cta:hover{
    background:#163015;
    border-color:#7dbb6b;
    color:#fff;
}
@media(max-width:900px){
    .admin-edit-grid{
        grid-template-columns:1fr;
        gap:8px;
    }
    .admin-ambienti-responsive{
        overflow-x:visible;
    }
    .admin-ambienti-table,
    .admin-ambienti-table tbody,
    .admin-ambienti-table tr,
    .admin-ambienti-table td{
        display:block;
        width:100%;
    }
    .admin-ambienti-table thead,
    .admin-ambienti-table tr:first-child{
        display:none;
    }
    .admin-ambienti-table tr{
        border:1px solid var(--line);
        background:#090604;
        margin:0 0 12px 0;
        padding:8px 10px;
    }
    .admin-ambienti-table td{
        border-bottom:1px solid rgba(138,106,58,.28);
        padding:8px 0;
        display:grid;
        grid-template-columns:120px minmax(0,1fr);
        gap:10px;
        align-items:start;
        font-size:13px;
        word-break:break-word;
    }
    .admin-ambienti-table td:last-child{
        border-bottom:0;
    }
    .admin-ambienti-table td:before{
        content:attr(data-label);
        color:var(--gold);
        text-transform:uppercase;
        font-family:var(--font-title);
        font-size:11px;
        letter-spacing:.04em;
    }
    .admin-ambienti-table td[data-label="Azioni"]{
        display:block;
    }
    .admin-ambienti-table td[data-label="Azioni"]:before{
        display:block;
        margin-bottom:7px;
    }
    .admin-row-actions{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:7px;
    }
    .admin-row-actions .admin-mini-btn{
        width:100%;
        text-align:center;
        padding:8px 6px;
    }
}
@media(max-width:520px){
    .admin-ambienti-table td{
        grid-template-columns:1fr;
        gap:4px;
    }
    .admin-row-actions{
        grid-template-columns:1fr;
    }
    .whatsapp-cta{
        width:100%;
        justify-content:center;
    }
}


/* REL 7.1.19 - WhatsApp allineato in home e contatti */
.wa-inline-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    vertical-align:middle;
    line-height:1.2;
}
.wa-inline-link .wa-mini-icon,
.wa-inline-link svg{
    fill:#7dbb6b;
    flex:0 0 auto;
    display:block;
}
.wa-inline-link span{
    display:inline-block;
}
.bottom .wa-inline-link{
    margin-top:2px;
}


/* REL 7.1.20 - icona WhatsApp verde visibile senza dipendenze esterne */
.wa-inline-link{
    display:inline-flex!important;
    align-items:center!important;
    gap:8px!important;
    vertical-align:middle;
    line-height:1.25;
}
.wa-mini-icon,
.wa-cta-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:19px;
    height:19px;
    margin-right:2px;
}
.wa-mini-icon svg,
.wa-cta-icon svg{
    display:block!important;
    width:100%!important;
    height:100%!important;
    overflow:visible!important;
}
.wa-inline-link span:not(.wa-mini-icon){
    display:inline-block;
}
.whatsapp-cta{
    display:inline-flex!important;
    align-items:center!important;
    gap:9px!important;
}
.whatsapp-cta .wa-cta-icon{
    width:22px;
    height:22px;
    margin-right:2px;
}

/* ==========================================================
   REL 8.0.4 - Admin tecnico, lineare e responsive
   Scope: solo pagine admin con header .admin-header.
   ========================================================== */
@supports selector(body:has(.admin-header)) {
  body:has(.admin-header){
    background:#f3f4f6!important;
    color:#1f2937!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:15px!important;
    line-height:1.45!important;
  }
  body:has(.admin-header) .site{
    max-width:1280px!important;
    background:#f8fafc!important;
    color:#1f2937!important;
    box-shadow:none!important;
    border-left:1px solid #d6dbe1;
    border-right:1px solid #d6dbe1;
  }
  body:has(.admin-header) .header.admin-header{
    position:relative!important;
    background:#e5e7eb!important;
    color:#111827!important;
    border-bottom:1px solid #cbd5e1!important;
  }
  body:has(.admin-header) .admin-header .header-inner{
    min-height:74px!important;
    gap:18px!important;
  }
  body:has(.admin-header) .admin-header .logo{
    color:#111827!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:19px!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
  }
  body:has(.admin-header) .admin-header .crest{
    border-color:#64748b!important;
    color:#334155!important;
    background:#f8fafc!important;
  }
  body:has(.admin-header) .admin-header .menu{
    gap:8px!important;
  }
  body:has(.admin-header) .admin-header .menu a{
    background:#f8fafc!important;
    border:1px solid #cbd5e1!important;
    color:#1f2937!important;
    padding:8px 10px!important;
    border-radius:6px!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:12px!important;
    font-weight:700!important;
    letter-spacing:.02em!important;
  }
  body:has(.admin-header) .admin-header .menu a:hover{
    background:#dbeafe!important;
    border-color:#60a5fa!important;
    color:#0f172a!important;
  }
  body:has(.admin-header) .wrap{
    max-width:1180px!important;
  }
  body:has(.admin-header) .page-title{
    padding:32px 0 8px!important;
  }
  body:has(.admin-header) h1,
  body:has(.admin-header) h2,
  body:has(.admin-header) h3,
  body:has(.admin-header) h4,
  body:has(.admin-header) .page-title h1{
    color:#111827!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
    text-transform:none!important;
  }
  body:has(.admin-header) h1{font-size:34px!important;}
  body:has(.admin-header) h3{font-size:20px!important;margin-bottom:14px!important;}
  body:has(.admin-header) .gold-line{
    background:#94a3b8!important;
    height:2px!important;
    width:100%!important;
    max-width:320px!important;
  }
  body:has(.admin-header) .panel{
    background:#ffffff!important;
    color:#1f2937!important;
    border:1px solid #d1d5db!important;
    border-radius:10px!important;
    padding:22px!important;
    box-shadow:0 1px 3px rgba(15,23,42,.08)!important;
  }
  body:has(.admin-header) p,
  body:has(.admin-header) label,
  body:has(.admin-header) .form-help,
  body:has(.admin-header) th,
  body:has(.admin-header) td{
    color:#1f2937!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:14px!important;
  }
  body:has(.admin-header) input,
  body:has(.admin-header) select,
  body:has(.admin-header) textarea{
    background:#ffffff!important;
    color:#111827!important;
    border:1px solid #94a3b8!important;
    border-radius:6px!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:15px!important;
    padding:10px 11px!important;
  }
  body:has(.admin-header) input:focus,
  body:has(.admin-header) select:focus,
  body:has(.admin-header) textarea:focus{
    outline:2px solid rgba(59,130,246,.35)!important;
    border-color:#2563eb!important;
  }
  body:has(.admin-header) .admin-table-wrap{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border:1px solid #d1d5db;
    border-radius:8px;
    background:#fff;
  }
  body:has(.admin-header) table.admin-table{
    width:100%!important;
    border-collapse:collapse!important;
    min-width:900px;
    background:#fff!important;
  }
  body:has(.admin-header) .admin-table th{
    background:#e2e8f0!important;
    color:#0f172a!important;
    font-size:12px!important;
    text-transform:uppercase!important;
    letter-spacing:.04em!important;
    font-weight:800!important;
    border-bottom:1px solid #cbd5e1!important;
    padding:10px 9px!important;
  }
  body:has(.admin-header) .admin-table td{
    background:#fff!important;
    color:#1f2937!important;
    border-bottom:1px solid #e5e7eb!important;
    padding:10px 9px!important;
    vertical-align:middle!important;
  }
  body:has(.admin-header) .admin-table tr:nth-child(even) td{
    background:#f8fafc!important;
  }
  body:has(.admin-header) .admin-bookings-table td[data-label="Posti"] strong{
    display:inline-flex;
    min-width:34px;
    min-height:26px;
    align-items:center;
    justify-content:center;
    background:#e0f2fe;
    color:#075985;
    border:1px solid #7dd3fc;
    border-radius:999px;
    font-weight:800;
  }
  body:has(.admin-header) .admin-actions,
  body:has(.admin-header) .admin-row-actions{
    display:flex!important;
    gap:6px!important;
    align-items:center!important;
    flex-wrap:wrap!important;
  }
  body:has(.admin-header) .admin-mini-btn,
  body:has(.admin-header) .btn,
  body:has(.admin-header) button{
    background:#2563eb!important;
    color:#ffffff!important;
    border:1px solid #1d4ed8!important;
    border-radius:6px!important;
    padding:8px 11px!important;
    font-family:Arial, Helvetica, sans-serif!important;
    font-size:12px!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
    text-transform:none!important;
    text-align:center!important;
  }
  body:has(.admin-header) .admin-mini-btn:hover,
  body:has(.admin-header) .btn:hover,
  body:has(.admin-header) button:hover{
    background:#1d4ed8!important;
  }
  body:has(.admin-header) .admin-delete-btn{
    background:#dc2626!important;
    border-color:#b91c1c!important;
  }
  body:has(.admin-header) .admin-delete-btn:hover{
    background:#b91c1c!important;
  }
  body:has(.admin-header) .notice.success{
    background:#dcfce7!important;
    border-color:#22c55e!important;
    color:#14532d!important;
  }
  body:has(.admin-header) .notice.error{
    background:#fee2e2!important;
    border-color:#ef4444!important;
    color:#7f1d1d!important;
  }
  body:has(.admin-header) .admin-switch,
  body:has(.admin-header) .form-switch{
    width:54px!important;
    height:30px!important;
    border-radius:999px!important;
    background:#ef4444!important;
    border:1px solid #b91c1c!important;
    padding:4px!important;
  }
  body:has(.admin-header) .admin-switch span,
  body:has(.admin-header) .form-switch span{
    width:20px!important;
    height:20px!important;
    background:#fff!important;
    box-shadow:0 1px 3px rgba(0,0,0,.3)!important;
  }
  body:has(.admin-header) .admin-switch.active,
  body:has(.admin-header) .switch-checkbox:checked + .form-switch{
    background:#16a34a!important;
    border-color:#15803d!important;
  }
  body:has(.admin-header) .admin-switch.active span,
  body:has(.admin-header) .switch-checkbox:checked + .form-switch span{
    transform:translateX(24px)!important;
  }
  body:has(.admin-header) footer{
    background:#f8fafc!important;
    color:#64748b!important;
    border-top:1px solid #d1d5db!important;
  }
  @media(max-width:860px){
    body:has(.admin-header) .admin-header .header-inner{
      align-items:flex-start!important;
      flex-direction:column!important;
      padding:14px 16px!important;
    }
    body:has(.admin-header) .admin-header .menu{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
      width:100%!important;
      gap:8px!important;
    }
    body:has(.admin-header) .admin-header .menu a{
      white-space:normal!important;
      text-align:center!important;
      padding:10px 8px!important;
    }
    body:has(.admin-header) .panel{padding:16px!important;}
    body:has(.admin-header) .admin-table-wrap{
      border:0!important;
      overflow:visible!important;
      background:transparent!important;
    }
    body:has(.admin-header) .admin-bookings-table,
    body:has(.admin-header) .admin-bookings-table tbody,
    body:has(.admin-header) .admin-bookings-table tr,
    body:has(.admin-header) .admin-bookings-table td{
      display:block!important;
      width:100%!important;
      min-width:0!important;
    }
    body:has(.admin-header) .admin-bookings-table th,
    body:has(.admin-header) .admin-bookings-table tr:first-child{
      display:none!important;
    }
    body:has(.admin-header) .admin-bookings-table tr{
      background:#fff!important;
      border:1px solid #d1d5db!important;
      border-radius:10px!important;
      margin:0 0 12px 0!important;
      overflow:hidden!important;
      box-shadow:0 1px 3px rgba(15,23,42,.08)!important;
    }
    body:has(.admin-header) .admin-bookings-table td{
      display:grid!important;
      grid-template-columns:118px minmax(0,1fr)!important;
      gap:10px!important;
      padding:9px 12px!important;
      border-bottom:1px solid #e5e7eb!important;
      word-break:break-word!important;
      background:#fff!important;
    }
    body:has(.admin-header) .admin-bookings-table td:before{
      content:attr(data-label);
      color:#475569!important;
      font-size:11px!important;
      text-transform:uppercase!important;
      font-weight:800!important;
      letter-spacing:.04em!important;
    }
    body:has(.admin-header) .admin-bookings-table td[data-label="Azioni"]{
      display:block!important;
    }
    body:has(.admin-header) .admin-bookings-table td[data-label="Azioni"]:before{
      display:block!important;
      margin-bottom:8px!important;
    }
    body:has(.admin-header) .admin-actions{
      display:grid!important;
      grid-template-columns:1fr 1fr!important;
      gap:8px!important;
    }
    body:has(.admin-header) .admin-actions .admin-mini-btn{
      width:100%!important;
      padding:10px 8px!important;
    }
  }
  @media(max-width:520px){
    body:has(.admin-header) .admin-header .menu{grid-template-columns:1fr!important;}
    body:has(.admin-header) h1{font-size:28px!important;}
    body:has(.admin-header) .admin-bookings-table td{
      grid-template-columns:1fr!important;
      gap:3px!important;
    }
    body:has(.admin-header) .admin-actions{grid-template-columns:1fr!important;}
  }
}


/* ===== REL 8.0.5 admin light theme cleanup ===== */
body.admin-page,
body.admin-login-page{background:#eef1f5 !important;color:#1f2937 !important}
body.admin-page .site,
body.admin-login-page .site{background:transparent !important}
body.admin-page .wrap,
body.admin-login-page .wrap{max-width:1180px}
body.admin-page footer,
body.admin-login-page footer{background:transparent !important;color:#667085 !important;border-top:0 !important;padding:18px 0 30px !important;text-align:center}
body.admin-page .header.admin-header,
body.admin-login-page .header.admin-header{background:#ffffff !important;border-bottom:1px solid #d7dde7 !important;box-shadow:0 1px 2px rgba(16,24,40,.04)}
body.admin-page .admin-header .header-inner,
body.admin-login-page .admin-header .header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0}
body.admin-page .admin-header .logo,
body.admin-login-page .admin-header .logo{display:flex;align-items:center;gap:12px;color:#0f172a !important;font-family:Arial,Helvetica,sans-serif !important;font-weight:700;font-size:22px;line-height:1.05;text-transform:none}
body.admin-page .admin-header .crest,
body.admin-login-page .admin-header .crest{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f8fafc !important;border:1px solid #cfd8e3 !important;color:#2563eb !important;font-size:20px}
body.admin-page .admin-header .menu,
body.admin-login-page .admin-header .menu{display:flex;flex-wrap:wrap;gap:8px}
body.admin-page .admin-header .menu a,
body.admin-login-page .admin-header .menu a{background:#f8fafc !important;border:1px solid #d7dde7 !important;color:#334155 !important;padding:8px 10px !important;border-radius:8px !important;font:600 12px/1 Arial,Helvetica,sans-serif !important;text-decoration:none;text-transform:uppercase;letter-spacing:.02em}
body.admin-page .admin-header .menu a:hover,
body.admin-login-page .admin-header .menu a:hover{background:#eaf2ff !important;border-color:#93c5fd !important;color:#1d4ed8 !important}
body.admin-page .page-title h1,
body.admin-login-page .page-title h1{font-family:Arial,Helvetica,sans-serif !important;color:#0f172a !important;font-weight:800 !important;letter-spacing:-.02em;text-transform:none !important}
body.admin-page .gold-line,
body.admin-login-page .gold-line{background:#94a3b8 !important;height:2px !important}
body.admin-page .panel,
body.admin-page .notice,
body.admin-login-page .panel,
body.admin-login-page .notice{background:#ffffff !important;border:1px solid #d7dde7 !important;color:#334155 !important;box-shadow:0 1px 2px rgba(16,24,40,.04)}
body.admin-page .panel h3,
body.admin-login-page .panel h3{font-family:Arial,Helvetica,sans-serif !important;color:#0f172a !important;font-size:26px !important;font-weight:700 !important;text-transform:none !important}
body.admin-page label,
body.admin-login-page label{color:#334155 !important;font-weight:600}
body.admin-page input,
body.admin-page textarea,
body.admin-page select,
body.admin-login-page input,
body.admin-login-page textarea,
body.admin-login-page select{background:#fff !important;border:1px solid #cbd5e1 !important;color:#0f172a !important;border-radius:8px !important;padding:10px 12px !important;font:400 14px/1.4 Arial,Helvetica,sans-serif !important}
body.admin-page input:focus,
body.admin-page textarea:focus,
body.admin-page select:focus,
body.admin-login-page input:focus,
body.admin-login-page textarea:focus,
body.admin-login-page select:focus{outline:none !important;border-color:#60a5fa !important;box-shadow:0 0 0 3px rgba(96,165,250,.18) !important}
body.admin-page button,
body.admin-page .btn,
body.admin-page a.btn,
body.admin-page .admin-mini-btn,
body.admin-login-page button,
body.admin-login-page .btn,
body.admin-login-page a.btn{background:#2563eb !important;border:1px solid #1d4ed8 !important;color:#ffffff !important;border-radius:8px !important;padding:9px 12px !important;font:700 12px/1 Arial,Helvetica,sans-serif !important;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;box-shadow:none !important}
body.admin-page button:hover,
body.admin-page .btn:hover,
body.admin-page a.btn:hover,
body.admin-page .admin-mini-btn:hover,
body.admin-login-page button:hover,
body.admin-login-page .btn:hover,
body.admin-login-page a.btn:hover{background:#1d4ed8 !important;border-color:#1e40af !important}
body.admin-page .admin-delete-btn{background:#dc2626 !important;border-color:#b91c1c !important;color:#fff !important}
body.admin-page .admin-delete-btn:hover{background:#b91c1c !important;border-color:#991b1b !important}
body.admin-page .notice.success,
body.admin-login-page .notice.success{background:#ecfdf3 !important;border-color:#a6f4c5 !important;color:#065f46 !important}
body.admin-page .notice.error,
body.admin-login-page .notice.error{background:#fef2f2 !important;border-color:#fecaca !important;color:#991b1b !important}
body.admin-page .admin-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
body.admin-page .admin-shortcuts .service{display:block;background:#ffffff !important;border:1px solid #d7dde7 !important;border-radius:12px !important;padding:18px !important;min-height:130px !important;box-shadow:0 1px 2px rgba(16,24,40,.04);text-decoration:none !important}
body.admin-page .admin-shortcuts .service:hover{border-color:#93c5fd !important;box-shadow:0 4px 14px rgba(37,99,235,.12)}
body.admin-page .admin-shortcuts .service h4{margin:0 0 10px 0 !important;color:#0f172a !important;font:700 20px/1.2 Arial,Helvetica,sans-serif !important;text-transform:none !important}
body.admin-page .admin-shortcuts .service p{margin:0 !important;color:#475569 !important;font:400 14px/1.45 Arial,Helvetica,sans-serif !important}
body.admin-page table,
body.admin-page .admin-table,
body.admin-page .admin-detail-table{background:#fff !important;color:#334155 !important;border-color:#d7dde7 !important}
body.admin-page .admin-table th,
body.admin-page .admin-table td,
body.admin-page .admin-detail-table th,
body.admin-page .admin-detail-table td{border-color:#e2e8f0 !important;color:#334155 !important;background:#fff !important}
body.admin-page .admin-table th,
body.admin-page .admin-detail-table th{background:#f8fafc !important;color:#0f172a !important;font-weight:700}
body.admin-page .calendar-title span{color:#0f172a !important}
body.admin-page .cal-nav{background:#2563eb !important;border-color:#1d4ed8 !important;color:#fff !important;border-radius:8px !important}
body.admin-page .calendar.admin-block-calendar{max-width:760px;margin:22px auto 0 auto}
body.admin-page .admin-day-block{border:1px solid #d7dde7 !important;border-radius:10px !important;min-height:92px !important;background:#ffffff !important;color:#0f172a !important;box-shadow:0 1px 1px rgba(16,24,40,.03)}
body.admin-page .admin-day-number{font-size:18px !important;font-weight:700 !important;color:#0f172a !important}
body.admin-page .admin-day-block small,
body.admin-page .admin-date-switch-label{font-size:11px !important;color:#64748b !important}
body.admin-page .calendar .weekday{background:#f8fafc !important;color:#334155 !important;border-color:#d7dde7 !important}
body.admin-page .day.empty{background:#f8fafc !important;border-color:#d7dde7 !important}
body.admin-page .admin-switch,
body.admin-page .admin-date-switch{width:50px !important;height:28px !important;border-radius:999px !important;padding:3px !important;border:1px solid #cbd5e1 !important;background:#22c55e !important;display:inline-flex !important;align-items:center !important;box-sizing:border-box !important;text-decoration:none !important;transition:.2s !important}
body.admin-page .admin-switch span,
body.admin-page .admin-date-switch span{width:20px !important;height:20px !important;border-radius:50% !important;background:#ffffff !important;box-shadow:0 1px 2px rgba(0,0,0,.18) !important;display:block !important;transform:translateX(22px) !important;transition:.2s !important}
body.admin-page .admin-switch.checked,
body.admin-page .admin-switch.blocked,
body.admin-page .admin-switch.busy,
body.admin-page .admin-switch.non-disponibile,
body.admin-page .admin-date-switch.admin-switch-blocked,
body.admin-page .admin-date-switch.checked{background:#ef4444 !important;border-color:#dc2626 !important}
body.admin-page .admin-switch.checked span,
body.admin-page .admin-switch.blocked span,
body.admin-page .admin-switch.busy span,
body.admin-page .admin-switch.non-disponibile span,
body.admin-page .admin-date-switch.admin-switch-blocked span,
body.admin-page .admin-date-switch.checked span{transform:translateX(0) !important}
body.admin-page .admin-switch.active,
body.admin-page .admin-switch.available,
body.admin-page .admin-date-switch.admin-switch-available{background:#22c55e !important;border-color:#16a34a !important}
body.admin-page .admin-switch.active span,
body.admin-page .admin-switch.available span,
body.admin-page .admin-date-switch.admin-switch-available span{transform:translateX(22px) !important}
body.admin-page .admin-day-block .state-blocked,
body.admin-page .admin-day-block small.blocked,
body.admin-page .admin-day-block small.non-disponibile{color:#b91c1c !important}
body.admin-page .admin-day-block .state-available,
body.admin-page .admin-day-block small.available,
body.admin-page .admin-day-block small.disponibile{color:#15803d !important}
body.admin-login-page main.wrap{max-width:640px}
body.admin-login-page .login-panel{max-width:520px;margin:32px auto 60px auto;padding:22px}
body.admin-login-page .admin-login-note{font-size:13px;line-height:1.55;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px}
@media (max-width: 980px){
  body.admin-page .admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.admin-page .admin-header .header-inner,
  body.admin-login-page .admin-header .header-inner{align-items:flex-start;flex-direction:column}
}
@media (max-width: 640px){
  body.admin-page .admin-shortcuts{grid-template-columns:1fr}
  body.admin-page .admin-shortcuts .service{min-height:auto !important}
  body.admin-page .admin-header .menu,
  body.admin-login-page .admin-header .menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  body.admin-page .admin-header .menu a,
  body.admin-login-page .admin-header .menu a{text-align:center;font-size:11px !important;padding:10px 8px !important}
}

/* REL 11.1 - calendario prenotazioni: posti serate paranormali */
.calendar .day{flex-direction:column;gap:3px;text-align:center;padding:4px 2px}
.calendar .day small{display:block;font-size:9px;line-height:1.05;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:inherit;opacity:.96}
.calendar .day.partial{background:#8a6a21!important;color:#fff0bf!important;border-color:#d2aa45!important}
.calendar .day.free{background:var(--green)!important;color:#e8ffe4!important}
.calendar .day.busy{background:var(--red)!important;color:#ffc2b2!important}

/* REL 11.2 - Provenienza visitatori prenotazioni */
.geo-origin-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin:8px 0 6px 0;
}
.geo-origin-grid label{
  display:block;
  margin-bottom:6px;
}
.geo-origin-grid select{
  width:100%;
}
@media (max-width:760px){
  .geo-origin-grid{ grid-template-columns:1fr; }
}
