/* Generato da wp/strumenti/build_assets.py dal mockup v3 (css/v3.css): non modificare a mano. */
/* =====================================================================
   Residence Al Paradiso · prova v3 "bianco e azzurro mare" (2026-10-23)
   Caricato DOPO gli stili di ogni pagina: ridefinisce solo i token
   (sabbia -> azzurro, fondo bianco) e aggiunge i componenti nuovi:
   galleria foto (griglia + visore), planimetria, recensioni Tripadvisor + Google,
   tour virtuale, Lampedusa (hub e schede).
   ===================================================================== */

:root{
  /* mare */
  --sea-900:var(--global-palette3); --sea-700:var(--global-palette6); --sea-500:oklch(from var(--global-palette1) calc(l + .0891) calc(c + .0055) calc(h - 5)); --sea-200:oklch(from var(--global-palette1) calc(l + .3281) calc(c * .332) calc(h - 14.35)); --sea-100:oklch(from var(--global-palette1) calc(l + .4014) calc(c * .1172) calc(h - 12.61));
  /* gli ex "sabbia" diventano azzurro mare (stessi nomi: le pagine non cambiano) */
  --sand-700:color-mix(in srgb, var(--global-palette2) 82%, var(--global-palette3)); --sand-600:var(--global-palette2); --sand-500:var(--global-palette1); --sand-300:oklch(from var(--global-palette1) calc(l + .3029) calc(c * .489) calc(h - 12.08)); --sand-100:oklch(from var(--global-palette1) calc(l + .3901) calc(c * .156) calc(h - 12.53)); --sand-50:var(--global-palette8);
  --stone-700:color-mix(in srgb, var(--global-palette3) 72%, var(--global-palette9)); --ink:var(--global-palette4); --slate-600:var(--global-palette5); --line:var(--global-palette7); --white:var(--global-palette9);
  --gold:#C9902A; /* solo stelle delle recensioni */

  --color-bg:var(--white); --color-surface:var(--white);
  --color-accent:var(--sand-500); --color-accent-hover:var(--sand-600); --color-on-accent:var(--white);
  --color-rating:var(--gold); --color-highlight:var(--sand-100);
  --color-inverse-bg:var(--sea-900); --color-inverse-text:var(--sea-200); --color-inverse-accent:var(--sand-300);
  --overlay-strong:color-mix(in srgb, var(--global-palette3) 88%, transparent); --overlay-mid:color-mix(in srgb, var(--global-palette3) 55%, transparent); --overlay-soft:color-mix(in srgb, var(--global-palette3) 20%, transparent);
  --f-script:var(--global-heading-font-family, 'Fraunces', Georgia, serif);   /* frasi firma: il corsivo del font dei titoli (già caricato) */
}
body{background:var(--color-bg)}
.script{font-family:var(--f-script);font-style:italic;font-weight:500;letter-spacing:-.005em;line-height:1.25;text-wrap:balance}

/* sezioni alternate: azzurro chiarissimo invece della sabbia */
.section.alt,.alt{background:var(--sand-50)}

/* ---------- Home: 4 villette in griglia */
.hero .tagline{font-family:var(--f-script);font-style:italic;font-weight:500;font-size:clamp(1.25rem,2.4vw,1.75rem);color:var(--white);margin-top:var(--space-4);opacity:.95;text-shadow:0 1px 10px color-mix(in srgb, var(--global-palette3) 50%, transparent)}
.home-text{max-width:860px;margin-inline:auto;text-align:center}
.home-text p{color:var(--color-text);font-size:1.06rem}
.home-text p + p{margin-top:var(--space-4)}
.home-text .award-note{display:flex;gap:var(--space-4);align-items:center;text-align:left;background:var(--sand-50);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4) var(--space-5);margin-top:var(--space-6)}
.home-text .award-note img{width:72px;height:72px;flex:none}
.svc.live{grid-template-columns:repeat(3,minmax(0,1fr))}   /* 9 servizi: 3×3, nessuna card da sola */
@media (max-width:600px){.svc.live{grid-template-columns:1fr}}

/* ---------- Tour virtuale (Street View caricato solo al clic: niente cookie Google prima) */
.tour{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--sea-900);aspect-ratio:16/9;isolation:isolate}
.tour img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 600ms var(--ease-out)}
.tour::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb, var(--global-palette3) 5%, transparent),color-mix(in srgb, var(--global-palette3) 65%, transparent))}
.tour button{position:absolute;inset:0;width:100%;border:0;background:none;color:var(--white);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);font:inherit;font-weight:700;font-size:1.05rem}
.tour .play{width:76px;height:76px;border-radius:50%;background:color-mix(in srgb, var(--global-palette9) 92%, transparent);display:grid;place-items:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.5);transition:transform var(--dur) var(--ease-out)}
.tour .play svg{width:30px;height:30px;fill:var(--sea-700);margin-left:4px}
.tour button:hover .play,.tour button:focus-visible .play{transform:scale(1.08)}
.tour:hover img{transform:scale(1.03)}
.tour small{font-weight:400;opacity:.85;font-size:.85rem;max-width:40ch;text-align:center}
.tour iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tour-sec .tour-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:900px){.tour-sec .tour-grid{grid-template-columns:1fr}}
@media (max-width:600px){.tour{aspect-ratio:4/3}}

