/* Villa Campo di Fiore - Brandbook v1.0, 4 ottobre 2026.
   Fonte condivisa per le tredici pagine. I colori del modello 3D restano illustrativi. */
:root {
  --brand-cream: #f1eee5;
  --brand-paper: #faf8f1;
  --brand-stone: #ded9cb;
  --brand-forest: #173329;
  --brand-forest-deep: #132a22;
  --brand-sage: #526650;
  --brand-gold: #c5a66a;
  --brand-cotto: #985422;
  --brand-muted: #556258;
  --brand-white: #ffffff;
  --brand-line: #7b897d;
  --brand-line-soft: #17332930;
  --brand-success: #3f684a;
  --brand-success-bg: #e3ede4;
  --brand-error: #994c40;
  --brand-error-bg: #f3e0dc;
  --brand-pending: #785b26;
  --brand-pending-bg: #f4ecd8;
  --brand-serif: "Italiana", Georgia, serif;
  --brand-sans: "DM Sans", Arial, sans-serif;
  --brand-space-1: 8px;
  --brand-space-2: 16px;
  --brand-space-3: 24px;
  --brand-space-4: 32px;
  --brand-radius: 0;
  --brand-focus: var(--brand-cotto);
  --cream: var(--brand-cream);
  --ink: var(--brand-forest);
  --sage: var(--brand-sage);
  --gold: var(--brand-gold);
  --white: var(--brand-white);
  --serif: var(--brand-serif);
  --sans: var(--brand-sans);
}

body { background: var(--brand-cream); color: var(--brand-forest); }
.brand { display: block; flex-shrink: 0; }
.brand img { width: 144px; height: auto; max-height: none; object-fit: contain; }
footer > img { width: 180px; height: auto; }
.site-header { background: linear-gradient(180deg, #132a22d9, #132a22b3); }
.site-header.solid, footer, .legal-footer { background: var(--brand-forest-deep); }
.site-header.scrolled { background: #132a22f5; }
.button { background: var(--brand-gold); color: var(--brand-forest); border-radius: var(--brand-radius); font-family: var(--brand-sans); }
.button-light { background: var(--brand-cream); }
.home-booking, .booking-section, .experience-cta { background: var(--brand-sage); }
.garden-section, .garden-gallery, .page-cta, .experience-intro, .map-outro { background: var(--brand-stone); }
.eyebrow.dark, .page-card > span, .features > article > span,
.experience-card > span, .experience-detail, .experiences-note,
.room-gallery figcaption, .calendar-weekdays span, .calendar-legend,
.form-note, .legal-date, .management-note, .request-details dt,
.explorer-guide, .three-status, .three-help, .three-note, .three-area-key,
.map-card-top, .map-caption { color: var(--brand-muted); }
.experiences-page .experience-index span,
.experiences-page .experience-card-meta .experience-number,
.floor-switch span { color: var(--brand-cotto); }
.experiences-page .experience-card, .map-card, .villa-3d-stage { background: var(--brand-paper); }
.experiences-page .experience-detail, .experiences-page .experiences-note { color: var(--brand-muted); }
.booking-form :is(input, select, textarea), .availability-widget :is(input, select),
.booking-page .calendar-jump :is(input, select), .management-page :is(input, select),
.calendar-header button { border-color: var(--brand-line); border-radius: var(--brand-radius); }
.booking-page .calendar-jump :is(input, select) { background: var(--brand-paper); color: var(--brand-forest); }
.booking-page .calendar-jump button { background: var(--brand-forest); color: var(--brand-white); }
.availability-result.pending, .request-badge { background: var(--brand-pending-bg); border-color: var(--brand-pending); }
.availability-result.available, .form-feedback.success, .form-feedback.available,
.management-status.success { background: var(--brand-success-bg); border-color: var(--brand-success); }
.availability-result.unavailable, .form-feedback.error, .form-feedback.unavailable,
.management-status.error { background: var(--brand-error-bg); border-color: var(--brand-error); }
.calendar-day.blocked { background: var(--brand-error-bg); color: var(--brand-error); }
.calendar-day.selected, .booking-page .calendar-day.unknown.selected { background: var(--brand-forest); color: var(--brand-white); }
.calendar-day.in-range { background: var(--brand-success-bg); }
.booking-page .calendar-day.unknown.in-range:not(.selected) { background: var(--brand-pending-bg); }
.available-dot { background: var(--brand-success); }
.unavailable-dot { background: var(--brand-error); }
.pending-dot { background: var(--brand-pending); }
.text-link { text-underline-offset: 5px; }
:is(a, button, input, select, textarea):focus-visible,
.booking-page .calendar-jump :is(input, select, button):focus-visible {
  outline: 3px solid var(--brand-focus); outline-offset: 4px;
}
:is(.site-header, footer, .legal-footer, .hero, .page-hero, .floor-index,
.split-feature, .experience-spotlight, .room-view, .home-booking,
.experience-cta, .booking-section) :is(a, button):focus-visible {
  outline-color: var(--brand-gold);
}
.booking-form :is(a, button, input, select, textarea):focus-visible { outline-color: var(--brand-cotto); }
@media (max-width: 900px) { .brand img { width: 120px; height: auto; } }
@media (max-width: 600px) { .brand img { width: 106px; height: auto; } }
