/* ==========================================================================
   Villa Cava del Tom — «Granito e Maestrale»
   Design system: sabbia-granito, blu mare, turchese piscina; Fraunces + Manrope.
   ========================================================================== */

@font-face{font-family:"Fraunces";src:url(../fonts/fraunces.woff2) format("woff2");font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-italic.woff2) format("woff2");font-weight:300 500;font-style:italic;font-display:swap}
@font-face{font-family:"Manrope";src:url(../fonts/manrope.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
	--sand:#f4efe8;      /* sfondo principale: granito chiaro */
	--chalk:#fbf9f5;     /* superfici: calce */
	--stone:#e6ddd1;     /* bordi e superfici secondarie */
	--granite:#8c8378;   /* decorazioni, linee */
	--ink:#0f2a3a;       /* testo e sezioni scure: blu mare profondo */
	--ink-2:#3b4c56;     /* testo secondario (7:1 su sabbia) */
	--night:#0a1c27;     /* sezioni notturne */
	--turq:#3cc3cd;      /* accento su fondo scuro */
	--turq-d:#0b6e78;    /* accento su fondo chiaro (5,3:1 su sabbia) */
	--bloom:#b23a63;     /* bouganville: solo tocchi */
	--white:#fff;

	--f-display:"Fraunces", "Iowan Old Style", Georgia, serif;
	--f-text:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

	--fs-xs:.78rem;
	--fs-s:.9rem;
	--fs-body:clamp(1rem, .96rem + .2vw, 1.0875rem);
	--fs-lead:clamp(1.3rem, 1.05rem + 1.1vw, 2rem);
	--fs-h3:clamp(1.35rem, 1.15rem + .8vw, 1.8rem);
	--fs-h2:clamp(2.1rem, 1.4rem + 3vw, 4.4rem);
	--fs-h1:clamp(3rem, 1.6rem + 7vw, 9.5rem);
	--fs-h1-page:clamp(2.6rem, 1.5rem + 5vw, 6.8rem);

	--gutter:clamp(1.25rem, .6rem + 3vw, 4rem);
	--space-s:clamp(1rem, .8rem + 1vw, 1.75rem);
	--space-m:clamp(2rem, 1.2rem + 3vw, 4.5rem);
	--space-l:clamp(4.5rem, 2.5rem + 8vw, 11rem);
	--max:1320px;         /* larghezza del contenuto: logo, testi, foto allineati */
	--max-pad:calc(var(--max) + 2 * var(--gutter)); /* per i blocchi con il margine interno */
	--radius:2px;
	--ease:cubic-bezier(.2,.7,.1,1);
	--header-h:clamp(64px, 56px + 1.5vw, 84px);
}

/* ---------- base ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sand);color:var(--ink);font-family:var(--f-text);font-size:var(--fs-body);line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--turq-d)}
:focus-visible{outline:2px solid var(--turq-d);outline-offset:3px}
::selection{background:var(--turq);color:var(--night)}
h1,h2,h3,h4,h5,h6{font-family:var(--f-display);font-weight:360;line-height:1.04;letter-spacing:-.015em;margin:0;overflow-wrap:normal;hyphens:manual;font-variation-settings:"SOFT" 30,"WONK" 0}
h1 em,h2 em,h3 em,.vct-footer__title em{font-style:italic;font-weight:320;color:var(--turq-d)}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.vct-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vct-skip{position:fixed;left:1rem;top:-4rem;z-index:1000;background:var(--ink);color:var(--sand);padding:.7rem 1rem;transition:top .2s}
.vct-skip:focus{top:1rem;color:var(--sand)}

/* Elementor: azzeriamo spaziature e tipografia di default, il ritmo lo decidono le classi vct */
.elementor .e-con,.e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--widgets-spacing:0px;--kit-widget-spacing:0px;--margin-top:0px;--margin-bottom:0px}
.e-con>.elementor-widget,.e-con .elementor-widget{margin:0;min-width:0}
.elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;margin:0;text-transform:inherit}
.elementor-widget-text-editor{color:inherit}
.elementor-widget-image img{width:100%}
.elementor-widget-image a{display:block}
.e-con{min-width:0}

/* ---------- tipografia di sezione ---------- */
.vct-eyebrow,.vct-eyebrow p{font-family:var(--f-text);font-size:var(--fs-xs);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--turq-d);margin:0 0 1.7rem;display:flex;align-items:center;gap:.9rem;line-height:1.5}
.vct-eyebrow p{margin:0}
.vct-eyebrow::before,.vct-eyebrow p::before{content:"";width:2.4rem;height:1px;background:currentColor;flex:none}
.vct-eyebrow p::before{display:none}
.vct-h1{font-family:var(--f-display);font-size:var(--fs-h1);font-weight:320;line-height:.98;letter-spacing:-.03em}
.vct-h1-page{font-family:var(--f-display);font-size:var(--fs-h1-page);font-weight:330;line-height:1.02;letter-spacing:-.025em}
.vct-h2{font-family:var(--f-display);font-size:var(--fs-h2);font-weight:340;line-height:1.08;letter-spacing:-.02em;margin-bottom:1.6rem}
.vct-h3{font-family:var(--f-display);font-size:var(--fs-h3);font-weight:400;line-height:1.15;margin-bottom:.8rem}
.vct-lead,.vct-lead p{font-family:var(--f-display);font-size:var(--fs-lead);font-weight:330;line-height:1.35;letter-spacing:-.005em}
.vct-text{max-width:38rem;color:var(--ink-2)}
.vct-text strong{color:var(--ink);font-weight:600}
.vct-text ul,.vct-list ul{list-style:none;padding:0;margin:0 0 1em}
.vct-text li,.vct-list li{position:relative;padding:.55rem 0 .55rem 1.6rem;border-bottom:1px solid var(--stone)}
.vct-text li::before,.vct-list li::before{content:"";position:absolute;left:0;top:1.25em;width:.8rem;height:1px;background:var(--turq-d)}
.vct-note,.vct-note p{font-size:var(--fs-s);color:var(--ink-2)}

