/* ============================================================
   CASATO LICITRA — Homepage 2026 (design mockup v3)
   Caricato SOLO sulla pagina Homepage 2026 (vedi functions.php)
   ============================================================ */
:root{
  --ivory:#f4f0e8;
  --ivory-2:#ece6da;
  --ink:#20263a;
  --blu:#263a68;
  --blu-d:#1b2a4e;
  --rosso:#9e3a2d;
  --oro:#c39b4a;
  --serif:'Fraunces',serif;
  --disp:'Fraunces',serif;
  --sans:'Poppins',sans-serif;
}

/* ---------- reset / base ---------- */
html,body{background:var(--ivory);color:var(--ink)}
body{font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden}
p,ul,ol,li,h1,h2,h3,h4,figure{margin:0;padding:0}
ul,ol{list-style:none}
img{display:block;width:100%;height:100%;object-fit:cover;margin:0}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400}
.disp{font-family:var(--disp);font-weight:400}
.kicker{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--oro)}
.kicker::before{content:'✦  ';color:var(--rosso)}
.stars{color:var(--oro);letter-spacing:.45em;font-size:13px}
.reveal{opacity:0;transform:translateY(46px)}
.rooms-src{display:none!important}

/* neutralizza gap/limiti dei container Elementor */
body .e-con{gap:0;max-width:100%}
body .e-con>.e-con-inner{max-width:100%}

/* divisore araldico */
.orn{display:flex;align-items:center;justify-content:center;gap:18px;margin:46px auto 0;max-width:340px}
.orn::before,.orn::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--oro))}
.orn::after{background:linear-gradient(90deg,var(--oro),transparent)}
.orn span{color:var(--rosso);font-size:18px;line-height:1}

/* progress bar (iniettata via JS) */
#prog{position:fixed;top:0;left:0;height:2px;width:100%;background:linear-gradient(90deg,var(--rosso),var(--oro));transform-origin:left;transform:scaleX(0);z-index:200}

/* ---------- header ---------- */
header#hd{position:fixed;top:0;left:0;right:0;width:100%;z-index:100;display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;padding:26px 48px!important;transition:background .5s,color .5s,padding .5s,box-shadow .5s,opacity .45s,transform .45s;color:#fff}
header#hd.hide{opacity:0;transform:translateY(-14px);pointer-events:none}
header#hd.solid{background:rgba(244,240,232,.95);backdrop-filter:blur(8px);color:var(--blu);padding:14px 48px!important;box-shadow:0 1px 0 rgba(38,58,104,.12)}
#hd .elementor-widget{width:auto}
.logo{font-family:var(--disp);font-size:21px;letter-spacing:.18em;text-transform:uppercase;line-height:1.1}
.logo b{font-weight:400;color:var(--oro)}
.logo small{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.5em;opacity:.85;margin-top:4px;text-align:left}
#hd nav{display:flex;gap:36px;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
#hd nav a{position:relative;padding-bottom:4px}
#hd nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--oro);transition:width .4s}
#hd nav a:hover::after{width:100%}
.btn-book{display:inline-block;border:1px solid var(--oro);color:inherit;padding:12px 30px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;transition:all .4s;background:transparent;cursor:pointer}
.btn-book:hover{background:var(--rosso);border-color:var(--rosso);color:#fff}

/* ---------- mega menu camere ---------- */
.mega-cam{position:absolute;top:100%;left:0;right:0;background:rgba(244,240,232,.98);backdrop-filter:blur(10px);color:var(--blu);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .35s,transform .35s,visibility .35s;box-shadow:0 26px 50px rgba(20,29,51,.16);border-top:1px solid rgba(195,155,74,.35)}
header#hd.mega-open .mega-cam{opacity:1;visibility:visible;transform:none}
.mega-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));max-width:1560px;margin:0 auto;padding:26px 30px 30px}
.mega-cam a{display:block;text-align:center;padding:8px 16px;border-left:1px solid rgba(38,58,104,.1)}
.mega-cam a:first-child{border-left:none}
.mega-cam .mim{display:block;overflow:hidden}
.mega-cam .mim img{width:100%;height:150px!important;object-fit:cover;display:block;transition:transform .6s ease}
.mega-cam a:hover .mim img{transform:scale(1.06)}
.mega-cam .mn{display:block;margin-top:13px;font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--blu);line-height:1.5}
.mega-cam a:hover .mn{color:var(--rosso)}
@media(max-width:1000px){.mega-cam{display:none}}

