/* Preview booking: mobile first, extending to tablet and desktop. */
.page-preventivo { background:#f7f5ef; }
.page-preventivo .quote-hero { min-height:0; padding:62px 0 24px; background:linear-gradient(90deg,rgba(8,36,42,.25),rgba(8,36,42,.08)),var(--hero-photo) var(--hero-position,center) / cover no-repeat; color:#fff; }
.page-preventivo .quote-hero::after { display:none; }
.page-preventivo .quote-hero h1,.page-preventivo .quote-hero p { text-shadow:0 2px 12px rgba(0,0,0,.3); }
.page-preventivo .quote-hero h1 { font-size:32px; line-height:1.15; }
.page-preventivo .quote-hero p { font-size:16px; line-height:1.5; margin-top:10px; color:#fff; }
.page-preventivo .quote-hero .btn { min-height:44px; border-color:rgba(255,255,255,.65); color:#fff; }
.page-preventivo .quote-layout { width:calc(100% - 28px); max-width:1160px; padding-top:12px; gap:16px; scroll-margin-top:16px; }
.page-preventivo .steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:4px; }
.page-preventivo .step { min-width:0; font-size:12px; letter-spacing:0; line-height:1.4; gap:7px; }
.page-preventivo .step-number { width:28px; height:28px; flex-shrink:0; font-size:12px; }
.page-preventivo .wizard-step-grid,.page-preventivo .wizard-step-three { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.page-preventivo .quote-main,.page-preventivo .quote-aside-body,.page-preventivo .wizard-surface,.page-preventivo .wizard-contact,.page-preventivo .wizard-payment-summary { padding:18px; border-radius:18px; }
.page-preventivo .quote-aside,.page-preventivo .wizard-payment-summary { position:static; }
.page-preventivo .quote-aside-head { padding:18px; }
.page-preventivo .quote-aside-head h2,.page-preventivo .wizard-panel-head h2,.page-preventivo .calendar-toolbar h2 { font-size:26px; line-height:1.2; }
.page-preventivo .field-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
.page-preventivo .field { margin-bottom:0; }
.page-preventivo .field label { font-size:14px; }
.page-preventivo .field input,.page-preventivo .field select,.page-preventivo .field textarea { min-height:48px; font-size:16px; }
.page-preventivo .field input[type=date] { min-width:0; width:100%; }
.page-preventivo .calendar-toolbar { gap:8px; }
.page-preventivo .icon-btn { min-width:44px; min-height:44px; }
.page-preventivo .months { grid-template-columns:minmax(0,1fr); }
.page-preventivo .day { min-height:46px; padding:4px 1px; }
.page-preventivo .day strong { font-size:14px; }
.page-preventivo .month-name { font-size:16px; }
.page-preventivo .payment-offer-layout,.page-preventivo .choice-featured .offer-layout,.page-preventivo .choice-featured .offer-price-grid { grid-template-columns:minmax(0,1fr); }
.page-preventivo .wizard-panel[data-booking-step="3"] .choice-featured { padding:20px; }
.page-preventivo .wizard-panel[data-booking-step="3"] .choice-featured .offer-price-grid { grid-template-columns:minmax(0,1fr); }
.page-preventivo .wizard-panel[data-booking-step="3"] .wizard-contact,.page-preventivo .wizard-panel[data-booking-step="3"] .wizard-payment-summary { padding:18px; }
.page-preventivo .choice-title { font-size:23px; line-height:1.25; }
.page-preventivo .confirmation-option { display:flex; flex-wrap:wrap; gap:12px; padding:18px!important; }
.page-preventivo .confirmation-option-copy { min-width:0; flex:1 1 180px; }
.page-preventivo .confirmation-option-amount { margin-left:30px; text-align:left; }
.page-preventivo .total-row { font-size:14px; gap:12px; }
.page-preventivo .total-row > :last-child { flex-shrink:0; }
.page-preventivo .booking-terms summary { min-height:48px; }
.page-preventivo .form-step-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
.page-preventivo .btn { min-height:48px; white-space:normal; line-height:1.4; }
.page-preventivo .mobile-book { display:flex; left:14px; right:14px; bottom:0; padding:10px 10px calc(10px + env(safe-area-inset-bottom)); border-radius:16px 16px 0 0; }
.page-preventivo #mobilePayBtn { width:100%; font-size:15px; }
body.page-preventivo { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.page-preventivo input:focus-visible,.page-preventivo select:focus-visible,.page-preventivo button:focus-visible,.page-preventivo a:focus-visible { outline:3px solid #087d83; outline-offset:3px; }
@media(min-width:600px) {
  .page-preventivo .field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-preventivo .form-step-actions { grid-template-columns:1fr 1fr; }
  .page-preventivo .choice-featured .offer-price-grid,.page-preventivo .wizard-panel[data-booking-step="3"] .choice-featured .offer-price-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:981px) {
  body.page-preventivo { padding-bottom:0; }
  .page-preventivo .quote-hero { padding:64px 0 30px; }
  .page-preventivo .quote-hero h1 { font-size:44px; }
  .page-preventivo .wizard-step-grid { grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr); }
  .page-preventivo .wizard-step-three { grid-template-columns:minmax(0,1fr) minmax(320px,.85fr); }
  .page-preventivo .quote-aside,.page-preventivo .wizard-payment-summary { position:sticky; top:24px; }
  .page-preventivo .mobile-book { display:none; }
  .page-preventivo .quote-main,.page-preventivo .quote-aside-body,.page-preventivo .wizard-contact,.page-preventivo .wizard-payment-summary { padding:24px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media(min-width:981px) {
  .page-preventivo .months { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.page-preventivo .btn.primary { background:#087d83; color:#fff; border-color:#087d83; box-shadow:none; }
.page-preventivo .btn.primary:hover:not(:disabled) { background:#08656b; }
.page-preventivo .btn.primary:disabled { opacity:.5; }
.page-preventivo .quote-aside-head { background:#e7f3f1; color:var(--ink); }
.page-preventivo .quote-aside-head p { color:var(--muted); }
.page-preventivo .wizard-panel[data-booking-step="2"] .field input,
.page-preventivo .wizard-panel[data-booking-step="2"] .field textarea { min-height:48px; font-size:16px; }
/* A plain navigation path above the page title. */
body:has(.gs-header) .quote-hero .breadcrumb-shell {
  position:static; inset:auto; z-index:auto; margin:0 0 16px;
  color:var(--muted); pointer-events:auto;
}
.quote-hero .breadcrumb-shell .wrap { width:100%; display:block; margin:0; }
.quote-hero .breadcrumb-list {
  flex-wrap:wrap; gap:4px 0; overflow:visible; padding:0;
  border:0; border-radius:0; background:none; box-shadow:none;
  -webkit-backdrop-filter:none; backdrop-filter:none;
}
.quote-hero .breadcrumb-list li { color:var(--muted); font-size:12px; font-weight:400; letter-spacing:0; line-height:1.5; white-space:normal; }
.quote-hero .breadcrumb-list a { color:var(--sea); }
.quote-hero .breadcrumb-list a:hover { color:var(--sea); text-decoration:underline; }
.quote-hero .breadcrumb-list a:focus-visible { outline-color:var(--sea); }
.quote-hero .breadcrumb-separator { color:var(--muted); margin:0 8px; }
.quote-hero .breadcrumb-current { color:var(--muted); font-weight:400; overflow:visible; }
.quote-hero .breadcrumb-list li:first-child a { max-width:none; overflow:visible; }

.page-preventivo .quote-hero .breadcrumb-list li,
.page-preventivo .quote-hero .breadcrumb-current,
.page-preventivo .quote-hero .breadcrumb-separator { color:rgba(255,255,255,.9); }
.page-preventivo .quote-hero .breadcrumb-list a,
.page-preventivo .quote-hero .breadcrumb-list a:hover { color:#fff; }
.page-preventivo .quote-hero .breadcrumb-list a:focus-visible { outline-color:#fff; }


