/* =====================================================================
   TEMPLATE "DIARIO" — SiteForTravel
   Fondo chiaro caldo, titoli con grazie, colori dell'agenzia.
   I colori arrivano dalla pagina come variabili (--dr-primary, ...).
   Caratteri: Young Serif e Figtree (SIL Open Font License), dal nostro server.
   ===================================================================== */

@font-face { font-family: "Young Serif"; font-style: normal; font-weight: 400; font-display: swap;
    src: url("../fonts/diario/young-serif-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400; font-display: swap;
    src: url("../fonts/diario/figtree-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 500; font-display: swap;
    src: url("../fonts/diario/figtree-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 600; font-display: swap;
    src: url("../fonts/diario/figtree-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 700; font-display: swap;
    src: url("../fonts/diario/figtree-latin-700-normal.woff2") format("woff2"); }

:root {
    --dr-bg: #fbf7ef;
    --dr-bg-2: #f4eee3;
    --dr-paper: #ffffff;
    --dr-ink: #2a2723;
    --dr-muted: #6b645a;
    --dr-border: #e7dfd0;
    --dr-serif: "Young Serif", Georgia, "Times New Roman", serif;
    --dr-sans: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --dr-radius: 18px;
    --dr-radius-sm: 12px;
    --dr-shadow: 0 1px 2px rgba(42, 39, 35, .06), 0 10px 30px -12px rgba(42, 39, 35, .18);
    --dr-wrap: 1180px;
    /* valori di riserva: la pagina li sovrascrive con i colori dell'agenzia */
    --dr-primary: #c4623d; --dr-primary-ink: #a84f2f; --dr-on-primary: #ffffff; --dr-primary-dark: #a1502f;
    --dr-secondary: #2e5e4e; --dr-secondary-ink: #2e5e4e;
    --dr-tint: #f6e7dc; --dr-tint2: #e5ebe3; --dr-line: #e0b39f; --dr-on-secondary: #ffffff;
    --dr-nl-text: var(--dr-ink);
}

/* ---------------------------------------------------------------------
   Base pagina
   --------------------------------------------------------------------- */
html body.template-diario { background: var(--dr-bg); color: var(--dr-ink); font-family: var(--dr-sans); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.template-diario *, body.template-diario *::before, body.template-diario *::after { box-sizing: border-box; }
body.template-diario img { max-width: 100%; }
body.template-diario a { color: inherit; }
body.template-diario :focus-visible { outline: 3px solid var(--dr-primary); outline-offset: 3px; border-radius: 4px; }

.dr-wrap { width: 100%; max-width: var(--dr-wrap); margin: 0 auto; padding: 0 24px; }
.dr-center { text-align: center; }
.dr-muted { color: var(--dr-muted); }
.dr-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.dr-home h1, .dr-home h2, .dr-home h3, .dr-home p { margin: 0; }
.dr-eyebrow { font-family: var(--dr-sans); font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dr-primary-ink); margin: 0 0 .7rem; }
.dr-eyebrow--light { color: #fff; opacity: .92; }
.dr-h2 { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(1.9rem, 1.3rem + 2.2vw, 2.9rem); line-height: 1.12; color: var(--dr-primary-ink); letter-spacing: -.01em; }
.dr-prose { color: var(--dr-muted); font-size: 1.04rem; margin: 1rem 0 1.6rem; max-width: 52ch; }
.dr-link { display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; color: var(--dr-primary-ink) !important; text-decoration: none; border-bottom: 2px solid transparent; transition: border-color .2s; }
.dr-link:hover { border-bottom-color: currentColor; }
.dr-link i { font-size: .85em; transition: transform .2s; }
.dr-link:hover i { transform: translateX(3px); }

/* Pulsanti */
.dr-btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; font-family: var(--dr-sans); font-weight: 700; font-size: 1rem; line-height: 1; padding: 1rem 1.6rem; border-radius: 999px; text-decoration: none !important; border: 2px solid transparent; cursor: pointer; transition: background-color .2s, color .2s, transform .2s, box-shadow .2s; white-space: nowrap; }
.dr-btn i { font-size: .9em; }
.dr-btn--primary { background: var(--dr-primary); color: var(--dr-on-primary) !important; }
.dr-btn--primary:hover { background: var(--dr-primary-dark); transform: translateY(-1px); box-shadow: 0 10px 22px -10px var(--dr-primary); }
.dr-btn--outline { border-color: var(--dr-primary-ink); color: var(--dr-primary-ink) !important; background: transparent; }
.dr-btn--outline:hover { background: var(--dr-primary-ink); color: #fff !important; }
.dr-btn--ghost-light { border-color: rgba(255, 255, 255, .85); color: #fff !important; background: rgba(255, 255, 255, .06); backdrop-filter: blur(4px); }
.dr-btn--ghost-light:hover { background: #fff; color: var(--dr-ink) !important; }
.dr-btn--block { width: 100%; }
.dr-btn:disabled { opacity: .6; cursor: default; transform: none; }

/* ---------------------------------------------------------------------
   Barra contatti in alto
   --------------------------------------------------------------------- */
.dr-topbar { background: var(--dr-secondary); color: var(--dr-on-secondary); font-family: var(--dr-sans); font-size: .82rem; position: relative; z-index: 1001; }
.dr-topbar-inner { max-width: 1400px; margin: 0 auto; padding: .5rem 24px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dr-topbar-left { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; align-items: center; min-width: 0; }
.dr-topbar a, .dr-topbar span { color: var(--dr-on-secondary) !important; text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.dr-topbar a:hover span { text-decoration: underline; }
.dr-topbar i { opacity: .85; font-size: .9em; }
.dr-topbar-social { display: flex; gap: .4rem; }
.dr-topbar-social a { width: 28px; height: 28px; border-radius: 50%; justify-content: center; background: color-mix(in srgb, var(--dr-on-secondary) 14%, transparent); }
.dr-topbar-social a:hover { background: color-mix(in srgb, var(--dr-on-secondary) 26%, transparent); }
.dr-topbar-social i { opacity: 1; }

/* ---------------------------------------------------------------------
   Header (condiviso tra i template): aspetto Diario
   Il colore di fondo scelto dall'agenzia (header_bg) resta prioritario.
   --------------------------------------------------------------------- */
body.template-diario .agency-header { background: var(--dr-bg); border-bottom: 1px dashed var(--dr-border); box-shadow: none; font-family: var(--dr-sans); }
body.template-diario .agency-header-content { max-width: 1400px; margin: 0 auto; padding: .9rem 24px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
body.template-diario .agency-branding { display: flex; align-items: center; gap: .8rem; min-width: 0; }
body.template-diario .agency-logo { width: auto; height: 58px; max-width: 220px; display: flex; align-items: center; justify-content: center; border-radius: 10px; font-family: var(--dr-serif); font-size: 1.4rem; color: var(--dr-primary-ink); }
body.template-diario .agency-logo img { width: auto !important; height: 100% !important; max-width: 220px; object-fit: contain; }
body.template-diario .agency-info h1 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.35rem; color: var(--dr-ink); margin: 0; line-height: 1.15; }
body.template-diario .agency-info .tagline { font-size: .8rem; color: var(--dr-muted); margin: .15rem 0 0; }
body.template-diario .agency-nav { gap: .2rem; flex-wrap: wrap; justify-content: flex-end; background: transparent; }
body.template-diario .agency-nav a, body.template-diario .agency-nav .dropdown-trigger { font-family: var(--dr-sans); font-weight: 600; font-size: .98rem; color: var(--dr-ink); text-decoration: none; padding: .55rem .85rem; border-radius: 999px; background: transparent; transition: color .2s, background-color .2s; }
body.template-diario .agency-nav a:hover, body.template-diario .agency-nav .dropdown-trigger:hover { color: var(--dr-primary-ink) !important; background: var(--dr-tint); }
body.template-diario .agency-nav a.active:not(.nav-cta-book):not(.contact-btn) { color: var(--dr-primary-ink) !important; background: transparent; }
body.template-diario .agency-nav a.active::after { left: .85rem; right: .85rem; bottom: .2rem; height: 2px; border-radius: 2px; background: var(--dr-primary); }
body.template-diario .agency-nav a.nav-cta-book::after, body.template-diario .agency-nav a.contact-btn::after { display: none; }
html body.template-diario .agency-nav a.nav-cta-book, html body.template-diario .agency-nav a.contact-btn { background: var(--dr-primary); color: var(--dr-on-primary) !important; border: 0; border-radius: 999px; padding: .6rem 1.15rem !important; }
html body.template-diario .agency-nav a.nav-cta-book:hover, html body.template-diario .agency-nav a.contact-btn:hover { background: var(--dr-primary-dark); }
body.template-diario .nav-dropdown-menu { background: var(--dr-paper) !important; border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); box-shadow: var(--dr-shadow); padding: .4rem; }
body.template-diario .nav-dropdown-menu a { color: var(--dr-ink) !important; background: transparent !important; border-radius: 8px; display: block; }
body.template-diario .nav-dropdown-menu a:hover { background: var(--dr-tint) !important; color: var(--dr-primary-ink) !important; }
body.template-diario .mobile-hamburger span { background: var(--dr-ink); }

/* Header trasparente sopra la foto (se l'agenzia l'ha attivato) */
html body.template-diario .agency-header.agency-header--transparent:not(.is-scrolled) { border-bottom-color: rgba(255, 255, 255, .25); }
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav > a,
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav .dropdown-trigger,
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-info h1,
html body.template-diario .agency-header--transparent:not(.is-scrolled) .tagline { color: #fff; }
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav > a:hover { background: rgba(255, 255, 255, .15); color: #fff !important; }
html body.template-diario .agency-header--transparent:not(.is-scrolled) .mobile-hamburger span { background: #fff; }

/* ---------------------------------------------------------------------
   Titoli di sezione
   --------------------------------------------------------------------- */
.dr-section { padding: clamp(4rem, 3rem + 4vw, 6.5rem) 0; position: relative; }
.dr-sec-head { text-align: center; max-width: 720px; margin: 0 auto clamp(2.2rem, 1.6rem + 2vw, 3.4rem); position: relative; }
.dr-sec-sub { color: var(--dr-muted); font-size: 1.06rem; margin-top: .9rem !important; }
.dr-rotta { display: block; width: 150px; height: 28px; margin: 0 auto .8rem; overflow: visible; }
.dr-rotta path { fill: none; stroke: var(--dr-line); stroke-width: 2.2; stroke-dasharray: 6 7; stroke-linecap: round; }
.dr-rotta .dr-rotta-aereo { fill: var(--dr-primary); stroke: none; }

/* ---------------------------------------------------------------------
   Apertura
   --------------------------------------------------------------------- */
.dr-hero { position: relative; min-height: min(88vh, 860px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; isolation: isolate; }
.dr-hero-bg { position: absolute; inset: 0; z-index: -2; background: var(--dr-secondary) var(--dr-hero-img) center / cover no-repeat; transform: scale(1.03); }
.dr-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 18, 15, .38) 0%, rgba(20, 18, 15, .05) 32%, rgba(20, 18, 15, .15) 55%, rgba(20, 18, 15, .72) 100%); }
.dr-hero-inner { width: 100%; max-width: var(--dr-wrap); margin: 0 auto; padding: 9rem 24px clamp(3.5rem, 2.5rem + 4vw, 6rem); }
.dr-hero-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2.6rem, 1.6rem + 4.6vw, 5.4rem); line-height: 1.02; letter-spacing: -.02em; max-width: 14ch; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.dr-hero-sub { font-size: clamp(1.05rem, 1rem + .4vw, 1.3rem); max-width: 46ch; margin-top: 1.1rem !important; opacity: .95; }
.dr-hero-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.dr-timbro { position: absolute; right: clamp(24px, 6vw, 90px); bottom: clamp(40px, 7vw, 90px); width: 150px; height: 150px; transform: rotate(-14deg); opacity: .9; }
.dr-timbro circle { fill: none; stroke: #fff; stroke-width: 2; }
.dr-timbro circle + circle { stroke-dasharray: 3 5; }
.dr-timbro text { fill: #fff; font-family: var(--dr-sans); font-weight: 700; font-size: 13px; letter-spacing: 2px; }
.dr-timbro .dr-timbro-aereo { fill: #fff; }

/* ---------------------------------------------------------------------
   Schede viaggio + scorrimento
   --------------------------------------------------------------------- */
.dr-offerte { background: var(--dr-bg); }
.dr-carousel { position: relative; margin: 0 -8px; }
.dr-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 8px 8px 22px; scrollbar-width: none; }
.dr-carousel-track::-webkit-scrollbar { display: none; }
.dr-carousel-track > * { scroll-snap-align: start; }
.dr-carousel-btn { position: absolute; top: 38%; z-index: 2; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--dr-border); background: var(--dr-paper); color: var(--dr-ink); box-shadow: var(--dr-shadow); cursor: pointer; display: grid; place-items: center; transition: opacity .2s, background-color .2s; }
.dr-carousel-btn:hover { background: var(--dr-primary); color: var(--dr-on-primary); border-color: var(--dr-primary); }
.dr-carousel-btn:disabled { opacity: 0; pointer-events: none; }
.dr-carousel-btn--prev { left: -16px; }
.dr-carousel-btn--next { right: -16px; }
.dr-carousel.is-static .dr-carousel-btn { display: none; }
.dr-offerte .dr-center { margin-top: 1.4rem; }

.dr-card, .dr-gcard, .dr-bcard { position: relative; display: flex; flex-direction: column; background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.dr-card:hover, .dr-bcard:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(42, 39, 35, .06), 0 22px 40px -18px rgba(42, 39, 35, .3); }
.dr-card-link { position: absolute; inset: 0; z-index: 3; }
.dr-card-img, .dr-gcard-img, .dr-bcard-img { position: relative; aspect-ratio: 16 / 11; background: var(--dr-tint); overflow: hidden; }
.dr-card-img img, .dr-gcard-img img, .dr-bcard-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.dr-card:hover .dr-card-img img, .dr-bcard:hover .dr-bcard-img img { transform: scale(1.04); }
.dr-card-img.is-empty::before, .dr-gcard-img.is-empty::before, .dr-bcard-img.is-empty::before { content: "\f072"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; inset: 0; display: grid; place-items: center; font-size: 2.4rem; color: var(--dr-line); }
.dr-badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: var(--dr-paper); color: var(--dr-ink); font-weight: 700; font-size: .8rem; padding: .38rem .75rem; border-radius: 999px; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); }
.dr-badge--sale { background: var(--dr-primary); color: var(--dr-on-primary); }
.dr-card-body, .dr-gcard-body, .dr-bcard-body { padding: 1.2rem 1.35rem 1.35rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.dr-card-when { font-size: .86rem; font-weight: 600; color: var(--dr-secondary-ink); display: flex; align-items: center; gap: .45rem; }
.dr-card-title { font-family: var(--dr-serif); font-weight: 400; font-size: 1.32rem; line-height: 1.22; color: var(--dr-ink); }
.dr-card-meta { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .86rem; color: var(--dr-muted); }
.dr-card-meta span { display: inline-flex; align-items: center; gap: .4rem; }
.dr-card-meta i { color: var(--dr-line); }
.dr-card-foot { margin-top: auto; padding-top: .9rem; border-top: 1px dashed var(--dr-border); display: flex; align-items: flex-end; justify-content: space-between; gap: .6rem; }
.dr-price { font-family: var(--dr-serif); font-size: 1.55rem; color: var(--dr-primary-ink); line-height: 1.1; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .35rem; }
.dr-price small { font-family: var(--dr-sans); font-size: .78rem; font-weight: 600; color: var(--dr-muted); }
.dr-price small:last-child { flex-basis: 100%; }
.dr-price s { font-family: var(--dr-sans); font-size: .9rem; color: var(--dr-muted); }
.dr-price--ask { font-size: 1.05rem; }
.dr-card-go { width: 42px; height: 42px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--dr-tint); color: var(--dr-primary-ink); transition: background-color .2s, color .2s; }
.dr-card:hover .dr-card-go { background: var(--dr-primary); color: var(--dr-on-primary); }

/* ---------------------------------------------------------------------
   Chi siamo / servizi: righe alternate testo e foto
   --------------------------------------------------------------------- */
.dr-servizi { padding: clamp(3.5rem, 2.5rem + 3vw, 5rem) 0 0; }
.dr-servizi-intro .dr-sec-head { margin-bottom: 1rem; }
.dr-split { padding: clamp(3rem, 2rem + 3vw, 5rem) 0; position: relative; overflow: hidden; }
.dr-split--tinta { background: var(--dr-tint); }
.dr-split--tinta2 { background: var(--dr-tint2); }
.dr-split--tinta::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(42, 39, 35, .09) 1.2px, transparent 1.6px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(90deg, transparent 45%, #000 100%); mask-image: linear-gradient(90deg, transparent 45%, #000 100%); pointer-events: none; }
.dr-split--rev.dr-split--tinta::before { -webkit-mask-image: linear-gradient(270deg, transparent 45%, #000 100%); mask-image: linear-gradient(270deg, transparent 45%, #000 100%); }
.dr-split-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 1rem + 4vw, 5rem); align-items: center; position: relative; }
.dr-split--rev .dr-split-media { order: 2; }
.dr-split-media { position: relative; }
.dr-split-media img, .dr-split-placeholder { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); }
.dr-split-media::after { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 2px dashed var(--dr-line); border-radius: var(--dr-radius); z-index: -1; }
.dr-split--rev .dr-split-media::after { inset: 14px 14px -14px -14px; }
.dr-split-placeholder { background: var(--dr-bg-2); display: grid; place-items: center; font-size: 3rem; color: var(--dr-line); }
.dr-split-text .dr-h2 { font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem); }

/* ---------------------------------------------------------------------
   Destinazioni
   --------------------------------------------------------------------- */
.dr-destinazioni { background: var(--dr-bg-2); }
.dr-dest-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.dr-dest-grid--2 { grid-template-columns: repeat(2, 1fr); max-width: 760px; margin: 0 auto; }
.dr-dest-grid--3 { grid-template-columns: repeat(3, 1fr); }
.dr-dest { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--dr-radius); overflow: hidden; text-decoration: none !important; color: #fff !important; background: var(--dr-secondary); box-shadow: var(--dr-shadow); }
.dr-dest-img { position: absolute; inset: 0; background: center / cover no-repeat; transition: transform .6s; }
.dr-dest:hover .dr-dest-img { transform: scale(1.05); }
.dr-dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(20, 18, 15, .75)); }
.dr-dest-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .2rem; }
.dr-dest-name { font-family: var(--dr-serif); font-size: 1.45rem; line-height: 1.15; }
.dr-dest-count { font-size: .85rem; font-weight: 600; opacity: .9; }
.dr-destinazioni .dr-center { margin-top: 2rem; }

/* ---------------------------------------------------------------------
   Viaggi di gruppo
   --------------------------------------------------------------------- */
.dr-gruppi { background: var(--dr-bg); }
.dr-gruppi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 24px; }
.dr-gruppi-grid:has(> :only-child) { max-width: 420px; margin: 0 auto; }
.dr-gcard { border: 2px dashed var(--dr-line); box-shadow: none; background: var(--dr-paper); }
.dr-gcard-img { aspect-ratio: 16 / 10; }
.dr-gcard-date { position: absolute; left: 14px; bottom: 14px; background: var(--dr-secondary); color: var(--dr-on-secondary); font-weight: 700; font-size: .85rem; padding: .4rem .8rem; border-radius: 8px; }
.dr-posti { font-size: .82rem; font-weight: 700; color: var(--dr-secondary-ink); background: var(--dr-tint2); padding: .3rem .65rem; border-radius: 999px; white-space: nowrap; }
.dr-gcard .dr-btn { margin-top: .9rem; }

/* ---------------------------------------------------------------------
   Blocchi liberi della home
   --------------------------------------------------------------------- */
.dr-blocchi { background: var(--dr-bg); padding-top: 3rem; padding-bottom: 3rem; }
.dr-blocchi-inner { max-width: 1100px; }
/* gli stili dei singoli blocchi sono in fondo, sezione BLOCCHI LIBERI */

/* ---------------------------------------------------------------------
   Fascia d'invito con foto
   --------------------------------------------------------------------- */
.dr-invito { position: relative; color: #fff; text-align: center; padding: clamp(5rem, 4rem + 5vw, 8rem) 0; background: var(--dr-secondary) var(--dr-invito-img) center / cover no-repeat; isolation: isolate; }
.dr-invito::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 18, 15, .55), rgba(20, 18, 15, .65)); }
.dr-invito-inner { max-width: 760px; margin: 0 auto; padding: 0 24px; display: flex; flex-direction: column; align-items: center; }
.dr-invito-icon { width: 64px; height: 64px; border-radius: 50%; border: 2px dashed rgba(255, 255, 255, .8); display: grid; place-items: center; font-size: 1.4rem; margin-bottom: 1.4rem; transform: rotate(-10deg); }
.dr-invito-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.3rem); line-height: 1.1; }
.dr-invito-text { font-size: 1.12rem; opacity: .95; margin-top: 1rem !important; max-width: 50ch; }
.dr-invito .dr-hero-cta { justify-content: center; }

