/*
 * Blocchi del tema: aggiunte e adattamenti a blocks-mock.css (generato dal mock, caricato prima di questo).
 * .ws.ws-b pesa più del kit Elementor (.elementor-kit-5 h2) qualunque sia l'ordine dei fogli.
 */

/* ---------- base dentro i blocchi ---------- */
.ws.ws-b{font:400 var(--s-body)/1.5 var(--font);color:var(--ink)}
.ws.ws-b h1,.ws.ws-b h2{font-family:var(--font);font-weight:900;letter-spacing:-.04em;line-height:.92;text-wrap:balance}
.ws.ws-b h2{font-size:var(--s-head)}
.ws.ws-b h3{font-family:var(--font);font-size:var(--s-lead);font-weight:900;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
.ws.ws-b p{text-wrap:pretty}
.ws.ws-b img,.ws.ws-b video{max-width:100%;height:auto;display:block}
.ws.ws-b ul{list-style:none;margin:0;padding:0}
.ws.ws-b cite{font-style:normal}

/* titoli dei blocchi che il mock dimensiona da sé (stesso peso del kit + .ws-b) */
.ws.ws-b .under h1{font-size:var(--s-display);letter-spacing:-.045em;line-height:.9}
.ws.ws-b .ch h2{font-size:clamp(1.5rem,1rem + 1.6vw,2.25rem)}
.ws.ws-b .stage h2{font-size:var(--s-display);line-height:.85}
.ws.ws-b .tile h3{font-size:var(--s-body);font-weight:500;letter-spacing:0}
@media (max-width:760px){
	.ws.ws-b .under h1{font-size:13vw}
	.ws.ws-b .ch h2{font-size:clamp(2.4rem,11vw,3.4rem)}
}
@media (max-width:1024px){.ws.ws-b .stage h2{font-size:16vw}}
/* Con interlinea .9 la maschera della riga taglia le maiuscole di Epilogue 900 (fino a .89em con l'accento, contro .73em di riga): spazio sopra, compensato. */
.ws .line{padding-top:.2em;margin-top:-.2em}

/* I titoli entrano solo col sollevamento, senza dissolvenza: non sono mai invisibili, nemmeno a chi salta giù. */
.js .ws h2.rv,.js .ws h1.rv{opacity:1}

/* ---------- hero: la testata del tema si appoggia sul mosaico, come nel mock ---------- */
@media (min-width:761px){
	.ws-hero-top .ws-head{position:absolute;top:0;left:0;right:0;background:transparent}
	.admin-bar.ws-hero-top .ws-head{top:32px}
}
.ws .hero .band img{height:100%}
.ws .hero .band .ph{background:var(--stone)}

/* ---------- due venti ---------- */
.ws .clock .what strong{font-weight:500}

/* ---------- galleria: il reset di Hello mette figcaption in corsivo ---------- */
.ws .tag{font-style:normal}
.ws .clock .cta{align-self:flex-start}

/* ---------- capitoli: il link segue il colore del campo ---------- */
.ws .ch a.go,.ws .ch a.go:hover,.ws .ch a.go:focus{color:var(--paper)}

/* ---------- contatti: colori degli stati ---------- */
.ws a.arow,.ws a.arow:hover,.ws a.arow:focus{color:var(--paper)}
.ws a.arow.wa,.ws a.arow.wa:hover,.ws a.arow.wa:focus{color:var(--ink)}

/* ---------- recensioni oltre la terza: si alternano ---------- */
@media (max-width:1024px){
	.ws .stp:nth-child(even) .q{align-items:flex-end;text-align:right}
}
@media (min-width:1025px){
	.ws .stp:nth-child(even) .q blockquote,.ws .stp:nth-child(even) .q cite{grid-column:1/5;justify-self:end;text-align:right}
}
.ws .stp p.more{font-weight:500}

/* ---------- listino: bande alternate, Lun-Ven e Weekend affiancati, ogni prezzo è un link ---------- */
.ws .list{background:var(--paper);padding-block:clamp(96px,10vw,180px)}
.ws .list-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:end;margin-bottom:56px}
.ws .list-head h2,.ws .list-head h1{grid-column:1/7}
.ws.ws-b .list-head h1{font-size:var(--s-head)}
.ws .list-head p{grid-column:8/13;font-size:var(--s-lead);line-height:1.3}
.ws .lcat+.lcat{margin-top:56px}
.ws .lcat-head,.ws .lrow{display:grid;grid-template-columns:minmax(0,1fr) 160px 160px;column-gap:16px;align-items:center}
.ws .lcat-head{padding:0 20px 14px}
.ws.ws-b .lcat-head h2{font-size:var(--s-lead);letter-spacing:-.02em;line-height:1.1}
.ws .lcol{font-size:var(--s-small);font-weight:500;text-align:right}
.ws .lrow{min-height:64px;padding:10px 20px}
.ws .lrow:nth-child(odd){background:var(--mist)}
.ws .lname{font-weight:500}
.ws .lboth{grid-column:2/4;display:flex;justify-content:flex-end}
.ws a.lp,.ws a.lp:hover,.ws a.lp:focus{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-height:44px;color:var(--ink)}
.ws .lp .lday{display:none;font-size:var(--s-small)}
.ws .lboth .lday{display:block}
.ws .lp .lv{font-size:var(--s-lead);font-weight:900;letter-spacing:-.02em;text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:2px;transition:text-underline-offset .2s}
.ws a.lp:hover .lv{text-underline-offset:.35em}
.ws .lcat.nopair .lrow{grid-template-columns:minmax(0,1fr) auto}
.ws .lcat.nopair .lboth{grid-column:auto}
.ws .lp .lday:empty{display:none!important}
@media (max-width:760px){
	.ws .list-head{grid-template-columns:1fr;row-gap:16px}
	.ws .list-head h2,.ws .list-head h1,.ws .list-head p{grid-column:1}
	.ws .list-head p{font-size:var(--s-body)}
	.ws .lcat-head{grid-template-columns:1fr;padding:0 0 12px}
	.ws .lcol{display:none}
	.ws .lrow{grid-template-columns:1fr 1fr;row-gap:8px;padding:14px 16px}
	.ws .lname{grid-column:1/-1}
	.ws .lboth{grid-column:1/-1;justify-content:flex-start}
	.ws a.lp,.ws a.lp:hover,.ws a.lp:focus{align-items:flex-start}
	.ws .lp .lday{display:block}
	.ws .lnone{display:none}
	.ws .lcat.nopair .lrow{grid-template-columns:minmax(0,1fr) auto;column-gap:16px}
	.ws .lcat.nopair .lname{grid-column:auto}
	.ws .lcat.nopair .lboth{grid-column:auto;justify-content:flex-end}
	.ws .lcat.nopair a.lp{align-items:flex-end}
}