/* link camera nello slider */
.sl-tx .sl-link{color:var(--ivory);border-bottom-color:var(--oro);margin-top:30px}
.sl-tx .sl-link:hover{color:var(--oro)}

/* ---------- hero ---------- */
.hero-wrap{height:200vh;position:relative;display:block}
.hero{position:sticky;top:0;height:100vh;overflow:hidden;display:flex!important;align-items:center;justify-content:center;text-align:center;color:#fff}
.hero-frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.hero-border{position:absolute;inset:calc(12% - 14px) calc(8% - 14px);border:1px solid var(--oro);opacity:0;z-index:3;pointer-events:none;min-height:0}
.hero-media{position:absolute;inset:0;will-change:transform}
.hero-media .elementor-widget-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important}
.hero-media img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.sl-im .stage img,.split .im .clip img{width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(20,26,44,.42),rgba(20,26,44,.14) 45%,rgba(20,26,44,.5));z-index:2}
.hero-inner{position:relative;z-index:4;padding:0 24px!important;will-change:transform,opacity;max-width:1200px}
.hero-inner .k{font-size:12px;letter-spacing:.55em;text-transform:uppercase;margin-bottom:26px;opacity:0;animation:fadeUp 1.4s .5s forwards;color:#fff}
.hero-title{font-family:var(--disp);font-size:clamp(38px,6.5vw,92px);font-weight:400;letter-spacing:.08em;line-height:1.08;text-transform:uppercase;overflow:hidden;color:#fff}
.hero-title span{display:inline-block;transform:translateY(112%);animation:riseIn 1.2s cubic-bezier(.16,1,.3,1) forwards}
.hero-title span:nth-child(2){animation-delay:.15s}
.hero-title .cap{color:var(--oro)}
.hero-inner .sub{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.2vw,26px);margin-top:20px;opacity:0;animation:fadeUp 1.6s 1.2s forwards;color:#fff}
.hero-inner .stars{display:block;margin-top:18px;opacity:0;animation:fadeUp 1.6s 1.5s forwards}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes riseIn{to{transform:none}}
.scroll-cue{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:4;font-size:10px;letter-spacing:.4em;text-transform:uppercase;opacity:.85;color:#fff}
.scroll-cue::after{content:'';display:block;width:1px;height:52px;background:var(--oro);margin:12px auto 0;animation:drop 2.2s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- manifesto ---------- */
.manifesto{padding:24vh 24px!important;text-align:center;max-width:980px!important;margin:0 auto!important}
.mani-title{font-family:var(--serif);font-size:clamp(30px,4.4vw,56px);font-weight:300;line-height:1.32;margin:34px 0;color:var(--ink)}
.mani-title .w{opacity:.12;transition:opacity .3s linear}
.mani-title .rosso{color:var(--rosso);font-style:italic}
.manifesto p:not(.kicker){max-width:620px;margin:0 auto;font-size:16px;color:#4d5265}
.manifesto .elementor-widget{width:100%}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;white-space:nowrap;padding:38px 0!important;border-top:1px solid rgba(38,58,104,.15);border-bottom:1px solid rgba(38,58,104,.15);display:block}
.marquee .elementor-widget{width:auto;max-width:none}
.marquee .track{display:inline-block;will-change:transform;font-family:var(--disp);font-size:clamp(34px,5vw,70px);letter-spacing:.1em;text-transform:uppercase;color:transparent;-webkit-text-stroke:1px rgba(38,58,104,.5)}
.marquee .track em{font-style:normal;color:var(--oro);-webkit-text-stroke:0}
.marquee .track i{font-style:normal;color:var(--rosso);-webkit-text-stroke:0;font-size:.6em;vertical-align:middle}

/* ---------- slider camere ---------- */
.rooms{background:var(--blu);color:var(--ivory);padding:130px 0 150px!important;position:relative;overflow:hidden}
.rooms .head{text-align:center;max-width:800px!important;margin:0 auto 80px!important;padding:0 24px!important}
.rooms-title{font-family:var(--disp);font-size:clamp(28px,3.6vw,50px);text-transform:uppercase;letter-spacing:.1em;margin-top:26px;font-weight:400;line-height:1.3;color:var(--ivory)}
.rooms-title b{font-weight:400;color:var(--oro)}
.slider{display:grid!important;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0!important;max-width:1380px!important;margin:0 auto!important;padding:0 48px!important;align-items:center}
.slider>.e-con{width:auto;max-width:none;min-width:0}
.sl-im{position:relative;height:66vh;overflow:hidden}
.sl-im .frame{position:absolute;inset:18px;border:1px solid rgba(195,155,74,.65);z-index:3;pointer-events:none;min-height:0}
.sl-im .stage{position:absolute;inset:0}
.sl-im .stage img{position:absolute;inset:0;opacity:0}
.sl-im .stage img.cur{opacity:1}
.sl-tx{padding:0 0 0 6vw!important;position:relative;display:block}
.sl-count{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--oro)}
.sl-count b{font-weight:400;font-size:44px;font-style:normal;color:var(--ivory)}
.sl-name{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.2vw,46px);line-height:1.15;margin:18px 0 6px;min-height:1.2em;color:var(--ivory)}
.sl-size{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--oro);margin-bottom:20px}
.sl-desc{color:#c9cede;font-size:15px;max-width:380px;min-height:76px}
.sl-nav{display:flex;gap:14px;margin-top:38px}
.sl-btn{-webkit-appearance:none;appearance:none;border-radius:0;width:58px;height:58px;border:1px solid rgba(195,155,74,.6);background:transparent;color:var(--ivory);font-size:20px;cursor:pointer;transition:all .35s;display:flex;align-items:center;justify-content:center;line-height:1}
.sl-btn:hover{background:var(--oro);color:var(--blu-d);border-color:var(--oro)}
.sl-dots{display:flex;gap:10px;margin-top:30px}
.sl-dots i{width:22px;height:1px;background:rgba(244,240,232,.3);transition:all .4s;cursor:pointer}
.sl-dots i.on{background:var(--oro);width:38px}
.rooms .wm{position:absolute;right:-1vw;bottom:-2vw;font-family:var(--disp);font-size:16vw;line-height:1;color:rgba(244,240,232,.04);pointer-events:none;text-transform:uppercase}

/* ---------- esperienze: scroll orizzontale ---------- */
.hwrap{position:relative;display:block}
.hpin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important}
.hpin>.htrack{margin:0!important;flex-shrink:0}
.htrack{display:flex!important;flex-direction:row!important;align-items:center;gap:5vw!important;padding:0 8vw!important;will-change:transform;max-width:none!important;width:max-content}
.htrack>.e-con{width:auto;max-width:none}
.hintro{flex:0 0 32vw!important;min-width:320px;display:block}
.hintro-title{font-family:var(--disp);font-size:clamp(28px,3.4vw,48px);font-weight:400;line-height:1.2;margin-top:22px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
.hintro-title b{font-weight:400;color:var(--rosso)}
.hintro p:not(.kicker){color:#4d5265;margin-top:18px;max-width:340px}
.hcard{flex:0 0 34vw!important;min-width:320px;height:72vh;position:relative;overflow:hidden;color:#fff;display:flex!important;align-items:flex-end}
.hcard .elementor-widget-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important}
.hcard img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;transform:scale(1.15);will-change:transform;transition:transform 1.2s ease}
.hcard:hover img{transform:scale(1.02)!important}
.hcard::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,0) 45%,rgba(18,24,40,.7));z-index:1}
.hcard::before{content:'';position:absolute;inset:14px;border:1px solid rgba(195,155,74,.4);z-index:2;pointer-events:none}
.hcard .cap{position:relative;z-index:2;padding:34px}
.hcard .cap span{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--oro)}
.hcard .cap h3{font-size:30px;font-weight:400;margin-top:8px;color:#fff;font-family:var(--serif)}
.hcard .num{position:absolute;top:24px;left:28px;z-index:2;font-family:var(--disp);font-size:22px;color:var(--oro)}
.hcard .elementor-widget{width:100%}

/* ---------- recensioni ---------- */
.reviews{background:var(--ivory-2);padding:140px 48px!important;overflow:hidden}
.rev-grid{display:grid!important;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:6vw!important;max-width:1380px!important;margin:0 auto!important;align-items:center}
.rev-grid>.e-con{width:auto;max-width:none;min-width:0}
.rev-head{display:block}
.rev-title{font-family:var(--disp);font-size:clamp(26px,3vw,42px);font-weight:400;text-transform:uppercase;letter-spacing:.08em;line-height:1.25;margin:24px 0;color:var(--ink)}
.rev-title b{font-weight:400;color:var(--rosso)}
.rev-score{display:flex;align-items:baseline;gap:14px;margin:10px 0 6px}
.rev-score b{font-family:var(--serif);font-weight:400;font-size:64px;color:var(--blu);line-height:1}
.rev-score .su5{font-family:var(--serif);font-style:italic;font-size:20px;color:#4d5265}
.ta-dots{color:#00aa6c;font-size:15px;letter-spacing:.2em}
.rev-head p.meta{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#4d5265;margin-top:10px}
.rev-head .link{margin-top:26px}
.rev-cols{display:grid!important;grid-template-columns:1fr 1fr;gap:24px!important;height:120vh;overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
.rev-col{display:flex!important;flex-direction:column!important;gap:24px!important;will-change:transform;width:auto;min-width:0;height:max-content}
.rev-card{background:var(--ivory);border:1px solid rgba(195,155,74,.45);padding:34px 30px;position:relative}
.rev-card::before{content:'“';position:absolute;top:6px;right:20px;font-family:var(--serif);font-size:70px;color:var(--oro);opacity:.5;line-height:1}
.rev-card .ta-dots{font-size:12px}
.rev-card h3{font-family:var(--serif);font-weight:400;font-size:21px;margin:12px 0 8px;line-height:1.3;color:var(--ink)}
.rev-card p{font-size:14px;color:#4d5265;line-height:1.65}
.rev-card .who{margin-top:16px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--blu)}
.rev-card .who i{font-style:normal;color:var(--oro)}
.rev-nav{margin-top:30px}
.rev-nav .sl-btn{color:var(--blu);border-color:rgba(195,155,74,.8)}
.rev-nav .sl-btn:hover{background:var(--oro);color:#fff;border-color:var(--oro)}

/* ---------- split atalaya ---------- */
.split{display:grid!important;grid-template-columns:1fr 1fr;align-items:center;min-height:100vh}
.split>.e-con{width:auto;max-width:none;min-width:0}
.split .im{height:100vh;overflow:hidden;position:relative}
.split .im .clip{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.split .im .clip .elementor-widget-image{position:absolute;inset:0;width:100%;height:100%}
.split .im img{transform:scale(1.25);will-change:transform}
.split .tx{padding:10vw!important;display:block}
.split-title{font-family:var(--serif);font-size:clamp(30px,3.6vw,48px);font-weight:300;line-height:1.2;margin:22px 0;color:var(--ink)}
.split-title .elementor-heading-title::first-letter,.split-title::first-letter{color:var(--rosso)}
.split .tx p:not(.kicker){color:#4d5265;font-size:15.5px;max-width:420px}
.link{display:inline-block;margin-top:34px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;border-bottom:1px solid var(--oro);padding-bottom:6px;color:var(--blu);transition:letter-spacing .4s}
.link:hover{letter-spacing:.42em}
.alt{background:var(--ivory-2)}

/* ---------- piscina: pill video che si espande (stile tidescape) ---------- */
.pool-wrap{position:relative;height:300vh;background:var(--ivory);display:block}
.pool-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center;padding:0 24px!important}
.pool-pin>.elementor-widget{width:100%;position:static}
.pool-l1,.pool-l2{font-family:var(--serif);font-weight:300;font-size:clamp(54px,8.5vw,150px);line-height:1.06;color:var(--ink);will-change:transform,opacity;text-align:center}
.pool-l2 i,.pool-l1 i{font-style:italic;color:var(--rosso)}
.pool-pill{width:132px;height:64px;border-radius:999px;overflow:hidden;position:relative;margin:2vw 0;will-change:width,height,border-radius;flex-shrink:0;box-shadow:0 18px 44px rgba(20,29,51,.22)}
.pool-pill .elementor-widget-image,.pool-pill .elementor-widget-video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important}
.pool-pill img,.pool-pill video,.pool-pill iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover}
.pool-pill img{animation:kenburns 16s ease-in-out infinite alternate;object-position:center 72%}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.15)}}
.pool-cap{position:absolute!important;bottom:5vh;left:0;right:0;width:100%;text-align:center;opacity:0;z-index:5}
.pool-cap .kicker{display:block;margin-bottom:12px;white-space:nowrap}
.pool-cap .link{margin-top:0;white-space:nowrap}

/* ---------- CTA ---------- */
.cta{background:var(--blu-d);color:var(--ivory);text-align:center;padding:150px 24px!important;position:relative;overflow:hidden}
.cta::before{content:'✦';position:absolute;top:60px;left:50%;transform:translateX(-50%);color:var(--oro);font-size:22px}
.cta-title{font-family:var(--disp);font-size:clamp(26px,3.6vw,46px);font-weight:400;max-width:820px!important;margin:26px auto 42px!important;line-height:1.35;text-transform:uppercase;letter-spacing:.06em;color:var(--ivory)}
.cta .btn-book{border-color:var(--oro);color:var(--ivory)}
.cta .btn-book:hover{background:var(--oro);color:var(--blu-d)}

/* ---------- footer ---------- */
footer#ft{background:var(--ivory-2);padding:80px 4vw 0!important;overflow:hidden;font-size:13px;color:#aab1c5;display:block}
.f-card{background:#141d33;border-radius:26px;padding:80px 64px 44px!important;max-width:1380px!important;margin:0 auto!important;position:relative;z-index:2;box-shadow:0 30px 60px rgba(20,29,51,.18);display:block}
.f-giant{font-family:var(--disp);font-size:8.8vw;line-height:1;white-space:nowrap;color:rgba(38,58,104,.12);text-transform:uppercase;letter-spacing:.01em;user-select:none;pointer-events:none;margin-bottom:-3.2vw;position:relative;z-index:1;will-change:transform;display:flex;justify-content:center;width:100%}
.f-grid{display:grid!important;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px!important;max-width:1280px!important;margin:0 auto 70px!important}
.f-grid>.e-con,.f-grid>.elementor-widget{width:auto;max-width:none;min-width:0}
footer#ft .logo{color:var(--ivory);font-size:19px}
footer#ft .motto{font-family:var(--serif);font-style:italic;color:var(--oro);margin-top:16px;letter-spacing:.08em}
footer#ft h4{font-family:var(--sans);font-weight:400;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory);margin-bottom:20px}
footer#ft li{list-style:none;margin-bottom:10px}
footer#ft a:hover{color:#fff}
.f-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:28px;display:flex;justify-content:space-between;max-width:1280px;margin:0 auto;font-size:11px;letter-spacing:.1em}

/* ---------- heading widget: eredita tutto dal wrapper ---------- */
.elementor-widget-heading .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit;white-space:inherit;margin:0;padding:0}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  header#hd{padding:20px 22px!important}
  #hd nav{display:none}
  .slider{grid-template-columns:1fr;padding:0 24px!important}
  .sl-im{height:48vh}
  .sl-tx{padding:44px 0 0!important}
  .rev-grid{grid-template-columns:1fr}
  .rev-cols{grid-template-columns:1fr;height:90vh}
  .rev-col.c2{display:none!important}
  .split{grid-template-columns:1fr}
  .split .im{height:60vh}
  .split .im img{transform:scale(1.1)}
  .split .tx{padding:64px 28px!important}
  .hintro{flex:0 0 78vw!important}
  .hcard{flex:0 0 78vw!important;height:64vh}
  .f-grid{grid-template-columns:1fr 1fr}
  .f-card{padding:56px 28px 36px!important}
  .f-giant{font-size:11.5vw}
}