/* ---------- Recensioni: Tripadvisor + Google */
.rev-sources{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
.rev-src{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--white);text-decoration:none;color:var(--color-text)}
.rev-src img,.rev-src .glogo{width:40px;height:40px;flex:none;border-radius:50%}
.rev-src b{display:block;font-size:1.05rem;color:var(--color-heading)}
.rev-src small{display:block;font-size:.82rem;color:var(--color-text-muted)}
.rev-src .stars{color:var(--color-rating);letter-spacing:1px}
a.rev-src:hover{border-color:var(--sea-200);box-shadow:var(--shadow-sm)}
.rev-tabs{display:flex;gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap}
.rev-tabs button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:.4rem 1rem .4rem .45rem;border-radius:var(--radius-pill);border:1.5px solid var(--color-border);background:var(--white);font:inherit;font-weight:700;color:var(--color-text);cursor:pointer}
.rev-tabs button img,.rev-tabs button .glogo{width:30px;height:30px;border-radius:50%}
.rev-tabs button[aria-selected="true"]{border-color:var(--color-primary);background:var(--sea-100);color:var(--color-primary)}
.rev .src-badge{position:absolute;top:var(--space-4);right:var(--space-4);width:28px;height:28px;border-radius:50%}
.rev{position:relative}
.rev.todo{border-style:dashed;background:var(--sand-50)}
.rev.todo .q{color:var(--color-text-muted)}

/* ---------- Galleria scheda villetta (1 grande + 2, poi riga di miniature, "+N foto") */
.gl-gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;height:clamp(300px,42vw,480px);margin-top:var(--space-5)}
.gl-gallery button{position:relative;border:0;padding:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--sea-100);cursor:zoom-in}
.gl-gallery img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease-out)}
.gl-gallery button:hover img{transform:scale(1.04)}
.gl-gallery .main{grid-row:span 2}
.gl-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}
.gl-thumbs button{position:relative;aspect-ratio:4/3;border:0;padding:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--sea-100);cursor:zoom-in}
.gl-thumbs img{width:100%;height:100%;object-fit:cover}
.gl-thumbs .more::after{content:attr(data-more);position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb, var(--global-palette3) 60%, transparent);color:var(--white);font-weight:700;font-size:1.05rem;text-decoration:underline;text-underline-offset:3px}
.gl-tools{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-3)}
.gl-tools .btn{min-height:44px;padding:.5rem 1rem}
@media (max-width:700px){
  .gl-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;height:auto}
  .gl-gallery .main{grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
  .gl-gallery button:not(.main){aspect-ratio:4/3}
  .gl-thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gl-thumbs button:nth-child(n+3):not(.more){display:none}
}