/* ---------- righe con prezzo: intro a sinistra, offerte a destra, la prima in evidenza ---------- */
.ws .rows{padding-block:clamp(96px,10vw,180px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px;align-items:start}
.ws .rows-light{background:var(--mist)}
.ws .rows-deep{background:var(--teal-deep);color:var(--paper)}
.ws .rows-intro{grid-column:1/6;display:flex;flex-direction:column;gap:20px}
.ws .rows-intro p{font-size:var(--s-lead);line-height:1.3;max-width:28ch}
.ws .rows-intro .rows-pic{width:100%;max-width:520px;aspect-ratio:4/3;object-fit:cover;margin-top:12px}
.ws .rows-list{grid-column:7/13;display:flex;flex-direction:column;gap:4px}
.ws .orow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:24px;row-gap:16px;padding:28px}
.ws .rows-light .orow{background:var(--paper)}
.ws .rows-deep .orow{background:var(--teal-deeper)}
.ws .orow.top{background:var(--teal);color:var(--ink)}
.ws.ws-b .orow h3{font-size:var(--s-lead)}
.ws .orow p{margin-top:8px;max-width:40ch}
.ws .orow-side{display:flex;flex-direction:column;align-items:flex-end;gap:12px;text-align:right}
.ws .oprice{font-size:var(--s-lead);font-weight:900;letter-spacing:-.02em;white-space:nowrap}
.ws .rows-deep .orow:not(.top) a.link,.ws .rows-deep .orow:not(.top) a.link:hover,.ws .rows-deep .orow:not(.top) a.link:focus{color:var(--paper)}
@media (max-width:860px){
	.ws .rows{grid-template-columns:1fr}
	.ws .rows-intro,.ws .rows-list{grid-column:1}
	.ws .rows-intro p{font-size:var(--s-body)}
	.ws .orow{grid-template-columns:1fr;padding:22px 20px}
	.ws .orow-side{align-items:flex-start;text-align:left}
}
@media (max-width:560px){.ws .orow.top .btn{width:100%}}