/* ---------- pulsanti ---------- */
.vct-btn,.vct-b .elementor-button{display:inline-flex;align-items:center;gap:.8rem;min-height:48px;padding:.95rem 1.7rem;border:1px solid var(--ink);background:var(--ink);color:var(--sand);font-family:var(--f-text);font-size:var(--fs-xs);font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius);cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);line-height:1.2}
.vct-btn::after,.vct-b .elementor-button-text::after{content:"→";font-size:1.1em;letter-spacing:0;display:inline-block;transition:transform .35s var(--ease);margin-left:.8rem}
.vct-btn:hover,.vct-b .elementor-button:hover{background:var(--turq-d);border-color:var(--turq-d);color:var(--white)}
.vct-btn:hover::after,.vct-b .elementor-button:hover .elementor-button-text::after{transform:translateX(.3rem)}
.vct-btn--light,.vct-b--light .elementor-button{background:var(--sand);border-color:var(--sand);color:var(--ink)}
.vct-btn--light:hover,.vct-b--light .elementor-button:hover{background:var(--turq);border-color:var(--turq);color:var(--night)}
.vct-b--ghost .elementor-button{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white)}
.vct-b--ghost .elementor-button:hover{background:var(--white);border-color:var(--white);color:var(--ink)}
.vct-b--line .elementor-button{background:transparent;border:0;border-bottom:1px solid currentColor;color:var(--ink);padding:.6rem 0;min-height:44px;border-radius:0}
.vct-b--line .elementor-button:hover{background:transparent;color:var(--turq-d)}
.vct-btn--small{min-height:44px;padding:.7rem 1.2rem}
.vct-btn--small::after{display:none}
.vct-b--film .elementor-button-text::after{content:"▶";font-size:.7em}
.vct-link{font-weight:600;color:var(--turq-d)}
.vct-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:2rem}
.e-con.vct-actions{display:flex;flex-direction:row}