/* ---------------------------------------------------------------------
   Blog
   --------------------------------------------------------------------- */
.dr-blog { background: var(--dr-bg); }
.dr-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dr-bcard-date { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--dr-secondary-ink); }
.dr-bcard-text { color: var(--dr-muted); font-size: .96rem; }
.dr-bcard .dr-link { margin-top: auto; padding-top: .4rem; }
.dr-blog .dr-center { margin-top: 2rem; }

/* ---------------------------------------------------------------------
   Newsletter
   --------------------------------------------------------------------- */
.dr-newsletter { background: var(--dr-tint2); padding: clamp(3.5rem, 2.5rem + 3vw, 5rem) 0; position: relative; overflow: hidden; }
.dr-newsletter::before { content: ""; position: absolute; right: -60px; top: -40px; width: 340px; height: 200px; border: 2px dashed var(--dr-line); border-radius: 50%; transform: rotate(-12deg); opacity: .7; }
.dr-newsletter-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: center; position: relative; }
.dr-newsletter .dr-h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); }
.dr-newsletter .dr-muted { margin-top: .7rem; }
.dr-nl-row { display: flex; gap: .6rem; background: var(--dr-paper); border-radius: 999px; padding: .4rem; box-shadow: var(--dr-shadow); }
.dr-nl-row input { flex: 1; min-width: 0; border: 0; background: transparent; padding: .8rem 1.1rem; font: inherit; color: var(--dr-ink); outline: none; }
.dr-nl-privacy { display: flex; gap: .55rem; align-items: flex-start; font-size: .84rem; color: var(--dr-muted); margin-top: .9rem; cursor: pointer; }
.dr-nl-privacy input { margin-top: .25rem; accent-color: var(--dr-primary); }
.dr-nl-msg { min-height: 1.3em; margin-top: .6rem !important; font-weight: 600; font-size: .92rem; }
.dr-nl-msg.is-ok { color: #2f6b3f; }
.dr-nl-msg.is-err { color: #a33a2a; }

/* ---------------------------------------------------------------------
   Footer (condiviso tra i template): aspetto Diario
   --------------------------------------------------------------------- */
body.template-diario .agency-footer { background: var(--dr-bg) !important; color: var(--dr-ink) !important; border-top: 1px dashed var(--dr-border); font-family: var(--dr-sans); }
body.template-diario .agency-footer .footer-title, body.template-diario .agency-footer .footer-agency-name { font-family: var(--dr-serif) !important; font-weight: 400 !important; color: var(--dr-ink) !important; }
body.template-diario .agency-footer .footer-title { font-size: 1.25rem !important; }
body.template-diario .agency-footer .footer-title::after { background: var(--dr-primary) !important; }
body.template-diario .agency-footer, body.template-diario .agency-footer p, body.template-diario .agency-footer .footer-description, body.template-diario .agency-footer .footer-contact-item, body.template-diario .agency-footer .footer-agency-tagline { color: var(--dr-muted) !important; }
body.template-diario .agency-footer a, body.template-diario .agency-footer .footer-link, body.template-diario .agency-footer .footer-contact-link { color: var(--dr-ink) !important; }
body.template-diario .agency-footer a:hover, body.template-diario .agency-footer .footer-link:hover { color: var(--dr-primary-ink) !important; }
body.template-diario .agency-footer i { color: var(--dr-primary) !important; }
body.template-diario .agency-footer .footer-social-link { background: var(--dr-tint) !important; color: var(--dr-primary-ink) !important; }
body.template-diario .agency-footer .footer-social-link i { color: var(--dr-primary-ink) !important; }
body.template-diario .agency-footer .footer-social-link:hover { background: var(--dr-primary) !important; }
body.template-diario .agency-footer .footer-social-link:hover i { color: var(--dr-on-primary) !important; }
body.template-diario .agency-footer .footer-copyright, body.template-diario .agency-footer .footer-bottom { background: var(--dr-bg-2) !important; color: var(--dr-muted) !important; border-top: 1px dashed var(--dr-border) !important; }

/* ---------------------------------------------------------------------
   Tablet e telefono
   --------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .dr-carousel-track { grid-auto-columns: calc((100% - 24px) / 2); }
    .dr-dest-grid, .dr-dest-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .dr-blog-grid { grid-template-columns: repeat(2, 1fr); }
    .dr-blog-grid > :nth-child(3) { display: none; }
    .dr-timbro { width: 120px; height: 120px; }
}
@media (max-width: 760px) {
    html body.template-diario { font-size: 16px; }
    .dr-wrap { padding: 0 16px; }
    .dr-topbar-inner { padding: .45rem 16px; }
    .dr-topbar-left a span, .dr-topbar-addr { display: none !important; }
    .dr-topbar-left { gap: .4rem; }
    .dr-topbar-left a { width: 30px; height: 30px; border-radius: 50%; justify-content: center; background: color-mix(in srgb, var(--dr-on-secondary) 14%, transparent); }
    body.template-diario .agency-header-content { padding: .7rem 16px; }
    body.template-diario .agency-logo { height: 46px; }
    .dr-hero { min-height: 78vh; }
    .dr-hero-inner { padding: 7rem 16px 3rem; }
    .dr-hero-cta { flex-direction: column; align-items: stretch; }
    .dr-timbro { display: none; }
    .dr-carousel { margin: 0 -16px; }
    .dr-carousel-track { grid-auto-columns: 84%; padding: 8px 16px 22px; scroll-padding: 0 16px; }
    .dr-carousel-btn { display: none; }
    .dr-split-grid { grid-template-columns: 1fr; gap: 2.2rem; }
    .dr-split--rev .dr-split-media { order: 0; }
    .dr-split-media { margin-right: 14px; }
    .dr-split--rev .dr-split-media { margin: 0 0 0 14px; }
    .dr-split--tinta::before { -webkit-mask-image: linear-gradient(180deg, transparent 40%, #000); mask-image: linear-gradient(180deg, transparent 40%, #000); }
    .dr-dest-grid, .dr-dest-grid--2, .dr-dest-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .dr-dest { aspect-ratio: 3 / 4; }
    .dr-dest-name { font-size: 1.15rem; }
    .dr-dest-body { padding: .9rem; }
    .dr-blog-grid { grid-template-columns: 1fr; }
    .dr-blog-grid > :nth-child(3) { display: flex; }
    .dr-newsletter-grid { grid-template-columns: 1fr; }
    .dr-nl-row { flex-direction: column; border-radius: var(--dr-radius); padding: .5rem; }
    .dr-nl-row .dr-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    body.template-diario * { transition: none !important; scroll-behavior: auto !important; }
}
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav a.active:not(.nav-cta-book):not(.contact-btn) { color: #fff !important; }
html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav a.active::after { background: #fff !important; }

/* =====================================================================
   PAGINE INTERNE: testata
   ===================================================================== */
.dr-pagehead { position: relative; color: #fff; isolation: isolate; overflow: hidden; }
.dr-pagehead-bg { position: absolute; inset: 0; z-index: -2; background: var(--dr-secondary) var(--dr-hero-img) center / cover no-repeat; }
.dr-pagehead::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(20, 18, 15, .45), rgba(20, 18, 15, .62)); }
.dr-pagehead-inner { padding-top: clamp(6.5rem, 5rem + 4vw, 9rem); padding-bottom: clamp(2.6rem, 2rem + 2vw, 3.8rem); }
.dr-pagehead-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2.3rem, 1.6rem + 3vw, 3.8rem); line-height: 1.05; margin: .4rem 0 0; letter-spacing: -.015em; }
.dr-pagehead-sub { font-size: 1.1rem; max-width: 56ch; margin-top: .8rem; opacity: .95; }
.dr-pagehead-sub p { margin: 0; }
.dr-crumbs { font-size: .85rem; font-weight: 600; opacity: .9; display: flex; gap: .5rem; flex-wrap: wrap; }
.dr-crumbs a { color: #fff !important; text-decoration: none; }
.dr-crumbs a:hover { text-decoration: underline; }
body.template-diario .breadcrumb, body.template-diario .breadcrumbs, body.template-diario nav.breadcrumb-nav { display: none !important; }

/* =====================================================================
   ELENCO VIAGGI: filtri
   ===================================================================== */
body.template-diario .filters-section { position: relative; z-index: 20; margin-top: -1.9rem; }
body.template-diario .filters-container { max-width: var(--dr-wrap); margin: 0 auto; padding: 0 24px; }
body.template-diario .chip-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); padding: .75rem; }
body.template-diario .chip-dropdown { position: relative; }
body.template-diario .chip-trigger { display: inline-flex; align-items: center; gap: .45rem; font: 600 .9rem/1 var(--dr-sans); color: var(--dr-ink); background: var(--dr-bg); border: 1px solid var(--dr-border); border-radius: 999px; padding: .65rem .95rem; cursor: pointer; transition: border-color .2s, background-color .2s; }
body.template-diario .chip-trigger:hover { border-color: var(--dr-line); }
body.template-diario .chip-label { color: var(--dr-muted); font-weight: 600; display: inline-flex; align-items: center; gap: .4rem; }
body.template-diario .chip-label i { color: var(--dr-primary); }
body.template-diario .chip-value { color: var(--dr-ink); }
body.template-diario .chip-arrow { font-size: .7rem; color: var(--dr-muted); transition: transform .2s; }
body.template-diario .chip-dropdown.open .chip-arrow { transform: rotate(180deg); }
body.template-diario .chip-dropdown.has-active .chip-trigger { background: var(--dr-tint); border-color: var(--dr-primary); }
body.template-diario .chip-dropdown.has-active .chip-value { color: var(--dr-primary-ink); }
body.template-diario .chip-panel { display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 240px; max-height: 360px; overflow-y: auto; background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); box-shadow: var(--dr-shadow); padding: .45rem; z-index: 30; }
body.template-diario .chip-dropdown.open .chip-panel { display: block; }
body.template-diario .chip-option { display: block; width: 100%; text-align: left; font: 500 .92rem/1.3 var(--dr-sans); color: var(--dr-ink); background: transparent; border: 0; border-radius: 8px; padding: .6rem .75rem; cursor: pointer; }
body.template-diario .chip-option:hover { background: var(--dr-bg); }
body.template-diario .chip-option.active { background: var(--dr-tint); color: var(--dr-primary-ink); font-weight: 700; }
body.template-diario .chip-panel-divider { height: 1px; background: var(--dr-border); margin: .45rem .3rem; }
body.template-diario .chip-panel-daterange { display: grid; grid-template-columns: auto 1fr; gap: .45rem .6rem; align-items: center; padding: .4rem .5rem .3rem; font-size: .85rem; color: var(--dr-muted); }
body.template-diario .chip-panel-daterange input { font: inherit; color: var(--dr-ink); border: 1px solid var(--dr-border); border-radius: 8px; padding: .45rem .55rem; background: var(--dr-bg); }
body.template-diario #filter-range-clear { grid-column: 1 / -1; display: none; justify-self: start; font: 600 .82rem var(--dr-sans); color: var(--dr-primary-ink); background: none; border: 0; padding: .2rem 0; cursor: pointer; }
body.template-diario .chip-search { position: relative; flex: 1 1 220px; min-width: 200px; }
body.template-diario .chip-search-icon { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: var(--dr-muted); font-size: .85rem; }
body.template-diario .chip-search input { width: 100%; font: 500 .92rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-bg); border: 1px solid var(--dr-border); border-radius: 999px; padding: .68rem 2.2rem .68rem 2.4rem; outline: none; }
body.template-diario .chip-search input:focus { border-color: var(--dr-primary); background: var(--dr-paper); }
body.template-diario #filter-search-clear { display: none; position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--dr-muted); cursor: pointer; padding: .3rem .4rem; }
body.template-diario .chip-meta { display: flex; align-items: center; gap: .55rem; margin-left: auto; padding-left: .3rem; }
body.template-diario .chip-count { font-size: .9rem; color: var(--dr-muted); white-space: nowrap; }
body.template-diario .chip-count span { font-weight: 700; color: var(--dr-ink); }
body.template-diario .chip-reset { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--dr-border); background: var(--dr-paper); color: var(--dr-muted); cursor: pointer; }
body.template-diario .chip-reset:hover { color: var(--dr-primary-ink); border-color: var(--dr-primary); }
body.template-diario .active-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .8rem; }
body.template-diario .active-chips:empty { display: none; }
body.template-diario .active-chip { display: inline-flex; align-items: center; gap: .35rem; font: 600 .82rem var(--dr-sans); color: var(--dr-primary-ink); background: var(--dr-tint); border-radius: 999px; padding: .38rem .5rem .38rem .8rem; }
body.template-diario .active-chip-remove { border: 0; background: rgba(0, 0, 0, .06); color: inherit; width: 20px; height: 20px; border-radius: 50%; cursor: pointer; font-size: .7rem; line-height: 1; }

