.cvb, .cvi, .cvb-overlay {
 --paper: var(--bg); --ink: var(--ivory); --line: var(--border); --ash-1: var(--ivory-dim); --ash-2: var(--ivory-dim);
 --was: #a4544e; --ours: #237448; --radius-lg: 14px; --track-label: .02em; --w-title: 500;
 --text-2xs: 12px; --text-xs: 13px; --text-sm: 14px; --text-base: 16px; --text-md: 17px; --text-xl: 24px;
 font: 400 15px/1.5 var(--sans);
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) :is(.cvb, .cvi, .cvb-overlay) { --was: #e3a49c; --ours: #a3d8b7; } }
:root[data-theme="dark"] :is(.cvb, .cvi, .cvb-overlay) { --was: #e3a49c; --ours: #a3d8b7; }
:is(.cvb, .cvi, .cvb-overlay) *, :is(.cvb, .cvi, .cvb-overlay) *::before, :is(.cvb, .cvi, .cvb-overlay) *::after { box-sizing: border-box; }
:is(.cvb, .cvi, .cvb-overlay) .cv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 22px; border: 1px solid var(--line); border-radius: 999px; font: 500 14px/1.3 var(--sans); text-decoration: none; cursor: pointer; }
:is(.cvb, .cvi, .cvb-overlay) .cv-btn--primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
:is(.cvb, .cvi, .cvb-overlay) .cv-btn--ghost { background: transparent; color: var(--ink); }
:is(.cvb, .cvi, .cvb-overlay) .cv-btn:active { transform: scale(.98); }
.cv-sheet-lock, .cv-sheet-lock body { overflow: hidden; }
html.has-bookbar body { padding-bottom: var(--bookbar-h, 84px); }
.cvb { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--paper); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom, 0px); }
.cvb__inner { position: relative; width: calc(100% - 2 * var(--page-gutter)); max-width: calc(var(--page-content-max) - 2 * var(--page-gutter)); margin: 0 auto; display: flex; align-items: stretch; }
.cvb-field { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 3px; text-align: left; padding: 13px clamp(14px, 1.6vw, 26px); border: 0; border-right: 1px solid var(--line); background: none; color: var(--ink); font: inherit; cursor: pointer; transition: background-color .2s var(--ease); }
.cvb-field:first-child { padding-left: 0; }
.cvb-field:hover { background: color-mix(in oklch, var(--ink) 5%, transparent); }
.cvb-field.is-active { background: color-mix(in oklch, var(--ink) 5%, transparent); box-shadow: inset 0 2px 0 var(--ink); }
.cvb-field:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.cvb-field--static { cursor: default; }
.cvb-field--static:hover { background: none; }
.cvb-field__l { font: 500 var(--text-xs)/1.2 var(--sans); letter-spacing: var(--track-label); color: var(--ash-2); }
.cvb-field__v { font: 500 var(--text-sm)/1.25 var(--sans); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvb-field__v.is-empty { font-weight: 400; color: var(--ash-1); }
.cvb-field__v--name { font: var(--w-title) var(--text-md)/1.2 var(--serif); }
.cvb-btn { flex: 0 0 auto; min-width: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 12px clamp(20px, 2.4vw, 36px); border: 0; background: var(--ink); color: var(--paper); font: inherit; cursor: pointer; transition: opacity .25s var(--ease); }
.cvb-btn:hover { opacity: .88; }
.cvb-btn:focus-visible { outline: 2px solid var(--paper); outline-offset: -4px; }
.cvb-btn__l { font: 500 var(--text-base)/1.2 var(--sans); }
.cvb-btn__price { display: flex; align-items: center; gap: 7px; font: 400 var(--text-xs)/1.2 var(--sans); opacity: .92; }
.cvb-btn__price[hidden] { display: none; }
.cvb-dot { position: relative; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; animation: cvb-pulse 2.2s ease-in-out infinite; }
.cvb-dot.is-sold { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; animation: none; }
.cvb-dot[hidden] { display: none; }
@keyframes cvb-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.cvb-pb { display: none; }

/* tendine (desktop) */
.cvb-drop { position: absolute; bottom: calc(100% + 1px); z-index: 5; background: var(--paper); border: 1px solid var(--line); border-bottom: 0; border-radius: 14px 14px 0 0; box-shadow: 0 -18px 48px -24px oklch(0% 0 0 / .35); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .22s var(--ease), visibility .22s var(--ease), transform .22s var(--ease); }
.cvb-drop.is-open { opacity: 1; visibility: visible; transform: none; }
.cvb-drop--cal { left: 0; width: min(640px, 100%); }
.cvb-drop--guests { right: 200px; width: 290px; padding: 6px 0; }
.cvb-drop--prop { left: 0; width: min(360px, 100%); padding: 6px 0; }
.cvb-cal-nav { display: flex; align-items: flex-start; gap: 6px; padding: 18px 14px 12px; }
.cvb-cal-arrow { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); background: none; color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none; margin-top: 2px; }
.cvb-cal-arrow:hover { background: color-mix(in oklch, var(--ink) 6%, transparent); }
.cvb-cal-wrap { display: flex; gap: 22px; flex: 1; justify-content: center; }
.cvb-cal-month { flex: 0 0 262px; }
.cvb-cal-month__t, .cvb-m-month__t { font: 500 var(--text-sm)/1.2 var(--sans); color: var(--ink); text-align: center; margin-bottom: 10px; }
.cvb-wd { display: grid; grid-template-columns: repeat(7, 1fr); margin-bottom: 4px; }
.cvb-wd span { text-align: center; font: 500 var(--text-2xs)/1.6 var(--sans); color: var(--ash-2); }
.cvb-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px 0; }
.cvb-day { position: relative; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cvb-day::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 32px; transform: translateY(-50%); }
.cvb-day__n { position: relative; z-index: 1; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font: 400 var(--text-sm)/1 var(--sans); color: var(--ink); font-variant-numeric: tabular-nums; transition: background-color .14s, color .14s; }
.cvb-day:not(.cvb-day--off):not(.cvb-day--empty):hover .cvb-day__n { background: color-mix(in oklch, var(--ink) 10%, transparent); }
.cvb-day--off, .cvb-day--empty { cursor: default; pointer-events: none; }
.cvb-day--off .cvb-day__n { color: color-mix(in oklch, var(--ash-2) 55%, transparent); }
.cvb-day.is-start .cvb-day__n, .cvb-day.is-end .cvb-day__n { background: var(--ink); color: var(--paper); font-weight: 500; }
.cvb-day.is-start::before { left: 50%; background: color-mix(in oklch, var(--ink) 9%, transparent); }
.cvb-day.is-end::before { right: 50%; background: color-mix(in oklch, var(--ink) 9%, transparent); }
.cvb-day.is-in::before { background: color-mix(in oklch, var(--ink) 9%, transparent); }
.cvb-day.is-start.is-end::before { background: transparent; }
.cvb-day:focus-visible { outline: none; } .cvb-day:focus-visible .cvb-day__n { box-shadow: 0 0 0 2px var(--ink); }
.cvb-drop__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px 14px; border-top: 1px solid var(--line); }
.cvb-link { background: none; border: 0; padding: 6px 0; font: 400 var(--text-sm)/1.2 var(--sans); color: var(--ash-1); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cvb-link:hover { color: var(--ink); }
.cvb-confirm { padding: 10px 22px; }
.cvb-guest { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.cvb-guest:last-child { border-bottom: 0; }
.cvb-guest__l { display: block; font: 500 var(--text-sm)/1.3 var(--sans); color: var(--ink); }
.cvb-guest__s { display: block; font: 400 var(--text-xs)/1.3 var(--sans); color: var(--ash-2); }
.cvb-counter { display: flex; align-items: center; gap: 10px; }
.cvb-cnt { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); background: none; color: var(--ink); font: 300 1.2rem/1 var(--sans); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .18s; }
.cvb-cnt:hover { border-color: var(--ink); }
.cvb-cnt__v { min-width: 20px; text-align: center; font: 500 var(--text-base)/1 var(--sans); color: var(--ink); font-variant-numeric: tabular-nums; }
.cvb-prop-opt { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; padding: 11px 18px; border: 0; background: none; color: var(--ink); font: inherit; cursor: pointer; }
.cvb-prop-opt:hover, .cvb-prop-opt[aria-selected="true"] { background: color-mix(in oklch, var(--ink) 6%, transparent); }
.cvb-prop-opt__n { font: var(--w-title) var(--text-md)/1.2 var(--serif); }
.cvb-prop-opt__p { font: 400 var(--text-xs)/1.3 var(--sans); color: var(--ash-1); }
/* riga "al completo": allineata ai campi (stessa larghezza e stesso padding della barra), frase con le
   date in inchiostro, alternativa in nero con prezzo, "Cambia le date" come seconda via */
.cvb__alt { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; width: calc(100% - 2 * var(--page-gutter)); max-width: calc(var(--page-content-max) - 2 * var(--page-gutter)); margin: 0 auto; padding: 12px 0 14px; font: 400 var(--text-sm)/1.4 var(--sans); color: var(--ash-1); border-top: 1px solid var(--line); }
.cvb__alt[hidden] { display: none; }
.cvb-alt__txt { margin: 0; max-width: 62ch; }
.cvb-alt__txt strong { display: block; font-weight: 600; color: var(--ink); }
.cvb-alt__act { display: flex; align-items: center; gap: 18px; flex: none; }
.cvb-altgo { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; line-height: 1.2; }
.cvb-altgo__p { font-weight: 400; opacity: .82; font-variant-numeric: tabular-nums; }
/* listino sbarrato accanto al prezzo del sito, +10%: decisione del proprietario del 27/9/2026 */
.cvb-was { color: var(--was); text-decoration: line-through; text-decoration-thickness: 1px; font-weight: 400; font-variant-numeric: tabular-nums; }
/* il prezzo del sito, in verde: decisione del proprietario del 27/9/2026 */
.cvb-ours { color: var(--ours); font-weight: 600; font-variant-numeric: tabular-nums; }
.cvb-btn.is-sold { background: transparent; color: var(--ash-1); box-shadow: inset 0 0 0 1px var(--line); }
.cvb-btn.is-sold:hover { opacity: 1; background: color-mix(in oklch, var(--ink) 4%, transparent); }
.cvb-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cvb-alt__act .cvb-link { min-height: 44px; }
/* nella scheda il piè di pagina ha già "Cambia le date": non si ripete nella riga */
.cvb-sheet__alt [data-alt-dates] { display: none; }

/* telefono: barra compatta, il resto nella scheda */
/* ---- barra sotto la hero (.cvi, clone della .booking-bar del Lilium): stessi campi della fissa,
   tendine che si aprono verso il basso. Lo slot riserva l'altezza prima che il JS la riempia. ---- */
.cvi-slot { min-height: 62px; }
.cvi { background: color-mix(in oklch, var(--ink) 3%, var(--paper)); border-bottom: 1px solid var(--line); }
.cvi .cvb-btn { min-height: 62px; }
.cvi .cvb-drop { top: calc(100% + 1px); bottom: auto; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 14px 14px; box-shadow: 0 18px 48px -24px oklch(0% 0 0 / .35); transform: translateY(-6px); }
.cvi .cvb-drop.is-open { transform: none; }
.cvi__alt { border-top: 1px solid var(--line); border-bottom: 0; }

/* ---- barra fissa in modalità Lilium: fuori schermo finché quella sotto la hero è visibile.
   Su telefono scivola dal basso (barra prezzo); su desktop si aggancia sotto l'header e scende dall'alto,
   con le tendine verso il basso come la barra sotto la hero. ---- */
.cvb--auto { transform: translateY(100%); visibility: hidden; transition: transform .38s var(--ease), visibility .38s; }
.cvb--auto.is-visible { transform: none; visibility: visible; }
@media (min-width: 821px) {
  .cvb--auto { top: 68px; bottom: auto; padding-bottom: 0; border-top: 0; border-bottom: 1px solid var(--line); transform: translateY(-100%); box-shadow: 0 18px 40px -28px oklch(0% 0 0 / .35); }
  .cvb--auto.is-visible { transform: none; }
  .cvb--auto .cvb-drop { top: calc(100% + 1px); bottom: auto; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 14px 14px; box-shadow: 0 18px 48px -24px oklch(0% 0 0 / .35); transform: translateY(-6px); }
  .cvb--auto .cvb-drop.is-open { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .cvb--auto, .cv-subnav { transition: none; } }

@media (max-width: 820px) {
  .cvb-field, .cvb-btn, .cvb-drop { display: none !important; }
  .cvb-pb { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 64px; padding: 10px 0; border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
  .cvb-pb__info { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
  .cvb-pb__l { font: 500 var(--text-xs)/1.2 var(--sans); color: var(--ash-2); letter-spacing: var(--track-label); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cvb-pb__v { font: 500 var(--text-sm)/1.25 var(--sans); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cvb-pb__live { display: flex; align-items: center; gap: 6px; font: 500 var(--text-sm)/1.2 var(--sans); color: var(--ink); white-space: nowrap; flex: none; }
  .cvb-pb__live[hidden] { display: none; }
  .cvb-pb__cta { flex: none; padding: 11px 18px; border-radius: 999px; background: var(--ink); color: var(--paper); font: 500 var(--text-sm)/1.2 var(--sans); }
  .cvb__alt { padding: 10px 16px 14px; gap: 10px; }
  /* su telefono le azioni stanno una sotto l'altra, a tutta larghezza; il link centrato */
  .cvb-alt__act { width: 100%; flex-direction: column; align-items: stretch; gap: 8px; }
  .cvb-alt__act .cvb-link { align-self: center; }
  .cvb-pb__cta.is-sold { background: transparent; color: var(--ash-1); box-shadow: inset 0 0 0 1px var(--line); }
  /* barra sotto la hero: Check-in | Check-out / Ospiti | Prenota (Struttura a tutta riga dove c'è) */
  .cvi-slot { min-height: 125px; }
  .cvi-slot--pick { min-height: 187px; }
  .cvi .cvb-field, .cvi .cvb-btn { display: flex !important; }
  .cvi .cvb__inner { display: grid; grid-template-columns: 1fr 1fr; }
  .cvi .cvb-field { padding: 12px 16px; min-height: 62px; border-right: 0; border-bottom: 1px solid var(--line); }
  .cvi .cvb-field--prop { grid-column: 1 / -1; }
  .cvi .cvb-field--static { display: none !important; }   /* pagina struttura: il nome è già nella hero */
  .cvi .cvb-field--ci, .cvi .cvb-field--g { border-right: 1px solid var(--line); }
  .cvi .cvb-field--g { border-bottom: 0; }
  .cvi .cvb-btn { min-width: 0; padding: 10px 16px; }
  .cvi .cvb-btn__price { font-size: var(--text-2xs); }
}

/* scheda a tendina (telefono) */
.cvb-overlay { position: fixed; inset: 0; z-index: 300; background: oklch(0% 0 0 / .5); display: flex; align-items: flex-end; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .28s var(--ease), visibility .28s var(--ease); }
.cvb-overlay.is-open { opacity: 1; visibility: visible; }
.cvb-sheet { width: 100%; max-width: 520px; max-height: 92vh; background: var(--paper); color: var(--ink); border-radius: 20px 20px 0 0; display: flex; flex-direction: column; overflow: hidden; transform: translateY(100%); transition: transform .36s cubic-bezier(.32, .72, 0, 1); }
.cvb-overlay.is-open .cvb-sheet { transform: none; }
.cvb-sheet__handle { width: 36px; height: 4px; border-radius: 2px; background: var(--line); margin: 10px auto 0; flex: none; }
.cvb-sheet__head { display: flex; align-items: flex-start; justify-content: space-between; padding: 12px 20px 10px; flex: none; }
.cvb-sheet__title { margin: 0 0 6px; font: var(--w-title) var(--text-xl)/1.2 var(--serif); }
.cvb-tabs { display: flex; align-items: center; gap: 8px; }
.cvb-tab { background: none; border: 0; padding: 2px 0; font: 500 var(--text-xs)/1.4 var(--sans); color: var(--ash-2); cursor: pointer; letter-spacing: var(--track-label); }
.cvb-tab.is-active { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.cvb-tab__sep { color: var(--line); }
.cvb-sheet__close { width: 34px; height: 34px; border-radius: 50%; border: 0; background: color-mix(in oklch, var(--ink) 6%, var(--paper)); color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none; }
.cvb-sum { display: flex; align-items: stretch; flex: none; background: color-mix(in oklch, var(--ink) 4%, var(--paper)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cvb-sum__b { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.cvb-sum__b + .cvb-sum__b { border-left: 1px solid var(--line); }
.cvb-sum__l { font: 500 var(--text-2xs)/1.2 var(--sans); color: var(--ash-2); letter-spacing: var(--track-label); }
.cvb-sum__v { font: 500 var(--text-sm)/1.3 var(--sans); color: var(--ink); overflow: hidden; text-overflow: ellipsis; }
.cvb-sec { display: none; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; }
.cvb-sec.is-active { display: flex; }
.cvb-quick { display: flex; gap: 8px; padding: 10px 20px 6px; flex: none; }
.cvb-quick__b { border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; background: none; color: var(--ink); font: 500 var(--text-sm)/1.2 var(--sans); cursor: pointer; }
.cvb-quick__b:hover { border-color: var(--ink); }
.cvb-sec[data-sec="dates"] > .cvb-wd { padding: 6px 20px; border-bottom: 1px solid var(--line); flex: none; margin: 0; }
.cvb-months { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 0 12px 20px; }
.cvb-m-month { padding-top: 14px; }
.cvb-m-month__t { text-align: left; padding-left: 6px; }
.cvb-months .cvb-day__n { width: 36px; height: 36px; font-size: var(--text-base); }
.cvb-months .cvb-day::before { height: 36px; }
.cvb-prop-list { display: flex; flex-direction: column; padding: 6px 0 12px; }
.cvb-prop-list .cvb-prop-opt { padding: 14px 20px; }
.cvb-sheet__guests { display: flex; flex-direction: column; padding: 4px 20px 12px; overflow-y: auto; }
.cvb-sheet__guests .cvb-guest { padding: 14px 0; }
.cvb-sheet__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 20px calc(10px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); flex: none; }
.cvb-sheet__price { display: flex; align-items: center; gap: 7px; flex: 1 1 auto; min-width: 0; font: 500 var(--text-sm)/1.3 var(--sans); color: var(--ink); }
.cvb-sheet__act { display: flex; align-items: center; gap: 12px; flex: none; }
.cvb-sheet__act .cv-btn:disabled { opacity: .35; cursor: default; }
.cvb-sheet__alt { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 0 20px calc(12px + env(safe-area-inset-bottom, 0px)); font: 400 var(--text-sm)/1.35 var(--sans); color: var(--ash-1); }
.cvb-sheet__alt[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .cvb-dot { animation: none; } .cvb-drop, .cvb-sheet, .cvb-overlay { transition: none; } }
/* Host header and cookie layers, same dimensions as the Civis bar. */
.cvb { z-index: 150; }
.cvb-overlay { z-index: 10000; }
.cvb-sheet { max-height: 92dvh; }
.cvb-sheet__title, .cvb-field__v--name { font-family: var(--sans); }
.cvb-sheet__close { width: 44px; height: 44px; padding: 0; }
.cvb__inner { min-height: 62px; }
.cvb-btn .cvb-was, .cv-btn--primary .cvb-was { color: color-mix(in oklch, currentColor 75%, transparent); }
.cvb-btn .cvb-ours, .cv-btn--primary .cvb-ours { color: inherit; }
@media (min-width: 821px) { .cvb--auto { top: var(--cvb-header-bottom, 96px); } }

/* Page content sets the horizontal alignment of both booking bars. */
@media (max-width: 820px) {
  .cvi .cvb-field--prop, .cvi .cvb-field--ci, .cvi .cvb-field--g { padding-left: 0; }
  .cvb__alt { padding-inline: 0; }
}