/* Pannello foto: bianco, a 16px dai bordi; vista griglia (4 colonne) e vista visore (foto grande, frecce, miniature) */
html.gl-lock{overflow:hidden}
dialog.gl-modal{box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;border:0;inset:0;background:transparent}
dialog.gl-modal::backdrop{background:color-mix(in srgb, var(--global-palette3) 60%, transparent)}
.gl-panel{display:flex;flex-direction:column;height:100%;max-width:1440px;margin-inline:auto;background:var(--white);color:var(--color-text);border-radius:16px;box-shadow:0 2px 8px color-mix(in srgb, var(--global-palette3) 16%, transparent);overflow:hidden}
.gl-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3);padding:6px 12px;border-bottom:1px solid var(--color-border);flex:none}
.gl-title{display:flex;align-items:center;gap:var(--space-4);min-width:0;justify-content:center}
.gl-title h2{font-size:1.1rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl-title .btn{min-height:40px;padding:.4rem 1rem;font-size:.95rem}
.gl-x{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 .9rem;border:0;background:none;font:inherit;font-weight:600;color:var(--color-heading);cursor:pointer;border-radius:var(--radius-sm)}
.gl-x:hover{background:var(--sea-100)}
.gl-x .ico{width:22px;height:22px}
.gl-close{justify-self:end}
.gl-back{justify-self:start;visibility:hidden}
.gl-panel[data-view="view"] .gl-back{visibility:visible}
.gl-panel[data-view="view"] .gl-cats{display:none}
.gl-cats{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-3) clamp(12px,2.5vw,32px);border-bottom:1px solid var(--color-border);flex:none;scrollbar-width:thin}   /* spazio e filo sotto le pillole: le foto che scorrono non ci finiscono attaccate */
.gl-cats button{flex:none;min-height:40px;padding:.35rem .95rem;border:1.5px solid var(--color-border);border-radius:var(--radius-pill);background:var(--white);font:inherit;font-weight:600;font-size:.92rem;color:var(--color-text);cursor:pointer;white-space:nowrap}
.gl-cats button small{font-weight:400;color:var(--color-text-muted);margin-left:2px}
.gl-cats button:hover{border-color:var(--sea-200)}
.gl-cats button[aria-pressed="true"]{background:var(--color-primary);border-color:var(--color-primary);color:var(--white)}
.gl-cats button[aria-pressed="true"] small{color:var(--sea-200)}
.gl-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) clamp(12px,2.5vw,32px) var(--space-6)}
.gl-grid li[hidden]{display:none}
.gl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0}
.gl-grid button{display:block;width:100%;aspect-ratio:1.29;border:0;padding:0;border-radius:4px;overflow:hidden;background:var(--sea-100);cursor:pointer;outline:2px solid transparent;outline-offset:3px;transition:outline-color var(--dur) var(--ease-out)}
.gl-grid img{width:100%;height:100%;object-fit:cover;transition:transform 400ms var(--ease-out),filter 400ms var(--ease-out)}
.gl-grid button:hover img{transform:scale(1.03);filter:brightness(.92)}
.gl-grid button.on{outline-color:var(--color-primary)}
.gl-grid .plan-img{object-fit:contain;background:var(--white);padding:12px 0}   /* solo margine sopra/sotto: tutte le piante prendono l'altezza del riquadro, quindi stessa altezza */
.gl-view{flex:1;min-height:0;display:flex;flex-direction:column}
.gl-view[hidden]{display:none}
.gl-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4) 88px var(--space-2)}
.gl-stage figure{margin:0;height:100%;width:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:var(--space-2);min-height:0}
.gl-stage img{height:100%;width:auto;max-width:100%;object-fit:contain;border-radius:8px}
.gl-stage img.plan-img{background:var(--white);border:1px solid var(--color-border);padding:16px}
.gl-stage figcaption{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.92rem;text-align:center}
.gl-stage .pos{font-weight:700;color:var(--color-heading)}
.gl-stage .cap{color:var(--color-text-muted)}
.gl-nav{position:absolute;top:50%;transform:translateY(-50%);width:58px;height:58px;border-radius:50%;border:0;background:var(--white);color:var(--color-heading);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb, var(--global-palette3) 20%, transparent);transition:box-shadow var(--dur) var(--ease-out)}
.gl-nav:hover{box-shadow:0 4px 16px color-mix(in srgb, var(--global-palette3) 30%, transparent)}
.gl-nav .ico{width:24px;height:24px}
.gl-prev{left:16px}.gl-next{right:16px}
.gl-strip{flex:none;display:flex;gap:8px;overflow-x:auto;padding:var(--space-3) clamp(12px,2.5vw,32px) var(--space-4);list-style:none;margin:0;scrollbar-width:thin;justify-content:safe center}
.gl-strip button{flex:none;width:72px;height:72px;padding:0;border:2px solid transparent;border-radius:4px;overflow:hidden;background:var(--sea-100);cursor:pointer;opacity:.75;transition:opacity var(--dur) var(--ease-out)}
.gl-strip button:hover{opacity:1}
.gl-strip button[aria-current="true"]{border-color:var(--color-primary);opacity:1}
.gl-strip img{width:100%;height:100%;object-fit:cover}
@media (max-width:1100px){.gl-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){
  dialog.gl-modal{padding:0}
  .gl-panel{border-radius:0}
  .gl-bar{grid-template-columns:auto 1fr auto;padding:4px 6px}
  .gl-title{justify-content:flex-start}
  .gl-title .btn{display:none}
  .gl-x span{display:none}
  .gl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gl-stage{padding:var(--space-3) 8px var(--space-2)}
  .gl-nav{width:44px;height:44px;background:color-mix(in srgb, var(--global-palette9) 88%, transparent)}
  .gl-prev{left:12px}.gl-next{right:12px}
  .gl-strip button{width:56px;height:56px}
}
@media (prefers-reduced-motion:reduce){.gl-gallery img,.gl-grid img,.tour img{transition:none}}

/* ---------- Planimetria nella scheda */
.plan{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.plan button{display:block;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--white);cursor:zoom-in}
.plan button img{width:100%;height:auto}
.plan ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}
.plan li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}
.plan li b{color:var(--color-heading)}
.plan .note{font-size:.85rem;color:var(--color-text-muted);margin-top:var(--space-3)}
@media (max-width:700px){.plan{grid-template-columns:1fr}}

/* ---------- Lampedusa: hub (modello schermate cliente) */
.lp-hero{position:relative;min-height:clamp(460px,72vh,680px);display:flex;align-items:center;color:var(--white);isolation:isolate;overflow:hidden}
.lp-hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.lp-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb, var(--global-palette3) 82%, transparent) 0%,color-mix(in srgb, var(--global-palette3) 45%, transparent) 50%,color-mix(in srgb, var(--global-palette3) 10%, transparent) 100%)}
.lp-hero .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);align-items:end;gap:var(--space-6)}
.lp-hero .eyebrow{color:var(--sand-300);letter-spacing:.18em}
.lp-hero h1{color:var(--white);font-size:clamp(2.3rem,5vw,3.8rem);line-height:1.08;max-width:14ch}
.lp-hero p.lead{color:var(--sea-100);font-size:1.1rem;max-width:52ch;margin-top:var(--space-4)}
.lp-hero .ctas{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}
.btn-white-outline{border:1.5px solid color-mix(in srgb, var(--global-palette9) 85%, transparent);color:var(--white);background:transparent}
.btn-white-outline:hover{background:color-mix(in srgb, var(--global-palette9) 12%, transparent)}
@media (max-width:800px){.lp-hero .wrap{grid-template-columns:1fr}.lp-hero::before{background:linear-gradient(180deg,color-mix(in srgb, var(--global-palette3) 35%, transparent),color-mix(in srgb, var(--global-palette3) 85%, transparent))}.lp-hero .ctas .btn{width:100%;justify-content:center}}