/* ---------- testata ---------- */
.vct-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);color:var(--ink);background:rgba(244,239,232,.92);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid rgba(15,42,58,.08);transition:background .5s var(--ease),color .5s var(--ease),transform .5s var(--ease),border-color .5s}
.has-hero .vct-header:not(.is-scrolled):not(.is-open){background:transparent;color:var(--white);border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.has-hero .vct-header:not(.is-scrolled):not(.is-open)::before{content:"";position:absolute;inset:0 0 -60px;background:linear-gradient(rgba(6,20,30,.55),transparent);pointer-events:none;z-index:-1}
.vct-header.is-hidden{transform:translateY(-100%)}
.vct-header__in{height:100%;max-width:var(--max-pad);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.vct-logo{display:block;width:clamp(150px,120px + 4vw,200px);color:inherit;flex:none}
.vct-logo svg{width:100%;height:auto;display:block}
.vct-logo:hover{color:inherit;opacity:.8}
.vct-nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2.4rem)}
.vct-nav__list{display:flex;gap:clamp(1rem,1.6vw,2.2rem);list-style:none;margin:0;padding:0}
.vct-nav__list a{font-size:var(--fs-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;position:relative;padding:.6rem 0;display:inline-block}
.vct-nav__list a::after{content:"";position:absolute;left:0;right:0;bottom:.25rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.vct-nav__list a:hover,.vct-nav__list a[aria-current]{color:inherit}
.vct-nav__list a:hover::after,.vct-nav__list a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.vct-nav__extra{display:flex;align-items:center;gap:1.4rem}
.vct-lang{display:flex;list-style:none;margin:0;padding:0;gap:.2rem;font-size:var(--fs-xs);font-weight:700;letter-spacing:.14em}
.vct-lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;text-decoration:none;opacity:.6}
.vct-lang a[aria-current],.vct-lang a:hover{opacity:1;color:inherit}
.vct-lang li+li::before{content:"/";opacity:.4;margin-right:.2rem}
.vct-lang li{display:flex;align-items:center}
.has-hero .vct-header:not(.is-scrolled):not(.is-open) .vct-btn{background:transparent;border-color:rgba(255,255,255,.75);color:var(--white)}
.has-hero .vct-header:not(.is-scrolled):not(.is-open) .vct-btn:hover{background:var(--white);color:var(--ink)}
.vct-burger{display:none;width:48px;height:48px;border:0;border-radius:0;background:none;color:inherit;cursor:pointer;position:relative;padding:0}
.vct-burger:hover,.vct-burger:focus{background:none;color:inherit;border:0}
.vct-burger__lines,.vct-burger__lines::before,.vct-burger__lines::after{position:absolute;left:12px;width:24px;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.vct-burger__lines{top:23px}
.vct-burger__lines::before,.vct-burger__lines::after{content:"";left:0}
.vct-burger__lines::before{top:-7px}
.vct-burger__lines::after{top:7px}
.is-open .vct-burger__lines{background:transparent}
.is-open .vct-burger__lines::before{transform:translateY(7px) rotate(45deg)}
.is-open .vct-burger__lines::after{transform:translateY(-7px) rotate(-45deg)}

@media (max-width:1099px){
	.vct-burger{display:block;z-index:2}
	.vct-nav{position:fixed;inset:0;z-index:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:2.5rem;padding:calc(var(--header-h) + 2rem) var(--gutter) 3rem;background:var(--ink);color:var(--sand);visibility:hidden;opacity:0;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease),opacity .4s,visibility 0s .7s;overflow-y:auto}
	.is-open .vct-nav{visibility:visible;opacity:1;clip-path:inset(0);transition:clip-path .7s var(--ease),opacity .2s}
	.vct-nav__list{flex-direction:column;gap:.4rem}
	.vct-nav__list a{font-family:var(--f-display);font-size:clamp(2rem,1.4rem + 4vw,3.2rem);font-weight:330;letter-spacing:-.01em;text-transform:none;padding:.2rem 0}
	.vct-nav__list a::after{bottom:0}
	.vct-nav__extra{flex-wrap:wrap}
	.vct-nav .vct-btn{background:var(--sand);color:var(--ink);border-color:var(--sand)}
	.is-open .vct-logo{color:var(--sand);z-index:2;position:relative}
	.vct-header.is-open{background:transparent;color:var(--sand);border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* ---------- impaginazione ---------- */
.vct-main{display:block}
body:not(.has-hero) .vct-main{padding-top:var(--header-h)}
.e-con.vct-section{display:block;padding:var(--space-l) var(--gutter);position:relative}
.e-con.vct-section--tight{padding-top:var(--space-m);padding-bottom:var(--space-m)}
.e-con.vct-section--chalk{background:var(--chalk)}
.e-con.vct-section--stone{background:var(--stone)}
.e-con.vct-section--dark{background:var(--ink);color:var(--sand)}
.vct-section--dark .vct-text,.vct-section--dark .vct-note,.vct-section--dark .vct-note p{color:rgba(244,239,232,.82)}
.vct-section--dark .vct-eyebrow,.vct-section--dark .vct-eyebrow p{color:var(--turq)}
.vct-section--dark h2 em,.vct-section--dark h3 em{color:var(--turq)}
.vct-section--dark .vct-text li{border-color:rgba(244,239,232,.14)}
.vct-section--dark .vct-text li::before{background:var(--turq)}
.vct-section--dark .vct-b .elementor-button{background:var(--sand);border-color:var(--sand);color:var(--ink)}
.vct-section--dark .vct-b .elementor-button:hover{background:var(--turq);border-color:var(--turq);color:var(--night)}
.vct-section--dark .vct-b--line .elementor-button{background:transparent;color:var(--sand)}
.vct-section--dark .vct-b--line .elementor-button:hover{color:var(--turq)}
.e-con.vct-wrap{display:block;max-width:var(--max);margin:0 auto;width:100%}
.e-con.vct-narrow{display:block;max-width:58rem;margin:0 auto;width:100%}
.e-con.vct-center{text-align:center}
.vct-center .vct-eyebrow,.vct-center .vct-eyebrow p{justify-content:center}
.vct-center .vct-text{margin-left:auto;margin-right:auto}
.e-con.vct-center.vct-actions,.vct-center .e-con.vct-actions{justify-content:center}

/* ---------- hero ---------- */
.e-con.vct-hero{display:grid;position:relative;min-height:100vh;min-height:100svh;color:var(--white);align-items:end;overflow:hidden;background:var(--night);isolation:isolate}
.e-con.vct-hero--page{min-height:78vh;min-height:78svh}
.vct-hero__media{position:absolute!important;inset:0;z-index:-2;margin:0!important;width:100%!important;height:100%}
.vct-hero__media .elementor-widget-container,.vct-hero__media img{width:100%;height:100%}
.vct-hero__media img{object-fit:cover;transform:scale(1.08);animation:vct-hero-in 2.6s var(--ease) forwards;will-change:transform}
.vct-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,20,30,.35) 0%,rgba(6,20,30,0) 30%,rgba(6,20,30,.12) 55%,rgba(6,20,30,.72) 100%)}
.e-con.vct-hero__content{display:block;position:relative;padding:calc(var(--header-h) + 3rem) var(--gutter) clamp(3rem,6vw,6rem);max-width:var(--max-pad);width:100%;margin:0 auto}
.vct-hero .vct-eyebrow,.vct-hero .vct-eyebrow p{color:var(--white)}
.vct-hero .vct-h1,.vct-hero .vct-h1-page{max-width:14ch;text-shadow:0 2px 40px rgba(0,0,0,.18)}
.vct-hero .vct-h1 em,.vct-hero .vct-h1-page em{color:#b5f0f2}
.vct-hero__sub,.vct-hero__sub p{max-width:36rem;font-size:clamp(1.05rem,.95rem + .45vw,1.3rem);line-height:1.55;margin-top:1.6rem;color:rgba(255,255,255,.92)}
.vct-hero .vct-reveal-line{display:block;animation:vct-rise 1.3s var(--ease) both}
.vct-hero .vct-eyebrow{animation:vct-rise 1.1s .15s var(--ease) both}
.vct-hero .vct-h1,.vct-hero .vct-h1-page{animation:vct-rise 1.3s .3s var(--ease) both}
.vct-hero__sub{animation:vct-rise 1.2s .55s var(--ease) both}
.vct-hero .vct-actions{animation:vct-rise 1.2s .75s var(--ease) both}
.vct-scroll{position:absolute;right:var(--gutter);bottom:clamp(3rem,6vw,6rem);display:flex;flex-direction:column;align-items:center;gap:.8rem;font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;writing-mode:vertical-rl;color:rgba(255,255,255,.85)}
.vct-scroll::after{content:"";width:1px;height:64px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,0));animation:vct-drip 2.4s var(--ease) infinite}
@keyframes vct-hero-in{from{transform:scale(1.14)}to{transform:scale(1.02)}}
@keyframes vct-rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes vct-drip{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}}