/* ---------- kitecamp e kitehouse ---------- */
.ws .trips{background:var(--paper);padding-block:clamp(96px,10vw,180px)}
.ws .trips>h2{margin-bottom:48px}
.ws .trips-grid{display:grid;grid-template-columns:7fr 5fr;gap:12px;align-items:start}
.ws.ws-b .trips h3{font-size:var(--s-lead);margin-bottom:20px}
.ws .camps{background:var(--teal);color:var(--ink);padding:32px}
.ws .camps ul{display:flex;flex-direction:column;gap:12px}
.ws a.camp,.ws a.camp:hover,.ws a.camp:focus{display:grid;grid-template-columns:40% 1fr;align-items:center;gap:20px;background:var(--paper);color:var(--ink)}
.ws .camp img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ws .camp-txt{display:flex;flex-direction:column;gap:6px;padding:16px 16px 16px 0}
.ws .camp-name{font-size:var(--s-lead);font-weight:900;letter-spacing:-.02em;line-height:1.1}
.ws a.camp:hover .camp-name{text-decoration:underline;text-underline-offset:.2em}
.ws .camp-meta{font-size:var(--s-small)}
.ws .camps-empty{font-size:var(--s-lead);font-weight:500;line-height:1.3;max-width:28ch}
.ws .camps-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px}
.ws .houses{padding:32px 0 0 20px}
.ws .houses>p{max-width:34ch;margin-bottom:20px}
.ws .houses ul{display:flex;flex-direction:column;gap:4px}
.ws a.house,.ws a.house:hover,.ws a.house:focus{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:16px;background:var(--mist);color:var(--ink)}
.ws .house img{width:88px;height:88px;object-fit:cover}
.ws .house-name{display:block;font-weight:500}
.ws a.house:hover .house-name{text-decoration:underline;text-underline-offset:.2em}
.ws .house-meta{display:block;font-size:var(--s-small)}
@media (max-width:860px){
	.ws .trips-grid{grid-template-columns:1fr}
	.ws .camps{padding:24px 20px}
	.ws a.camp,.ws a.camp:hover,.ws a.camp:focus{grid-template-columns:1fr;gap:0}
	.ws .camp-txt{padding:16px}
	.ws .houses{padding:32px 0 0}
}