.lp-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.lp-intro .prose p + p{margin-top:var(--space-4)}
.lp-intro .award{display:flex;gap:var(--space-4);align-items:center;margin:0;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--sea-100)}
.lp-intro .award img{width:88px;height:88px;flex:none}
.lp-intro .award strong{display:block;font-family:var(--f-head);font-size:1.25rem;color:var(--color-heading);line-height:1.2}
.lp-intro .award small{display:block;margin-top:4px;color:var(--color-text-muted)}
.lp-side{display:grid;gap:var(--space-6)}   /* colonna destra dell'intro: badge + indice della pagina, in alto col testo */
.lp-side nav .eyebrow{margin-bottom:var(--space-3)}
@media (max-width:720px){.lp-intro{grid-template-columns:1fr}.lp-intro .prose{max-width:none}}   /* una colonna: il testo usa tutta la larghezza, niente vuoto a destra */

.sec-head{text-align:center;max-width:720px;margin:0 auto var(--space-6)}
.sec-head p{color:var(--color-text-muted);margin-top:var(--space-2)}
.lp-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);list-style:none;padding:0;margin:0}
.lp-card{position:relative;height:100%;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}
.lp-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 500ms var(--ease-out)}
.lp-card .b{padding:var(--space-4) var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.lp-card h3{font-size:1.15rem;margin:0}
.lp-card h3 a{text-decoration:none;color:inherit}
.lp-card h3 a::after{content:"";position:absolute;inset:0}
.lp-card .sub{font-size:.85rem;color:var(--sea-500);font-weight:600}
.lp-card p{font-size:.92rem;color:var(--color-text-muted)}
.lp-card .go{margin-top:auto;padding-top:var(--space-2);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);display:inline-flex;align-items:center;gap:6px}
.lp-card .go .ico{width:18px;height:18px;transition:transform var(--dur)}
.lp-card:hover,.lp-card.tapped{transform:translateY(-4px);box-shadow:var(--shadow)}
.lp-card:hover img,.lp-card.tapped img{transform:scale(1.04)}
.lp-card:hover .go .ico{transform:translateX(4px)}
@media (max-width:1100px){.lp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.lp-cards{grid-template-columns:1fr}}