/* ---------- marquee dei luoghi ---------- */
.vct-marquee{overflow:hidden;padding:clamp(1.6rem,3vw,2.6rem) 0;border-block:1px solid var(--stone);background:var(--sand);white-space:nowrap;user-select:none}
.vct-marquee__track{display:inline-flex;gap:3rem;animation:vct-marquee 48s linear infinite;padding-left:3rem}
.vct-marquee span{font-family:var(--f-display);font-size:clamp(1.6rem,1rem + 2.6vw,3.4rem);font-weight:320;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:3rem}
.vct-marquee span:nth-child(even){font-style:italic;color:var(--turq-d)}
.vct-marquee span::after{content:"✦";font-size:.4em;color:var(--granite);font-style:normal}
.vct-marquee:hover .vct-marquee__track{animation-play-state:paused}
@keyframes vct-marquee{to{transform:translateX(-50%)}}

/* ---------- intro ---------- */
.e-con.vct-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-m);max-width:var(--max);margin:0 auto;width:100%}
@media (min-width:960px){.e-con.vct-intro{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start}}
.vct-intro .vct-lead{max-width:48rem}

/* ---------- numeri ---------- */
.vct-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));border-top:1px solid var(--stone);max-width:var(--max);margin:var(--space-m) auto 0}
.vct-stats>div{padding:1.6rem 1.2rem 0 0;border-right:1px solid var(--stone);min-width:0}
.vct-stats>div:last-child{border-right:0}
.vct-stats b{display:block;font-family:var(--f-display);font-weight:300;font-size:clamp(2.6rem,1.8rem + 3vw,4.6rem);line-height:1;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:lining-nums}
.vct-stats b small{font-size:.45em;margin-left:.1em;letter-spacing:0}
.vct-stats__l{display:block;margin-top:.7rem;font-size:var(--fs-s);color:var(--ink-2);line-height:1.4}
@media (max-width:600px){.vct-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.vct-stats>div{border-right:0;border-bottom:1px solid var(--stone);padding-bottom:1.4rem}.vct-stats>div:nth-child(odd){border-right:1px solid var(--stone);padding-right:1rem}.vct-stats>div:nth-child(even){padding-left:1rem}.vct-stats>div:last-child:nth-child(odd){grid-column:1/-1;border-right:0}}