/* Barra filtri e cassetto su telefono */
body.template-diario .mobile-filter-bar { display: none; position: sticky; top: 0; z-index: 100; background: var(--dr-bg); border-bottom: 1px dashed var(--dr-border); padding: .7rem 16px; align-items: center; justify-content: space-between; gap: .75rem; }
body.template-diario .mobile-filter-btn { display: inline-flex; align-items: center; gap: .5rem; font: 700 .92rem var(--dr-sans); background: var(--dr-primary); color: var(--dr-on-primary); border: 0; border-radius: 999px; padding: .65rem 1.15rem; cursor: pointer; }
body.template-diario .mobile-filter-badge { display: none; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--dr-paper); color: var(--dr-primary-ink); font-size: .72rem; font-weight: 800; }
body.template-diario .mobile-filter-badge.show { display: inline-flex; }
body.template-diario .mobile-results-count { font-size: .9rem; color: var(--dr-muted); }
body.template-diario .filter-drawer-overlay { display: none; position: fixed; inset: 0; z-index: 1200; background: rgba(20, 18, 15, .45); }
body.template-diario .filter-drawer-overlay.open { display: block; }
body.template-diario .filter-drawer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1201; background: var(--dr-bg); border-radius: 22px 22px 0 0; padding: 0 18px 1.6rem; max-height: 86vh; overflow-y: auto; transform: translateY(105%); transition: transform .3s ease; font-family: var(--dr-sans); }
body.template-diario .filter-drawer.open { transform: translateY(0); }
body.template-diario .drawer-handle { width: 44px; height: 4px; border-radius: 4px; background: var(--dr-border); margin: .8rem auto 1rem; cursor: pointer; }
body.template-diario .drawer-title { display: flex; justify-content: space-between; align-items: center; font-family: var(--dr-serif); font-size: 1.35rem; color: var(--dr-ink); padding-bottom: .8rem; margin-bottom: 1rem; border-bottom: 1px dashed var(--dr-border); }
body.template-diario .drawer-close { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--dr-bg-2); color: var(--dr-muted); cursor: pointer; }
body.template-diario .drawer-section { margin-bottom: 1.3rem; }
body.template-diario .drawer-section-label { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dr-primary-ink); margin-bottom: .6rem; }
body.template-diario .drawer-filter-group { display: flex; flex-wrap: wrap; gap: .45rem; }
body.template-diario .filter-drawer .filter-btn { font: 600 .88rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .5rem .95rem; cursor: pointer; }
body.template-diario .filter-drawer .filter-btn.active { background: var(--dr-primary); border-color: var(--dr-primary); color: var(--dr-on-primary); }
body.template-diario .filter-drawer input[type="text"], body.template-diario .drawer-date-row input { width: 100%; font: 500 .92rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 10px; padding: .65rem .8rem; }
body.template-diario .drawer-date-row { display: flex; align-items: center; gap: .5rem; }
body.template-diario .drawer-date-row .dr-arrow { color: var(--dr-muted); }
body.template-diario .drawer-apply-btn { width: 100%; font: 700 1rem var(--dr-sans); background: var(--dr-primary); color: var(--dr-on-primary); border: 0; border-radius: 999px; padding: .95rem; cursor: pointer; margin-top: .4rem; }
body.template-diario .drawer-reset-btn { width: 100%; font: 600 .92rem var(--dr-sans); background: transparent; color: var(--dr-muted); border: 0; padding: .8rem; cursor: pointer; }