/* Mappa illustrata delle cale */
.lp-map{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.map-art{position:relative;border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;background:var(--sea-900);scrollbar-width:thin}
.map-in{position:relative;aspect-ratio:1296/620;min-width:100%} /* stesso rapporto dell'illustrazione: i pin in % restano sui luoghi */
.map-art .map-in > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* pin numerati (il numero rimanda all'elenco): le cale vicine al residence non si accavallano a nessuna larghezza */
.map-art .pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--sea-900);z-index:1}
.map-art .pin .lbl{background:var(--white);border-radius:var(--radius-pill);padding:3px 10px;font-size:.78rem;font-weight:700;white-space:nowrap;box-shadow:0 4px 12px -4px color-mix(in srgb, var(--global-palette3) 40%, transparent)}
.map-art a.pin .lbl{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);opacity:0;pointer-events:none;transition:opacity var(--dur-fast)}
.map-art a.pin:hover,.map-art a.pin:focus-visible,.map-art a.pin.on{z-index:3}
.map-art a.pin:hover .lbl,.map-art a.pin:focus-visible .lbl,.map-art a.pin.on .lbl{opacity:1}
.map-art .pin .dot{width:26px;height:26px;border-radius:50%;background:var(--sea-700);color:var(--white);border:2px solid var(--white);display:grid;place-items:center;font-size:.78rem;font-weight:700;box-shadow:0 2px 6px color-mix(in srgb, var(--global-palette3) 40%, transparent);transition:transform var(--dur-fast)}
.map-art a.pin:hover .dot,.map-art a.pin.on .dot{transform:scale(1.2);background:var(--sea-500)}
.map-art .pin.home{transform:translate(-50%,calc(-100% + 9px))}
.cala-list .n{width:26px;height:26px;border-radius:50%;background:var(--sea-700);color:var(--white);display:grid;place-items:center;font-size:.78rem;font-weight:700;flex:none}
.cala-list .on .n{background:var(--sea-500)}
@media (max-width:600px){.map-art .pin .dot{width:22px;height:22px;font-size:.7rem}}
.map-art .pin.home .lbl{background:var(--sea-700);color:var(--white)}
.map-art .pin.home .dot{background:var(--gold);width:18px;height:18px;margin-top:30px;position:relative} /* etichetta su un'asticella, sopra i pin delle cale vicine */
.map-art .pin.home .dot::before{content:"";position:absolute;left:50%;bottom:100%;width:2px;height:28px;margin-bottom:3px;background:var(--sea-700);transform:translateX(-50%)}
.map-art .pin:hover .lbl,.map-art .pin:focus-visible .lbl,.map-art .pin.on .lbl{background:var(--sea-700);color:var(--white)}
.map-art .note{position:absolute;left:12px;bottom:10px;font-size:.72rem;color:var(--sea-900);background:color-mix(in srgb, var(--global-palette9) 85%, transparent);border-radius:var(--radius-pill);padding:2px 8px}
.map-art .compass{position:absolute;left:12px;top:12px;font-weight:700;color:var(--sea-900);font-size:.8rem;text-align:center;line-height:1;background:color-mix(in srgb, var(--global-palette9) 85%, transparent);border-radius:8px;padding:4px 6px}
.cala-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}   /* niente scroll interno: la lista è lunga quanto serve */
.lp-map > .map-art{position:sticky;top:calc(var(--header-h,76px) + 16px)}   /* la mappa resta in vista mentre si scorre la lista */
.cala-list a,.cala-list .item{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);text-decoration:none;color:var(--color-text);background:var(--white);transition:border-color var(--dur),box-shadow var(--dur)}
.cala-list a:hover,.cala-list a.on,.cala-list .item.on{border-color:var(--sea-200);box-shadow:var(--shadow-sm)}
.cala-list img{width:76px;height:56px;border-radius:8px;object-fit:cover;flex:none}
.cala-list b{display:block;color:var(--color-heading);font-family:var(--f-head);font-weight:600}
.cala-list small{display:block;color:var(--color-text-muted);font-size:.82rem}
.cala-list .ico{margin-left:auto;width:18px;height:18px;color:var(--color-primary);flex:none}
@media (max-width:900px){.lp-map{grid-template-columns:1fr}.lp-map > .map-art{position:relative;top:auto}}
@media (max-width:600px){.map-in{width:560px}.map-art .pin .lbl{font-size:.7rem;padding:2px 8px}} /* sul telefono la mappa si scorre di lato */

/* Fascia finale con foto (tramonto) */
.lp-band{position:relative;isolation:isolate;overflow:hidden;color:var(--white);padding:clamp(64px,10vw,120px) 0}
.lp-band > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.lp-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb, var(--global-palette3) 85%, transparent),color-mix(in srgb, var(--global-palette3) 35%, transparent))}
.lp-band h2{color:var(--white);font-size:clamp(1.8rem,3.6vw,2.6rem);max-width:18ch}
.lp-band p{color:var(--sea-100);margin-top:var(--space-3);max-width:50ch}
.lp-band .btn{margin-top:var(--space-5)}
.lp-band .script{display:block;font-size:clamp(1.2rem,2vw,1.6rem);color:var(--white);margin-top:var(--space-5)}