/* ---------- capitoli ---------- */
.e-con.vct-chapter{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-m);max-width:var(--max);margin:0 auto;width:100%;align-items:center;position:relative}
@media (min-width:960px){
	.e-con.vct-chapter{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(3rem,6vw,7rem)}
	.e-con.vct-chapter--rev{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
	.vct-chapter--rev>.vct-chapter__media{order:2}
}
.e-con.vct-chapter__media{display:block;position:relative;min-width:0}
.e-con.vct-chapter__text{display:block;position:relative;min-width:0}
.vct-num{position:absolute;top:-.55em;right:0;font-family:var(--f-display);font-size:clamp(5rem,3rem + 8vw,11rem);font-weight:300;line-height:1;color:transparent;-webkit-text-stroke:1px var(--granite);opacity:.55;pointer-events:none;z-index:0}
.vct-chapter__text>*{position:relative;z-index:1}
.vct-chapter__text>.vct-num{position:absolute;z-index:0}
.vct-frame{position:relative;overflow:hidden}
.vct-frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
.vct-frame--tall img{aspect-ratio:4/5}
.vct-frame--wide img{aspect-ratio:16/9}
.vct-inset{position:absolute!important;width:42%!important;right:-4%;bottom:-12%;box-shadow:0 30px 60px -20px rgba(10,28,39,.45);border:clamp(6px,.8vw,12px) solid var(--sand)}
.vct-inset img{aspect-ratio:4/5;object-fit:cover}
.vct-chapter--rev .vct-inset{right:auto;left:-4%}
.vct-section--chalk .vct-inset{border-color:var(--chalk)}
@media (max-width:959px){.vct-inset{display:none}}
.vct-chapter+.vct-chapter{margin-top:var(--space-l)}

/* ---------- rivelazioni allo scroll (solo se JS attivo) ---------- */
.js .vct-reveal{clip-path:inset(14% 8% 14% 8%);transition:clip-path 1.4s var(--ease)}
.js .vct-reveal img{transform:scale(1.18);transition:transform 1.8s var(--ease)}
.js .vct-reveal.is-in{clip-path:inset(0 0 0 0)}
.js .vct-reveal.is-in img{transform:scale(1)}
.js .vct-fade{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .vct-fade.is-in{opacity:1;transform:none}
.vct-par img{will-change:transform}

/* ---------- galleria orizzontale ---------- */
.vct-hs{position:relative;background:var(--ink);color:var(--sand)}
.vct-hs__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem;max-width:var(--max-pad);width:100%;box-sizing:border-box;margin:0 auto;padding:var(--space-l) var(--gutter) var(--space-m)}
.vct-hs__head h2{font-family:var(--f-display);font-size:var(--fs-h2);font-weight:340;max-width:16ch}
.vct-hs__head h2 em{color:var(--turq)}
.vct-hs__head p{max-width:26rem;color:rgba(244,239,232,.8);margin:0}
.vct-hs__track{display:flex;gap:clamp(1rem,2vw,2rem);padding:0 max(var(--gutter),calc((100% - var(--max)) / 2)) var(--space-l);scroll-padding-inline:max(var(--gutter),calc((100% - var(--max)) / 2));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--turq) transparent}
.vct-hs__item{flex:0 0 auto;width:min(78vw,520px);scroll-snap-align:start;margin:0}
.vct-hs__item:nth-child(3n+2){width:min(70vw,400px);margin-top:4rem}
.vct-hs__item:nth-child(3n){width:min(84vw,640px)}
.vct-hs__item button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;color:inherit;overflow:hidden}
.vct-hs__item img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease)}
.vct-hs__item:nth-child(3n) img{aspect-ratio:4/3}
.vct-hs__item button:hover img{transform:scale(1.05)}
.vct-hs__item figcaption{display:flex;gap:1rem;align-items:baseline;margin-top:1rem;font-size:var(--fs-s);color:rgba(244,239,232,.78)}
.vct-hs__item figcaption b{font-family:var(--f-display);font-weight:400;font-size:1.2rem;color:var(--sand)}
/* su schermi grandi la galleria scorre in orizzontale mentre la pagina scende */
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
	.js .vct-hs[data-pin]{height:var(--hs-h,300vh)}
	.js .vct-hs[data-pin] .vct-hs__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
	.js .vct-hs[data-pin] .vct-hs__head{padding-top:calc(var(--header-h) + 1rem);padding-bottom:2.2rem}
	.js .vct-hs[data-pin] .vct-hs__track{overflow:visible;padding-bottom:0;will-change:transform}
	.js .vct-hs[data-pin] .vct-hs__item{width:auto;margin-top:0}
	.js .vct-hs[data-pin] .vct-hs__item button{width:auto;height:min(52vh,520px)}
	.js .vct-hs[data-pin] .vct-hs__item img{height:100%;width:auto;max-width:none;aspect-ratio:var(--ar)}
	.js .vct-hs[data-pin] .vct-hs__item:nth-child(3n+2){align-self:flex-end}
	.js .vct-hs[data-pin] .vct-hs__item:nth-child(3n+2) button{height:min(40vh,400px)}
	.js .vct-hs[data-pin] .vct-hs__track{align-items:flex-start}
	.vct-hs__progress{position:absolute;left:max(var(--gutter),calc((100% - var(--max)) / 2));right:max(var(--gutter),calc((100% - var(--max)) / 2));bottom:2rem;height:1px;background:rgba(244,239,232,.2)}
	.vct-hs__progress i{display:block;height:100%;background:var(--turq);transform-origin:left;transform:scaleX(var(--p,0))}
}
.vct-hs__progress{display:none}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){.js .vct-hs[data-pin] .vct-hs__progress{display:block}}

/* ---------- sezione notturna ---------- */
.e-con.vct-night{display:grid;position:relative;min-height:92vh;color:var(--sand);background:var(--night);overflow:hidden;align-items:center;isolation:isolate}
.vct-night__media{position:absolute!important;inset:0;z-index:-2;width:100%!important;height:100%}
.vct-night__media .elementor-widget-container{width:100%;height:100%}.vct-night__media img{width:100%;height:116%;object-fit:cover;position:relative;top:-8%}
.vct-night::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 20% 60%,rgba(10,28,39,.86),rgba(10,28,39,.35) 60%,rgba(10,28,39,.15))}
.e-con.vct-night__content{display:block;max-width:var(--max-pad);width:100%;margin:0 auto;padding:var(--space-l) var(--gutter)}
.vct-night .vct-h2{max-width:12ch}
.vct-night .vct-h2 em{color:var(--turq)}
.vct-night .vct-text{color:rgba(244,239,232,.86)}
.vct-night .vct-eyebrow,.vct-night .vct-eyebrow p{color:var(--turq)}