/* =====================================================================
   ELENCO VIAGGI: griglia, schede, paginazione
   ===================================================================== */
body.template-diario .viaggi-section { padding: 2.4rem 0 clamp(4rem, 3rem + 3vw, 6rem); scroll-margin-top: 20px; }
body.template-diario .viaggi-container { max-width: var(--dr-wrap); margin: 0 auto; padding: 0 24px; }
body.template-diario .viaggi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
body.template-diario .trip-card { min-width: 0; }
body.template-diario .trip-card > .dr-card { height: 100%; }
.dr-card-num { position: absolute; right: 12px; bottom: 12px; z-index: 2; font-size: .74rem; font-weight: 700; color: #fff; background: rgba(20, 18, 15, .55); padding: .28rem .6rem; border-radius: 999px; backdrop-filter: blur(3px); }
body.template-diario .modern-pagination { display: flex; justify-content: center; align-items: center; gap: .5rem; margin-top: 2.6rem; flex-wrap: wrap; }
body.template-diario .modern-pag-btn, body.template-diario .modern-pag-num { font: 600 .92rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; min-width: 42px; height: 42px; padding: 0 .9rem; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; cursor: pointer; }
body.template-diario .modern-pag-num.active { background: var(--dr-primary); border-color: var(--dr-primary); color: var(--dr-on-primary); }
body.template-diario .modern-pag-btn:disabled { opacity: .4; cursor: default; }
body.template-diario .modern-pag-numbers { display: flex; gap: .4rem; }
body.template-diario .modern-pag-ellipsis { color: var(--dr-muted); padding: 0 .2rem; }
body.template-diario .no-trips { text-align: center; padding: 4rem 1rem; color: var(--dr-muted); }
body.template-diario .no-trips-icon { font-size: 2.6rem; color: var(--dr-line); margin-bottom: 1rem; }
body.template-diario .no-trips h3 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.6rem; color: var(--dr-ink); margin: 0 0 .5rem; }

@media (max-width: 1024px) {
    body.template-diario .viaggi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    body.template-diario .filters-section { display: none; }
    body.template-diario .mobile-filter-bar { display: flex; }
    body.template-diario .viaggi-section { padding-top: 1.4rem; }
    body.template-diario .viaggi-container { padding: 0 16px; }
    body.template-diario .viaggi-grid { grid-template-columns: 1fr; gap: 18px; }
    .dr-pagehead-inner { padding-top: 5.5rem; }
    /* Vista elenco compatta (scelta dell'agenzia) */
    body.template-diario .cards-list-mode { gap: 12px; }
    body.template-diario .cards-list-mode .dr-card { flex-direction: row; border-radius: var(--dr-radius-sm); }
    body.template-diario .cards-list-mode .dr-card-img { width: 112px; flex: none; aspect-ratio: auto; min-height: 100%; }
    body.template-diario .cards-list-mode .dr-badge { top: 8px; left: 8px; font-size: .7rem; padding: .25rem .5rem; }
    body.template-diario .cards-list-mode .dr-card-num, body.template-diario .cards-list-mode .dr-card-meta { display: none; }
    body.template-diario .cards-list-mode .dr-card-body { padding: .75rem .85rem; gap: .3rem; }
    body.template-diario .cards-list-mode .dr-card-title { font-size: 1.05rem; }
    body.template-diario .cards-list-mode .dr-card-when { font-size: .78rem; }
    body.template-diario .cards-list-mode .dr-card-foot { padding-top: .5rem; }
    body.template-diario .cards-list-mode .dr-price { font-size: 1.15rem; }
    body.template-diario .cards-list-mode .dr-card-go { width: 34px; height: 34px; }
}
@media (min-width: 769px) {
    body.template-diario .filter-drawer, body.template-diario .filter-drawer-overlay { display: none !important; }
}
/* Cassetto filtri: nascosto del tutto quando è chiuso */
body.template-diario .filter-drawer { visibility: hidden; transition: transform .3s ease, visibility 0s linear .3s; }
body.template-diario .filter-drawer.open { visibility: visible; transition: transform .3s ease, visibility 0s; }
/* Su telefono l'header non sta sopra la foto: torna pieno e leggibile anche se l'agenzia l'ha scelto trasparente */
@media (max-width: 768px) {
    html body.template-diario .agency-header.agency-header--transparent:not(.is-scrolled) { background: var(--dr-bg) !important; border-bottom-color: var(--dr-border); }
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav > a:not(.nav-cta-book):not(.contact-btn),
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav .dropdown-trigger,
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-info h1 { color: var(--dr-ink) !important; }
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .tagline { color: var(--dr-muted) !important; }
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav a.active:not(.nav-cta-book):not(.contact-btn) { color: var(--dr-primary-ink) !important; }
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .agency-nav a.active::after { background: var(--dr-primary) !important; }
    html body.template-diario .agency-header--transparent:not(.is-scrolled) .mobile-hamburger span { background: var(--dr-ink); }
}

/* =====================================================================
   DETTAGLIO VIAGGIO
   ===================================================================== */
.dr-detail { padding: 1.6rem 0 0; }
.dr-crumbs--dark { color: var(--dr-muted); opacity: 1; margin-bottom: 1.4rem; }
.dr-crumbs--dark a { color: var(--dr-ink) !important; }
.dr-crumbs--dark > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40ch; }
.dr-detail-head { margin-bottom: 1.6rem; }
.dr-detail-head .dr-eyebrow { margin-bottom: .5rem; }
.dr-detail-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.3rem); line-height: 1.08; letter-spacing: -.015em; color: var(--dr-ink); margin: 0; max-width: 24ch; }
.dr-detail-facts { display: flex; flex-wrap: wrap; gap: .5rem 1.3rem; margin: 1rem 0 0; color: var(--dr-muted); font-weight: 500; }
.dr-detail-facts span { display: inline-flex; align-items: center; gap: .45rem; }
.dr-detail-facts i { color: var(--dr-primary); }

.dr-gallery { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 2.4rem; }
.dr-gallery-main { position: relative; border-radius: var(--dr-radius); overflow: hidden; background: var(--dr-tint); box-shadow: var(--dr-shadow); }
.dr-gallery-main img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 8; object-fit: cover; }
.dr-gallery-main .dr-badge { top: 18px; left: 18px; font-size: .95rem; padding: .45rem .9rem; }
.dr-gallery-thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.dr-thumb { padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; cursor: pointer; background: var(--dr-tint); opacity: .75; transition: opacity .2s, border-color .2s; }
.dr-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.dr-thumb:hover { opacity: 1; }
.dr-thumb.is-active { border-color: var(--dr-primary); opacity: 1; }

.dr-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.dr-detail-lead { font-size: 1.18rem; line-height: 1.6; color: var(--dr-ink); margin-bottom: 1.6rem; }
.dr-detail-lead p { margin: 0 0 .6rem; }
.dr-subnav { position: sticky; top: 0; z-index: 5; display: flex; gap: .4rem; background: var(--dr-bg); padding: .6rem 0; margin-bottom: 1rem; border-bottom: 1px dashed var(--dr-border); }
.dr-subnav a { font-weight: 700; font-size: .92rem; color: var(--dr-ink) !important; text-decoration: none; padding: .45rem .9rem; border-radius: 999px; }
.dr-subnav a:hover { background: var(--dr-tint); color: var(--dr-primary-ink) !important; }
.dr-detail-sec { padding: 1.6rem 0 2rem; scroll-margin-top: 70px; }
.dr-detail-sec + .dr-detail-sec { border-top: 1px dashed var(--dr-border); }
.dr-h3 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.75rem; color: var(--dr-primary-ink); margin: 0 0 1rem; }
.dr-content { color: #45403a; font-size: 1.04rem; line-height: 1.75; }
.dr-content h2, .dr-content h3, .dr-content h4 { font-family: var(--dr-serif); font-weight: 400; color: var(--dr-ink); line-height: 1.25; margin: 1.6rem 0 .6rem; }
.dr-content h3 { font-size: 1.35rem; }
.dr-content p { margin: 0 0 1rem; }
.dr-content ul, .dr-content ol { padding-left: 1.3rem; margin: 0 0 1rem; }
.dr-content li { margin-bottom: .35rem; }
.dr-content a { color: var(--dr-primary-ink) !important; }
.dr-content img { height: auto; border-radius: var(--dr-radius-sm); }
.dr-content table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .95rem; }
.dr-content td, .dr-content th { border: 1px solid var(--dr-border); padding: .55rem .7rem; text-align: left; }
.dr-block { margin-top: 1.4rem; }
.dr-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--dr-radius-sm); overflow: hidden; margin: 1rem 0 1.4rem; box-shadow: var(--dr-shadow); }
.dr-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Programma: tappe lungo una rotta tratteggiata */
.dr-days { list-style: none; margin: .4rem 0 0; padding: 0; position: relative; }
.dr-days::before { content: ""; position: absolute; left: 21px; top: 20px; bottom: 20px; border-left: 2px dashed var(--dr-line); }
.dr-day { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 1.1rem; padding-bottom: 1.6rem; }
.dr-day-num { position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--dr-paper); border: 2px solid var(--dr-primary); color: var(--dr-primary-ink); font-family: var(--dr-serif); font-size: 1.15rem; }
.dr-day:last-child .dr-day-num { background: var(--dr-primary); color: var(--dr-on-primary); }
.dr-day-body { background: var(--dr-paper); border-radius: var(--dr-radius-sm); padding: 1rem 1.2rem; box-shadow: 0 1px 2px rgba(42, 39, 35, .05); }
.dr-day-label { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dr-secondary-ink); margin: 0 0 .25rem; }
.dr-day-title { font-family: var(--dr-serif); font-weight: 400; font-size: 1.25rem; color: var(--dr-ink); margin: 0 0 .4rem; }
.dr-day .dr-content { font-size: 1rem; }
.dr-day .dr-content p:last-child { margin-bottom: 0; }