/* ---------- Scheda (sottopagine Lampedusa) */
.sk-hero{height:clamp(220px,38vw,420px);overflow:hidden;position:relative}
.sk-hero img{width:100%;height:100%;object-fit:cover}
.sk-top{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,5vw,64px);align-items:start}
.sk-top h1{font-size:clamp(2.1rem,4.4vw,3.2rem);margin-top:var(--space-2)}
.sk-top .sub{font-family:var(--f-head);font-size:1.2rem;color:var(--color-text-muted);margin-top:var(--space-1)}
.sk-top .intro{margin-top:var(--space-4);font-size:1.05rem}
.sk-facts{margin-top:calc(-1 * clamp(60px,9vw,110px));position:relative;z-index:3;background:var(--sea-100);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow);list-style:none;display:grid;gap:var(--space-4)}
.sk-facts li{display:flex;gap:var(--space-3);align-items:flex-start}
.sk-facts .ico{width:24px;height:24px;color:var(--sea-500);flex:none;margin-top:2px}
.sk-facts b{display:block;font-size:.88rem;color:var(--color-heading)}
.sk-facts span{font-size:.88rem;color:var(--color-text-muted)}
.sk-facts .btn{width:100%;justify-content:center;margin-top:var(--space-2)}
.sk-gal{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;height:clamp(260px,34vw,400px);margin-top:var(--space-7);position:relative}
.sk-gal button{border:0;padding:0;border-radius:var(--radius);overflow:hidden;background:var(--sea-100);cursor:zoom-in}
.sk-gal button:first-child{grid-row:span 2}
.sk-gal.one{grid-template-columns:1fr;grid-template-rows:1fr}
.sk-gal.one button:first-child{grid-row:auto}
.sk-gal.two{grid-template-rows:1fr}
.sk-gal.two button:first-child{grid-row:auto}
.sk-gal img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease-out)}
.sk-gal button:hover img{transform:scale(1.04)}
.sk-gal .count{position:absolute;right:12px;bottom:12px;background:color-mix(in srgb, var(--global-palette9) 95%, transparent);border-radius:var(--radius-pill);padding:.4rem .9rem;font-weight:700;font-size:.88rem;color:var(--color-primary);border:0;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.sk-gal .count .ico{width:18px;height:18px}
.sk-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,5vw,64px);margin-top:var(--space-7)}
.sk-toc{list-style:none;padding:0;margin:0 0 var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-2)}
.sk-toc a{display:inline-block;padding:.35rem .9rem;border-radius:var(--radius-pill);background:var(--sea-100);color:var(--color-primary);font-weight:600;font-size:.88rem;text-decoration:none}
.sk-toc a:hover{background:var(--sea-200)}
.sk-quote{margin:0;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--sea-100);font-family:var(--f-head);font-style:italic;font-size:1.15rem;color:var(--color-heading);position:relative}
.sk-quote::before{content:"“";display:block;font-size:3rem;line-height:.6;color:var(--sea-500);margin-bottom:var(--space-2)}
.sk-side{display:grid;gap:var(--space-5);align-content:start;position:sticky;top:calc(var(--header-h,76px) + 16px)}
.sk-stay{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--space-5);align-items:center;margin-top:var(--space-7);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--sea-100)}
.sk-stay img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.sk-stay h2{font-size:1.4rem}
.sk-stay p{margin-top:var(--space-2);color:var(--color-text-muted)}
.sk-stay .btn{margin-top:var(--space-4)}
@media (max-width:900px){
  .sk-top,.sk-body{grid-template-columns:1fr}
  .sk-facts{margin-top:0}
  .sk-side{position:static}
}
@media (max-width:600px){
  .sk-gal{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;height:auto}
  .sk-gal button{aspect-ratio:4/3}
  .sk-gal button:first-child{grid-column:span 2;grid-row:auto}
  .sk-stay{grid-template-columns:1fr}
  .sk-stay .btn{width:100%;justify-content:center}
}

/* ---------- Pagine legali */
.legal{max-width:820px;overflow-wrap:anywhere}
.legal h2{font-size:1.3rem;margin-top:var(--space-6)}
.legal p,.legal li{margin-top:var(--space-3)}