/* ---------- mosaico e schede ---------- */
.e-con.vct-duo{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1rem,2vw,2rem);max-width:var(--max);margin:var(--space-m) auto 0;width:100%}
@media (min-width:760px){.e-con.vct-duo{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end}.e-con.vct-duo--even{grid-template-columns:repeat(3,minmax(0,1fr))}}
.e-con.vct-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1px;background:var(--stone);border:1px solid var(--stone);max-width:var(--max);margin:var(--space-m) auto 0;width:100%}
.e-con.vct-card{display:block;background:var(--sand);padding:clamp(1.6rem,1rem + 2vw,2.6rem);min-width:0;transition:background .5s var(--ease)}
.vct-section--chalk .e-con.vct-card{background:var(--chalk)}
.e-con.vct-card:hover{background:var(--white)}
.vct-card .vct-h3{margin-bottom:1rem}
.vct-card .vct-text{font-size:var(--fs-s)}
.vct-card__k,.vct-card__k p{font-family:var(--f-display);font-style:italic;color:var(--turq-d);font-size:1.05rem;margin-bottom:.6rem}

/* ---------- tabella condizioni ---------- */
.vct-terms{width:100%;border-collapse:collapse;font-size:var(--fs-s)}
.vct-terms th,.vct-terms td{text-align:left;padding:.8rem 0;border-bottom:1px solid var(--stone);vertical-align:top}
.vct-terms td:last-child{text-align:right;font-family:var(--f-display);font-size:1.3rem;color:var(--ink)}
.vct-terms th{font-weight:600;color:var(--ink)}

/* ---------- galleria a mosaico ---------- */
.vct-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.75rem,1.4vw,1.25rem);max-width:var(--max);margin:var(--space-m) auto 0}
.vct-gallery .is-wide{grid-column:span 2;position:relative}
.vct-gallery .is-wide img{position:absolute;inset:0;aspect-ratio:auto}
@media (max-width:900px){.vct-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.vct-gallery .is-wide{grid-column:auto}.vct-gallery .is-wide img{position:static;aspect-ratio:4/3}.vct-gallery figure:last-child:nth-child(odd){grid-column:span 2}.vct-gallery figure:last-child:nth-child(odd) img{aspect-ratio:8/3}}
.vct-gallery figure{margin:0;min-width:0}
.vct-gallery button{display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:none;cursor:zoom-in;overflow:hidden;position:relative}
.vct-gallery button:hover,.vct-gallery button:focus{background:none}
.vct-gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s}
.vct-gallery button:hover img{transform:scale(1.045)}
.vct-gallery button::after{content:"+";position:absolute;right:1rem;bottom:1rem;width:2.4rem;height:2.4rem;border-radius:50%;background:rgba(244,239,232,.92);color:var(--ink);display:grid;place-items:center;font-size:1.3rem;opacity:0;transform:scale(.6);transition:opacity .4s,transform .4s var(--ease)}
.vct-gallery button:hover::after,.vct-gallery button:focus-visible::after{opacity:1;transform:none}

/* ---------- call to action finale ---------- */
.e-con.vct-cta{display:grid;position:relative;min-height:80vh;color:var(--white);background:var(--night);overflow:hidden;isolation:isolate;align-items:center;text-align:center}
.vct-cta__media{position:absolute!important;inset:0;z-index:-2;width:100%!important;height:100%}
.vct-cta__media .elementor-widget-container{width:100%;height:100%}.vct-cta__media img{width:100%;height:116%;object-fit:cover;position:relative;top:-8%}
.vct-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(8,24,34,.55)}
.e-con.vct-cta__content{display:block;max-width:60rem;margin:0 auto;padding:var(--space-l) var(--gutter)}
.vct-cta .vct-h2{font-size:clamp(2.4rem,1.4rem + 4.4vw,6rem)}
.vct-cta .vct-h2 em{color:var(--turq)}
.vct-cta .vct-eyebrow,.vct-cta .vct-eyebrow p{color:var(--white);justify-content:center}
.vct-cta .vct-text{color:rgba(255,255,255,.9);margin:0 auto}
.vct-cta .vct-actions{justify-content:center}

/* ---------- contatti ---------- */
.e-con.vct-contact{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-m);max-width:var(--max);margin:0 auto;width:100%}
@media (min-width:1000px){.e-con.vct-contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.vct-contact-list{list-style:none;margin:0;padding:0}
.vct-contact-list li{padding:1.1rem 0;border-bottom:1px solid var(--stone)}
.vct-contact-list small{display:block;font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--turq-d);margin-bottom:.3rem}
.vct-contact-list a{font-family:var(--f-display);font-size:clamp(1.2rem,1rem + .8vw,1.6rem);text-decoration:none;display:inline-block;min-height:44px;line-height:1.6}
.vct-contact-list a:hover{color:var(--turq-d)}