.dr-docs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.dr-docs a { display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); text-decoration: none; color: var(--dr-ink) !important; font-weight: 600; }
.dr-docs a:hover { border-color: var(--dr-primary); }
.dr-docs i { font-size: 1.5rem; color: var(--dr-primary); }
.dr-docs span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dr-docs small { font-size: .72rem; color: var(--dr-muted); }
.dr-share-btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.dr-share-btns button { display: inline-flex; align-items: center; gap: .5rem; font: 600 .92rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .6rem 1rem; cursor: pointer; }
.dr-share-btns button:hover { border-color: var(--dr-primary); color: var(--dr-primary-ink); }

/* Riquadro prenotazione */
.dr-detail-side { position: sticky; top: 20px; }
.dr-book { background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); padding: 1.6rem; border-top: 5px solid var(--dr-primary); }
.dr-book-from { font-size: .82rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dr-muted); margin: 0; }
.dr-book-price { font-family: var(--dr-serif); font-size: 2.6rem; line-height: 1.1; color: var(--dr-primary-ink); margin: .2rem 0 0; }
.dr-book-price small { font-family: var(--dr-sans); font-size: .9rem; color: var(--dr-muted); font-weight: 600; }
.dr-book-price--ask { font-size: 1.8rem; }
.dr-book-old { margin: .3rem 0 0; font-size: .95rem; color: var(--dr-muted); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.dr-book-old span { background: var(--dr-tint); color: var(--dr-primary-ink); font-weight: 700; font-size: .82rem; padding: .25rem .6rem; border-radius: 999px; }
.dr-book-facts { margin: 1.2rem 0 1.1rem; padding: 1rem 0 0; border-top: 1px dashed var(--dr-border); display: grid; gap: .65rem; }
.dr-book-facts div { display: grid; grid-template-columns: 128px 1fr; gap: .6rem; font-size: .93rem; }
.dr-book-facts dt { color: var(--dr-muted); display: flex; align-items: center; gap: .5rem; margin: 0; }
.dr-book-facts dt i { width: 16px; text-align: center; color: var(--dr-primary); }
.dr-book-facts dd { margin: 0; font-weight: 600; color: var(--dr-ink); }
.dr-avail { border-radius: var(--dr-radius-sm); padding: .85rem 1rem; margin-bottom: 1.1rem; --av: #2f7d4f; background: color-mix(in srgb, var(--av) 9%, var(--dr-paper)); }
.dr-avail.is-few { --av: #b7791f; }
.dr-avail.is-last, .dr-avail.is-out { --av: #b3412f; }
.dr-avail-top { display: flex; justify-content: space-between; align-items: center; color: var(--av); font-size: .95rem; }
.dr-avail-dots { display: grid; grid-template-columns: repeat(10, 1fr); gap: 5px; margin: .6rem 0 .2rem; }
.dr-avail-dots span { height: 8px; border-radius: 4px; background: color-mix(in srgb, var(--av) 18%, transparent); }
.dr-avail-dots span.is-full { background: var(--av); }
.dr-avail p { margin: .4rem 0 0; font-size: .86rem; color: var(--dr-muted); }
.dr-avail p strong { color: var(--av); }
.dr-book-alt { display: flex; gap: .5rem; margin-top: .6rem; }
.dr-book-alt .dr-btn--outline { flex: 1; }
.dr-btn--wa { background: #25d366; color: #fff !important; padding: 0; width: 54px; flex: none; font-size: 1.35rem; }
.dr-btn--wa:hover { background: #1ebe5a; }
.dr-book-tel { margin: 1rem 0 0; font-size: .88rem; color: var(--dr-muted); text-align: center; }
.dr-book-tel a { color: var(--dr-primary-ink) !important; font-weight: 700; text-decoration: none; }

.dr-related { background: var(--dr-bg-2); margin-top: 3rem; }
.dr-admin-btn { position: fixed; left: 16px; bottom: 16px; z-index: 1500; display: inline-flex; align-items: center; gap: .45rem; background: var(--dr-ink); color: #fff !important; font: 700 .85rem var(--dr-sans); padding: .6rem .95rem; border-radius: 999px; text-decoration: none; box-shadow: var(--dr-shadow); }
.dr-mbar { display: none; }

@media (max-width: 1024px) {
    .dr-detail-grid { grid-template-columns: minmax(0, 1fr) 320px; }
    .dr-book-facts div { grid-template-columns: 1fr; gap: .1rem; }
}
@media (max-width: 860px) {
    .dr-detail-grid { grid-template-columns: 1fr; }
    .dr-detail-side { position: static; order: -1; }
    .dr-gallery-main img { aspect-ratio: 4 / 3; }
    .dr-gallery-thumbs { grid-template-columns: repeat(6, 72px); overflow-x: auto; scrollbar-width: none; }
    .dr-book-facts div { grid-template-columns: 128px 1fr; }
    .dr-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; align-items: center; justify-content: space-between; gap: 1rem; background: var(--dr-paper); border-top: 1px solid var(--dr-border); box-shadow: 0 -6px 20px rgba(42, 39, 35, .1); padding: .7rem 16px calc(.7rem + env(safe-area-inset-bottom)); }
    .dr-mbar div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .35rem; line-height: 1.15; }
    .dr-mbar strong { font-family: var(--dr-serif); font-weight: 400; font-size: 1.45rem; color: var(--dr-primary-ink); }
    .dr-mbar small { font-size: .78rem; color: var(--dr-muted); font-weight: 600; }
    .dr-mbar small:last-child { flex-basis: 100%; }
    .dr-mbar .dr-btn { padding: .9rem 1.5rem; }
    body.template-diario .dr-detail ~ .agency-footer, body.template-diario .agency-footer { padding-bottom: 5rem !important; }
    body.template-diario .whatsapp-container { bottom: 84px !important; }
    .dr-subnav { overflow-x: auto; scrollbar-width: none; }
    .dr-subnav a { white-space: nowrap; }
}

/* =====================================================================
   CONTATTI
   ===================================================================== */
.dr-pagehead--short .dr-pagehead-inner { padding-bottom: clamp(2.2rem, 1.6rem + 2vw, 3.2rem); }
.dr-contact { padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0 clamp(3.5rem, 3rem + 3vw, 5.5rem); }
.dr-alert { display: flex; align-items: center; gap: .6rem; font-weight: 600; border-radius: var(--dr-radius-sm); padding: 1rem 1.2rem; margin-bottom: 2rem; }
.dr-alert.is-ok { background: #e6f2ea; color: #245c39; }
.dr-alert.is-err { background: #f8e4df; color: #8f3424; }
.dr-contact-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.dr-clist { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.dr-clist li { display: grid; grid-template-columns: 46px 1fr; gap: .9rem; align-items: start; }
.dr-clist-ico { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--dr-tint); color: var(--dr-primary-ink); }
.dr-clist-ico--wa { background: #e3f6ea; color: #1a8a4a; }
.dr-clist small { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--dr-muted); margin-bottom: .15rem; }
.dr-clist p { margin: 0; font-size: 1.05rem; font-weight: 600; color: var(--dr-ink); }
.dr-clist p a { color: var(--dr-ink) !important; text-decoration: none; }
.dr-clist p a:hover { color: var(--dr-primary-ink) !important; }
.dr-clist .dr-link { font-size: .88rem; margin-top: .35rem; }
.dr-hours, .dr-depts { margin-top: 2rem; padding-top: 1.6rem; border-top: 1px dashed var(--dr-border); }
.dr-hours h3, .dr-depts h3 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.3rem; color: var(--dr-ink); margin: 0 0 .9rem; }
.dr-hours h3 i { color: var(--dr-primary); font-size: .9em; }
.dr-hours-grid { display: grid; gap: .35rem; }
.dr-hours-row { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--dr-border); font-size: .95rem; }
.dr-hours-row:last-child { border-bottom: 0; }
.dr-hours-day { font-weight: 600; color: var(--dr-ink); }
.dr-hours-time { color: var(--dr-muted); text-align: right; }
.dr-hours-closed { color: #a3412f; font-weight: 600; }
.dr-depts { display: grid; gap: .6rem; }
.dr-dept { display: grid; gap: .15rem; padding: .85rem 1rem; background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); text-decoration: none; color: var(--dr-ink) !important; }
.dr-dept:hover { border-color: var(--dr-primary); }
.dr-dept span { font-size: .9rem; color: var(--dr-muted); }
.dr-dept small { color: var(--dr-primary-ink); font-weight: 600; }
.dr-contact-form { background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); padding: clamp(1.4rem, 1rem + 2vw, 2.4rem); border-top: 5px solid var(--dr-primary); }
.dr-contact-form .dr-muted { margin: -.4rem 0 1.4rem; }
.dr-form { display: grid; gap: 1rem; }
.dr-field { display: grid; gap: .35rem; }
.dr-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.dr-field label { font-size: .88rem; font-weight: 700; color: var(--dr-ink); }
.dr-field input, .dr-field textarea { width: 100%; font: 400 1rem/1.5 var(--dr-sans); color: var(--dr-ink); background: var(--dr-bg); border: 1px solid var(--dr-border); border-radius: 12px; padding: .8rem .95rem; outline: none; transition: border-color .2s, background-color .2s; }
.dr-field input:focus, .dr-field textarea:focus { border-color: var(--dr-primary); background: var(--dr-paper); box-shadow: 0 0 0 3px var(--dr-tint); }
.dr-field textarea { resize: vertical; min-height: 140px; }
.dr-check { display: flex; gap: .6rem; align-items: flex-start; font-size: .88rem; color: var(--dr-muted); cursor: pointer; }
.dr-check input { margin-top: .25rem; accent-color: var(--dr-primary); width: 17px; height: 17px; flex: none; }
.dr-form .dr-btn { justify-self: start; }
.dr-map-wrap { margin-top: clamp(2.5rem, 2rem + 2vw, 4rem); }
.dr-map { height: 420px; border-radius: var(--dr-radius); overflow: hidden; box-shadow: var(--dr-shadow); background: var(--dr-bg-2); z-index: 0; }
@media (max-width: 860px) {
    .dr-contact-grid { grid-template-columns: 1fr; }
    .dr-contact-form { order: -1; }
    .dr-field-row { grid-template-columns: 1fr; }
    .dr-form .dr-btn { justify-self: stretch; }
    .dr-map { height: 300px; }
}

/* =====================================================================
   BLOG: elenco
   ===================================================================== */
.dr-blogpage { padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0 clamp(3.5rem, 3rem + 3vw, 5.5rem); }
.dr-bfeat { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); overflow: hidden; margin-bottom: clamp(2.2rem, 1.8rem + 2vw, 3.4rem); transition: transform .25s, box-shadow .25s; }
.dr-bfeat:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(42, 39, 35, .06), 0 22px 40px -18px rgba(42, 39, 35, .3); }
.dr-bfeat-img { position: relative; min-height: 360px; background: var(--dr-tint); overflow: hidden; }
.dr-bfeat-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.dr-bfeat:hover .dr-bfeat-img img { transform: scale(1.03); }
.dr-bfeat-img.is-empty::before { content: "\f072"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; inset: 0; display: grid; place-items: center; font-size: 3rem; color: var(--dr-line); }
.dr-bfeat-body { padding: clamp(1.6rem, 1.2rem + 2vw, 3rem); display: flex; flex-direction: column; justify-content: center; gap: .9rem; }
.dr-bfeat-body .dr-eyebrow { margin: 0; }
.dr-bfeat-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(1.7rem, 1.3rem + 1.5vw, 2.5rem); line-height: 1.12; color: var(--dr-ink); margin: 0; }
.dr-bfeat-text { color: var(--dr-muted); font-size: 1.05rem; margin: 0; }
.dr-bfeat .dr-btn { align-self: flex-start; margin-top: .4rem; pointer-events: none; }
.dr-bmeta { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: 0; color: var(--dr-muted); font-size: .92rem; font-weight: 500; }
.dr-bmeta span { display: inline-flex; align-items: center; gap: .4rem; }
.dr-bmeta i { color: var(--dr-primary); }
.dr-bcats { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.6rem; }
.dr-bcats button { font: 600 .9rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .55rem 1.05rem; cursor: pointer; transition: border-color .2s, background-color .2s; }
.dr-bcats button:hover { border-color: var(--dr-line); }
.dr-bcats button.is-active { background: var(--dr-primary); border-color: var(--dr-primary); color: var(--dr-on-primary); }
.dr-blog-grid--all > .dr-bitem { display: flex; min-width: 0; }
.dr-blog-grid--all > .dr-bitem[hidden] { display: none; }
.dr-blog-grid--all > .dr-bitem > .dr-bcard { width: 100%; }
.dr-bnone { text-align: center; color: var(--dr-muted); padding: 2rem 0; }
#drBlogMoreWrap { margin-top: 2.4rem; }
.dr-empty { text-align: center; max-width: 560px; margin: 0 auto; padding: 3rem 1rem; }
.dr-empty i { font-size: 2.8rem; color: var(--dr-line); margin-bottom: 1rem; }
.dr-empty h1, .dr-empty h2 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.8rem; color: var(--dr-ink); margin: 0 0 .5rem; }
.dr-empty p { color: var(--dr-muted); margin: 0 0 1.4rem; }

