:root{--sand:#F3E7D8;--sand2:#EADBC8;--plum:#2A1630;--plum2:#54385F;--ter:#B8451F;--ter-l:#E7B8A6;--line:#CDB9A5;--card:#FBF5EC;--r:18px;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--sand);color:var(--plum);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;margin:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--plum);color:#fff;padding:8px 14px;border-radius:8px;z-index:99}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--ter);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.top{max-width:1240px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:22px clamp(16px,4vw,40px);border-bottom:1.5px solid var(--plum)}
.brand{font:400 34px/1 var(--serif);text-decoration:none;letter-spacing:-.5px}.brand-s{font-size:30px}
.top nav{display:flex;gap:28px;font-size:15px;font-weight:500}.top nav a{text-decoration:none}.top nav a:hover{text-decoration:underline;text-underline-offset:5px}
/* hero */
.hero{padding:clamp(34px,6vw,70px) 0 clamp(30px,5vw,50px)}.hero-s{padding:clamp(26px,4vw,44px) 0 clamp(26px,4vw,40px)}
.kicker{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ter);margin:0 0 14px}
.hero h1{font-size:clamp(42px,7.2vw,92px);letter-spacing:-2.5px;max-width:15ch;margin-bottom:20px}.hero-s h1{font-size:clamp(34px,5.4vw,66px);max-width:20ch}.hero h1 i{color:var(--ter)}
.lead{font-size:clamp(17px,1.7vw,20px);max-width:56ch;margin:0 0 28px}
.crumbs{font-size:14px;margin-bottom:22px;opacity:.85}.crumbs a{text-decoration:underline;text-underline-offset:3px}
.trust{list-style:none;display:flex;gap:8px 26px;flex-wrap:wrap;padding:0;margin:22px 0 0;font-size:14px;font-weight:600}.trust li:before{content:"✓";color:var(--ter);font-weight:800;margin-right:7px}
.notice{max-width:1180px;margin:14px auto 0;padding:12px 18px;background:#FFF1C9;border:1.5px solid #E5C766;border-radius:12px;font-size:15px}
/* form di ricerca */
.sf{background:var(--plum);color:#fff;border-radius:22px;padding:18px}
.sf-trip{display:flex;gap:20px;margin:0 6px 12px;font-size:14px;font-weight:600}.sf-trip label{cursor:pointer}.sf-trip input{accent-color:var(--ter-l)}
.sf-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.fld{position:relative;flex:1 1 150px;min-width:130px}.fld-s{flex:0 1 128px;min-width:120px}.ac{flex:1.5 1 190px}
.fld label{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ter-l);margin:0 0 5px 4px}
.fld input,.fld select{width:100%;height:52px;border:1.5px solid var(--plum2);border-radius:12px;background:#3a2142;padding:0 14px;font:inherit;font-size:17px;font-weight:600;color:#fff;color-scheme:dark}
.fld input::placeholder{color:#b9a3c2;font-weight:400}
.fld input:focus,.fld select:focus{outline:none;border-color:var(--ter-l);box-shadow:0 0 0 3px rgba(231,184,166,.3)}
.swap{height:52px;width:42px;flex:0 0 42px;border:1.5px solid var(--plum2);background:transparent;border-radius:50%;font-size:18px;cursor:pointer;color:#fff}.swap:hover{background:var(--ter);border-color:var(--ter)}
.go{height:52px;flex:1 1 160px;border:0;border-radius:14px;background:var(--ter);color:#fff;font:700 18px var(--sans);cursor:pointer;padding:0 24px;transition:transform .15s,background .15s}.go:hover{background:#a23a18;transform:translateY(-1px)}
.ac-list{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:6px;list-style:none;background:#fff;color:var(--plum);border:1.5px solid var(--line);border-radius:12px;box-shadow:0 14px 34px -10px rgba(0,0,0,.4);min-width:270px}
.ac-list li{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:15px}.ac-list li.on,.ac-list li:hover{background:var(--sand)}
.ac-list b{font-family:var(--serif);width:38px;color:var(--ter)}.ac-list span{flex:1}.ac-list em{font-style:normal;font-size:12px;opacity:.6}
/* sezioni */
.sec{max-width:1180px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(16px,4vw,40px) 0}
.sec h2{font-size:clamp(30px,4.2vw,46px);letter-spacing:-1px;margin-bottom:20px}.sec h2 a{text-decoration:none}.sec h2 a:hover{text-decoration:underline;text-underline-offset:6px}
.sub{margin:-8px 0 22px;font-size:17px}.more{margin:18px 0 0;font-weight:600}.more a{text-decoration:underline;text-underline-offset:4px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));border-top:1.5px solid var(--plum)}
.steps article{padding:26px 26px 10px 0}.steps b{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--plum);color:var(--ter-l);font:400 20px var(--serif);margin-bottom:14px}.steps h3{font-size:28px;margin-bottom:8px}.steps p{margin:0}
.routes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.route{position:relative;display:flex;align-items:center;gap:10px;background:var(--card);border:1.5px solid var(--plum);border-radius:var(--r);padding:20px 18px 36px;text-decoration:none;font:400 22px var(--serif);transition:transform .15s,background .15s}.route:hover{transform:translateY(-3px);background:#fff}
.route i{font-style:normal;color:var(--ter)}.route em{position:absolute;left:18px;bottom:11px;font:600 12.5px var(--sans);font-style:normal;opacity:.7}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chips a{border:1.5px solid var(--plum);border-radius:99px;padding:9px 18px;text-decoration:none;font-weight:600}.chips a:hover{background:var(--plum);color:#fff}
.text>*{max-width:820px}.text p,.text li{font-size:17px}.text h3{font-size:26px;margin:26px 0 8px}.text ul{padding-left:20px}
.faq{display:grid;gap:10px;max-width:820px}.faq details{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:16px 20px}.faq summary{cursor:pointer;font-weight:700}.faq p{margin:10px 0 0}
/* footer */
.foot{margin-top:clamp(56px,8vw,100px);background:var(--plum);color:var(--sand);padding:46px clamp(16px,4vw,40px) 24px}
.foot-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.foot h2{font:700 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ter-l);margin:0 0 12px}.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.foot a{text-decoration:none}.foot a:hover{text-decoration:underline}.foot p{margin:10px 0 0;max-width:30ch;opacity:.85}
.foot .link{color:var(--sand);font:inherit}
.foot .foot-note{max-width:1180px;margin:34px auto 0;font-size:13px;opacity:.7}
.link{background:none;border:0;color:var(--ter);font-weight:700;cursor:pointer;padding:0;font-size:15px;text-decoration:underline;text-underline-offset:3px}
.cookie{position:fixed;left:16px;right:16px;bottom:16px;max-width:760px;margin:0 auto;background:var(--plum);color:#fff;border-radius:16px;padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;z-index:60;box-shadow:0 20px 50px -10px rgba(0,0,0,.5)}.cookie[hidden]{display:none}.cookie p{margin:0;flex:1 1 320px;font-size:14px}.cookie a{text-decoration:underline}
.cookie button{height:42px;padding:0 20px;border-radius:99px;border:1.5px solid #fff;background:transparent;color:#fff;font:700 15px var(--sans);cursor:pointer}.cookie .yes{background:var(--ter);border-color:var(--ter)}
/* pagina risultati */
.res-bar{background:var(--sand)}.res-bar-in{max-width:1180px;margin:0 auto;padding:22px clamp(12px,3vw,24px) 0}
.res-wrap{max-width:1180px;margin:26px auto 0;padding:0 clamp(12px,3vw,24px);display:grid;grid-template-columns:260px 1fr;gap:30px;align-items:start}
.filters{position:sticky;top:14px;background:var(--card);border:1.5px solid var(--plum);border-radius:var(--r);padding:20px}.filters[hidden]{display:none}.filters h3{font-size:26px;margin-bottom:10px}
.filters fieldset{border:0;border-top:1px solid var(--line);margin:0;padding:14px 0}.filters legend{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:0 0 8px;float:left;width:100%}.filters fieldset>*{clear:both}
.filters label{display:flex;gap:8px;align-items:center;padding:3px 0;font-size:15px;cursor:pointer}.filters label small{margin-left:auto;opacity:.65}.filters input{accent-color:var(--ter)}.filters input[type=range]{width:100%}
.list{min-width:0}.demo{background:#FFF1C9;border:1.5px solid #E5C766;border-radius:12px;padding:10px 14px;font-size:14px;margin-bottom:14px}.demo[hidden]{display:none}
.state{text-align:center;padding:56px 12px}.state h2{font-size:30px;margin-bottom:6px}.state p{margin:0}
.spin{width:44px;height:44px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--ter);margin:0 auto 18px;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.sortbar{margin-bottom:6px}.sortbar[hidden]{display:none}.sortbar p{margin:0 0 10px;font-weight:600}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tabs button{background:transparent;border:1.5px solid var(--plum);border-radius:14px;padding:11px 14px;font:700 15px var(--sans);color:var(--plum);cursor:pointer;text-align:left}.tabs button small{display:block;font-weight:500;margin-top:2px;font-size:12.5px}.tabs button.on{background:var(--plum);color:#fff}
#out{border-top:1.5px solid var(--plum);margin-top:14px}
.offer{position:relative;display:grid;grid-template-columns:1fr 210px;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.o-main{min-width:0}.o-buy{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
.o-buy strong{font:400 40px/1 var(--serif);letter-spacing:-1px}.o-buy small{font-size:12.5px;margin-bottom:10px}
.btn{display:inline-block;background:var(--plum);color:#fff;text-decoration:none;font-weight:700;padding:11px 20px;border-radius:99px;border:1.5px solid var(--plum)}.btn:hover{background:var(--ter);border-color:var(--ter)}.btn-o{background:transparent;color:var(--plum)}.btn-o:hover{color:#fff}
.bd{display:inline-block;background:var(--ter);color:#fff;font:700 11.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:99px;margin-bottom:8px}.bd2{background:var(--plum)}
.o-air{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:8px}.o-air img{border-radius:8px}.lg{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--plum);color:var(--ter-l);font:400 13px var(--serif)}
.sl{display:grid;grid-template-columns:84px 84px minmax(0,1fr) 84px 92px;gap:12px;align-items:center;padding:7px 0}.sl+.sl{border-top:1px dashed var(--line)}
.sl-l{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sl-d{font-size:13px;text-align:right;white-space:nowrap}
.sl-t{text-align:center}.sl-t b{font:400 32px/1 var(--serif);display:block}.sl-t sup{font-size:12px;color:var(--ter);margin-left:2px}.sl-t small,.sl-m small{font-size:12.5px}
.sl-m{text-align:center;min-width:0}.sl-m .st{color:#9A3412;font-weight:700}.sl-m .dr{color:#14633F;font-weight:700}
.line{display:block;height:1.5px;background:var(--plum);margin:6px 8px;position:relative}.line.has:after{content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--ter)}
/* legali */
.legal{max-width:780px;margin:30px auto 0;padding:0 clamp(16px,4vw,28px)}.legal h1{font-size:clamp(36px,5vw,56px);margin-bottom:8px}.legal h2{font-size:28px;margin:30px 0 6px}.legal p,.legal li{font-size:17px}.legal .upd{opacity:.75;font-size:14px}
@media(max-width:900px){.res-wrap{grid-template-columns:1fr}.filters{position:static;order:2}.foot-in{grid-template-columns:1fr 1fr}.swap{display:none}}
@media(max-width:620px){.top nav a:not(:first-child){display:none}.offer{grid-template-columns:1fr}.o-buy{flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;text-align:left}.o-buy small{order:3;width:100%;margin:0}.sl{grid-template-columns:64px minmax(0,1fr) 64px;row-gap:2px}.sl-l,.sl-d{grid-column:1/-1;text-align:left}.tabs small{display:none}.foot-in{grid-template-columns:1fr}.hero h1{letter-spacing:-1.5px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* guide */
.gwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.gcard{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1.5px solid var(--plum);border-radius:var(--r);padding:22px;text-decoration:none;transition:transform .15s,background .15s}.gcard:hover{transform:translateY(-3px);background:#fff}
.gcard .gcat{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ter)}.gcard h3{font-size:25px;line-height:1.12}.gcard p{margin:0;font-size:15px}.gcard em{font-style:normal;font-weight:700;font-size:14px;margin-top:auto;padding-top:6px}
.art{max-width:760px;margin:0 auto;padding:clamp(26px,4vw,48px) clamp(16px,4vw,28px) 0}
.art h1{font-size:clamp(34px,5vw,58px);letter-spacing:-1.5px;margin-bottom:10px}.art .meta{font-size:14px;opacity:.75;margin:0 0 22px}
.art-lead{font-size:20px;line-height:1.5;margin:0 0 10px}
.art h2{font-size:clamp(25px,3vw,32px);margin:34px 0 8px;letter-spacing:-.5px}.art p,.art li{font-size:18px;line-height:1.65}.art ul{padding-left:22px}.art li{margin:4px 0}
.cta-box{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;background:var(--plum);color:#fff;border-radius:var(--r);padding:22px 26px;margin:40px 0 0}.cta-box b{display:block;font:400 26px var(--serif)}.cta-box span{opacity:.85;font-size:15px}.cta-box .btn{background:var(--ter);border-color:var(--ter)}.cta-box .btn:hover{background:#a23a18}

/* calendario prezzi */
.cal{background:var(--card);border:1.5px solid var(--plum);border-radius:var(--r);padding:20px;margin-bottom:22px}.cal[hidden]{display:none}
.cal-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}.cal-h h2{font-size:28px}
.cal-nav{display:flex;align-items:center;gap:10px;font-weight:700}.cal-nav button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--plum);background:transparent;color:var(--plum);font-size:18px;cursor:pointer}.cal-nav button:hover:not(:disabled){background:var(--plum);color:#fff}.cal-nav button:disabled{opacity:.35;cursor:default}
.cal-nav span{min-width:130px;text-align:center;text-transform:capitalize}
.cal-sub{margin:0 0 12px;font-size:14px}
.cal-legend{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;margin:0 0 12px}.cal-legend i{display:block;flex:0 1 200px;height:10px;border-radius:99px;background:linear-gradient(90deg,#2F9E6E,#F4C44E,#C8452F)}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-d{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:4px 0}
.cal-c{position:relative;min-height:62px;border-radius:12px;border:2px solid transparent;display:flex;flex-direction:column;justify-content:space-between;padding:6px 8px;text-decoration:none;font-size:13px;color:var(--plum);background:#EFE3D3}
.cal-c b{font-size:12px;font-weight:700;opacity:.85}.cal-c span{font:700 15px var(--sans);text-align:right}
.cal-c.e{background:transparent}.cal-c.p{opacity:.35}.cal-c.l{background:linear-gradient(90deg,#EFE3D3,#F7EEE2,#EFE3D3);background-size:200% 100%;animation:sh 1.2s linear infinite}@keyframes sh{to{background-position:-200% 0}}
a.cal-c:hover{border-color:var(--plum)}.cal-c.sel{border-color:var(--plum);box-shadow:0 0 0 2px #fff inset}
.cal-c.min:after{content:"Minimo";position:absolute;top:-8px;right:6px;background:var(--plum);color:#fff;font:700 10px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:99px}
.cal-note{margin:12px 0 0;font-size:13px}
@media(max-width:620px){.cal{padding:14px}.cal-g{gap:4px}.cal-c{min-height:54px;padding:4px 5px}.cal-c span{font-size:12px}.cal-c.min:after{display:none}.cal-c.min span:before{content:"★ "}}
.via{display:block;max-width:190px;margin-top:6px;font-size:.72rem;color:var(--mute,#6b6b6b);line-height:1.3}

.gbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--plum);color:#fff;border-radius:var(--r);padding:14px 18px;margin:0 0 16px;font-size:15px}.gbar .btn{background:var(--ter);border-color:var(--ter);padding:8px 16px}
.pk-form{margin:16px 0}.pk-ok{display:block;font-size:15px;margin-bottom:14px}.pk-btns{display:flex;flex-wrap:wrap;gap:12px}.pk-form input[name=codice]{padding:11px 14px;border:1.5px solid var(--plum);border-radius:99px;min-width:260px;background:#fff;margin-right:8px}
.pk-msg{background:#fff;border:1.5px solid var(--ter);border-radius:12px;padding:10px 14px}.pk-code{font:700 26px/1.2 monospace;background:#fff;border:1.5px dashed var(--plum);border-radius:12px;padding:16px;text-align:center;letter-spacing:1px;user-select:all}
.sec-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 20px;margin-bottom:6px}.sec-h h2{margin-bottom:14px}.more-l{font-weight:700;text-decoration:none;border-bottom:2px solid var(--ter);padding-bottom:1px}
.chips-s{margin-top:18px}.chips-s a{padding:6px 14px;font-size:14px}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.plan{background:var(--card);border:1.5px solid var(--plum);border-radius:var(--r);padding:24px 26px}.plan h3{font:400 28px var(--serif);margin:8px 0 12px}.plan ul{margin:0 0 18px;padding-left:20px}.plan li{margin:5px 0}
.pl-tag{display:inline-block;font:700 12px var(--sans);letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:99px;border:1.5px solid var(--plum)}
.plan-hi{background:var(--plum);color:#fff}.plan-hi .pl-tag{border-color:var(--ter-l);color:var(--ter-l)}.plan-hi .btn{background:var(--ter);border-color:var(--ter)}.plan-hi .btn:hover{background:#a23a18;border-color:#a23a18}
.nav-pk{background:var(--ter);color:#fff!important;padding:7px 14px;border-radius:99px;text-decoration:none;font-weight:700}.nav-pk b{font-weight:800}
.pk-strip{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;background:var(--card);border:1.5px solid var(--ter);border-radius:var(--r);padding:14px 20px;margin:18px 0 6px}.pk-strip b{color:var(--ter)}.pk-strip span{display:block;font-size:14.5px;opacity:.85;margin-top:2px}.pk-strip .btn{background:var(--ter);border-color:var(--ter);white-space:nowrap}.sub{max-width:62ch}