/* ---------- Il residence (2026-10-23, sul modello della schermata del cliente) */
.rs-hero .wrap{position:relative}
.rs-hero figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:21/9;background:var(--sea-100)}
.rs-hero figure img{width:100%;height:100%;object-fit:cover}
.rs-hero .card{position:relative;margin:-140px 0 0 clamp(16px,4vw,48px);max-width:min(560px,calc(100% - min(42%,480px) - 2*clamp(16px,4vw,48px) - var(--space-5)));background:var(--white);border-radius:var(--radius-lg);padding:clamp(24px,3.5vw,40px);box-shadow:0 24px 60px -24px color-mix(in srgb, var(--global-palette3) 35%, transparent)}
.rs-hero h1{font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.05}
.rs-hero .sub{font-family:var(--f-head);font-size:clamp(1.1rem,1.8vw,1.35rem);color:var(--color-primary);margin-top:var(--space-2)}
.rs-hero .card > p:not(.eyebrow):not(.sub){margin-top:var(--space-3);color:var(--color-text-muted)}
.rs-hero .row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
/* seconda foto nell'hero, a destra accanto al riquadro (come la coppia di foto della sezione sotto) */
.rs-hero-pic{position:absolute;right:clamp(16px,4vw,48px);bottom:32px;width:min(42%,480px);aspect-ratio:3/2;display:block;border:6px solid var(--white);padding:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--sea-100);box-shadow:var(--shadow-md);cursor:zoom-in}
.rs-hero-pic img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease-out)}
.rs-hero-pic:hover img{transform:scale(1.04)}
.rs-feats-sec{padding:var(--space-7) 0 0}
.rs-feats{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--color-border)}
.rs-feats li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);padding:var(--space-5) var(--space-3)}
.rs-feats li + li{border-left:1px solid var(--color-border)}
.rs-feats .ico{width:30px;height:30px;color:var(--color-primary);margin-bottom:var(--space-2)}
.rs-feats strong{color:var(--color-heading)}
.rs-feats span{font-size:.9rem;color:var(--color-text-muted)}
.rs-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:center}
.rs-split.rev{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.rs-text p + p{margin-top:var(--space-4)}
.rs-text h2{margin-bottom:var(--space-4)}
.rs-lead{font-size:1.15rem;color:var(--color-heading)}
.rs-pics{position:relative;padding:0 0 18% 0}
.rs-pics button{display:block;border:0;padding:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--sea-100);cursor:zoom-in}
.rs-pics img{width:100%;height:100%;object-fit:cover;transition:transform 500ms var(--ease-out)}
.rs-pics button:hover img{transform:scale(1.04)}
.rs-pics .a{width:82%;aspect-ratio:3/2}
.rs-pics .b{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:3/2;border:6px solid var(--white);box-shadow:var(--shadow-md)}
.rs-sign{font-size:clamp(1.7rem,3vw,2.3rem);color:var(--color-primary);margin-top:var(--space-5)}
.rs-head{max-width:720px;margin-bottom:var(--space-6)}
.rs-head p:not(.eyebrow){margin-top:var(--space-3);color:var(--color-text-muted)}
.rs-villas{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.rs-villa a{display:flex;flex-direction:column;height:100%;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--white);color:var(--color-text);text-decoration:none;transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}
.rs-villa a:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.rs-villa img{width:100%;aspect-ratio:4/3;object-fit:cover}
.rs-villa div{display:flex;flex-direction:column;flex:1;padding:var(--space-4) var(--space-5) var(--space-5)}
.rs-villa .who{font-size:.85rem;font-weight:700;color:var(--color-primary)}
.rs-villa h3{font-size:1.25rem;margin-top:2px}
.rs-villa ul{list-style:none;padding:0;margin:var(--space-3) 0;font-size:.92rem;color:var(--color-text-muted)}
.rs-villa ul li::before{content:"·";margin-right:6px;color:var(--color-primary);font-weight:700}
.rs-villa .price{margin-top:auto;color:var(--color-text-muted);font-size:.92rem}
.rs-villa .price b{font-family:var(--f-head);font-size:1.4rem;color:var(--color-heading)}
.rs-villa .go{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-3);font-weight:700;color:var(--color-primary)}
.rs-villa .go .ico{width:18px;height:18px;transition:transform var(--dur) var(--ease-out)}
.rs-villa a:hover .go .ico{transform:translateX(4px)}
.rs-amen{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(28px,5vw,72px)}
.rs-amen .amen{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--space-4)}
.rs-serv{list-style:none;padding:0;display:grid;gap:var(--space-3);margin-top:var(--space-4)}
.rs-serv li{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}
.rs-serv .ico{width:26px;height:26px;flex:none;color:var(--color-primary)}
.rs-serv strong{display:block;color:var(--color-heading)}
.rs-serv span{font-size:.92rem;color:var(--color-text-muted)}
.rs-note{margin-top:var(--space-6);font-size:.95rem;color:var(--color-text-muted)}
.rs-note a{font-weight:700;display:inline-flex;align-items:center;gap:4px}
.rs-note .ico{width:16px;height:16px}
.rs-beach{margin:0;position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3}
.rs-beach img{width:100%;height:100%;object-fit:cover}
.rs-beach figcaption{position:absolute;left:var(--space-4);bottom:var(--space-4);right:var(--space-4);width:fit-content;background:color-mix(in srgb, var(--global-palette9) 92%, transparent);border-radius:var(--radius-pill);padding:6px 14px;font-size:.88rem;font-weight:700;color:var(--color-heading)}
.rs-dist{list-style:none;padding:0}
.rs-dist li{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}
.rs-dist b{color:var(--color-primary);text-align:right}
.rs-text .muted .ico{width:18px;height:18px;vertical-align:-3px;color:var(--color-primary)}
.rs-info{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}
.rs-info li{background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}
.rs-info .ico{width:30px;height:30px;color:var(--color-primary)}
.rs-info h3{font-size:1.1rem;margin:var(--space-3) 0 var(--space-2)}
.rs-info p{font-size:.94rem;color:var(--color-text-muted)}
@media (max-width:1100px){.rs-info{grid-template-columns:repeat(2,minmax(0,1fr))}.rs-feats{grid-template-columns:repeat(3,minmax(0,1fr))}.rs-feats li:nth-child(4){border-left:0}.rs-feats li:nth-child(n+4){border-top:1px solid var(--color-border)}}
@media (max-width:860px){.rs-split,.rs-split.rev,.rs-amen{grid-template-columns:1fr}.rs-split.rev .rs-beach{order:2}.rs-hero figure{aspect-ratio:4/3}.rs-hero .card{margin:-72px var(--space-3) 0;max-width:560px}.rs-hero-pic{display:none}}
@media (max-width:759px){.rs-villas{grid-template-columns:1fr}}
@media (max-width:600px){.rs-villas,.rs-info,.rs-amen .amen{grid-template-columns:1fr}.rs-feats{grid-template-columns:repeat(2,minmax(0,1fr))}.rs-feats li{border-left:0!important;border-top:1px solid var(--color-border)}.rs-feats li:nth-child(-n+2){border-top:0}.rs-feats li:nth-child(even){border-left:1px solid var(--color-border)!important}.rs-feats li:last-child{grid-column:span 2}.rs-hero .card{margin:-48px 0 0}.rs-hero .row .btn{flex:1}}