/* =====================================================================
   BLOG: articolo
   ===================================================================== */
.dr-article { padding-top: 1.6rem; }
.dr-article--missing { padding: 4rem 0 5rem; }
.dr-article-head { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.dr-article-head .dr-eyebrow { margin-bottom: .6rem; }
.dr-article-title { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2.1rem, 1.4rem + 2.8vw, 3.5rem); line-height: 1.08; letter-spacing: -.015em; color: var(--dr-ink); margin: 0; }
.dr-article-lead { font-size: 1.2rem; line-height: 1.6; color: #45403a; margin: 1.1rem 0 0; }
.dr-article-head .dr-bmeta { justify-content: center; margin-top: 1.2rem; }
.dr-article .dr-crumbs--dark { justify-content: center; }
.dr-article-cover { margin: 0 auto 2.6rem; max-width: 1080px; border-radius: var(--dr-radius); overflow: hidden; background: var(--dr-tint); box-shadow: var(--dr-shadow); }
.dr-article-cover img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 8.5; object-fit: cover; }
.dr-article-body { max-width: 720px; margin: 0 auto; }
.dr-content--read { font-size: 1.12rem; line-height: 1.8; }
.dr-content--read:not(.dr-ablock) > p:first-child::first-letter { font-family: var(--dr-serif); float: left; font-size: 3.6em; line-height: .85; padding: .08em .1em 0 0; color: var(--dr-primary-ink); }
.dr-content--read h2 { font-size: 1.75rem; margin-top: 2.2rem; }
.dr-content--read blockquote { margin: 1.8rem 0; padding: .2rem 0 .2rem 1.4rem; border-left: 3px solid var(--dr-primary); font-family: var(--dr-serif); font-size: 1.3rem; line-height: 1.5; color: var(--dr-ink); }
.dr-content--read img { display: block; max-width: 100%; margin: 1.6rem 0; }
.dr-content--read iframe { max-width: 100%; }
.dr-ablock { margin-top: 1.6rem; }
.dr-ablock-img { margin: 1.4rem 0; }
.dr-ablock-img img { display: block; width: 100%; height: auto; margin: 0; border-radius: var(--dr-radius-sm); box-shadow: var(--dr-shadow); }
.dr-article-share { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.4rem; margin-top: 2.6rem; padding: 1.4rem 0; border-top: 1px dashed var(--dr-border); border-bottom: 1px dashed var(--dr-border); }
.dr-article-share p { margin: 0; font-family: var(--dr-serif); font-size: 1.2rem; color: var(--dr-ink); }
.dr-article-cta { display: grid; grid-template-columns: 1fr auto; gap: 1.2rem 2rem; align-items: center; margin-top: 2.4rem; padding: clamp(1.4rem, 1rem + 2vw, 2.2rem); background: var(--dr-tint); border-radius: var(--dr-radius); }
.dr-article-cta h2 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.6rem; line-height: 1.2; color: var(--dr-ink); margin: 0 0 .35rem; }
.dr-article-cta p { margin: 0; color: #45403a; }
.dr-article-cta .dr-eyebrow { margin-bottom: .45rem; }
.dr-article-cta-btns { display: flex; flex-direction: column; gap: .6rem; }
.dr-article-back { margin: 2rem 0 0; }
.dr-article .dr-related { margin-top: 4rem; }

@media (max-width: 860px) {
    .dr-bfeat { grid-template-columns: 1fr; }
    .dr-bfeat-img { min-height: 0; aspect-ratio: 16 / 10; }
    .dr-bcats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-left: -16px; margin-right: -16px; padding: 0 16px; }
    .dr-bcats button { white-space: nowrap; }
    .dr-article-head { text-align: left; }
    .dr-article-head .dr-bmeta, .dr-article .dr-crumbs--dark { justify-content: flex-start; }
    .dr-article-cover { margin-left: -16px; margin-right: -16px; border-radius: 0; }
    .dr-article-cover img { aspect-ratio: 4 / 3; }
    .dr-content--read { font-size: 1.06rem; }
    .dr-article-cta { grid-template-columns: 1fr; }
    .dr-article-cta-btns { flex-direction: row; flex-wrap: wrap; }
    .dr-article-cta-btns .dr-btn { flex: 1; }
}

/* =====================================================================
   BLOCCHI LIBERI (pagine personalizzate e home), classe .dr-cpb
   ===================================================================== */