/* ---------- modulo ---------- */
.vct-form{background:var(--chalk);padding:clamp(1.5rem,1rem + 3vw,3.5rem);border:1px solid var(--stone);scroll-margin-top:calc(var(--header-h) + 1rem)}
.vct-form__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem 1.6rem}
@media (min-width:640px){.vct-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vct-field--wide{grid-column:1/-1}}
.vct-field label{display:block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.5rem;color:var(--ink)}
.vct-field input,.vct-field textarea{width:100%;box-sizing:border-box;font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--granite);border-radius:0;padding:.7rem 0;min-height:48px;transition:border-color .3s}
.vct-field textarea{resize:vertical;min-height:8rem}
.vct-field input:focus,.vct-field textarea:focus{outline:none;border-bottom-color:var(--turq-d);box-shadow:0 1px 0 0 var(--turq-d)}
.vct-field input::placeholder,.vct-field textarea::placeholder{color:#6e6a64}
.has-error input,.has-error textarea{border-bottom-color:var(--bloom)}
.vct-field__err{color:var(--bloom);font-size:var(--fs-s);margin:.4rem 0 0;font-weight:600}
.vct-check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:start;margin:1.8rem 0;font-size:var(--fs-s);color:var(--ink-2)}
.vct-check input{width:22px;height:22px;margin:.15rem 0 0;accent-color:var(--turq-d)}
.vct-check .vct-field__err{grid-column:2}
.vct-check a{color:var(--turq-d);text-decoration:underline}
.vct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.vct-form__msg{padding:1rem 1.2rem;margin-bottom:1.6rem;font-weight:600}
.vct-form__msg--ok{background:#dff3f1;color:#0a4f55;border-left:3px solid var(--turq-d)}
.vct-form__msg--err{background:#f8e6ec;color:#7d2242;border-left:3px solid var(--bloom)}

/* ---------- pagine testuali (privacy, cookie) e 404 ---------- */
.vct-legal{max-width:52rem;margin:0 auto;padding:var(--space-m) var(--gutter) var(--space-l)}
.vct-legal__head h1{font-size:var(--fs-h2);font-weight:340;margin-bottom:2.4rem}
.vct-legal__body h2,.vct-legal__body h3{font-size:var(--fs-h3);margin:2.2rem 0 .8rem}
.vct-legal__body{color:var(--ink-2)}
.vct-legal__body table{width:100%;border-collapse:collapse;font-size:var(--fs-s);margin:1rem 0 2rem;display:block;overflow-x:auto}
.vct-legal__body th,.vct-legal__body td{border-bottom:1px solid var(--stone);padding:.6rem .8rem .6rem 0;text-align:left;vertical-align:top}
.vct-404{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:var(--max-pad);margin:0 auto;padding:var(--space-l) var(--gutter)}
.vct-404 h1{font-size:var(--fs-h1-page);font-weight:330;margin-bottom:1.4rem}
.vct-404 p{max-width:34rem;color:var(--ink-2)}
.vct-404 .vct-btn{margin-top:1.4rem}

/* ---------- piè di pagina ---------- */
.vct-footer{background:var(--night);color:rgba(244,239,232,.82);padding:var(--space-l) var(--gutter) 2rem;font-size:var(--fs-s)}
.vct-footer a{text-decoration:none;color:var(--sand)}
.vct-footer a:hover{color:var(--turq)}
.vct-footer__cta{max-width:var(--max);margin:0 auto var(--space-l);display:grid;grid-template-columns:minmax(0,1fr);gap:1.6rem;align-items:end}
@media (min-width:960px){.vct-footer__cta{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto}}
.vct-footer__title{font-family:var(--f-display);font-size:clamp(2.6rem,1.6rem + 4.5vw,6.4rem);font-weight:320;line-height:.95;letter-spacing:-.03em;color:var(--sand);margin:0}
.vct-footer__title em{color:var(--turq)}
.vct-footer__text{max-width:26rem;margin:0}
.vct-footer__grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:2rem;padding:2.6rem 0;border-top:1px solid rgba(244,239,232,.14)}
.vct-footer__logo{display:block;width:180px;color:var(--sand);margin-bottom:1rem}
.vct-footer__label{font-size:var(--fs-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--turq);margin-bottom:.8rem}
.vct-footer__grid a{display:inline-block;padding:.35rem 0}
.vct-footer__small{font-size:var(--fs-xs);opacity:.75;margin-top:.8rem}
.vct-footer__bottom{max-width:var(--max);margin:0 auto;padding-top:1.6rem;border-top:1px solid rgba(244,239,232,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:var(--fs-xs)}
.vct-footer__bottom p{margin:0}
.vct-footer__legal{display:flex;flex-wrap:wrap;gap:0 1.4rem;list-style:none;margin:0;padding:0}
.vct-footer__legal a{display:inline-block;padding:.5rem 0;min-height:24px}

/* ---------- pulsante flottante (mobile) ---------- */
.vct-fab{position:fixed;left:1rem;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:90;display:none;justify-content:center;align-items:center;min-height:52px;background:var(--ink);color:var(--sand);text-decoration:none;font-size:var(--fs-xs);font-weight:700;letter-spacing:.2em;text-transform:uppercase;box-shadow:0 14px 40px -10px rgba(10,28,39,.6);transform:translateY(160%);transition:transform .6s var(--ease)}
.vct-fab.is-on{transform:none}
.vct-fab:hover{color:var(--white);background:var(--turq-d)}
@media (max-width:759px){.vct-fab{display:flex}}

/* ---------- finestre (film e foto) ---------- */
.vct-dialog{border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100vh;height:100dvh;background:rgba(6,16,23,.96);color:var(--sand)}
.vct-dialog::backdrop{background:rgba(6,16,23,.9)}
.vct-dialog[open]{display:grid;place-items:center;animation:vct-fadein .4s var(--ease)}
@keyframes vct-fadein{from{opacity:0}to{opacity:1}}
.vct-dialog__close{position:absolute;top:1rem;right:1rem;z-index:3;width:52px;height:52px;border-radius:50%;border:1px solid rgba(244,239,232,.4);background:transparent;color:var(--sand);font-size:1.8rem;line-height:1;cursor:pointer}
.vct-dialog__close:hover{background:var(--sand);color:var(--ink)}
.vct-dialog__film{width:min(92vw,calc(82vh * 16 / 9));aspect-ratio:16/9;background:#000}
.vct-dialog__film iframe{width:100%;height:100%;border:0;display:block}
.vct-dialog__figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:88vw}
.vct-dialog__figure img{max-width:88vw;max-height:80vh;width:auto;height:auto;object-fit:contain}
.vct-dialog__figure figcaption{font-size:var(--fs-s);color:rgba(244,239,232,.8);text-align:center}
.vct-dialog__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:56px;height:56px;border-radius:50%;border:1px solid rgba(244,239,232,.4);background:rgba(6,16,23,.4);color:var(--sand);font-size:1.4rem;cursor:pointer}
.vct-dialog__nav:hover{background:var(--sand);color:var(--ink)}
.vct-dialog__nav--prev{left:1rem}
.vct-dialog__nav--next{right:1rem}

/* ---------- movimento ridotto ---------- */
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
	.js .vct-reveal{clip-path:none}
	.js .vct-reveal img,.vct-hero__media img{transform:none}
	.js .vct-fade{opacity:1;transform:none}
	.vct-marquee__track{animation:none}
}

