:root{--ink:#1B1530;--ink2:#3a2f4a;--sun:#F2A541;--sun2:#FFD27A;--coral:#E8604C;--magenta:#C2335A;--sea:#1E6F8E;--olive:#5E7A3A;--cream:#FFF6EA;--card:#FFFBF5;--plum:#3B1F4A;--plum2:#2C1B4E;--muted:#6b5f74;--line:#ecdcc8;--r:18px;--w:1220px;
--display:"DM Serif Display",Georgia,serif;--body:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.65 var(--body)}
img,svg{max-width:100%}a{color:var(--coral)}a:hover{color:var(--magenta)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.08;margin:0 0 .4em}
h2{font-size:clamp(1.9rem,4vw,3.1rem)}h2 em,h1 em{color:var(--coral);font-style:italic}
h3{font-size:1.45rem}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:99;background:#fff;padding:8px}
.w{max-width:var(--w);margin:0 auto;padding:0 24px}
/* header */
.top{position:relative;z-index:20;background:linear-gradient(180deg,var(--plum2),#4a2558);color:#fff}
.top--over{position:absolute;left:0;right:0;top:0;background:none}
.top__in{max-width:var(--w);margin:0 auto;padding:0 24px;height:84px;display:flex;align-items:center;gap:26px}
.brand{display:inline-flex;align-items:center;gap:12px;color:#fff;text-decoration:none;white-space:nowrap}
.brand img,.brand svg{width:56px;height:56px;flex:0 0 56px}.brand:hover{color:#fff}
.brand span{display:flex;flex-direction:column;line-height:.95}.brand small{font-size:10.5px;letter-spacing:.3em;font-weight:700}.brand b{font-family:var(--display);font-style:italic;font-weight:400;font-size:32px;color:var(--sun)}
.nav{margin-left:auto}.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}.nav a{color:#fff;text-decoration:none;font-weight:500;font-size:15.5px;opacity:.92}.nav a:hover,.nav a[aria-current]{opacity:1;color:var(--sun)}
.langs{display:flex;gap:4px}.langs a{font-size:12px;font-weight:700;color:#fff;text-decoration:none;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.4)}.langs a[aria-current]{background:#fff;color:var(--ink)}
.srch{color:#fff;display:flex;padding:6px}.srch svg{width:20px;height:20px}
.navbtn{display:none;margin-left:auto;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:999px;font:600 14px var(--body);padding:7px 14px}
/* hero home */
.hero{position:relative;min-height:720px;color:#fff;overflow:hidden;background:linear-gradient(180deg,#2C1B4E 0%,#7B3B6E 38%,#E8604C 70%,#F2A541 100%)}
.hero svg.sky{position:absolute;left:0;top:0;width:100%;height:calc(100% + 3px)}
.hero__in{position:relative;z-index:2;padding-top:180px;padding-bottom:150px}
.hero h1{font-size:clamp(3.2rem,8vw,6.2rem);line-height:.95;margin:0}.hero h1 em{color:var(--sun)}
.hero p{font-size:21px;max-width:33em;opacity:.95;margin:22px 0 28px}
.moods{display:flex;gap:10px;flex-wrap:wrap}.moods a{background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.38);padding:11px 20px;border-radius:999px;font-weight:600;color:#fff;text-decoration:none}.moods a:hover{background:#fff;color:var(--ink)}
.hsearch{display:flex;max-width:560px;margin-top:22px;background:rgba(255,255,255,.95);border-radius:999px;padding:6px;box-shadow:0 14px 40px rgba(27,21,48,.25)}
.hsearch input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:17px;padding:10px 18px;color:var(--ink)}.hsearch input:focus{outline:none}
.hsearch button{border:0;border-radius:999px;background:var(--coral);color:#fff;font:700 15px var(--body);padding:0 24px;cursor:pointer}
/* page head */
.phead{position:relative;color:#fff;overflow:hidden;background:linear-gradient(180deg,#2C1B4E 0%,#6b3466 55%,#C9524F 100%)}
.phead svg.sky{position:absolute;left:0;right:0;bottom:0;width:100%;height:120px}
.phead__in{position:relative;z-index:2;max-width:var(--w);margin:0 auto;padding:44px 24px 110px}
.phead h1{font-size:clamp(2.4rem,5.5vw,4.3rem);margin:6px 0 10px}
.phead .lead{font-size:19px;max-width:40em;opacity:.93;margin:0}
.kicker{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--sun2)}
.crumbs{font-size:14px;margin-bottom:14px;opacity:.9}.crumbs a{color:#fff}
/* sections */
.section{padding:72px 0}.section--tight{padding:40px 0}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:44px;align-items:start}
.prose{max-width:46em}.prose p{margin:0 0 1.1em}.prose h2{margin-top:1.3em}
.lede{font-size:19.5px;line-height:1.6}
.side>*+*{margin-top:22px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.panel h3{font-size:1.3rem}
.facts{list-style:none;margin:0;padding:0}.facts li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15.5px}.facts li span:first-child{color:var(--muted)}.facts li b{font-weight:600;text-align:right}
/* escape cards */
.row{display:grid;grid-auto-flow:column;grid-auto-columns:270px;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;-webkit-overflow-scrolling:touch}
.e{scroll-snap-align:start;height:360px;border-radius:22px;position:relative;padding:22px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;background:var(--b);text-decoration:none;overflow:hidden;transition:transform .2s}
.e:hover{transform:translateY(-4px);color:#fff}
.e span{position:absolute;top:18px;left:22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.88}
.e h3{font-size:32px;margin:0;line-height:1}.e p{margin:8px 0 0;font-size:15px;opacity:.92;line-height:1.4}
.e svg{position:absolute;right:-6px;top:46px;width:170px;opacity:.22}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;text-decoration:none;color:var(--ink);display:block;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(59,31,74,.12);color:var(--ink)}
.card small{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--coral);margin-bottom:6px}
.card h3{font-size:1.5rem;margin:0 0 6px}.card p{margin:0;font-size:15px;color:var(--muted);line-height:1.5}
.card--dot{position:relative;padding-left:56px}.card--dot::before{content:"";position:absolute;left:22px;top:26px;width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,var(--sun2),var(--coral))}
/* italy map */
.mapit svg{width:100%;height:auto;display:block}
.mapit a path{transition:fill .15s}.mapit a:hover path{fill:var(--ink)!important}
.mapit text{font:600 11px var(--body);fill:#fff;pointer-events:none;paint-order:stroke;stroke:rgba(27,21,48,.55);stroke-width:2.5px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
/* calendar */
.cal{display:grid;grid-template-columns:repeat(12,1fr);gap:6px}.cal div{border-radius:12px;text-align:center;padding:14px 0;font-weight:700;font-size:13px}
.cal__l{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:8px}
/* dark band */
.dark{background:var(--plum);color:var(--cream)}.dark h2 em{color:var(--sun)}.dark a{color:var(--sun2)}
.serv{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.serv a{background:rgba(255,255,255,.07);border-radius:18px;padding:24px;color:var(--cream);text-decoration:none;display:block;transition:background .15s}.serv a:hover{background:rgba(255,255,255,.13);color:var(--cream)}
.serv b{font-family:var(--display);font-size:26px;font-weight:400;display:block}.serv span{opacity:.82;display:block}.serv em{display:inline-block;margin-top:14px;font-style:normal;background:var(--sun);color:var(--ink);font-weight:700;font-size:13px;padding:6px 12px;border-radius:999px}
.note{font-size:13px;color:var(--muted)}.dark .note{color:#cdbfd9}
/* promos */
.promo{border-radius:var(--r);padding:22px;color:#fff;background:linear-gradient(160deg,var(--coral),var(--magenta))}
.promo h3{font-size:1.45rem;color:#fff}.promo p{margin:0 0 14px;font-size:15px;opacity:.95;line-height:1.5}.promo--sea{background:linear-gradient(160deg,var(--sea),var(--plum2))}.promo--olive{background:linear-gradient(160deg,var(--olive),#24361a)}
.promo .note{color:rgba(255,255,255,.8);margin:12px 0 0;font-size:12px}
.btn{display:inline-block;border-radius:999px;padding:10px 18px;font-weight:700;font-size:14.5px;text-decoration:none;background:#fff;color:var(--ink);margin:0 6px 6px 0}.btn:hover{background:var(--sun);color:var(--ink)}
.btn--line{background:none;border:1px solid rgba(255,255,255,.6);color:#fff}
.btn--ink{background:var(--ink);color:#fff}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* map, weather, stay */
.map{height:420px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#e6e2ea}.map--s{height:300px}
.mk{width:16px;height:16px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.meteo{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;min-height:60px}
.meteo__c{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column}
.meteo__c b{font-size:14px}.meteo__t{font-family:var(--display);font-size:30px;line-height:1.1;color:var(--coral)}.meteo__s{font-size:13px;color:var(--muted)}
.wx{display:flex;gap:14px;align-items:center}.wx__t{font-family:var(--display);font-size:46px;line-height:1;color:var(--coral)}.wx__d{font-size:14px;color:var(--muted)}
.wx__days{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:14px;text-align:center;font-size:12.5px}.wx__days div{background:var(--cream);border-radius:10px;padding:7px 2px}.wx__days b{display:block;font-size:14px}
.staymap{border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
/* lists */
.alpha{columns:4 200px;column-gap:28px;padding:0;margin:0;list-style:none}.alpha li{break-inside:avoid;padding:3px 0;font-size:15.5px}.alpha a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}.alpha a:hover{border-color:var(--coral);color:var(--coral)}
.alpha small{color:var(--muted);font-size:12.5px;margin-left:4px}
.letters{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 18px}.letters a{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600;font-size:14px}.letters a:hover{background:var(--coral);color:#fff}
.lh{font-family:var(--display);font-size:1.9rem;color:var(--coral);margin:24px 0 6px;border-bottom:1px solid var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips a{background:var(--card);border:1px solid var(--line);padding:6px 14px;border-radius:999px;text-decoration:none;color:var(--ink);font-size:15px}.chips a:hover{border-color:var(--coral);color:var(--coral)}
/* search */
.sbox input{width:100%;font:inherit;font-size:20px;padding:16px 20px;border:2px solid var(--ink);border-radius:999px;background:#fff}
.sres{list-style:none;padding:0;margin:18px 0 0}.sres li{padding:10px 4px;border-bottom:1px solid var(--line)}.sres a{font-weight:600;font-size:18px;text-decoration:none}.sres p{margin:0;color:var(--muted);font-size:14px}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.tabs button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 15px;font:600 14px var(--body);cursor:pointer;color:var(--ink)}.tabs button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
/* table */
.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);padding:8px}.tbl td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.ad{margin:30px auto;max-width:var(--w);padding:0 24px;text-align:center}.ad__label{display:block;font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
/* footer */
.foot{background:var(--ink);color:#bdb2c9;font-size:15px;margin-top:40px}
.foot__in{max-width:var(--w);margin:0 auto;padding:54px 24px 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:34px}
.foot h4{font-family:var(--display);font-weight:400;color:#fff;font-size:20px;margin:0 0 10px}.foot ul{list-style:none;margin:0;padding:0}.foot li{padding:3px 0}.foot a{color:#bdb2c9;text-decoration:none}.foot a:hover{color:var(--sun)}
.foot__end{max-width:var(--w);margin:0 auto;padding:18px 24px 30px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}
@media(max-width:1000px){.nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--plum2);padding:12px 24px 20px}.nav.open{display:block}.nav ul{flex-direction:column;gap:12px}.navbtn{display:block}
.grid2,.cols{grid-template-columns:1fr}.serv,.services{grid-template-columns:1fr}.foot__in{grid-template-columns:1fr 1fr}}
@media(max-width:640px){body{font-size:16.5px}.top__in{height:72px;gap:12px;padding:0 16px}.w,.phead__in{padding-left:16px;padding-right:16px}.brand img,.brand svg{width:44px;height:44px;flex-basis:44px}.brand b{font-size:25px}.brand small{font-size:9px}
.langs a{padding:3px 6px;font-size:11px}.srch{display:none}.nav{top:72px}.hero{min-height:640px}.hero__in{padding-top:120px;padding-bottom:120px}.hero p{font-size:18px}
.row{grid-auto-columns:230px}.e{height:300px}.section{padding:52px 0}.foot__in{grid-template-columns:1fr}.alpha{columns:2}.cal div{font-size:11px;padding:10px 0;border-radius:8px}.cal{gap:3px}.map{height:340px}}