.dr-cpb { color: #45403a; font-size: 1.06rem; line-height: 1.75; }
.dr-cpb > :first-child { margin-top: 0 !important; }
.dr-cpb h1, .dr-cpb h2, .dr-cpb h3, .dr-cpb h4 { font-family: var(--dr-serif) !important; font-weight: 400 !important; line-height: 1.2; }
.dr-cpb img { max-width: 100%; height: auto; border-radius: var(--dr-radius-sm); }
.dr-cpb a { color: var(--dr-primary-ink); }
.dr-cpb p { margin: 0 0 1rem; }
.dr-cpb ul, .dr-cpb ol { padding-left: 1.3rem; margin: 0 0 1rem; }
.dr-cpb .cpb-title { margin: 2.2rem 0 1rem; letter-spacing: -.01em; }
.dr-cpb .cpb-text { margin: 1rem 0; }
.dr-cpb .cpb-section { margin: 2.6rem 0; }
.dr-cpb .cpb-section-cols { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.6rem, 1rem + 2vw, 3rem); align-items: center; }
.dr-cpb .cpb-section-title { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); color: var(--dr-primary-ink); margin: 0 0 .4rem; }
.dr-cpb .cpb-section-sub { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dr-secondary-ink); margin: 0 0 .9rem; }
.dr-cpb .cpb-section img { border-radius: var(--dr-radius) !important; box-shadow: var(--dr-shadow); }
.dr-cpb .cpb-image { margin: 2rem 0; }
.dr-cpb .cpb-image img { border-radius: var(--dr-radius) !important; }
.dr-cpb .cpb-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.4rem, 1rem + 2vw, 2.6rem); margin: 2.4rem 0; }
.dr-cpb .cpb-twocol h3 { font-size: 1.4rem; color: var(--dr-ink); margin: 0 0 .7rem; }
.dr-cpb .cpb-twocol-img { height: 260px; object-fit: cover; border-radius: var(--dr-radius-sm) !important; margin-bottom: .8rem !important; }
.dr-cpb .cpb-button { margin: 2rem 0; }
.dr-cpb .cpb-button a { display: inline-block; font: 700 1rem/1 var(--dr-sans); padding: 1rem 1.8rem; border-radius: 999px; text-decoration: none; transition: transform .2s, filter .2s; }
.dr-cpb .cpb-button a:hover { transform: translateY(-2px); filter: brightness(.95); }
.dr-cpb .cpb-divider { border: 0; height: 22px; margin: 2.4rem 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='22'%3E%3Cpath d='M2 14 C 30 2, 60 22, 98 10' fill='none' stroke='%23c9b8a0' stroke-width='2' stroke-dasharray='5 6'/%3E%3C/svg%3E") center / 120px 22px no-repeat; }
.dr-cpb .cpb-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 2rem 0; }
.dr-cpb .cpb-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.dr-cpb .cpb-video { margin: 2rem 0; }
.dr-cpb .cpb-video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--dr-radius); overflow: hidden; box-shadow: var(--dr-shadow); background: var(--dr-ink); }
.dr-cpb .cpb-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.dr-cpb .cpb-video-cap { text-align: center; color: var(--dr-muted); font-size: .92rem; margin-top: .6rem; }
.dr-cpb .cpb-map { margin: 2rem 0; border-radius: var(--dr-radius); overflow: hidden; box-shadow: var(--dr-shadow); }
.dr-cpb .cpb-map iframe { display: block; width: 100%; border: 0; }
.dr-cpb .cpb-faq { margin: 2rem 0; display: grid; gap: .6rem; }
.dr-cpb .cpb-faq-item { background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); padding: 0; }
.dr-cpb .cpb-faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; font-weight: 700; color: var(--dr-ink); }
.dr-cpb .cpb-faq-item summary::-webkit-details-marker { display: none; }
.dr-cpb .cpb-faq-item summary::after { content: "+"; font-family: var(--dr-serif); font-size: 1.4rem; line-height: 1; color: var(--dr-primary); transition: transform .2s; }
.dr-cpb .cpb-faq-item[open] summary::after { transform: rotate(45deg); }
.dr-cpb .cpb-faq-item[open] { border-color: var(--dr-line); }
.dr-cpb .cpb-faq-a { padding: 0 1.2rem 1.1rem; color: #45403a; }
/* Copertina con foto */
.dr-cpb .cpb-hero { position: relative; display: flex; align-items: center; margin: 2rem 0; padding: 3rem clamp(1.4rem, 1rem + 3vw, 3.5rem); border-radius: var(--dr-radius); overflow: hidden; box-sizing: border-box; background-color: var(--dr-secondary) !important; }
.dr-cpb .cpb-hero:not([style*="url("]) { background: var(--dr-secondary) !important; }
.dr-cpb .cpb-hero-overlay { position: absolute; inset: 0; z-index: 0; }
.dr-cpb .cpb-hero-content { position: relative; z-index: 1; width: 100%; max-width: 760px; }
.dr-cpb .cpb-hero[style*="flex-end"] .cpb-hero-content { margin-left: auto; }
.dr-cpb .cpb-hero[style*="justify-content:center"] .cpb-hero-content { margin: 0 auto; }
.dr-cpb .cpb-hero-title { margin: 0; font-size: clamp(2rem, 1.4rem + 2.4vw, 3.2rem); line-height: 1.08; text-shadow: 0 2px 14px rgba(0, 0, 0, .3); }
.dr-cpb .cpb-hero-sub { margin: .8rem 0 0; font-size: 1.15rem; text-shadow: 0 1px 8px rgba(0, 0, 0, .3); }
.dr-cpb .cpb-hero-btn { display: inline-block; margin-top: 1.4rem; padding: .95rem 1.7rem; border-radius: 999px; font-weight: 700; text-decoration: none; transition: transform .2s; }
.dr-cpb .cpb-hero-btn:hover { transform: translateY(-2px); }
/* Carosello di foto */
.dr-cpb .cpb-carousel { margin: 2.4rem 0; }
.dr-cpb .cpb-car-head { margin-bottom: 1.1rem; }
.dr-cpb .cpb-car-title { margin: 0; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); color: var(--dr-primary-ink); }
.dr-cpb .cpb-car-sub { margin: .4rem 0 0; color: var(--dr-muted); }
.dr-cpb .cpb-car-stage { position: relative; border-radius: var(--dr-radius); overflow: hidden; background: var(--dr-tint); box-shadow: var(--dr-shadow); }
.dr-cpb .cpb-car-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; }
.dr-cpb .cpb-car-slide.active { opacity: 1; z-index: 1; }
.dr-cpb .cpb-car-slide img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.dr-cpb .cpb-car-slide-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2rem; color: #fff; background: linear-gradient(180deg, rgba(20, 18, 15, 0) 30%, rgba(20, 18, 15, .6)); }
.dr-cpb .cpb-car-pos-bottom { justify-content: flex-end; }
.dr-cpb .cpb-car-pos-center { justify-content: center; background: rgba(20, 18, 15, .38); }
.dr-cpb .cpb-car-slide-text { margin: 0; font-family: var(--dr-serif); font-size: clamp(1.3rem, 1rem + 1.2vw, 1.9rem); line-height: 1.2; max-width: 760px; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.dr-cpb .cpb-car-slide-btn { display: inline-block; margin-top: 1rem; background: var(--dr-primary); color: var(--dr-on-primary) !important; padding: .85rem 1.5rem; border-radius: 999px; font-weight: 700; text-decoration: none; }
.dr-cpb .cpb-car-arrow { position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--dr-ink); cursor: pointer; display: grid; place-items: center; box-shadow: var(--dr-shadow); }
.dr-cpb .cpb-car-arrow:hover { background: #fff; color: var(--dr-primary-ink); }
.dr-cpb .cpb-car-prev { left: 14px; }
.dr-cpb .cpb-car-next { right: 14px; }
.dr-cpb .cpb-car-dots { display: flex; justify-content: center; gap: 8px; margin-top: .9rem; }
.dr-cpb .cpb-car-dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: var(--dr-border); cursor: pointer; transition: background-color .2s, transform .2s; }
.dr-cpb .cpb-car-dot.active { background: var(--dr-primary); transform: scale(1.2); }
@media (max-width: 700px) {
    .dr-cpb .cpb-section-cols, .dr-cpb .cpb-twocol { grid-template-columns: 1fr !important; }
    .dr-cpb .cpb-hero { padding: 2.2rem 1.3rem; min-height: 0 !important; }
    .dr-cpb .cpb-car-stage { height: 280px !important; }
    .dr-cpb .cpb-car-arrow { width: 36px; height: 36px; }
    .dr-cpb .cpb-car-slide-overlay { padding: 1.2rem; }
}

/* =====================================================================
   PAGINA PERSONALIZZATA
   ===================================================================== */
.dr-cp-head { padding: 2.2rem 0 .4rem; text-align: center; }
.dr-cp-head .dr-crumbs--dark { justify-content: center; }
.dr-cp-head h1 { font-family: var(--dr-serif); font-weight: 400; font-size: clamp(2.2rem, 1.5rem + 2.8vw, 3.5rem); line-height: 1.08; letter-spacing: -.015em; color: var(--dr-ink); margin: 0; }
.dr-cp-head p { font-size: 1.15rem; color: var(--dr-muted); max-width: 60ch; margin: .9rem auto 0; }
.dr-cp-body { padding: clamp(2.4rem, 2rem + 2vw, 3.6rem) 0 clamp(3.5rem, 3rem + 3vw, 5.5rem); }
.dr-cp-body .dr-wrap { max-width: 960px; }
@media (max-width: 860px) {
    .dr-cp-head { text-align: left; }
    .dr-cp-head .dr-crumbs--dark { justify-content: flex-start; }
    .dr-cp-head p { margin-left: 0; }
}
.dr-pagehead--cp .dr-pagehead-inner { max-width: 960px; }

/* =====================================================================
   LISTE REGALO: elenco
   ===================================================================== */