/* ---------- ultime news ---------- */
.ws .news{background:var(--stone);padding-block:clamp(96px,10vw,180px)}
.ws .news>h2{margin-bottom:48px}
.ws .news-list{display:flex;flex-direction:column;gap:4px}
.ws a.nrow,.ws a.nrow:hover,.ws a.nrow:focus{display:grid;grid-template-columns:180px minmax(0,1fr) 220px;align-items:center;gap:24px;padding-left:24px;background:var(--paper);color:var(--ink)}
.ws .ndate{font-size:var(--s-small)}
.ws .ntitle{font-size:var(--s-lead);font-weight:900;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
.ws a.nrow:hover .ntitle{text-decoration:underline;text-underline-offset:.2em}
.ws .nrow img{width:220px;aspect-ratio:3/2;object-fit:cover}
@media (max-width:760px){
	.ws a.nrow,.ws a.nrow:hover,.ws a.nrow:focus{grid-template-columns:minmax(0,1fr) 96px;row-gap:6px;padding:16px}
	.ws .ndate{grid-column:1;grid-row:1}
	.ws .ntitle{grid-column:1;grid-row:2;font-size:var(--s-body)}
	.ws .nrow img{grid-column:2;grid-row:1/3;width:96px;aspect-ratio:1/1}
}

/* ---------- prenota: modulo Booknetic a sinistra, rassicurazioni e WhatsApp a destra ---------- */
.ws .book{background:var(--paper);padding-block:clamp(48px,6vw,96px) clamp(72px,8vw,128px);display:grid;grid-template-columns:minmax(0,980px) minmax(0,1fr);grid-template-areas:"head head" "app notes" "app wa" "app .";grid-template-rows:auto auto auto 1fr;column-gap:24px;row-gap:4px}
.ws .book-head{grid-area:head;margin-bottom:44px}
.ws.ws-b .book-head h1{font-size:var(--s-head)}
.ws .book-notes{grid-area:notes;display:flex;flex-direction:column;gap:4px}
.ws .book-notes li{background:var(--mist);padding:20px;font-size:var(--s-small);line-height:1.45}
.ws.ws-b .book-notes h2{display:block;font-size:var(--s-body);font-weight:900;letter-spacing:-.01em;margin-bottom:4px}
.ws .book-app{grid-area:app;min-height:600px} /* l'altezza che Booknetic darà al modulo: niente salti */
.ws .book-app .booknetic_appointment{margin:0}
.ws .book-wa{grid-area:wa}
.ws .book-app .booknetic_appointment:is(#ws-bk,[id]) :is(.booknetic_btn_primary,.booknetic_selected_time,.booknetic_calendar_selected_day>div){background:var(--teal-deep)!important} /* bianco su teal è 3:1 */
.ws .book-app img.booknetic_card_service_image{width:50px;height:50px;object-fit:cover} /* senza misure la foto sposta la card quando arriva */
.ws .book-app :is(.booknetic_service_card_description,.booknetic_view_more_service_notes_button){color:#4A5257}
/* il verde di Booknetic sui prezzi è illeggibile (1,9:1): teal scuro. :is(#ws-bk,[id]) pesa come un ID, serve a battere i suoi #booknetic_theme_N !important */
.ws .book-app .booknetic_appointment:is(#ws-bk,[id]) :is(.booknetic_service_category,.booknetic_service_extra_title,.booknetic_times_title,.booknetic_text_primary,.booknetic_service_card_price,.booknetic_service_extra_card_price,.booknetic_confirm_details_price,.booknetic-cart-item-body-cell.amount,.booknetic_sum_price){color:var(--teal-deep)!important}
.ws .book-app .booknetic_appointment:is(#ws-bk,[id]) :is(.booknetic_service_card_selected,.booknetic_card_selected,.booknetic_service_extra_card_selected,.booknetic_payment_method_selected,.booknetic-cart-item.active){border-color:var(--teal-deep)!important}
@media (max-width:1200px){
	.ws .book{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "notes" "app" "wa";grid-template-rows:none}
	.ws.ws-b .book-notes{flex-direction:row;margin-bottom:24px} /* .ws-b toglie il margine alle liste */
	.ws .book-notes li{flex:1}
	.ws .book-wa{margin-top:24px}
}
@media (max-width:760px){
	.ws .book-head{margin-bottom:24px}
	.ws.ws-b .book-notes{flex-direction:column}
	.ws .book-notes li{padding:14px 16px}
}
@media (max-width:1000px){
	.ws .book-app{min-height:725px} /* sotto i 1000px Booknetic passa alla versione a colonna */
}

@media (prefers-reduced-motion:reduce){
	.ws .clock .readout{transition:none}
}

/* ---------- modulo richiesta: intro a sinistra, form su bianco a destra ---------- */
.ws .tform{background:var(--mist);padding-block:clamp(96px,10vw,180px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:40px;align-items:start}
.ws .tform-intro{grid-column:1/6;display:flex;flex-direction:column;gap:20px}
.ws .tform-intro p{font-size:var(--s-lead);line-height:1.3;max-width:28ch}
.ws .tform-box{grid-column:7/13;background:var(--paper);padding:32px;display:flex;flex-direction:column;gap:24px}
.ws .tform-box [hidden]{display:none}
.ws .f-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ws .f-row{display:flex;flex-direction:column;gap:8px;border:0;margin:0;padding:0;min-width:0}
.ws .f-row>label,.ws .f-row legend{font-weight:500;padding:0;margin-bottom:8px}
.ws .f-row input[type=text],.ws .f-row input[type=email],.ws .f-row input[type=tel]{width:100%;min-height:52px;padding:0 16px;border:2px solid var(--stone);border-radius:0;background:var(--paper);font:400 var(--s-body)/1.2 var(--font);color:var(--ink)}
.ws .f-row input:focus{border-color:var(--ink);outline:0}
.ws .f-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ws .f-opts{display:flex;flex-wrap:wrap;gap:8px}
.ws .f-opt{position:relative;display:inline-flex;cursor:pointer}
.ws .f-opts .f-opt input{position:absolute;opacity:0;width:1px;height:1px}
.ws .f-opts .f-opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--mist);transition:background-color .2s}
.ws .f-opts .f-opt:hover span{background:var(--stone)}
.ws .f-opts .f-opt input:checked+span{background:var(--teal)}
.ws .f-opts .f-opt input:focus-visible+span{outline:3px solid var(--ink);outline-offset:2px}
.ws .f-check{gap:12px;align-items:flex-start;font-size:var(--s-small);line-height:1.4}
.ws .f-check input{width:22px;height:22px;flex:none;margin:0;accent-color:var(--ink)}
.ws .f-check a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ws .f-msg{background:#FDECEC;color:#8A1C1C;padding:12px 16px;font-weight:500}
.ws .f-done{background:var(--teal);padding:20px;font-size:var(--s-lead);line-height:1.3;font-weight:500}
.ws .tform-box .btn{align-self:flex-start}
@media (max-width:860px){
	.ws .tform{grid-template-columns:1fr}
	.ws .tform-intro,.ws .tform-box{grid-column:1}
	.ws .tform-intro p{font-size:var(--s-body)}
	.ws .tform-box{padding:20px} .ws .f-two{grid-template-columns:1fr} .ws .tform-box .btn{align-self:stretch}
}