/* ---------- Home: intro con gerarchia e foto della spiaggia (2026-10-23) */
.intro-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.intro-grid h2{margin-bottom:var(--space-4)}
.intro-lead{font-family:var(--f-head);font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.35;color:var(--color-heading)}
.intro-txt p + p{margin-top:var(--space-4)}
.intro-txt .btn{margin-top:var(--space-5)}
.intro-pic{position:relative;margin:0 0 40px}
.intro-pic > img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg)}
.intro-pic figcaption{position:absolute;left:-24px;right:24px;bottom:-40px;display:flex;gap:var(--space-4);align-items:center;background:var(--white);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:0 20px 50px -20px color-mix(in srgb, var(--global-palette3) 40%, transparent)}
.intro-pic figcaption img{width:72px;height:72px;flex:none}
.intro-pic figcaption strong{display:block;font-family:var(--f-head);font-size:1.12rem;color:var(--color-heading);line-height:1.2}
.intro-pic figcaption span{display:block;font-size:.9rem;color:var(--color-text-muted);margin-top:4px}
@media (max-width:860px){.intro-grid{grid-template-columns:1fr}.intro-pic > img{aspect-ratio:4/3}.intro-pic figcaption{left:12px;right:12px}}
@media (max-width:600px){.intro-pic{margin-bottom:0}.intro-pic figcaption{position:relative;left:auto;right:auto;bottom:auto;margin:-32px 12px 0}}

/* Cale e spiagge: ritorno alla mappa della pagina Lampedusa */
.map-back{position:fixed;left:50%;bottom:var(--space-5);transform:translateX(-50%);z-index:var(--z-raised);display:inline-flex;align-items:center;gap:var(--space-2);padding:.6rem 1.1rem;border-radius:var(--radius-pill);background:var(--color-primary);color:var(--white);font-weight:600;font-size:.92rem;text-decoration:none;box-shadow:0 8px 24px color-mix(in srgb, var(--global-palette3) 25%, transparent)}
.map-back[hidden]{display:none}
.map-back:hover{background:var(--sea-900)}
.map-back .ico{width:18px;height:18px}
@media (max-width:600px){.map-back{bottom:calc(84px + env(safe-area-inset-bottom))}}
/* Card villette: su tablet affiancate, mai una colonna sola larga quanto lo schermo */
@media (min-width:760px){section.villas .cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:600px){.others .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Testi lunghi: giustificati e sillabati in italiano (lang="it" sull'html). Non su card, recensioni, didascalie e testi centrati */
.prose p,.intro-txt p,.intro p,.island .wrap > p:not(.award):not(.script),.rs-text p:not(.eyebrow):not(.muted),.tour-sec .tour-grid > div > p:not(.eyebrow):not(.script),#condizioni details p,.sk-top p.intro,.ways li p,.rev .q{
  text-align:justify;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3}
/* Pagina Offerte: 3 offerte (una per villetta) affiancate, foto sopra */
@media (min-width:1025px){.offers{grid-template-columns:repeat(3,minmax(0,1fr))}.offers .offer{grid-template-columns:1fr}.offers .offer img{aspect-ratio:4/3;height:auto}}
/* Mappa di Lampedusa: filtri cale e spiagge / luoghi d'interesse (cambiano punti ed elenco) */
.map-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}
.map-filters button{min-height:44px;padding:.4rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-pill);background:var(--white);font:inherit;font-weight:600;font-size:.95rem;color:var(--color-text);cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast)}
.map-filters button small{font-weight:400;color:var(--color-text-muted);margin-left:2px}
.map-filters button:hover{border-color:var(--sea-200)}
.map-filters button[aria-pressed="true"]{background:var(--color-primary);border-color:var(--color-primary);color:var(--white)}
.map-filters button[aria-pressed="true"] small{color:var(--sea-200)}
.map-art .pin[hidden],.cala-list[hidden]{display:none}
.map-art span.pin[data-c] .lbl{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);opacity:0;pointer-events:none;transition:opacity var(--dur-fast)}
.map-art span.pin[data-c]:hover .lbl,.map-art span.pin[data-c].on .lbl{opacity:1}
.map-art span.pin[data-c]:hover,.map-art span.pin[data-c].on{z-index:3}
.map-art span.pin[data-c]:hover .dot,.map-art span.pin[data-c].on .dot{transform:scale(1.2);background:var(--sea-500)}
.cala-list .ph{width:76px;height:56px;border-radius:8px;flex:none;display:grid;place-items:center;background:var(--sea-100);color:var(--color-primary)}
.cala-list .ph .ico{width:28px;height:28px;margin:0}
.map-art .pin.r .lbl{left:auto;right:-8px;transform:none}
.map-art .pin.l .lbl{left:-8px;transform:none}
/* Schede villetta: planimetrie come mini galleria (grande la prima, sotto le altre in miniatura; tutte aprono il visore) */
.plan-imgs{display:grid;gap:var(--space-2)}
/* 2 posti: tipo A orizzontale + tipo B verticale alla stessa altezza. La base di ogni riquadro è il suo bordo+padding,
   lo spazio restante va in proporzione al rapporto larghezza/altezza della pianta (1200/896 e 768/1376) */
.plan-imgs.multi{display:flex;align-items:flex-start}
.plan-imgs.multi > button{flex:1.339 1 calc(2 * var(--space-3) + 2px);min-width:0}
.plan-imgs.multi > button + button{flex-grow:.558}
.plan-imgs.multi img{width:100%;height:auto}