.dr-liste { padding: clamp(2rem, 1.6rem + 2vw, 3.2rem) 0 clamp(3.5rem, 3rem + 3vw, 5.5rem); }
.dr-lbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.8rem; }
.dr-lbar .dr-bcats { margin: 0; }
.dr-bcats a { font: 600 .9rem var(--dr-sans); color: var(--dr-ink) !important; background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .55rem 1.05rem; text-decoration: none; transition: border-color .2s, background-color .2s; white-space: nowrap; }
.dr-bcats a:hover { border-color: var(--dr-line); }
.dr-bcats a.is-active { background: var(--dr-primary); border-color: var(--dr-primary); color: var(--dr-on-primary) !important; }
.dr-lsearch { position: relative; flex: 0 1 340px; }
.dr-lsearch i { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: var(--dr-muted); font-size: .85rem; }
.dr-lsearch input { width: 100%; font: 500 .95rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .7rem 1rem .7rem 2.4rem; outline: none; }
.dr-lsearch input:focus { border-color: var(--dr-primary); box-shadow: 0 0 0 3px var(--dr-tint); }
.dr-liste-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dr-lcard { position: relative; display: flex; flex-direction: column; background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); overflow: hidden; transition: transform .25s, box-shadow .25s; }
.dr-lcard[hidden] { display: none; }
.dr-lcard:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(42, 39, 35, .06), 0 22px 40px -18px rgba(42, 39, 35, .3); }
.dr-lcard-img { position: relative; aspect-ratio: 16 / 11; background: var(--dr-tint); overflow: hidden; }
.dr-lcard-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.dr-lcard:hover .dr-lcard-img img { transform: scale(1.04); }
.dr-lcard-img.is-empty::before { content: "\f06b"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; inset: 0; display: grid; place-items: center; font-size: 2.6rem; color: var(--dr-line); }
.dr-lcard-cat { position: absolute; left: 12px; top: 12px; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--dr-ink); background: rgba(255, 255, 255, .92); padding: .35rem .7rem; border-radius: 999px; }
.dr-lcard-body { padding: 1.2rem 1.35rem 1.25rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.dr-lcard-sub { margin: 0; color: var(--dr-muted); font-size: .96rem; }
.dr-lcard-foot { display: flex; justify-content: space-between; align-items: center; gap: .8rem; margin-top: auto; padding-top: .8rem; border-top: 1px dashed var(--dr-border); font-size: .9rem; }
.dr-lcard-date { color: var(--dr-secondary-ink); font-weight: 600; }
.dr-lcard-date.is-past { color: var(--dr-muted); }
.dr-lcard-code { font-weight: 700; color: var(--dr-muted); letter-spacing: .04em; }
.dr-lhow { margin-top: clamp(3rem, 2.4rem + 2vw, 4.5rem); padding: clamp(1.6rem, 1.2rem + 2vw, 2.6rem); background: var(--dr-tint); border-radius: var(--dr-radius); }
.dr-lhow h2 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.7rem; color: var(--dr-ink); margin: 0 0 1.3rem; }
.dr-lhow ol, .dr-lsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.dr-lhow li, .dr-lsteps li { display: grid; grid-template-columns: 40px 1fr; gap: .85rem; align-items: start; }
.dr-lhow li > span, .dr-lsteps li > span { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--dr-paper); border: 2px solid var(--dr-primary); color: var(--dr-primary-ink); font-family: var(--dr-serif); font-size: 1.1rem; }
.dr-lhow strong, .dr-lsteps strong { display: block; color: var(--dr-ink); margin-bottom: .2rem; }
.dr-lhow p, .dr-lsteps p { margin: 0; color: #45403a; font-size: .96rem; }

/* =====================================================================
   LISTE REGALO: pagina della lista
   ===================================================================== */
.dr-lhead .dr-pagehead-inner { padding-bottom: clamp(3rem, 2.4rem + 3vw, 5rem); }
.dr-lhead .dr-eyebrow { margin: 1.2rem 0 .3rem; }
.dr-lhead .dr-pagehead-title { font-size: clamp(2.6rem, 1.8rem + 3.6vw, 4.6rem); }
.dr-lhead-date { display: inline-flex; align-items: center; gap: .5rem; margin: 1.1rem 0 0; font-weight: 700; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); padding: .45rem .95rem; border-radius: 999px; backdrop-filter: blur(4px); }
.dr-lista { padding: clamp(2.2rem, 1.8rem + 2vw, 3.4rem) 0 clamp(3.5rem, 3rem + 3vw, 5.5rem); }
.dr-lista-msg { position: relative; background: var(--dr-paper); border-radius: var(--dr-radius); box-shadow: var(--dr-shadow); padding: clamp(1.5rem, 1.1rem + 2vw, 2.4rem); margin-bottom: 1rem; }
.dr-lista-msg::before { content: "\201C"; position: absolute; right: 1.4rem; top: -.4rem; font-family: var(--dr-serif); font-size: 6rem; line-height: 1; color: var(--dr-tint); }
.dr-lista-msg-text { position: relative; font-family: var(--dr-serif); font-size: 1.3rem; line-height: 1.55; color: var(--dr-ink); }
.dr-lsteps { grid-template-columns: 1fr; gap: 1.1rem; }
.dr-lista .dr-share-btns { margin-top: .9rem; }
.dr-lbook-name { font-family: var(--dr-serif); font-size: 1.7rem; line-height: 1.15; color: var(--dr-ink); margin: .2rem 0 1.1rem; }
.dr-lcount { display: flex; align-items: baseline; gap: .55rem; flex-wrap: wrap; background: var(--dr-tint); border-radius: var(--dr-radius-sm); padding: .9rem 1rem; margin-bottom: 1.2rem; color: #45403a; }
.dr-lcount strong { font-family: var(--dr-serif); font-weight: 400; font-size: 2.2rem; line-height: 1; color: var(--dr-primary-ink); }
.dr-lcount.is-past { background: var(--dr-bg-2); font-size: .95rem; }
.dr-lcode { display: flex; justify-content: space-between; align-items: center; gap: .8rem; margin-top: 1.1rem; padding: .75rem .9rem; border: 1px dashed var(--dr-border); border-radius: var(--dr-radius-sm); font-size: .92rem; color: var(--dr-muted); }
.dr-lcode strong { color: var(--dr-ink); letter-spacing: .04em; }
.dr-lcode button { font: 700 .85rem var(--dr-sans); color: var(--dr-primary-ink); background: none; border: 0; cursor: pointer; padding: .2rem .3rem; }
.dr-larea { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 1rem; font-size: .9rem; font-weight: 600; color: var(--dr-muted) !important; text-decoration: none; }
.dr-larea:hover { color: var(--dr-primary-ink) !important; }

@media (max-width: 1024px) {
    .dr-liste-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
    .dr-lbar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
    .dr-lbar > * { min-width: 0; }
    .dr-lbar .dr-bcats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; }
    .dr-lsearch { flex-basis: auto; }
    .dr-lhow ol { grid-template-columns: 1fr; }
    .dr-lista .dr-detail-side { order: 0; }
    .dr-lista-msg-text { font-size: 1.15rem; }
}
@media (max-width: 600px) {
    .dr-liste-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* =====================================================================
   HOTEL: schede camera, servizi, elenco camere
   ===================================================================== */
.dr-stelle { color: #f2c14e; letter-spacing: .08em; }
.dr-card-img.is-room::before { content: "\f236"; }
.dr-rcard-text { margin: 0; color: var(--dr-muted); font-size: .95rem; }
.dr-rcard-dot { display: flex; flex-wrap: wrap; gap: .75rem; margin: .1rem 0 0; color: var(--dr-secondary-ink); font-size: .95rem; }
.dr-hservizi { background: var(--dr-bg-2); }
.dr-hserv-list { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dr-hserv-list li { display: flex; align-items: center; gap: .75rem; background: var(--dr-paper); border-radius: var(--dr-radius-sm); padding: .85rem 1rem; font-weight: 600; color: var(--dr-ink); box-shadow: 0 1px 2px rgba(42, 39, 35, .05); }
.dr-hserv-list i { width: 36px; height: 36px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--dr-tint); color: var(--dr-primary-ink); font-size: .95rem; }
.dr-hserv-list--small { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 0; }
.dr-hserv-list--small li { font-size: .92rem; padding: .65rem .8rem; box-shadow: none; border: 1px solid var(--dr-border); }
.dr-hserv-list--small i { width: 30px; height: 30px; font-size: .85rem; }
.dr-rserv { margin-top: clamp(3rem, 2.4rem + 2vw, 4.5rem); padding: clamp(1.6rem, 1.2rem + 2vw, 2.6rem); background: var(--dr-tint); border-radius: var(--dr-radius); }
.dr-rserv h2 { font-family: var(--dr-serif); font-weight: 400; font-size: 1.7rem; color: var(--dr-ink); margin: 0 0 1.3rem; }
.dr-rserv .dr-hserv-list--small li { background: var(--dr-paper); }
.dr-rgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dr-ritem { display: flex; min-width: 0; }
.dr-ritem[hidden] { display: none; }
.dr-ritem > .dr-card { width: 100%; }
.dr-lbar .dr-bcats button { white-space: nowrap; }
.dr-rguests { display: inline-flex; align-items: center; gap: .55rem; font-weight: 600; color: var(--dr-ink); background: var(--dr-paper); border: 1px solid var(--dr-border); border-radius: 999px; padding: .35rem .4rem .35rem 1rem; }
.dr-rguests i { color: var(--dr-primary); }
.dr-rguests select { font: 600 .92rem var(--dr-sans); color: var(--dr-ink); background: var(--dr-bg); border: 0; border-radius: 999px; padding: .45rem .8rem; cursor: pointer; }

/* =====================================================================
   HOTEL: scheda camera
   ===================================================================== */
.dr-room .dr-alert { margin-bottom: 1.4rem; }
.dr-room-noimg { aspect-ratio: 16 / 8; display: grid; place-items: center; font-size: 3.4rem; color: var(--dr-line); }
.dr-room-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.6rem; margin: 1.4rem 0 0; }
.dr-room-facts div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--dr-border); }
.dr-room-facts dt { color: var(--dr-muted); font-weight: 600; }
.dr-room-facts dt i { color: var(--dr-primary); width: 1.2em; }
.dr-room-facts dd { margin: 0; font-weight: 700; color: var(--dr-ink); text-align: right; }
.dr-room-extra { margin-top: 1.2rem; }
.dr-room-note { font-size: .82rem; color: var(--dr-muted); margin: .5rem 0 0; line-height: 1.5; }
.dr-room-note--top { margin: -.4rem 0 .2rem; font-size: .9rem; }
.dr-room-form { margin-top: 1.4rem; padding-top: 1.3rem; border-top: 1px dashed var(--dr-border); gap: .85rem; }
.dr-room-h { font-family: var(--dr-serif); font-weight: 400; font-size: 1.35rem; color: var(--dr-ink); margin: 0; }
.dr-room-h--small { font-size: 1.1rem; margin-top: .4rem; }
.dr-field select { width: 100%; font: 400 1rem/1.5 var(--dr-sans); color: var(--dr-ink); background: var(--dr-bg); border: 1px solid var(--dr-border); border-radius: 12px; padding: .75rem .9rem; outline: none; }
.dr-field select:focus { border-color: var(--dr-primary); background: var(--dr-paper); }
.dr-room-form .dr-field-row { grid-template-columns: 1fr 1fr; gap: .7rem; }
.dr-room-form .dr-field input, .dr-room-form .dr-field select { padding: .7rem .75rem; }
.dr-room-form .dr-btn { justify-self: stretch; }
.dr-room-msg { background: #f8e4df; color: #8f3424; border-radius: var(--dr-radius-sm); padding: .85rem 1rem; font-size: .92rem; font-weight: 600; }
.dr-room-alt { display: block; margin: .6rem 0 .4rem; color: var(--dr-ink); }
.dr-room-altbtn { display: inline-block; margin: 0 .35rem .35rem 0; font: 600 .85rem var(--dr-sans); color: var(--dr-primary-ink); background: var(--dr-paper); border: 1px solid var(--dr-line); border-radius: 999px; padding: .4rem .8rem; cursor: pointer; }
.dr-room-ok { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.2rem; background: #e6f2ea; color: #245c39; border-radius: var(--dr-radius-sm); padding: .85rem 1rem; }
.dr-room-ok i { margin-top: .2rem; }
.dr-room-ok strong { display: block; }
.dr-room-ok span { font-size: .9rem; }
.dr-room-sum { margin-top: 1rem; border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); padding: .4rem 1rem; }
.dr-room-row { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--dr-border); font-size: .93rem; }
.dr-room-row.is-sub { color: var(--dr-muted); }
.dr-room-total { display: flex; justify-content: space-between; align-items: baseline; padding: .7rem 0 .5rem; font-weight: 700; }
.dr-room-total strong { font-family: var(--dr-serif); font-weight: 400; font-size: 1.6rem; color: var(--dr-primary-ink); }
.dr-room-extras { display: grid; gap: .5rem; }
.dr-room-extra { display: grid; grid-template-columns: auto 1fr auto; gap: .7rem; align-items: start; padding: .7rem .8rem; border: 1px solid var(--dr-border); border-radius: var(--dr-radius-sm); cursor: pointer; }
.dr-room-extra.is-on { border-color: var(--dr-primary); background: var(--dr-tint); }
.dr-room-extra input { margin-top: .2rem; accent-color: var(--dr-primary); }
.dr-room-extra span { display: grid; gap: .1rem; font-size: .92rem; }
.dr-room-extra small { color: var(--dr-muted); font-size: .8rem; }
.dr-room-back { justify-self: center; background: none; border: 0; color: var(--dr-muted); font: 600 .88rem var(--dr-sans); cursor: pointer; padding: .3rem; }
.dr-room-back:hover { color: var(--dr-primary-ink); }

/* =====================================================================
   HOTEL: chi siamo
   ===================================================================== */
.dr-stelle-line .dr-stelle { margin-right: .35rem; }
.dr-about-intro { text-align: center; }
.dr-about-lead { font-family: var(--dr-serif); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.45; color: var(--dr-ink); max-width: 34ch; margin: 0 auto; }
.dr-about-num { display: flex; justify-content: center; flex-wrap: wrap; gap: 1rem clamp(2rem, 1rem + 4vw, 4.5rem); margin: 2.4rem 0 0; }
.dr-about-num div { display: flex; flex-direction: column-reverse; align-items: center; }
.dr-about-num dd { margin: 0; font-family: var(--dr-serif); font-size: 2.4rem; line-height: 1.1; color: var(--dr-primary-ink); }
.dr-about-num dt { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dr-muted); }
.dr-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 12px; }
.dr-mosaic a { display: block; border-radius: var(--dr-radius-sm); overflow: hidden; background: var(--dr-tint); }
.dr-mosaic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.dr-mosaic a:hover img { transform: scale(1.04); }
.dr-mosaic a:first-child { grid-column: span 2; grid-row: span 2; }
.dr-mosaic--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: 320px; }
.dr-mosaic--2 a:first-child { grid-column: auto; grid-row: auto; }
.dr-mosaic--3 { grid-template-columns: 2fr 1fr; }
.dr-mosaic--3 a:first-child { grid-column: auto; }
.dr-about-where .dr-sec-head { text-align: left; }
.dr-about-where .dr-sec-head .dr-rotta { margin-left: 0; }
.dr-about-social { display: flex; gap: .5rem; margin-top: 1.4rem; }
.dr-about-social a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--dr-tint); color: var(--dr-primary-ink) !important; text-decoration: none; }
.dr-about-social a:hover { background: var(--dr-primary); color: var(--dr-on-primary) !important; }
.dr-poi { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.dr-poi li { display: flex; gap: .55rem; align-items: baseline; color: #45403a; }
.dr-poi i { color: var(--dr-primary); font-size: .85rem; }
.dr-map--about { height: 380px; }
.dr-map--about iframe { width: 100%; height: 100%; border: 0; display: block; }
.dr-about-cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }

@media (max-width: 1024px) {
    .dr-hserv-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dr-rgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dr-hserv-list--small { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
    .dr-room .dr-detail-side { order: 0; }
    .dr-mosaic { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; }
    .dr-mosaic a:first-child { grid-column: span 2; grid-row: auto; }
    .dr-mosaic--2 a:first-child, .dr-mosaic--3 a:first-child { grid-column: span 2; }
    .dr-map--about { height: 280px; }
    .dr-about-where .dr-contact-grid { gap: 1.6rem; }
}
@media (max-width: 600px) {
    .dr-hserv-list { grid-template-columns: 1fr 1fr; gap: 8px; }
    .dr-hserv-list li { padding: .7rem .75rem; font-size: .9rem; gap: .55rem; }
    .dr-hserv-list i { width: 30px; height: 30px; }
    .dr-hserv-list--small { grid-template-columns: 1fr 1fr; }
    .dr-rgrid { grid-template-columns: 1fr; gap: 18px; }
    .dr-room-facts { grid-template-columns: 1fr; }
}
.dr-room-row span:last-child { white-space: nowrap; }
.dr-detail-grid > *, .dr-field-row > *, .dr-field { min-width: 0; }
.dr-field input, .dr-field select { min-width: 0; max-width: 100%; }