/* ---------- precedenza sulle regole di Elementor (.elementor.elementor .e-con>.elementor-widget{max-width:100%}) ---------- */
.elementor.elementor .e-con>.vct-text,.elementor.elementor .e-con>.vct-note{max-width:38rem}
.elementor.elementor .e-con>.vct-lead{max-width:48rem}
.elementor.elementor .elementor.elementor .e-con>.vct-hero__sub{max-width:36rem}
.elementor.elementor .vct-hero .e-con>.vct-h1,.elementor.elementor .vct-hero .e-con>.vct-h1-page{max-width:14ch}
.elementor.elementor .vct-night .elementor.elementor .e-con>.vct-h2{max-width:13ch}
.elementor.elementor .vct-center>.vct-text,.elementor.elementor .vct-center>.vct-note{margin-left:auto;margin-right:auto}
.elementor.elementor .e-con>.vct-inset{max-width:none}
.vct-footer .vct-btn--light{color:var(--ink)}
.vct-footer .vct-btn--light:hover{color:var(--night)}

@media (max-width:759px){
	.vct-hero::after{background:linear-gradient(180deg,rgba(6,20,30,.45) 0%,rgba(6,20,30,.1) 28%,rgba(6,20,30,.55) 55%,rgba(6,20,30,.85) 100%)}
	.vct-footer{padding-bottom:6rem}
	.vct-scroll{display:none}
}
.elementor.elementor .e-con>.vct-eyebrow{margin-bottom:1.7rem}
.elementor.elementor .e-con>.vct-h2{margin-bottom:1.6rem}
.elementor.elementor .e-con>.vct-h3{margin-bottom:.8rem}
.elementor.elementor .vct-card .e-con>.vct-h3,.elementor.elementor .e-con.vct-card>.vct-h3{margin-bottom:1rem}
.elementor.elementor .e-con>.vct-hero__sub{margin-top:1.6rem}
.elementor.elementor .e-con>.vct-lead+.vct-text{margin-top:1.4rem}
.elementor.elementor .e-con>.vct-text+.vct-h3{margin-top:2rem}
.elementor.elementor .e-con>.vct-note.vct-center{margin:var(--space-m) auto 0}

/* schede su fondo scuro (es. «Chi si prende cura di voi») */
.vct-section--dark .e-con.vct-cards{background:rgba(244,239,232,.14);border-color:rgba(244,239,232,.14)}
.vct-section--dark .e-con.vct-card{background:var(--ink)}
.vct-section--dark .e-con.vct-card:hover{background:#15374b}
.vct-section--dark .vct-card .vct-h3{color:var(--sand)}
.vct-section--dark .vct-card__k,.vct-section--dark .vct-card__k p{color:var(--turq)}
.vct-section--dark .vct-card .vct-text{color:rgba(244,239,232,.84)}
.vct-section--dark .e-con.vct-cards+.vct-narrow{margin-top:var(--space-m)}
