/* Scheda auto */
.car-head { padding-top: calc(var(--header-space) + 8px); padding-bottom: 14px; }
.car-layout { display: grid; gap: 28px; grid-template-areas: 'top' 'panel' 'details'; align-items: start; padding-bottom: clamp(24px, 4vw, 48px); }
.car-top { grid-area: top; display: grid; gap: 22px; min-width: 0; }
.car-panel { grid-area: panel; }
.car-details { grid-area: details; display: grid; gap: clamp(36px, 5vw, 56px); min-width: 0; }
@media (min-width: 1024px) {
  .car-layout { grid-template-columns: minmax(0, 1fr) 410px; grid-template-areas: 'top panel' 'details panel'; column-gap: 40px; row-gap: clamp(32px, 4vw, 48px); }
  .car-panel { position: sticky; top: calc(var(--header-space) + 8px); }
}
.car-title { position: relative; display: grid; gap: 10px; }
.car-title h1 { font-size: clamp(2.2rem, 1.2rem + 3.8vw, 3.9rem); line-height: 1; letter-spacing: -.04em; }
.car-title__ver { color: var(--muted); font-size: 1.1rem; }
.fav-btn--inline { position: absolute; right: 0; top: 0; width: auto; padding: 0 16px 0 12px; gap: 8px; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1.5px solid var(--line); background: var(--white); border-radius: 999px; font-weight: 600; font-size: .9rem; }
.fav-btn--inline[aria-pressed='true'] { border-color: #f1c4c1; background: #fff5f4; }

/* galleria */
.gallery { display: grid; gap: 12px; }
.gallery__main { position: relative; display: block; width: 100%; padding: 0; border: 0; aspect-ratio: 4 / 3; border-radius: var(--r-xl); overflow: hidden; background: radial-gradient(120% 90% at 50% 100%, #e5e8e2, #f3f4ef); cursor: zoom-in; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 58%; transition: transform .6s var(--ease); }
@media (hover: hover) { .gallery__main:hover img { transform: scale(1.03); } }
.gallery__main .ph { border-radius: 0; }
.gallery__zoom { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--ink); }
.gallery__thumbs { display: flex; gap: 10px; }
.gallery__thumbs button { display: block; width: 96px; aspect-ratio: 4 / 3; padding: 0; border: 2px solid transparent; border-radius: 16px; overflow: hidden; background: var(--paper-2); opacity: .7; transition: opacity .2s, border-color .2s; }
.gallery__thumbs button[aria-pressed='true'] { border-color: var(--green-900); opacity: 1; }
.gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 640px) { .facts { grid-template-columns: repeat(3, 1fr); } }
.facts li { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 18px; background: var(--white); border: 1px solid var(--line-2); }
.facts .i { width: 24px; height: 24px; color: var(--green-600); }
.facts span { display: grid; line-height: 1.25; min-width: 0; } .facts small { color: var(--muted); font-size: .78rem; } .facts b { font-size: .96rem; font-weight: 600; }

/* pannello di prenotazione */
.car-panel { display: grid; gap: 16px; padding: 20px; border-radius: var(--r-xl); background: var(--white); border: 1px solid var(--line-2); box-shadow: var(--shadow-md); }
.car-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.booking-bar--panel { padding: 0; box-shadow: none; border: 0; border-radius: 0; background: transparent; }
.booking-bar--panel .bb-fields { display: grid; grid-template-columns: 1fr; gap: 8px; }
.booking-bar--panel .bb-field, .booking-bar--panel .bb-fields > .bb-field:nth-child(n+2) { border: 1.5px solid var(--line); border-radius: 18px; background: var(--white); }
.booking-bar--panel .bb-field::before { display: none; }
.booking-bar--panel .bb-control { min-height: 64px; padding: 10px 14px; border-radius: 16px; height: auto; }
.booking-bar--panel .bb-field:focus-within, .booking-bar--panel .bb-field.is-open { border-color: var(--green-700); }
.booking-bar--panel .bb-field:focus-within > .bb-control, .booking-bar--panel .bb-field.is-open > .bb-control { box-shadow: none; background: var(--green-50); }
.booking-bar--panel .bb-submit-wrap { padding: 12px 0 0; } .booking-bar--panel .bb-submit { min-height: 56px; }
.js .booking-bar--panel .bb-submit-wrap { display: none; }
.booking-bar--panel .bb-opts { padding: 8px 2px 0; } .booking-bar--panel .bb-link { margin-left: 0; }
.booking-bar--panel .cal-pop { position: static; margin-top: 10px; width: auto; transform: none; }
.booking-bar--panel .cal { border-radius: 20px; padding: 14px 10px 12px; box-shadow: none; border: 1.5px solid var(--line); }
.booking-bar--panel .cal__months { grid-template-columns: 1fr; }
.booking-bar--panel .bb-list { width: 100%; }
.booking-bar--panel .bb-dropoff .bb-list { right: auto; left: 0; }
.quote { display: grid; gap: 10px; }
.quote--empty p { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; background: var(--green-50); color: var(--green-800); border-radius: var(--r-md); font-size: .94rem; line-height: 1.5; }
.quote--empty .i { margin-top: 2px; }
.quote__lines { display: grid; gap: 2px; margin: 0; }
.quote__lines > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; font-size: .92rem; color: var(--ink-2); border-bottom: 1px dashed var(--line); }
.quote__lines dt { min-width: 0; } .quote__lines dd { margin: 0; white-space: nowrap; font-weight: 600; color: var(--ink); }
.quote__lines .is-disc dd { color: var(--green-700); }
.quote__total { display: flex; align-items: baseline; justify-content: space-between; padding-top: 6px; }
.quote__total span { font-weight: 650; } .quote__total small { color: var(--muted); font-weight: 500; }
.quote__total strong { font: 700 2.1rem/1 var(--font-display); letter-spacing: -.04em; }
.quote__vat { font-size: .8rem; color: var(--muted); }
.quote__cta { margin-top: 6px; min-height: 58px; }
.quote__facts { display: grid; gap: 9px; margin-top: 4px; font-size: .88rem; color: var(--ink-2); }
.quote__facts li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.4; } .quote__facts .i { margin-top: 1px; color: var(--green-600); }
.quote__facts .is-save { color: var(--green-800); font-weight: 550; }
.quote__alt { display: grid; gap: 8px; font-size: .92rem; } .quote__alt ul { display: grid; gap: 6px; }
.quote__alt a { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line-2); font-weight: 600; } .quote__alt a span { flex: 1; } .quote__alt small { color: var(--muted); font-weight: 500; }
.quote__hint { font-size: .9rem; color: var(--muted); } .quote__hint a { text-decoration: underline; color: var(--green-700); }
.quote.is-busy { opacity: .55; transition: opacity .2s; }
.panel-bullets { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line-2); font-size: .88rem; color: var(--ink-2); }
.panel-bullets li { display: flex; gap: 10px; align-items: center; } .panel-bullets .i { color: var(--green-600); }