/* ============================================================
   FINE-TUNING TIPOGRAFICO — Fraunces/Poppins (uniformato)
   ============================================================ */
body{font-size:15px;line-height:1.8}
.kicker{font-size:11px;letter-spacing:.32em}
#hd nav{font-size:12px;letter-spacing:.18em}
.btn-book{letter-spacing:.22em;padding:13px 32px}
.logo{letter-spacing:.12em}
.logo small{letter-spacing:.42em}
/* hero */
.hero-title{letter-spacing:.015em;line-height:1.04}
.hero-inner .k{letter-spacing:.4em}
.hero-inner .sub{line-height:1.5}
.scroll-cue{letter-spacing:.32em}
/* manifesto */
.manifesto{padding:22vh 24px!important}
.mani-title{line-height:1.3;margin:30px 0}
.manifesto p:not(.kicker){font-size:15.5px;line-height:1.85}
/* marquee */
.marquee .track{letter-spacing:.04em}
/* camere */
.rooms{padding:120px 0 140px!important}
.rooms-title{letter-spacing:.02em;line-height:1.15;margin-top:22px}
.sl-count{font-size:18px}
.sl-name{line-height:1.2}
.sl-size{letter-spacing:.28em}
.sl-desc{line-height:1.75}
.rooms .wm{letter-spacing:.02em}
/* esperienze */
.hintro-title{letter-spacing:.02em;line-height:1.15}
.hcard .cap span{letter-spacing:.3em}
.hcard .cap h3{line-height:1.25}
/* recensioni */
.rev-title{letter-spacing:.02em;line-height:1.2}
.rev-card{padding:32px 30px 30px}
.rev-card h3{line-height:1.35}
.rev-card p{line-height:1.75}
.rev-card .who{letter-spacing:.18em}
.rev-head p.meta{letter-spacing:.14em;line-height:1.7}
/* atalaya */
.split-title{line-height:1.25}
.split .tx p:not(.kicker){line-height:1.8}
.link{letter-spacing:.24em}
/* piscina */
.pool-l1,.pool-l2{line-height:1.05;letter-spacing:0}
/* cta */
.cta{padding:130px 24px!important}
.cta-title{letter-spacing:.02em;line-height:1.3;margin:24px auto 38px!important}
/* footer */
.f-giant{letter-spacing:0}
footer#ft h4{letter-spacing:.24em}
.f-bottom{letter-spacing:.08em}
/* mega menu */
.mega-cam .mn{letter-spacing:.16em}

