/* Villa degli Ulivi — stili di vdu-core */
:root {
  --vdu-blu: #0E3A53; --vdu-mare: #1B5E7A; --vdu-azzurro: #5FA8C6; --vdu-schiuma: #DCEBF1;
  --vdu-calce: #F6F2EA; --vdu-sabbia: #D9CBB3; --vdu-ardesia: #4F6470; --vdu-cedro: #E3C55B;
  --vdu-r: 18px;
}

/* selettore lingue */
.vdu-lingue { display: inline-flex; gap: 6px; align-items: center; }
.vdu-lingue a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: .06em; line-height: 1; border: 1px solid transparent; transition: background .2s, border-color .2s, opacity .2s; opacity: .75; }
.vdu-lingue svg { width: 20px; height: 14px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); flex: none; }
.vdu-lingue a:hover, .vdu-lingue a.is-current { opacity: 1; }
.vdu-lingue.vdu-lingue--chiaro a, .vdu-lingue.vdu-lingue--chiaro a:hover { color: #fff; }
.vdu-lingue--compatto a { padding: 6px 7px; }
.vdu-lingue--compatto span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.vdu-lingue--compatto svg { width: 22px; height: 15px; }
.vdu-tagline .elementor-heading-title { white-space: nowrap; }
.vdu-lingue--chiaro a.is-current { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.08); }
.vdu-lingue.vdu-lingue--scuro a { color: var(--vdu-blu); }
.vdu-lingue--scuro a.is-current { border-color: var(--vdu-sabbia); background: #fff; }

/* contatti */
.vdu-contatti { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.vdu-contatti li { display: flex; gap: 12px; align-items: flex-start; }
.vdu-contatti .vdu-ico { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--vdu-schiuma); }
.vdu-contatti svg { width: 18px; height: 18px; fill: var(--vdu-mare); }
.vdu-contatti a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.vdu-contatti a:hover { border-bottom-color: currentColor; }
.vdu-contatti span:last-child { padding-top: 7px; }
.vdu-contatti--scuro { color: #fff; }
.vdu-contatti--scuro .vdu-ico { background: rgba(255,255,255,.1); }
.vdu-contatti--scuro svg { fill: var(--vdu-azzurro); }

.vdu-cin { letter-spacing: .04em; }

/* modulo di prenotazione */
.vdu-booking { --gap: 22px; color: var(--vdu-blu); }
.vdu-step { background: #fff; border: 1px solid #EAE3D6; border-radius: var(--vdu-r); padding: 26px; margin: 0 0 18px; }
.vdu-step__head { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; }
.vdu-step__head h3 { margin: 0; font-size: 22px; color: var(--vdu-blu); }
.vdu-step__n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--vdu-blu); color: #fff; font-weight: 700; font-size: 14px; flex: none; }
.vdu-label { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--vdu-ardesia); margin: 0 0 6px; }
.vdu-cal { position: relative; }
.vdu-cal__nav { position: absolute; inset: 0 0 auto 0; display: flex; justify-content: space-between; pointer-events: none; }
.vdu-cal__nav button { pointer-events: auto; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #E3DACB; background: #fff; color: var(--vdu-blu); font-size: 22px; line-height: 1; cursor: pointer; padding: 0; }
.vdu-cal__nav button:hover { background: var(--vdu-schiuma); }
.vdu-cal__months { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; }
.vdu-cal__title { text-align: center; font-weight: 700; font-size: 17px; height: 38px; line-height: 38px; margin: 0 0 8px; }
.vdu-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.vdu-cal__dow { text-align: center; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--vdu-ardesia); padding: 4px 0; }
.vdu-day { aspect-ratio: 1; min-height: 38px; border: 0; border-radius: 10px; background: var(--vdu-calce); color: var(--vdu-blu); font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; padding: 0; transition: background .15s, color .15s, transform .15s; }
.vdu-day:hover:not(:disabled) { background: var(--vdu-schiuma); transform: translateY(-1px); }
.vdu-day.is-today { box-shadow: inset 0 0 0 1.5px var(--vdu-azzurro); }
.vdu-day.is-past { background: transparent; color: #B9C2C7; cursor: default; }
.vdu-day.is-busy { background: repeating-linear-gradient(135deg, #F1ECE2 0 6px, #E8E0D1 6px 12px); color: #A9A08F; text-decoration: line-through; cursor: not-allowed; }
.vdu-day.is-checkout { cursor: pointer; text-decoration: none; color: var(--vdu-blu); }
.vdu-day.is-in { background: var(--vdu-schiuma); border-radius: 6px; }
.vdu-day.is-start, .vdu-day.is-end { background: var(--vdu-blu); color: #fff; }
.vdu-cal__legend { display: flex; flex-wrap: wrap; gap: 18px; margin: 16px 0 0; font-size: 13px; color: var(--vdu-ardesia); }
.vdu-cal__legend span::before { content: ""; display: inline-block; width: 14px; height: 14px; border-radius: 4px; margin-right: 7px; vertical-align: -2px; }
.vdu-cal__legend .is-free::before { background: var(--vdu-calce); box-shadow: inset 0 0 0 1px #E3DACB; }
.vdu-cal__legend .is-busy::before { background: repeating-linear-gradient(135deg, #F1ECE2 0 3px, #E3DACB 3px 6px); }
.vdu-cal__legend .is-sel::before { background: var(--vdu-blu); }
.vdu-dates { display: grid; grid-template-columns: 1fr 1fr auto; gap: 14px; margin: 20px 0 0; padding: 16px 18px; border-radius: 14px; background: var(--vdu-calce); }
.vdu-dates strong { font-size: 15px; }
.vdu-hint { margin: 12px 0 0; font-size: 14px; color: var(--vdu-ardesia); min-height: 1.4em; }
.vdu-hint.is-warn { color: #9a3b1b; }
.vdu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.vdu-field--wide { grid-column: 1 / -1; }
.vdu-field input, .vdu-field select, .vdu-field textarea { width: 100%; box-sizing: border-box; border: 1px solid #DED5C5; border-radius: 12px; background: #fff; padding: 13px 14px; font: inherit; font-size: 16px; color: var(--vdu-blu); transition: border-color .2s, box-shadow .2s; }
.vdu-field input:focus, .vdu-field select:focus, .vdu-field textarea:focus { outline: none; border-color: var(--vdu-azzurro); box-shadow: 0 0 0 4px rgba(95,168,198,.18); }
.vdu-field.is-invalid input, .vdu-field.is-invalid select { border-color: #b3261e; }
.vdu-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0 0; }
.vdu-opt { position: relative; display: block; cursor: pointer; }
.vdu-opt input { position: absolute; opacity: 0; }
.vdu-opt span { display: block; height: 100%; box-sizing: border-box; padding: 16px 18px 16px 46px; border: 1px solid #DED5C5; border-radius: 14px; transition: border-color .2s, background .2s; }
.vdu-opt span::before { content: ""; position: absolute; left: 16px; top: 18px; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #C9BFAD; background: #fff; }
.vdu-opt input:checked + span { border-color: var(--vdu-blu); background: #F7FBFC; }
.vdu-opt input:checked + span::before { border-color: var(--vdu-blu); background: radial-gradient(circle, var(--vdu-blu) 0 45%, #fff 50%); }
.vdu-opt input:focus-visible + span { box-shadow: 0 0 0 4px rgba(95,168,198,.25); }
.vdu-opt strong { display: block; font-size: 16px; }
.vdu-opt small { display: block; margin-top: 3px; color: var(--vdu-ardesia); font-size: 13px; line-height: 1.4; }
.vdu-rooms { display: block; max-width: 240px; margin-top: 16px; }
.vdu-rooms[hidden] { display: none; }
.vdu-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vdu-check { display: flex; gap: 12px; align-items: flex-start; margin: 18px 0 0; font-size: 14px; line-height: 1.5; color: var(--vdu-ardesia); cursor: pointer; }
.vdu-check input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--vdu-blu); flex: none; }
.vdu-check a { color: var(--vdu-mare); }
.vdu-check.is-invalid { color: #b3261e; }
.vdu-submit { text-align: center; padding: 8px 0 0; }
.vdu-btn { appearance: none; border: 0; border-radius: 999px; background: var(--vdu-blu); color: #fff; font: inherit; font-weight: 700; font-size: 17px; padding: 17px 42px; cursor: pointer; transition: background .2s, transform .2s; }
.vdu-btn:hover { background: var(--vdu-mare); transform: translateY(-1px); }
.vdu-btn:disabled { opacity: .6; cursor: wait; transform: none; }
.vdu-note { margin: 12px 0 0; font-size: 14px; color: var(--vdu-ardesia); }
.vdu-error { margin: 14px auto 0; max-width: 560px; padding: 12px 16px; border-radius: 12px; background: #FCEDEA; color: #8a2414; font-size: 15px; }
.vdu-error[hidden] { display: none; }
.vdu-done { text-align: center; background: #fff; border: 1px solid #EAE3D6; border-radius: var(--vdu-r); padding: 46px 26px; outline: none; }
.vdu-done svg { width: 64px; height: 64px; fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.vdu-done circle { stroke: var(--vdu-azzurro); }
.vdu-done path { stroke: var(--vdu-blu); }
.vdu-done h3 { margin: 14px 0 8px; font-size: 26px; color: var(--vdu-blu); }
.vdu-done p { max-width: 520px; margin: 0 auto; color: var(--vdu-ardesia); }
@media (max-width: 640px) {
  .vdu-step { padding: 20px 16px; }
  .vdu-grid, .vdu-choice { grid-template-columns: 1fr; }
  .vdu-dates { grid-template-columns: 1fr 1fr; }
  .vdu-dates > div:last-child { grid-column: 1 / -1; }
  .vdu-day { min-height: 40px; font-size: 14px; }
}

/* WhatsApp fisso */
.vdu-wa { position: fixed; right: 18px; bottom: 18px; z-index: 9990; width: 56px; height: 56px; border-radius: 50%; background: #25D366; display: grid; place-items: center; box-shadow: 0 10px 26px rgba(14,58,83,.28); transition: transform .2s; }
.vdu-wa:hover { transform: scale(1.06); }
.vdu-wa svg { width: 30px; height: 30px; fill: #fff; }

/* banner cookie */
.vdu-ck { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999; max-width: 560px; margin: 0 auto; background: #fff; color: var(--vdu-blu); border-radius: 18px; box-shadow: 0 18px 50px rgba(14,58,83,.25); padding: 22px 22px 18px; font-size: 14px; line-height: 1.55; }
.vdu-ck p { margin: 0 0 14px; }
.vdu-ck a { color: var(--vdu-mare); }
.vdu-ck__btns { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.vdu-ck button { border-radius: 999px; padding: 10px 20px; font: inherit; font-weight: 700; cursor: pointer; border: 1px solid var(--vdu-blu); }
.vdu-ck__no { background: #fff; color: var(--vdu-blu); }
.vdu-ck__ok { background: var(--vdu-blu); color: #fff; }

/* pagine di testo (privacy, cookie, termini) */
.vdu-legal { max-width: 820px; margin: 0 auto; color: var(--vdu-ardesia); font-size: 17px; line-height: 1.75; }
.vdu-legal h2 { color: var(--vdu-blu); font-size: 26px; margin: 42px 0 12px; }
.vdu-legal h3 { color: var(--vdu-blu); font-size: 20px; margin: 28px 0 8px; }
.vdu-legal table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 12px 0 20px; }
.vdu-legal th, .vdu-legal td { border-bottom: 1px solid #E8E0D1; padding: 10px 8px; text-align: left; vertical-align: top; }
.vdu-legal a { color: var(--vdu-mare); }

/* il tema e il kit danno stili propri a pulsanti e campi: qui si rimettono quelli del modulo */
.vdu-booking button, .vdu-booking input, .vdu-booking select, .vdu-booking textarea { font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; }
.vdu-booking .vdu-cal button.vdu-day { display: block; width: 100%; min-width: 0; height: auto; margin: 0; padding: 0; border: 0; border-radius: 10px; background: var(--vdu-calce); color: var(--vdu-blu); font-size: 15px; font-weight: 600; line-height: 1; }
.vdu-booking .vdu-cal button.vdu-day:hover:not(:disabled), .vdu-booking .vdu-cal button.vdu-day:focus-visible { background: var(--vdu-schiuma); color: var(--vdu-blu); }
.vdu-booking .vdu-cal button.vdu-day.is-past { background: transparent; color: #B9C2C7; }
.vdu-booking .vdu-cal button.vdu-day.is-busy { background: repeating-linear-gradient(135deg, #F1ECE2 0 6px, #E8E0D1 6px 12px); color: #A9A08F; }
.vdu-booking .vdu-cal button.vdu-day.is-checkout { color: var(--vdu-blu); }
.vdu-booking .vdu-cal button.vdu-day.is-in { background: var(--vdu-schiuma); color: var(--vdu-blu); border-radius: 6px; }
.vdu-booking .vdu-cal button.vdu-day.is-start, .vdu-booking .vdu-cal button.vdu-day.is-end { background: var(--vdu-blu); color: #fff; }
.vdu-booking .vdu-cal__nav button { width: 38px; height: 38px; min-width: 0; padding: 0; border: 1px solid #E3DACB; border-radius: 50%; background: #fff; color: var(--vdu-blu); font-size: 22px; line-height: 1; display: grid; place-items: center; }
.vdu-booking .vdu-cal__nav button:hover { background: var(--vdu-schiuma); color: var(--vdu-blu); }
.vdu-booking .vdu-field input, .vdu-booking .vdu-field select, .vdu-booking .vdu-field textarea { width: 100%; height: auto; min-height: 48px; margin: 0; border: 1px solid #DED5C5; border-radius: 12px; background: #fff; padding: 13px 14px; font-size: 16px; line-height: 1.4; color: var(--vdu-blu); }
.vdu-booking .vdu-field textarea { min-height: 110px; }
.vdu-booking .vdu-field input:focus, .vdu-booking .vdu-field select:focus, .vdu-booking .vdu-field textarea:focus { border-color: var(--vdu-azzurro); box-shadow: 0 0 0 4px rgba(95,168,198,.18); outline: none; }
.vdu-booking button.vdu-btn { border: 0; border-radius: 999px; background: var(--vdu-blu); color: #fff; font-size: 17px; font-weight: 700; padding: 17px 42px; }
.vdu-booking button.vdu-btn:hover { background: var(--vdu-mare); color: #fff; }
.vdu-prose { font-size: 18px; line-height: 1.75; color: var(--vdu-ardesia); }
.vdu-prose p, .vdu-legal p { margin: 0 0 1em; }
.vdu-legal ul { margin: 0 0 1.2em; padding-left: 1.2em; }
.vdu-legal li { margin: 0 0 .5em; }
.vdu-booking .vdu-cal button.vdu-day { aspect-ratio: auto; height: 46px; }
@media (max-width: 640px) { .vdu-booking .vdu-cal button.vdu-day { height: 42px; } }

/* pagina 404 */
.vdu-404 { padding: 12px; }
.vdu-404__hero { min-height: 78vh; border-radius: 12px; display: flex; flex-direction: column; justify-content: flex-end; padding: 140px 40px 60px; color: #fff;
  background: linear-gradient(180deg, rgba(14,58,83,.35), rgba(14,58,83,.85)), var(--vdu-404-bg) center/cover no-repeat, var(--vdu-blu); }
.vdu-404__code { margin: 0; font-size: 15px; letter-spacing: .3em; color: var(--vdu-azzurro); font-weight: 700; }
.vdu-404 .vdu-404__hero h1 { margin: 10px 0 14px; font-size: clamp(34px, 6vw, 62px); line-height: 1.05; color: #fff !important; max-width: 820px; }
.vdu-404__hero p { max-width: 560px; color: #DCEBF1; font-size: 18px; }
.vdu-404__btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
.vdu-404 a.vdu-404__btn { display: inline-block; padding: 14px 26px; border-radius: 999px; background: var(--vdu-azzurro); color: #fff; font-weight: 700; text-decoration: none; }
.vdu-404 a.vdu-404__btn--light { background: #fff; color: var(--vdu-blu); }

/* 1.1.0 — logo, menu e dettagli */
@media (min-width: 1025px) { .vdu-solo-mobile { display: none !important; } }
.vdu-logo img { display: block; height: auto; }
.vdu-contact-card { background: #fff; border: 1px solid #EAE3D6; border-radius: 18px; padding: 26px 18px 22px; transition: transform .2s, box-shadow .2s; }
.vdu-contact-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(14,58,83,.08); }
.vdu-contact-card .elementor-icon-box-description a { color: var(--vdu-blu); text-decoration: none; word-break: break-word; }
.e-con.vdu-contact-row { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; width: 100%; max-width: 1100px; margin: 0 auto; }
.e-con.vdu-contact-row > .elementor-widget { width: auto !important; max-width: none !important; }
@media (max-width: 767px) { .e-con.vdu-contact-row { grid-template-columns: 1fr; } }
html, body { overflow-x: clip; }
@media (max-width: 767px) {
  .elementor-image-gallery .gallery { margin: 0 -4px !important; }
  .elementor-image-gallery .gallery-item { width: 50% !important; max-width: 50% !important; padding: 0 4px 8px !important; box-sizing: border-box; }
}

/* 1.2.0 — impaginazione più compatta e curata */
.vdu-giustificato p { text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.vdu-giustificato p + p, .vdu-prose p + p { margin-top: .85em; }


/* dati in evidenza */
.e-con.vdu-stats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; width: 100%; }
.vdu-stat { background: #fff; border: 1px solid #EAE3D6; border-radius: 16px; padding: 16px 18px; width: auto !important; max-width: none !important; }
.vdu-stat .elementor-icon-box-title { font-size: 30px !important; line-height: 1.05 !important; margin-bottom: 2px !important; }
.vdu-stat .elementor-icon-box-description { font-size: 14px !important; letter-spacing: .02em; }
.vdu-stat .elementor-icon-box-wrapper { align-items: center; }
@media (max-width: 767px) {
  .e-con.vdu-stats { gap: 8px !important; }
  .vdu-stat { padding: 12px 8px; }
  .vdu-stat .elementor-icon-box-wrapper { flex-direction: column !important; text-align: center !important; gap: 6px; }
  .vdu-stat .elementor-icon-box-icon { margin: 0 !important; }
  .vdu-stat .elementor-icon-box-title { font-size: 22px !important; }
  .vdu-stat .elementor-icon-box-description { font-size: 12px !important; line-height: 1.3 !important; }
}

/* schede con icona (comfort, giornata) */
.e-con.vdu-features { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; width: 100%; }
.vdu-feature { width: auto !important; max-width: none !important; }
.e-con.vdu-features .vdu-feature { background: #fff; border: 1px solid #EAE3D6; border-radius: 14px; padding: 14px 16px; }
.e-con.vdu-features .elementor-icon-box-wrapper { align-items: center; }
.e-con.vdu-giornata { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px !important; width: 100%; }
.vdu-feature--card { background: #fff; border: 1px solid #EAE3D6; border-radius: 18px; padding: 26px 22px; }
.vdu-feature--card .elementor-icon-box-title { font-size: 20px !important; }
@media (max-width: 767px) { .e-con.vdu-features { gap: 8px !important; } .e-con.vdu-features .vdu-feature { padding: 12px; } .e-con.vdu-features .elementor-icon-box-title { font-size: 14px !important; } .e-con.vdu-features .elementor-icon-box-icon { margin-right: 10px !important; } }

/* introduzione Dintorni: testo e foto */
.vdu-intro-row > .elementor-widget-text-editor, .vdu-intro-row > .e-con { flex: 1 1 60%; }
.vdu-foto-intro { flex: 0 0 36%; }
.vdu-foto-intro img { border-radius: 18px; width: 100%; aspect-ratio: 5/4; object-fit: cover; }
@media (max-width: 767px) { .vdu-foto-intro { flex: none; width: 100%; } .vdu-foto-intro img { aspect-ratio: 4/3; } }

/* su telefono: le serie di schede e foto scorrono di lato invece di allungare la pagina */
@media (max-width: 767px) {
  .e-con.vdu-slider-mobile, .e-con.vdu-slider-mobile > .e-con-inner {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; gap: 12px !important; padding-bottom: 10px; -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .e-con.vdu-slider-mobile::-webkit-scrollbar { display: none; }
  .e-con.vdu-slider-mobile > .e-con, .e-con.vdu-slider-mobile > .elementor-widget, .e-con.vdu-slider-mobile > .e-con-inner > .e-con {
    flex: 0 0 82% !important; width: 82% !important; max-width: 82% !important; min-width: 0; scroll-snap-align: start; margin: 0 !important;
  }
  .elementor-image-gallery .gallery { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 10px; margin: 0 !important; padding-bottom: 8px; scrollbar-width: none; }
  .elementor-image-gallery .gallery::-webkit-scrollbar { display: none; }
  .elementor-image-gallery .gallery-item { flex: 0 0 78% !important; width: 78% !important; max-width: 78% !important; margin: 0 !important; padding: 0 !important; scroll-snap-align: start; }
  .elementor-image-gallery .gallery-item img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 14px; }
  .elementor-image-gallery br { display: none; }
}
.e-con.vdu-giornata, .e-con.vdu-features, .e-con.vdu-stats { grid-auto-rows: auto !important; align-items: stretch; align-content: start; height: auto !important; min-height: 0 !important; }
.vdu-feature--card .elementor-icon-box-description { font-size: 15px !important; }
.e-con.vdu-giornata, .e-con.vdu-features, .e-con.vdu-stats { background: transparent !important; flex-grow: 0 !important; }
@media (max-width: 767px) {
  .e-con.vdu-amenities { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  .e-con.vdu-amenities > .elementor-widget { width: auto !important; max-width: none !important; }
  .e-con.vdu-amenities .elementor-image-box-wrapper { padding: 0; }
  .e-con.vdu-amenities .elementor-image-box-img { margin-bottom: 10px !important; }
  .e-con.vdu-amenities .elementor-image-box-title { font-size: 15px !important; }
  .e-con.vdu-amenities .elementor-image-box-description { font-size: 12.5px !important; line-height: 1.4 !important; }
}
.e-con.vdu-collage { display: grid !important; grid-template-columns: 1.1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px !important; height: 540px; }
.e-con.vdu-collage > .elementor-widget { width: auto !important; max-width: none !important; height: 100%; min-height: 0; }
.e-con.vdu-collage > .elementor-widget:first-child { grid-row: 1 / span 2; }
.e-con.vdu-collage .elementor-widget-container, .e-con.vdu-collage img { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 18px; }
@media (max-width: 1024px) { .e-con.vdu-collage { height: 420px; } }
@media (max-width: 767px) { .e-con.vdu-collage { height: 300px; grid-template-columns: 1fr; grid-template-rows: 1fr; } .e-con.vdu-collage > .elementor-widget:not(:first-child) { display: none; } }
@media (max-width: 767px) { .vdu-stat .elementor-icon-box-icon { align-self: center; display: flex; justify-content: center; } .vdu-stat .elementor-icon-box-content { width: 100%; } }
.vdu-intro-row { align-items: center !important; }

/* mappa che si carica al clic */
.vdu-mappa { position: relative; height: var(--vdu-mappa-h, 380px); border-radius: 18px; overflow: hidden; border: 1px solid #EAE3D6;
  background: linear-gradient(135deg, #DCEBF1 0%, #F6F2EA 100%); }
.vdu-mappa iframe { width: 100%; height: 100%; border: 0; display: block; }
.vdu-mappa__cover { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 24px; }
.vdu-mappa__cover svg { width: 46px; height: 46px; fill: none; stroke: var(--vdu-blu); stroke-width: 1.6; }
.vdu-mappa__cover circle { stroke: var(--vdu-azzurro); }
.vdu-mappa__title { margin: 10px 0 2px; font-weight: 700; color: var(--vdu-blu); font-size: 18px; }
.vdu-mappa__note { margin: 0 0 14px; color: var(--vdu-ardesia); font-size: 14px; }
.vdu-mappa__btns { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 0; }
.vdu-mappa button.vdu-mappa__show { border: 0; border-radius: 999px; background: var(--vdu-blu); color: #fff; padding: 12px 22px; font: inherit; font-weight: 700; cursor: pointer; }
.vdu-mappa a.vdu-mappa__open { border: 1px solid var(--vdu-blu); border-radius: 999px; color: var(--vdu-blu); padding: 11px 20px; text-decoration: none; font-weight: 600; }
@media (max-width: 767px) { .vdu-mappa { height: 300px; } }
.vdu-mappa { max-width: 1100px; margin: 0 auto; width: 100%; }

/* ===== 1.3.0 — menu su telefono e tablet ===== */
@media (max-width: 1024px) {
  /* pulsante del menu: cerchio sottile con due linee */
  .ekit-wid-con button.elementskit-menu-hamburger {
    width: 46px; height: 46px; padding: 0 !important; border-radius: 999px !important; position: relative;
    background: rgba(14, 58, 83, .28) !important; border: 1px solid rgba(255, 255, 255, .55) !important;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: background .2s, transform .2s;
  }
  .ekit-wid-con button.elementskit-menu-hamburger:hover, .ekit-wid-con button.elementskit-menu-hamburger:focus-visible { background: rgba(14, 58, 83, .5) !important; }
  .ekit-wid-con button.elementskit-menu-hamburger > * { display: none !important; }
  .ekit-wid-con button.elementskit-menu-hamburger::before, .ekit-wid-con button.elementskit-menu-hamburger::after {
    content: ""; position: absolute; left: 50%; width: 18px; height: 1.6px; border-radius: 2px; background: #fff; transform: translateX(-50%);
  }
  .ekit-wid-con button.elementskit-menu-hamburger::before { top: 18px; }
  .ekit-wid-con button.elementskit-menu-hamburger::after { top: 25px; width: 12px; margin-left: 3px; }

  /* pannello a tutto schermo */
  .ekit-wid-con .elementskit-menu-container.elementskit-menu-offcanvas-elements {
    background: linear-gradient(165deg, #0E3A53 0%, #12475F 60%, #1B5E7A 100%) !important; max-width: none !important; width: 100% !important;
    padding: 0 28px 28px !important; flex-direction: column !important; justify-content: flex-start !important; gap: 0;
    transition: left .45s cubic-bezier(.22, .8, .3, 1) !important; z-index: 9999;
  }
  html.vdu-menu-aperto, html.vdu-menu-aperto body { overflow: hidden; }
  .ekit-wid-con .elementskit-nav-identity-panel {
    order: -1; display: flex !important; align-items: center; justify-content: space-between; padding: 22px 0 18px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .14); margin-bottom: 18px;
  }
  .vdu-menu-logo img { width: 165px; height: auto; display: block; }
  .ekit-wid-con button.elementskit-menu-close {
    position: relative !important; width: 46px; height: 46px; padding: 0 !important; border-radius: 999px !important; margin: 0 0 0 auto;
    background: transparent !important; border: 1px solid rgba(255, 255, 255, .45) !important; font-size: 0 !important; color: transparent !important; float: none !important;
  }
  .ekit-wid-con button.elementskit-menu-close span { position: absolute; top: 50%; left: 50%; width: 18px; height: 1.6px; background: #fff; border-radius: 2px; }
  .ekit-wid-con button.elementskit-menu-close span:first-child { transform: translate(-50%, -50%) rotate(45deg); }
  .ekit-wid-con button.elementskit-menu-close span:last-child { transform: translate(-50%, -50%) rotate(-45deg); }

  /* voci del menu */
  .ekit-wid-con .elementskit-navbar-nav { order: 0; padding: 0 !important; margin: 0 !important; width: 100%; }
  .ekit-wid-con .elementskit-navbar-nav > li { border: 0 !important; opacity: 0; transform: translateY(8px); transition: opacity .35s, transform .35s; }
  .ekit-wid-con .elementskit-menu-container.active .elementskit-navbar-nav > li { opacity: 1; transform: none; }
  .ekit-wid-con .elementskit-menu-container.active .elementskit-navbar-nav > li:nth-child(2) { transition-delay: .05s; }
  .ekit-wid-con .elementskit-menu-container.active .elementskit-navbar-nav > li:nth-child(3) { transition-delay: .1s; }
  .ekit-wid-con .elementskit-menu-container.active .elementskit-navbar-nav > li:nth-child(4) { transition-delay: .15s; }
  .ekit-wid-con .elementskit-menu-container.active .elementskit-navbar-nav > li:nth-child(5) { transition-delay: .2s; }
  .ekit-wid-con .elementskit-navbar-nav > li > a {
    display: flex !important; align-items: center; justify-content: space-between; padding: 15px 2px !important;
    font-family: "Bricolage Grotesque", sans-serif !important; font-size: 30px !important; font-weight: 600 !important; line-height: 1.15 !important;
    color: #fff !important; border-bottom: 1px solid rgba(255, 255, 255, .12); letter-spacing: -.01em !important;
  }
  .ekit-wid-con .elementskit-navbar-nav > li > a::after {
    content: ""; width: 9px; height: 9px; border-top: 1.6px solid #5FA8C6; border-right: 1.6px solid #5FA8C6; transform: rotate(45deg); margin-right: 6px; opacity: .85;
  }
  .ekit-wid-con .elementskit-navbar-nav > li.current-menu-item > a, .ekit-wid-con .elementskit-navbar-nav > li > a.active { color: #E3C55B !important; }
  .ekit-wid-con .elementskit-navbar-nav > li.vdu-solo-mobile > a {
    justify-content: center; margin-top: 26px; border: 0 !important; border-radius: 999px !important; background: #5FA8C6 !important; color: #0E3A53 !important; font-size: 19px !important; padding: 16px 20px !important;
  }
  .ekit-wid-con .elementskit-navbar-nav > li.vdu-solo-mobile > a::after { display: none; }

  /* fondo del pannello: lingue e contatti */
  .vdu-menu-foot { order: 1; margin-top: auto; padding-top: 28px; display: flex; flex-direction: column; gap: 16px; }
  .vdu-menu-foot .vdu-lingue { display: flex; gap: 10px; }
  .vdu-menu-contatti { margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
  .vdu-menu-contatti a { color: #BFD6DF !important; text-decoration: none; }
}

/* ===== slider su telefono: frecce e punti ===== */
.vdu-sw { position: relative; width: 100%; }
.vdu-sw__btn { display: none; }
@media (max-width: 767px) {
  .vdu-sw__btn {
    display: flex; align-items: center; justify-content: center; position: absolute; top: calc(50% - 14px); z-index: 3;
    width: 40px; height: 40px; border-radius: 999px; padding: 0; border: 1px solid rgba(14, 58, 83, .12); cursor: pointer;
    background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    box-shadow: 0 6px 18px rgba(14, 58, 83, .18); transform: translateY(-50%); transition: opacity .2s, transform .2s;
  }
  .vdu-sw__btn svg { width: 18px; height: 18px; fill: none; stroke: #0E3A53; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .vdu-sw__btn--prev { left: 6px; }
  .vdu-sw__btn--next { right: 6px; }
  .vdu-sw__btn:disabled { opacity: 0; pointer-events: none; }
  .vdu-sw__btn:active { transform: translateY(-50%) scale(.94); }
  .vdu-sw__dots { display: flex; justify-content: center; gap: 6px; padding-top: 10px; }
  .vdu-sw__dots i { width: 6px; height: 6px; border-radius: 99px; background: rgba(14, 58, 83, .2); transition: width .25s, background .25s; }
  .vdu-sw__dots i.on { width: 18px; background: #5FA8C6; }
  .bg-dark .vdu-sw__dots i, .vdu-sw .vdu-sw__dots i { }
}
@media (max-width: 767px) {
  .vdu-sw button.vdu-sw__btn {
    background: rgba(255, 255, 255, .92) !important; color: #0E3A53 !important; padding: 0 !important; margin: 0 !important;
    width: 40px !important; height: 40px !important; min-width: 0 !important; border-radius: 999px !important; border: 1px solid rgba(14, 58, 83, .12) !important; font-size: 0 !important;
  }
  .e-con.vdu-slider-mobile > .e-con { flex-direction: column !important; }
  .e-con.vdu-slider-mobile > .e-con > .elementor-widget { width: 100% !important; }
}
html.vdu-menu-aperto .vdu-wa { opacity: 0; pointer-events: none; }

/* ===== 1.3.1 — schede comfort più curate, testi sempre dentro ===== */
.e-con.vdu-features { gap: 14px !important; }
.e-con.vdu-features .vdu-feature {
  background: linear-gradient(180deg, #FFFFFF 0%, #FBF9F5 100%) !important; border: 1px solid #EAE3D6 !important; border-radius: 18px !important;
  padding: 18px 20px !important; box-shadow: 0 1px 0 rgba(14, 58, 83, .04), 0 10px 26px -14px rgba(14, 58, 83, .22);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; min-width: 0; overflow: hidden;
}
.e-con.vdu-features .vdu-feature:hover { transform: translateY(-2px); border-color: #D9CBB3 !important; box-shadow: 0 1px 0 rgba(14, 58, 83, .04), 0 16px 34px -16px rgba(14, 58, 83, .32); }
.e-con.vdu-features .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 14px; text-align: left !important; }
.e-con.vdu-features .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
.e-con.vdu-features .elementor-icon-box-icon .elementor-icon {
  width: 48px; height: 48px; border-radius: 999px; display: flex !important; align-items: center; justify-content: center;
  background: radial-gradient(circle at 30% 25%, #EEF6F9 0%, #DCEBF1 70%); box-shadow: inset 0 0 0 1px rgba(95, 168, 198, .25); font-size: 26px !important;
}
.e-con.vdu-features .elementor-icon-box-icon svg, .e-con.vdu-features .elementor-icon-box-icon img { width: 26px !important; height: 26px !important; }
.e-con.vdu-features .elementor-icon-box-content { min-width: 0; flex: 1 1 auto; }
.e-con.vdu-features .elementor-icon-box-title, .e-con.vdu-features .elementor-icon-box-title span {
  margin: 0 !important; font-family: "Bricolage Grotesque", sans-serif !important; font-size: 15.5px !important; font-weight: 600 !important;
  line-height: 1.3 !important; color: #0E3A53 !important; letter-spacing: 0 !important; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto;
}
@media (max-width: 767px) {
  .e-con.vdu-features { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .e-con.vdu-features .vdu-feature { padding: 16px 14px 15px !important; border-radius: 16px !important; }
  .e-con.vdu-features .elementor-icon-box-wrapper { flex-direction: column !important; align-items: flex-start !important; gap: 12px; }
  .e-con.vdu-features .elementor-icon-box-icon .elementor-icon { width: 42px; height: 42px; }
  .e-con.vdu-features .elementor-icon-box-icon svg, .e-con.vdu-features .elementor-icon-box-icon img { width: 23px !important; height: 23px !important; }
  .e-con.vdu-features .elementor-icon-box-title, .e-con.vdu-features .elementor-icon-box-title span { font-size: 14px !important; line-height: 1.3 !important; }
}

/* ===== 2.3.0 — modulo di richiesta: prima la scelta, poi le date ===== */
.vdu-choice--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.vdu-opt em { display: block; margin-top: 8px; font-style: normal; font-weight: 700; font-size: 14px; color: var(--vdu-mare); }
.vdu-opt em:empty { display: none; }
.vdu-sub { margin: 12px 2px 18px; font-size: 13.5px; color: var(--vdu-ardesia); }
.vdu-step__head { flex-wrap: wrap; }
.vdu-for { flex-basis: 100%; margin: -10px 0 0 44px; font-size: 13.5px; font-weight: 600; color: var(--vdu-mare); }
.vdu-booking .vdu-cal button.vdu-day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; line-height: 1.05; }
.vdu-booking .vdu-cal button.vdu-day small { font-size: 10px; font-weight: 600; color: var(--vdu-mare); opacity: .9; letter-spacing: -.01em; }
.vdu-booking .vdu-cal button.vdu-day.is-start small, .vdu-booking .vdu-cal button.vdu-day.is-end small { color: #CFE2EA; }
.vdu-booking .vdu-cal button.vdu-day.has-price { height: 52px; }
.vdu-booking .vdu-cal button.vdu-day.is-part { background: repeating-linear-gradient(135deg, #FBF4DE 0 6px, #F3E5B8 6px 12px); color: #8C7426; cursor: help; }
.vdu-booking .vdu-cal button.vdu-day.is-busy { cursor: help; }
.vdu-booking .vdu-cal button.vdu-day.is-part.is-checkout, .vdu-booking .vdu-cal button.vdu-day.is-busy.is-checkout { cursor: pointer; color: var(--vdu-blu); }
.vdu-cal__legend .is-part::before { background: repeating-linear-gradient(135deg, #FBF4DE 0 3px, #EAD9A0 3px 6px); }
.vdu-estimate { margin: 14px 0 0; padding: 14px 18px; border-radius: 14px; background: #F7FBFC; border: 1px solid #DCEBF1; }
.vdu-estimate__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 15px; }
.vdu-estimate__row strong { font-size: 22px; color: var(--vdu-blu); }
.vdu-estimate small { display: block; margin-top: 4px; font-size: 12.5px; color: var(--vdu-ardesia); }
.vdu-estimate[hidden] { display: none; }
.vdu-link { appearance: none; border: 0; background: none; padding: 0; margin-left: 4px; font: inherit; font-weight: 700; color: var(--vdu-mare); text-decoration: underline; cursor: pointer; }
.vdu-hint[hidden] { display: none; }
@media (max-width: 760px) { .vdu-choice--3 { grid-template-columns: 1fr; } .vdu-for { margin-left: 0; } }
@media (max-width: 640px) { .vdu-booking .vdu-cal button.vdu-day small { font-size: 9px; } .vdu-booking .vdu-cal button.vdu-day.has-price { height: 48px; } }

/* menu: logo, lingue e contatti del pannello esistono solo su telefono e tablet */
.vdu-menu-foot, .vdu-menu-logo { display: none !important; }
@media (max-width: 1024px) {
  .vdu-menu-foot { display: flex !important; }
  .vdu-menu-logo { display: block !important; }
}

/* 2.3.1 — "solo camere": non sembra più occupato */
.vdu-booking .vdu-cal button.vdu-day.is-part { background: #FFF8E4; color: var(--vdu-blu); box-shadow: inset 0 0 0 1.5px #EAD49A; height: 52px; }
.vdu-booking .vdu-cal button.vdu-day.is-part small.pf { color: #8C6A12; font-size: 9.5px; font-weight: 700; line-height: 1.05; white-space: normal; max-width: 94%; }
.vdu-cal__legend .is-part::before { background: #FFF8E4; box-shadow: inset 0 0 0 1.5px #EAD49A; }
.vdu-part-note { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: #FFF8E4; border: 1px solid #F0DFA8; color: #5C4A12; font-size: 14px; line-height: 1.5; }
.vdu-part-note[hidden] { display: none; }
@media (max-width: 640px) { .vdu-booking .vdu-cal button.vdu-day.is-part small.pf { font-size: 8px; } .vdu-booking .vdu-cal button.vdu-day.is-part { height: 50px; } }
.vdu-booking button.vdu-link, .vdu-booking button.vdu-link:hover { display: inline; background: none !important; color: var(--vdu-mare) !important; padding: 0 !important; margin: 0 0 0 4px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; font: inherit; font-weight: 700; text-decoration: underline; min-height: 0; width: auto; }
.vdu-offers { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.vdu-offers span { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 99px; background: #E3F1E8; color: #23663F; font-size: 13.5px; font-weight: 700; }
.vdu-offers[hidden] { display: none; }

/* 2.5.1 — gallerie a quadrati uguali; toccando la foto si apre intera, con le sue proporzioni */
.elementor-image-gallery .gallery-item .gallery-icon { overflow: hidden; border-radius: 14px; background: var(--vdu-schiuma, #DCEBF1); }
.elementor-image-gallery .gallery-item .gallery-icon a { display: block; }
.elementor-image-gallery .gallery-item img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 1 / 1 !important; object-fit: cover !important; border-radius: 0 !important; transition: transform .6s ease, filter .3s; }
@media (hover: hover) {
  .elementor-image-gallery .gallery-item a:hover img { transform: scale(1.04); filter: brightness(1.04); }
}
@media (max-width: 767px) {
  .elementor-image-gallery .gallery-item .gallery-icon { border-radius: 14px; }
  .elementor-image-gallery .gallery-item img { aspect-ratio: 1 / 1 !important; border-radius: 0 !important; }
}

/* 2.6.0 — prenotazioni online sospese: avviso e modulo informazioni */
.vdu-closed { margin: 0 0 18px; padding: 18px 22px; border-radius: 18px; background: #FFF8E4; border: 1px solid #F0DFA8; color: #5C4A12; }
.vdu-closed strong { display: block; font-size: 17px; color: var(--vdu-blu); margin-bottom: 4px; }
.vdu-closed p { margin: 0; line-height: 1.55; }
.vdu-closed[hidden] { display: none; }
.vdu-info .vdu-step__n { font-size: 15px; }
.vdu-done__icon { width: 64px; height: 64px; margin: 0 auto 10px; border-radius: 99px; border: 2.5px solid var(--vdu-azzurro); color: var(--vdu-blu); display: flex; align-items: center; justify-content: center; font-size: 30px; font-weight: 700; }

/* 2.7.0 — villa intera, a settimane */
.vdu-whole { padding: 16px 20px; border-radius: 16px; border: 1.5px solid var(--vdu-blu); background: #F7FBFC; margin: 0 0 4px; }
.vdu-whole strong { display: block; font-size: 17px; color: var(--vdu-blu); }
.vdu-whole small { display: block; margin-top: 4px; color: var(--vdu-ardesia); font-size: 14px; line-height: 1.5; }
.vdu-whole em { display: block; margin-top: 8px; font-style: normal; font-weight: 700; color: var(--vdu-mare); }
.vdu-whole em:empty { display: none; }
.vdu-booking .vdu-cal button.vdu-day.is-week { box-shadow: inset 0 0 0 2px var(--vdu-azzurro); background: #EAF4F8; }
.vdu-cal__legend span[hidden] { display: none; }

/* ===== 2.8.0 — servizi con icone, camere, hero ===== */
.vdu-ico { display: block; flex: 0 0 auto; }

/* servizi in home (fondo blu): schede con icona grande, tutto centrato */
.vdu-srv-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; width: 100%; }
.vdu-srv { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 34px 22px 30px; border: 1px solid rgba(220, 235, 241, .18); border-radius: 18px; background: rgba(255, 255, 255, .03); transition: background .3s, border-color .3s; }
.vdu-srv:hover { background: rgba(255, 255, 255, .06); border-color: rgba(95, 168, 198, .5); }
.vdu-srv__ico { width: 76px; height: 76px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(95, 168, 198, .14); color: #8CC6DD; margin: 0 auto 18px; }
.vdu-srv__ico .vdu-ico { width: 40px; height: 40px; }
.vdu-srv h3 { margin: 0 0 8px; font-family: var(--e-global-typography-primary-font-family, 'Bricolage Grotesque'), sans-serif; font-size: 20px; font-weight: 600; letter-spacing: .02em; color: #F6F2EA; line-height: 1.25; }
.vdu-srv p { margin: 0; font-size: 15.5px; line-height: 1.55; color: rgba(246, 242, 234, .78); }
@media (max-width: 1024px) { .vdu-srv-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .vdu-srv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vdu-srv { padding: 22px 12px 20px; border-radius: 16px; }
  .vdu-srv__ico { width: 60px; height: 60px; margin-bottom: 12px; }
  .vdu-srv__ico .vdu-ico { width: 32px; height: 32px; }
  .vdu-srv h3 { font-size: 16px; }
  .vdu-srv p { font-size: 13.5px; }
}

/* servizi compatti (pagina La Villa, fondo chiaro) */
.vdu-srv-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; }
.vdu-srv-list li { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid #EAE3D6; color: #0E3A53; font-size: 15.5px; font-weight: 500; line-height: 1.3; }
.vdu-srv-list .vdu-ico { width: 26px; height: 26px; color: #1B5E7A; }
@media (max-width: 1024px) { .vdu-srv-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .vdu-srv-list { grid-template-columns: 1fr 1fr; gap: 8px; } .vdu-srv-list li { padding: 12px; gap: 10px; font-size: 14px; } .vdu-srv-list .vdu-ico { width: 22px; height: 22px; } }

/* le tre camere: schede eleganti, senza richiesta per camera */
.vdu-camgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; width: 100%; }
.vdu-cam { display: flex; flex-direction: column; background: #fff; border-radius: 22px; overflow: hidden; border: 1px solid #EAE3D6; box-shadow: 0 10px 30px rgba(14, 58, 83, .06); }
.vdu-cam__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #DCEBF1; }
.vdu-cam__img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .8s ease; }
.vdu-cam:hover .vdu-cam__img { transform: scale(1.04); }
.vdu-cam__n { position: absolute; left: 16px; top: 16px; padding: 6px 14px; border-radius: 99px; background: rgba(246, 242, 234, .92); color: #0E3A53; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vdu-cam__body { padding: 24px 26px 26px; display: flex; flex-direction: column; flex: 1; }
.vdu-cam__sub { margin: 0 0 6px; color: #5FA8C6; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
.vdu-cam__title { margin: 0 0 12px; font-family: var(--e-global-typography-primary-font-family, 'Bricolage Grotesque'), sans-serif; font-size: 24px; line-height: 1.2; color: #0E3A53; font-weight: 600; }
.vdu-cam__text { margin: 0 0 18px; color: #4F6470; font-size: 15.5px; line-height: 1.6; }
.vdu-cam__feat { list-style: none; margin: auto 0 0; padding: 18px 0 0; border-top: 1px solid #EFE8DB; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.vdu-cam__feat li { display: flex; align-items: center; gap: 10px; color: #0E3A53; font-size: 14px; line-height: 1.3; }
.vdu-cam__feat .vdu-ico { width: 20px; height: 20px; color: #1B5E7A; }
.vdu-camgrid__cta { text-align: center; margin: 34px 0 0; }
.vdu-camgrid__cta .vdu-btn { display: inline-flex; padding: 16px 34px; border-radius: 99px; background: #0E3A53; color: #fff; font-weight: 600; text-decoration: none; }
.vdu-camgrid__cta .vdu-btn:hover { background: #1B5E7A; }
@media (max-width: 1024px) {
  .vdu-camgrid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 10px; scrollbar-width: none; }
  .vdu-camgrid::-webkit-scrollbar { display: none; }
  .vdu-cam { flex: 0 0 min(82%, 420px); scroll-snap-align: start; }
}
@media (max-width: 767px) {
  .vdu-cam__body { padding: 20px 20px 22px; }
  .vdu-cam__title { font-size: 21px; }
  .vdu-cam__text { font-size: 14.5px; }
  .vdu-cam__feat { grid-template-columns: 1fr; gap: 9px; }
}

/* hero: senza la scheda in anteprima; testo in basso a destra; video in loop sotto la velatura */
.vdu-hero { position: relative; overflow: hidden; }
.vdu-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; opacity: 0; transition: opacity 1.2s ease; pointer-events: none; }
.vdu-hero--video .vdu-hero-video { opacity: 1; }
.vdu-hero--video .elementor-background-slideshow { opacity: 0; transition: opacity 1.2s ease; }
.vdu-hero::before { z-index: 1 !important; }
.vdu-hero > .e-con, .vdu-hero > .e-con-inner { position: relative; z-index: 2; }
.vdu-hero-text { color: #F6F2EA !important; text-shadow: 0 1px 14px rgba(9, 32, 46, .45); }
.vdu-hero-text p { margin: 0; font-size: 19px; line-height: 1.6; }
@media (max-width: 767px) { .vdu-hero-text p { font-size: 16px; line-height: 1.55; } }

/* larghezza piena per i blocchi del plugin dentro Elementor */
.elementor-widget-shortcode:has(.vdu-camgrid), .elementor-widget-shortcode:has(.vdu-srv-grid), .elementor-widget-shortcode:has(.vdu-srv-list) { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }
.vdu-srv-grid .vdu-srv h3 { color: #F6F2EA !important; font-size: 20px !important; line-height: 1.25 !important; margin: 0 0 8px !important; text-transform: none !important; }
.vdu-srv-grid .vdu-srv p { color: rgba(246, 242, 234, .78) !important; }
@media (max-width: 767px) { .vdu-srv-grid .vdu-srv h3 { font-size: 16px !important; } }
.vdu-srv-more { text-align: center; margin: 26px 0 0; }
.vdu-srv-more a { color: #8CC6DD; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.vdu-cam__title { margin: 0 0 12px !important; color: #0E3A53 !important; }
.vdu-hero-tint { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity 1.2s ease; background: linear-gradient(180deg, rgba(14, 58, 83, .38) 0%, rgba(14, 58, 83, .30) 45%, rgba(14, 58, 83, .62) 100%); }
.vdu-hero--video .vdu-hero-tint { opacity: 1; }
/* 2.8.1 — testo dell'hero sotto il titolo, a sinistra */
.vdu-hero-text { max-width: 640px; margin: 4px 0 6px; }
.vdu-hero-text p { font-size: 20px; line-height: 1.6; }
@media (max-width: 767px) { .vdu-hero-text p { font-size: 16.5px; } }

/* 2.9.0 — camere più corte su telefono: testo in 3 righe, icone in fila, dettagli a richiesta */
.vdu-cam__icons, .vdu-cam__det { display: none; }
@media (max-width: 767px) {
  .vdu-cam__media { aspect-ratio: 16 / 10; }
  .vdu-cam__body { padding: 18px 18px 16px; }
  .vdu-cam__sub { font-size: 13px; margin-bottom: 4px; }
  .vdu-cam__title { font-size: 20px !important; margin-bottom: 8px !important; }
  .vdu-cam__text { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 14px; font-size: 14.5px; }
  .vdu-cam__feat { display: none; }
  .vdu-cam__icons { display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 0; padding-top: 14px; border-top: 1px solid #EFE8DB; }
  .vdu-cam__icons span { width: 36px; height: 36px; border-radius: 50%; background: #F1F6F8; color: #1B5E7A; display: flex; align-items: center; justify-content: center; }
  .vdu-cam__icons .vdu-ico { width: 19px; height: 19px; }
  .vdu-cam__det { display: block; margin-top: 12px; }
  .vdu-cam__det summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: #1B5E7A; padding: 6px 0; -webkit-tap-highlight-color: transparent; }
  .vdu-cam__det summary::-webkit-details-marker { display: none; }
  .vdu-cam__det summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
  .vdu-cam__det[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
  .vdu-cam__det .c, .vdu-cam__det[open] .o { display: none; }
  .vdu-cam__det[open] .c { display: inline; }
  .vdu-cam__full { margin: 8px 0 12px; color: #4F6470; font-size: 14.5px; line-height: 1.6; }
  .vdu-cam__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; }
  .vdu-cam__list li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #0E3A53; line-height: 1.25; }
  .vdu-cam__list .vdu-ico { width: 18px; height: 18px; color: #1B5E7A; }
  .vdu-camgrid { align-items: flex-start; }
}

/* Instagram */
.vdu-social-ig { display: inline-flex; align-items: center; gap: 8px; color: #4F6470; font-size: 14px; font-weight: 600; text-decoration: none; }
.vdu-social-ig:hover { color: #1B5E7A; }
.vdu-igband { display: flex; align-items: center; gap: 26px; width: 100%; padding: 30px 34px; border-radius: 24px; background: #fff; border: 1px solid #EAE3D6; box-shadow: 0 10px 30px rgba(14, 58, 83, .06); box-sizing: border-box; }
.vdu-igband__ico { flex: 0 0 72px; height: 72px; border-radius: 22px; display: flex; align-items: center; justify-content: center; color: #fff; background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.vdu-igband__tx { flex: 1; min-width: 0; }
.vdu-igband__k { margin: 0 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5FA8C6; }
.vdu-igband h3 { margin: 0 0 6px !important; font-size: 24px !important; line-height: 1.2 !important; color: #0E3A53 !important; }
.vdu-igband p { margin: 0; color: #4F6470; font-size: 15.5px; line-height: 1.55; }
.vdu-igband__btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; padding: 15px 28px; border-radius: 99px; background: #0E3A53; color: #fff !important; font-weight: 700; text-decoration: none; transition: background .2s, transform .2s; }
.vdu-igband__btn:hover { background: #1B5E7A; transform: translateY(-1px); }
@media (max-width: 767px) {
  .vdu-igband { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px 20px; }
  .vdu-igband__ico { flex-basis: auto; width: 56px; height: 56px; border-radius: 18px; }
  .vdu-igband h3 { font-size: 20px !important; }
  .vdu-igband__btn { width: 100%; justify-content: center; box-sizing: border-box; }
}
.vdu-done__ig { margin: 18px 0 0; }
.vdu-done__ig a { display: inline-flex; align-items: center; gap: 8px; color: #1B5E7A; font-weight: 700; text-decoration: none; }
.elementor-widget-shortcode:has(.vdu-igband) { width: 100% !important; max-width: 100% !important; flex: 1 1 100% !important; }
@media (max-width: 767px) {
  .vdu-cam__body:has(.vdu-cam__det[open]) .vdu-cam__text, .vdu-cam__body:has(.vdu-cam__det[open]) .vdu-cam__icons { display: none; }
  .vdu-cam__det[open] { border-top: 1px solid #EFE8DB; margin-top: 0; padding-top: 6px; }
}
.vdu-igband__k { text-transform: none !important; letter-spacing: .02em !important; font-size: 14px !important; }

/* 2.9.3 — settimane: +/− una settimana */
.vdu-weeks { display: flex; gap: 10px; margin: 12px 0 0; }
.vdu-weeks[hidden] { display: none; }
.vdu-booking button.vdu-wk { appearance: none; flex: 1; padding: 12px 14px; border-radius: 99px; border: 1.5px solid #5FA8C6; background: #fff; color: #0E3A53; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s; }
.vdu-booking button.vdu-wk:hover:not(:disabled) { background: #EAF4F8; }
.vdu-booking button.vdu-wk:disabled { opacity: .4; cursor: default; }
.vdu-booking .vdu-cal button.vdu-day.is-start:hover, .vdu-booking .vdu-cal button.vdu-day.is-end:hover, .vdu-booking .vdu-cal button.vdu-day.is-start:focus, .vdu-booking .vdu-cal button.vdu-day.is-end:focus { background: var(--vdu-blu); color: #fff; }