/* blocchi dei dettagli */
.block { display: grid; gap: 18px; }
.block h2 { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); }
.block__lead { color: var(--muted); max-width: 640px; margin-top: -6px; }
.inc-grid { display: grid; gap: 14px; }
@media (min-width: 700px) { .inc-grid { grid-template-columns: 1.3fr 1fr; } }
.inc-list { display: grid; gap: 4px; padding: 20px 22px; border-radius: var(--r-lg); background: var(--white); border: 1px solid var(--line-2); align-content: start; }
.inc-list li { display: flex; gap: 12px; align-items: flex-start; padding: 6px 0; font-size: .96rem; line-height: 1.45; }
.inc-list.is-yes .i { color: var(--green-600); } .inc-list.is-no { background: transparent; border-style: dashed; color: var(--muted); } .inc-list.is-no .i { color: #b9b2a0; }
.prot-grid { display: grid; gap: 14px; }
@media (min-width: 700px) { .prot-grid { grid-template-columns: repeat(3, 1fr); } }
.prot { position: relative; display: grid; gap: 12px; align-content: start; padding: 22px; border-radius: var(--r-lg); background: var(--white); border: 1.5px solid var(--line-2); }
.prot.is-reco { border-color: var(--green-700); box-shadow: var(--shadow-sm); }
.prot .badge { position: absolute; top: -12px; right: 18px; }
.prot h3 { display: flex; gap: 10px; align-items: center; font-size: 1.15rem; } .prot h3 .i { color: var(--green-600); }
.prot__price { font-size: .92rem; color: var(--muted); } .prot__price b { font: 700 1.5rem/1 var(--font-display); color: var(--ink); letter-spacing: -.03em; }
.prot dl { display: grid; gap: 6px; margin: 0; padding: 12px 0; border-block: 1px dashed var(--line); font-size: .86rem; }
.prot dl div { display: flex; justify-content: space-between; gap: 8px; } .prot dt { color: var(--muted); } .prot dd { margin: 0; font-weight: 650; }
.prot ul { display: grid; gap: 7px; font-size: .86rem; color: var(--ink-2); } .prot li { display: flex; gap: 8px; align-items: flex-start; } .prot li .i { color: var(--green-600); margin-top: 3px; }
.feat-list { display: grid; gap: 4px 24px; }
@media (min-width: 640px) { .feat-list { grid-template-columns: 1fr 1fr; } }
.feat-list li { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--line-2); font-size: .96rem; line-height: 1.4; }
.feat-list .i { color: var(--green-600); margin-top: 1px; }
.spec-table { display: grid; gap: 0; margin: 0; background: var(--white); border: 1px solid var(--line-2); border-radius: var(--r-lg); overflow: hidden; }
@media (min-width: 700px) { .spec-table { grid-template-columns: 1fr 1fr; } .spec-table > div:nth-child(odd) { border-right: 1px solid var(--line-2); } }
.spec-table > div { display: flex; justify-content: space-between; gap: 16px; padding: 14px 20px; border-bottom: 1px solid var(--line-2); font-size: .94rem; }
.spec-table dt { color: var(--muted); } .spec-table dd { margin: 0; font-weight: 600; text-align: right; }
.map--sm { height: clamp(260px, 36vw, 340px); border-radius: var(--r-lg); box-shadow: none; border: 1px solid var(--line-2); }
.where-list { display: grid; gap: 8px; margin-top: 4px; }
@media (min-width: 700px) { .where-list { grid-template-columns: 1fr 1fr; } }
.where-list a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 18px; border-radius: 16px; background: var(--white); border: 1px solid var(--line-2); font-weight: 600; transition: border-color .2s, background-color .2s; }
.where-list a span { flex: 1; min-width: 0; } .where-list small { color: var(--muted); font-weight: 500; } .where-list .i { color: var(--green-600); }
@media (hover: hover) { .where-list a:hover { border-color: var(--green-700); background: var(--green-50); } }
.review-grid { display: grid; gap: 16px; } @media (min-width: 700px) { .review-grid { grid-template-columns: 1fr 1fr; } }

/* barra in basso della scheda (telefono) */
.dock--car { justify-content: space-between; }
.dock--car .btn { margin-left: 0; }
.dock--car .price small { font-size: .74rem; }