/* ============ stella del blasone al posto di "✦" + logo immagine ============ */
.kicker::before{content:'';display:inline-block;width:10px;height:10px;margin-right:9px;vertical-align:-1px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239e3a2d' d='M24 12L14.2 12.9 17 17 12.9 14.2 12 24 11.1 14.2 7 17 9.8 12.9 0 12 9.8 11.1 7 7 11.1 9.8 12 0 12.9 9.8 17 7 14.2 11.1Z'/%3E%3C/svg%3E") center/contain no-repeat}
.orn span{font-size:0;width:16px;height:16px;display:inline-block;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239e3a2d' d='M24 12L14.2 12.9 17 17 12.9 14.2 12 24 11.1 14.2 7 17 9.8 12.9 0 12 9.8 11.1 7 7 11.1 9.8 12 0 12.9 9.8 17 7 14.2 11.1Z'/%3E%3C/svg%3E") center/contain no-repeat}
.cta::before{content:'';width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c39b4a' d='M24 12L14.2 12.9 17 17 12.9 14.2 12 24 11.1 14.2 7 17 9.8 12.9 0 12 9.8 11.1 7 7 11.1 9.8 12 0 12.9 9.8 17 7 14.2 11.1Z'/%3E%3C/svg%3E") center/contain no-repeat;font-size:0}
.marquee .track i{color:transparent;-webkit-text-stroke:0;display:inline-block;width:.5em;height:.5em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c39b4a' d='M24 12L14.2 12.9 17 17 12.9 14.2 12 24 11.1 14.2 7 17 9.8 12.9 0 12 9.8 11.1 7 7 11.1 9.8 12 0 12.9 9.8 17 7 14.2 11.1Z'/%3E%3C/svg%3E") center/contain no-repeat}
/* logo immagine */
.logo-img{display:inline-block;line-height:0}
.logo-img img{height:54px!important;width:auto!important;max-width:none!important;object-fit:contain;position:static!important}
header#hd .logo-img img{filter:drop-shadow(0 0 10px rgba(244,240,232,.9)) drop-shadow(0 0 22px rgba(244,240,232,.55))}
header#hd.solid .logo-img img{filter:none}
footer#ft .logo-img img{height:62px!important}

/* ============ fix bordo destro / riempimento immagini ============ */
/* didascalie hcard in basso (il container Elementor le spingeva in alto) */
.hcard{flex-direction:row!important;align-items:flex-end!important;justify-content:flex-start!important}
.hcard>.elementor-widget{width:100%;position:static}
/* le immagini riempiono SEMPRE il loro riquadro, fino al bordo destro */
.pool-pill .elementor-widget-image,.hero-media .elementor-widget-image,.split .im .clip .elementor-widget-image,.hcard .elementor-widget-image{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important}
.hero-media img,.sl-im .stage img,.split .im .clip img,.pool-pill img,.hcard img{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;min-width:100%;min-height:100%;max-width:none!important;object-fit:cover;display:block}
/* respiro a destra per la colonna testo dello slider camere */
.sl-tx{padding:0 40px 0 6vw!important}
@media(max-width:1000px){.sl-tx{padding:44px 24px 0 0!important}}

/* ============ FIX CORNICI: i container assoluti con inset non devono avere width:100% ============ */
/* Elementor da' width:100% ai container: con left+right impostati la larghezza
   la decide l'inset, altrimenti la cornice sborda oltre il lato destro */
.hero-border,.sl-im .frame,.sl-im .stage,.hero-frame,.hero-media,.split .im .clip,.pool-frame{width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;max-width:none!important;flex:none!important}

/* ============ esperienze: card polaroid inclinate (stile lasala) ============ */
.hcard{background:#fff;padding:14px 14px 0;height:auto!important;min-height:0;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;overflow:visible;box-shadow:0 26px 54px rgba(20,29,51,.18);color:var(--ink);transform:rotate(var(--hrot,0deg))}
.hcard::after,.hcard::before{content:none!important}
.htrack .hcard:nth-child(2){--hrot:-5deg}
.htrack .hcard:nth-child(3){--hrot:4deg;margin-top:6vh}
.htrack .hcard:nth-child(4){--hrot:-3deg;margin-top:-4vh}
.htrack .hcard:nth-child(5){--hrot:6deg;margin-top:5vh}
.hcard .elementor-widget-image{position:relative!important;inset:auto!important;width:100%!important;height:50vh!important;min-height:300px;overflow:hidden}
.hcard img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover;transform:none;transition:transform 1s ease}
.hcard:hover img{transform:scale(1.04)!important}
.hcard .num{position:absolute;top:26px;left:26px;z-index:2;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35);font-family:var(--disp);font-size:20px}
.hcard .cap{position:static;padding:18px 8px 20px;z-index:auto}
.hcard .cap span{color:var(--oro);font-size:10px;letter-spacing:.3em;text-transform:uppercase}
.hcard .cap h3{color:var(--ink);font-family:var(--serif);font-style:italic;font-weight:300;font-size:30px;line-height:1.2;margin-top:6px}
@media(max-width:1000px){.hcard .elementor-widget-image{height:42vh!important}}

/* arco: niente rotazioni/offset fissi (li calcola il JS in base alla posizione) */
.htrack .hcard:nth-child(2),.htrack .hcard:nth-child(3),.htrack .hcard:nth-child(4),.htrack .hcard:nth-child(5){--hrot:0deg;margin-top:0}
.hpin{align-items:flex-start!important;padding-top:8vh!important}
.htrack{align-items:flex-start!important}
.hintro{margin-top:14vh}

/* esperienze: prima si legge l'intro, le card entrano scorrendo da destra */
.hintro{flex:0 0 54vw!important;margin-top:0;display:flex!important;flex-direction:column!important;justify-content:center!important;min-height:60vh}
@media(max-width:1000px){.hintro{flex:0 0 84vw!important;min-height:auto}}

/* ============ form contatti nella CTA ============ */
.cta-oppure{margin-top:44px;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--oro)}
.cta-form{max-width:640px;margin:26px auto 0;text-align:left}
.cta .elementor-widget{width:100%}
.cta-form .ctaf-row{display:flex;gap:16px}
.cta-form .ctaf-row p,.cta-form p{flex:1;margin:0}
.cta-form .wpcf7-form-control-wrap{display:block;margin-bottom:16px}
.cta-form input[type=text],.cta-form input[type=email],.cta-form input[type=tel],.cta-form textarea{width:100%;background:rgba(244,240,232,.06);border:1px solid rgba(195,155,74,.45);color:var(--ivory);font-family:var(--sans);font-weight:300;font-size:14px;letter-spacing:.04em;padding:14px 18px;border-radius:0;outline:none;transition:border-color .3s,background .3s;-webkit-appearance:none}
.cta-form input::placeholder,.cta-form textarea::placeholder{color:rgba(244,240,232,.55);letter-spacing:.06em}
.cta-form input:focus,.cta-form textarea:focus{border-color:var(--oro);background:rgba(244,240,232,.1)}
.cta-form textarea{resize:vertical;min-height:110px}
.cta-form input[type=submit]{display:block;margin:8px auto 0;background:transparent;border:1px solid var(--oro);color:var(--ivory);padding:14px 40px;font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:all .4s;border-radius:0;-webkit-appearance:none}
.cta-form input[type=submit]:hover{background:var(--oro);color:var(--blu-d)}
.cta-form .wpcf7-not-valid-tip{color:#e2a49a;font-size:12px;margin-top:-10px;margin-bottom:12px}
.cta-form .wpcf7-response-output{border:1px solid rgba(195,155,74,.5)!important;color:var(--ivory);font-size:13px;padding:12px 16px!important;margin:18px 0 0!important;text-align:center}
.cta-form .wpcf7-spinner{display:block;margin:10px auto 0}
@media(max-width:700px){.cta-form .ctaf-row{flex-direction:column;gap:0}}

/* ============ form CTA: barra bianca compatta su una riga ============ */
.cta-form{max-width:1200px;margin:36px auto 0}
.cta-form form{background:#fff;border-radius:44px;padding:40px 48px;box-shadow:0 30px 70px rgba(0,0,0,.28)}
.ctaf-bar{display:flex;align-items:center;gap:36px;width:100%}
.ctaf-t{font-family:var(--serif);font-size:32px;line-height:1;color:var(--ink);padding-right:8px;white-space:nowrap}
.ctaf-f{flex:1;min-width:0;padding:0;text-align:left;position:relative}
.ctaf-f label{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);font-weight:600;margin:0 0 6px}
.ctaf-f .wpcf7-form-control-wrap{display:block;margin:0}
.cta-form .ctaf-f input[type=text],.cta-form .ctaf-f input[type=email],.cta-form .ctaf-f input[type=tel]{width:100%;background:none!important;border:none!important;padding:0!important;color:var(--ink)!important;font-family:var(--sans);font-weight:300;font-size:18px;letter-spacing:.01em;outline:none;border-radius:0}
.cta-form .ctaf-f input::placeholder{color:#b9bdca}
.cta-form .ctaf-bar input[type=submit]{flex:0 0 66px;width:66px;height:66px;border-radius:50%!important;background-color:var(--ink)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M22 16v-2l-8.5-5V3.5C13.5 2.67 12.83 2 12 2s-1.5.67-1.5 1.5V9L2 14v2l8.5-2.5V19L8 20.5V22l4-1 4 1v-1.5L13.5 19v-5.5L22 16z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:26px 26px!important;border:none!important;box-shadow:0 0 0 4px #fff,0 0 0 5px rgba(32,38,58,.14);color:transparent!important;font-size:0!important;line-height:0;padding:0!important;margin:0 0 0 8px!important;cursor:pointer;transition:transform .3s,background-color .3s;display:block}
.cta-form .ctaf-bar input[type=submit]:hover{background-color:var(--rosso)!important;transform:scale(1.06)}
.ctaf-legal{display:flex;align-items:center;gap:9px;margin:20px 0 0;font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9298a8}
.ctaf-legal .wpcf7-list-item{margin:0}
.ctaf-legal a{color:#9298a8;text-decoration:underline;text-underline-offset:2px}
.ctaf-legal input[type=checkbox]{-webkit-appearance:none;appearance:none;width:15px;height:15px;border:1px solid #c2c6d2;border-radius:50%;margin:0 4px 0 0;cursor:pointer;position:relative;top:2px;flex-shrink:0;transition:all .25s}
.ctaf-legal input[type=checkbox]:checked{background:var(--ink);border-color:var(--ink)}
.cta-form .wpcf7-not-valid-tip{position:absolute;font-size:10px;margin:2px 0 0;color:var(--rosso)}
.cta-form .wpcf7-response-output{border:none!important;color:rgba(244,240,232,.9);font-size:13px;text-align:center;margin:14px 0 0!important;padding:0!important}
@media(max-width:900px){
  .cta-form form{border-radius:30px;padding:28px 22px}
  .ctaf-bar{flex-wrap:wrap;gap:18px;justify-content:center}
  .ctaf-t{width:100%;padding:0 0 4px;text-align:center}
  .ctaf-f{flex:1 1 42%}
  .cta-form .ctaf-bar input[type=submit]{margin:8px auto 0!important;flex-basis:66px;box-shadow:none}
  .ctaf-legal{justify-content:center;text-align:center}
}
