/*
 * Rifugio dei Briganti — brand layer (4.0.3).
 * Source of truth: "Rifugio dei Briganti — Design System" (tokens/, components/, ui_kits/guest_area).
 * Loaded last (after rdbg-design-system.css); Il Codice del Brigante has its own block at the end of
 * rdbg-codice.css because that sheet is injected later. Scope: #rdbg-guidebook.rdbg-app, so every rule
 * outranks the older layers (which use #rdbg-guidebook .x, often with !important).
 *
 * Palette is fixed: panna #FFF9F5 (page), crema #F5E6DC (cards), marrone #594545 (headings, nav,
 * primary buttons), rosa antico #9E7676 (eyebrows, accents), testo #000, secondario #7A7A7A,
 * rosso #B80000 (rare). No other hues: statuses use the DS badge tones.
 * Torn edges: the DS reserves them for social/print; the product owner asked for them on app photos
 * (4.0.3), so photos use the DS --torn-* masks — nothing else is torn.
 */

/* ---------- Page (theme / Elementor wrappers) ---------- */
body.rdbg-guidebook-page {
	background-color: #fff9f5 !important;
	background-image: url("../images/carta-fibre.png") !important;
	background-blend-mode: multiply;
	background-size: 500px 300px !important;
}
body.rdbg-guidebook-page :where(.site, .wp-site-blocks, .site-main, main, .entry-content, .elementor, .elementor-section-wrap, .e-con, .elementor-widget-shortcode):has(#rdbg-guidebook) {
	background: transparent !important;
}

/* 4.0.5: an Elementor container in column + wrap mode measures the shortcode widget at its min-content
   width, so the widget keeps the height of a one-word-per-line layout: thousands of empty pixels below the
   app on mobile. The containers that hold the app never wrap and the widget always takes the full width. */
body.rdbg-guidebook-page :is(.e-con, .e-con-inner, .elementor-container, .elementor-widget-wrap, .elementor-column):has(#rdbg-guidebook) {
	flex-wrap: nowrap !important;
}
body.rdbg-guidebook-page :is(.elementor-widget, .elementor-widget-container, .elementor-shortcode):has(#rdbg-guidebook) {
	flex: 0 0 auto !important;
	height: auto !important;
	max-width: 100% !important;
	min-height: 0 !important;
	width: 100% !important;
}

/* ---------- Tokens ---------- */
#rdbg-guidebook.rdbg-app {
	/* Core palette, bound to Impostazioni → Tema (defaults = DS). */
	--color-primary: var(--rdbg-accent, #9e7676);
	--color-secondary: var(--rdbg-accent-2, #594545);
	--color-text: var(--rdbg-text, #000);
	--color-accent: var(--rdbg-bg, #fff9f5);
	--color-surface-warm: var(--rdbg-surface, #f5e6dc);
	--color-text-secondary: var(--rdbg-muted, #7a7a7a);
	--color-highlight-red: var(--rdbg-error, #b80000);
	--primary-08: color-mix(in srgb, var(--color-primary) 8%, transparent);
	--primary-16: color-mix(in srgb, var(--color-primary) 16%, transparent);
	--primary-32: color-mix(in srgb, var(--color-primary) 32%, transparent);
	--secondary-08: color-mix(in srgb, var(--color-secondary) 8%, transparent);
	--secondary-16: color-mix(in srgb, var(--color-secondary) 16%, transparent);
	--secondary-40: color-mix(in srgb, var(--color-secondary) 40%, transparent);
	--secondary-deep: color-mix(in srgb, var(--color-secondary) 88%, var(--color-text));
	--warm-deep: color-mix(in srgb, var(--color-surface-warm) 82%, var(--color-primary));
	--red-deep: color-mix(in srgb, var(--color-highlight-red) 84%, var(--color-secondary));
	--surface-page: var(--color-accent);
	--surface-card: var(--color-surface-warm);
	--surface-raised: var(--color-accent);
	--surface-inverse: var(--color-secondary);
	--surface-scrim: color-mix(in srgb, var(--color-secondary) 62%, transparent);
	--surface-veil: color-mix(in srgb, var(--color-accent) 88%, transparent);
	--border-hairline: var(--secondary-16);
	--border-quiet: var(--primary-32);
	--border-inverse: color-mix(in srgb, var(--color-accent) 34%, transparent);
	--control-disabled-fg: color-mix(in srgb, var(--color-text-secondary) 70%, var(--color-accent));
	/* Type */
	--font-heading: var(--rdbg-font-heading, "Big Shoulders Text", "Oswald", sans-serif);
	--font-body: var(--rdbg-font-body, "Saira Condensed", "Roboto Condensed", sans-serif);
	--text-display: clamp(2.75rem, calc(1.833rem + 4.07vw), 5.5rem);
	--text-h1: clamp(2.25rem, calc(1.667rem + 2.59vw), 4rem);
	--text-h2: clamp(1.75rem, calc(1.417rem + 1.48vw), 2.75rem);
	--text-h3: clamp(1.5rem, calc(1.333rem + 0.74vw), 2rem);
	--text-h4: clamp(1.25rem, calc(1.167rem + 0.37vw), 1.5rem);
	--text-h5: clamp(1.125rem, calc(1.083rem + 0.19vw), 1.25rem);
	--text-h6: clamp(0.9375rem, calc(0.917rem + 0.09vw), 1rem);
	--text-body-lg: clamp(1.1875rem, calc(1.125rem + 0.28vw), 1.375rem);
	--text-body: clamp(1.0625rem, calc(1rem + 0.28vw), 1.25rem);
	--text-body-sm: clamp(0.96875rem, calc(0.9375rem + 0.14vw), 1.0625rem);
	--text-caption: clamp(0.875rem, calc(0.854rem + 0.09vw), 0.9375rem);
	--text-eyebrow: clamp(0.8125rem, calc(0.792rem + 0.09vw), 0.875rem);
	/* Shape & motion */
	--radius-control: 2px;
	--radius-card: 4px;
	--shadow-card: 0 2px 4px color-mix(in srgb, var(--color-secondary) 6%, transparent), 0 12px 28px color-mix(in srgb, var(--color-secondary) 8%, transparent);
	--shadow-overlay: 0 24px 64px color-mix(in srgb, var(--color-secondary) 22%, transparent);
	--ease-standard: cubic-bezier(.22, .61, .36, 1);
	--transition-control: background-color 220ms var(--ease-standard), color 220ms var(--ease-standard), border-color 220ms var(--ease-standard);
	--torn-b: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.011 0.02' numOctaves='5' seed='4' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='-80' y='-80' width='1160' height='1042' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--torn-tb: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.011 0.02' numOctaves='5' seed='27' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='-80' y='38' width='1160' height='924' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--torn-all: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.009 0.021' numOctaves='5' seed='11' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--texture-paper: url("../images/carta-fibre.png");
	/* Older layers read these. */
	--rdbg-ink: var(--color-text);
	--rdbg-line: var(--border-hairline);
	--rdbg-line-strong: var(--border-quiet);
	--rdbg-soft: var(--color-text-secondary);
	--rdbg-faint: color-mix(in srgb, var(--color-text-secondary) 78%, transparent);
	--rdbg-tint: var(--primary-08);
	--rdbg-stone: var(--warm-deep);
	--rdbg-accent-100: var(--primary-16);
	--rdbg-accent-800: var(--color-secondary);
	--rdbg-ok-bg: var(--primary-16); --rdbg-ok-fg: var(--color-secondary); --rdbg-ok: var(--color-primary);
	--rdbg-warn-bg: var(--color-surface-warm); --rdbg-warn-fg: var(--color-secondary); --rdbg-warn: var(--color-primary);
	--rdbg-err-bg: var(--color-accent); --rdbg-err-fg: var(--color-highlight-red); --rdbg-err: var(--color-highlight-red);
	--rdbg-radius-sm: var(--radius-control);
	--rdbg-radius-card: var(--radius-card);
	--rdbg-shadow-sm: none;
	--rdbg-shadow-md: var(--shadow-overlay);
	--rdbg-skel-base: color-mix(in srgb, var(--color-secondary) 8%, var(--color-surface-warm));
	--rdbg-skel-hi: color-mix(in srgb, var(--color-accent) 70%, var(--color-surface-warm));
	background-color: var(--surface-page);
	background-image: var(--texture-paper);
	background-blend-mode: multiply;
	background-size: 500px 300px;
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-body);
	font-weight: 400;
	line-height: 1.33;
}
#rdbg-guidebook.rdbg-app ::selection { background: var(--primary-32); }

/* ---------- Typography ---------- */
#rdbg-guidebook.rdbg-app :where(h1, h2, h3, h4, h5, h6) {
	color: var(--color-secondary) !important;
	font-family: var(--font-heading) !important;
	font-weight: 500 !important;
	letter-spacing: .005em !important;
	line-height: .96 !important;
	text-transform: none !important;
}
#rdbg-guidebook.rdbg-app h1 { font-size: var(--text-h1); letter-spacing: -.01em !important; line-height: .9 !important; }
#rdbg-guidebook.rdbg-app h2 { font-size: var(--text-h3); }
#rdbg-guidebook.rdbg-app h3 { font-size: var(--text-h4); }
#rdbg-guidebook.rdbg-app h4 { font-size: var(--text-h5); line-height: 1.1 !important; }
#rdbg-guidebook.rdbg-app strong, #rdbg-guidebook.rdbg-app b { font-weight: 700; }
#rdbg-guidebook.rdbg-app small { font-size: var(--text-caption); }
#rdbg-guidebook.rdbg-app :is(.rdbg-eyebrow, .rdbg-kicker, .rdbg-sidebar__label, .rdbg-home-mini__kicker, .rdbg-g2-kicker, .rdbg-section-label) {
	color: var(--color-primary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-eyebrow) !important;
	font-weight: 700 !important;
	letter-spacing: .2em !important;
	line-height: 1.33 !important;
	text-transform: uppercase !important;
}
#rdbg-guidebook.rdbg-app :where(a:not([class])) { border-bottom: 1px solid var(--border-quiet); color: var(--color-secondary); text-decoration: none; transition: var(--transition-control); }
#rdbg-guidebook.rdbg-app :where(a:not([class])):hover { border-bottom-color: currentColor; color: var(--color-primary); }
#rdbg-guidebook.rdbg-app :where(a, button, input, select, textarea, summary, [tabindex]:not(.rdbg-screen)):focus-visible { outline: 2px solid var(--color-primary) !important; outline-offset: 2px; }
#rdbg-guidebook.rdbg-app i[data-lucide] + svg, #rdbg-guidebook.rdbg-app svg.lucide { stroke-width: 1.5; }

/* Ornament: hairline + rosa diamond (the system's only graphic ornament). */
#rdbg-guidebook.rdbg-app .rdbg-ornament { align-items: center; display: flex; gap: 12px; width: 80px; }
#rdbg-guidebook.rdbg-app .rdbg-ornament::before, #rdbg-guidebook.rdbg-app .rdbg-ornament::after { background: var(--border-quiet); content: ""; flex: 1; height: 1px; }
#rdbg-guidebook.rdbg-app .rdbg-ornament > i { background: var(--color-primary); display: block; flex: none; height: 5px; transform: rotate(45deg); width: 5px; }

/* ---------- Shell ---------- */
#rdbg-guidebook.rdbg-app .rdbg-sidebar {
	background: var(--surface-veil) !important;
	border-right: 1px solid var(--border-hairline) !important;
}
#rdbg-guidebook.rdbg-app .rdbg-sidebar__brand { border-bottom-color: var(--border-hairline) !important; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar__brand strong {
	color: var(--color-secondary) !important;
	font-family: var(--font-heading) !important;
	font-size: 26px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	line-height: .9 !important;
	text-transform: uppercase;
}
#rdbg-guidebook.rdbg-app .rdbg-sidebar__brand span:not(.rdbg-brand-mark) {
	color: var(--color-primary) !important;
	font-family: var(--font-body) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: .2em !important;
	margin-top: 8px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button {
	border-radius: 0 !important;
	box-shadow: inset 2px 0 0 transparent;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	min-height: 42px;
	padding: 9px 12px !important;
	transition: var(--transition-control), box-shadow 220ms var(--ease-standard);
}
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button span { font-size: var(--text-body-sm) !important; letter-spacing: .04em !important; text-transform: uppercase !important; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button svg { height: 18px !important; opacity: 1; width: 18px !important; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button:hover { background: var(--primary-08) !important; color: var(--color-primary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button.is-active { background: var(--primary-08) !important; box-shadow: inset 2px 0 0 var(--color-secondary); color: var(--color-secondary) !important; font-weight: 700 !important; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar .rdbg-nav-button.is-active span { font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-sidebar__footer { border-top-color: var(--border-hairline) !important; }
#rdbg-guidebook.rdbg-app .rdbg-topbar {
	background: var(--surface-veil);
	border-bottom: 1px solid var(--border-hairline) !important;
	height: 64px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-topbar strong {
	color: var(--color-primary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-h6) !important;
	font-weight: 700 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase;
}
#rdbg-guidebook.rdbg-app .rdbg-topbar span { color: var(--color-text-secondary); font-size: var(--text-caption) !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-mobile-header {
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	background: var(--surface-veil) !important;
	border-bottom: 1px solid var(--border-hairline) !important;
}
#rdbg-guidebook.rdbg-app .rdbg-mobile-header > strong {
	color: var(--color-secondary) !important;
	font-family: var(--font-heading) !important;
	font-size: 22px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	line-height: .9;
	text-transform: uppercase;
}
#rdbg-guidebook.rdbg-app .rdbg-mobile-header__actions button,
#rdbg-guidebook.rdbg-app .rdbg-mobile-header .rdbg-seg {
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	color: var(--color-secondary) !important;
	height: 40px !important;
	min-width: 40px;
}
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav {
	background: var(--surface-page) !important;
	border-top: 1px solid var(--border-hairline) !important;
	padding: 0 4px calc(8px + env(safe-area-inset-bottom)) !important;
}
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button {
	color: var(--color-text-secondary) !important;
	gap: 4px !important;
	min-height: 56px !important;
	padding: 10px 4px 6px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button svg { height: 22px !important; width: 22px !important; }
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button span {
	font-family: var(--font-body) !important;
	font-size: 11px !important;
	font-weight: 400;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	white-space: nowrap;
}
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button.is-active { color: var(--color-secondary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button.is-active span { font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-bottom-nav .rdbg-nav-button.is-active::after { display: none !important; }
/* "Altro" menu: full list rows. */
#rdbg-guidebook.rdbg-app .rdbg-more-list button {
	border-bottom: 1px solid var(--border-hairline) !important;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body) !important;
	letter-spacing: .04em;
	min-height: 56px;
	text-transform: uppercase;
}
#rdbg-guidebook.rdbg-app .rdbg-more-list button svg:first-child { color: var(--color-primary); }

/* Page header: eyebrow, h1, intro. */
#rdbg-guidebook.rdbg-app .rdbg-page-header h1,
#rdbg-guidebook.rdbg-app .rdbg-home-hero__copy h1,
#rdbg-guidebook.rdbg-app .rdbg-home-active h1 {
	color: var(--color-secondary) !important;
	font-size: var(--text-h1) !important;
	line-height: .9 !important;
	margin: 12px 0 0 !important;
}
#rdbg-guidebook.rdbg-app .rdbg-page-header div > p:last-child,
#rdbg-guidebook.rdbg-app .rdbg-home-hero__copy > p:last-child {
	color: var(--color-text) !important;
	font-size: var(--text-body) !important;
	line-height: 1.33 !important;
	margin-top: 16px !important;
	max-width: 62ch !important;
}
/* Servizi extra and Esperienze keep their editorial header (DS guest area: eyebrow + h1). */
#rdbg-guidebook.rdbg-app :is([data-screen="extras"], [data-screen="experiences"]) .rdbg-page-header--bare {
	clip: auto !important;
	height: auto !important;
	margin: 0 !important;
	overflow: visible !important;
	padding: 30px 0 0 !important;
	position: static !important;
	white-space: normal !important;
	width: auto !important;
}
#rdbg-guidebook.rdbg-app :is([data-screen="extras"], [data-screen="experiences"]) .rdbg-page-header--bare .rdbg-page-header__back { display: none; }
#rdbg-guidebook.rdbg-app .rdbg-page-header__back {
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	color: var(--color-secondary) !important;
}

/* ---------- Buttons (DS Button: 48 / 38 sm, Saira 700 uppercase .04em, radius 2) ---------- */
#rdbg-guidebook.rdbg-app :is(.rdbg-button, button.rdbg-button, a.rdbg-button) {
	align-items: center;
	background: transparent !important;
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	box-shadow: none !important;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body) !important;
	font-weight: 700 !important;
	gap: 10px;
	justify-content: center;
	letter-spacing: .04em !important;
	line-height: 1 !important;
	min-height: 48px !important;
	padding: 0 24px !important;
	text-transform: uppercase !important;
	transition: var(--transition-control), transform 140ms var(--ease-standard);
}
#rdbg-guidebook.rdbg-app .rdbg-button svg { height: 18px; width: 18px; }
#rdbg-guidebook.rdbg-app .rdbg-button:hover { background: var(--primary-08) !important; border-color: var(--color-secondary) !important; color: var(--color-secondary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-button:active:not(:disabled) { transform: translateY(1px); }
#rdbg-guidebook.rdbg-app :is(.rdbg-button--primary, .rdbg-app--buttons-solid .rdbg-button--primary),
#rdbg-guidebook.rdbg-app.rdbg-app--buttons-outline .rdbg-button--primary,
#rdbg-guidebook.rdbg-app.rdbg-app--buttons-soft .rdbg-button--primary,
#rdbg-guidebook.rdbg-app.rdbg-app--buttons-solid .rdbg-button--primary {
	background: var(--color-secondary) !important;
	border-color: transparent !important;
	color: var(--color-accent) !important;
}
#rdbg-guidebook.rdbg-app .rdbg-button--primary:hover,
#rdbg-guidebook.rdbg-app.rdbg-app--buttons-solid .rdbg-button--primary:hover { background: var(--secondary-deep) !important; color: var(--color-accent) !important; }
#rdbg-guidebook.rdbg-app .rdbg-button--danger { background: var(--color-highlight-red) !important; border-color: transparent !important; color: var(--color-accent) !important; }
#rdbg-guidebook.rdbg-app .rdbg-button--danger:hover { background: var(--red-deep) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-button:disabled, .rdbg-button[aria-disabled="true"]) {
	background: var(--surface-card) !important;
	border-color: var(--border-hairline) !important;
	color: var(--control-disabled-fg) !important;
	cursor: not-allowed;
	opacity: 1 !important;
}
#rdbg-guidebook.rdbg-app .rdbg-button[aria-busy="true"] { cursor: progress; }
#rdbg-guidebook.rdbg-app :is(.rdbg-button--sm, .rdbg-xcard__actions .rdbg-button, .rdbg-service-card__foot .rdbg-button, .rdbg-session-actions .rdbg-button, .rdbg-g2-actions .rdbg-button, .rdbg-g2-card .rdbg-button, .rdbg-g2-slotcard .rdbg-button, .rdbg-g2-event .rdbg-button, .rdbg-g2-mini .rdbg-button, .rdbg-g2-glance .rdbg-button, .rdbg-g2-fav .rdbg-button) {
	font-size: 17px !important;
	min-height: 38px !important;
	padding: 0 16px !important;
}
/* Ghost (DS): brown label with a quiet underline. */
#rdbg-guidebook.rdbg-app .rdbg-text-button,
#rdbg-guidebook.rdbg-app .rdbg-link-button {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--border-quiet) !important;
	border-radius: 0 !important;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	line-height: 1.2 !important;
	min-height: 0 !important;
	padding: 0 0 3px !important;
	text-decoration: none !important;
	text-transform: uppercase !important;
	transition: var(--transition-control);
}
#rdbg-guidebook.rdbg-app .rdbg-text-button:hover { border-bottom-color: currentColor !important; color: var(--color-primary) !important; text-decoration: none !important; }
#rdbg-guidebook.rdbg-app .rdbg-text-button:has(> svg:only-child),
#rdbg-guidebook.rdbg-app .rdbg-text-button[data-rdbg-reveal] { border-bottom: 0 !important; }
/* IconButton (DS): 40–44 px, quiet / outline. */
#rdbg-guidebook.rdbg-app :is(.rdbg-icon-button, .rdbg-modal__dialog > header > button, .rdbg-service-modal header > button, .rdbg-home-pin button:not(.rdbg-text-button), .rdbg-pin button:not(.rdbg-text-button), .rdbg-stay-pin__value button:not(.rdbg-text-button)) {
	align-items: center;
	background: transparent !important;
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	color: var(--color-secondary) !important;
	display: inline-flex;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	justify-content: center;
	letter-spacing: .04em;
	min-height: 40px !important;
	min-width: 40px !important;
	text-transform: uppercase;
	transition: var(--transition-control);
}
#rdbg-guidebook.rdbg-app :is(.rdbg-icon-button, .rdbg-modal__dialog > header > button, .rdbg-service-modal header > button) { border-color: transparent !important; height: 40px; padding: 0 !important; width: 40px; }
#rdbg-guidebook.rdbg-app :is(.rdbg-icon-button, .rdbg-modal__dialog > header > button, .rdbg-service-modal header > button, .rdbg-home-pin button:not(.rdbg-text-button), .rdbg-pin button:not(.rdbg-text-button), .rdbg-stay-pin__value button:not(.rdbg-text-button)):hover { background: var(--primary-08) !important; border-color: var(--color-secondary) !important; }
/* Segmented language switch */
#rdbg-guidebook.rdbg-app .rdbg-seg { border: 1px solid var(--border-quiet) !important; border-radius: var(--radius-control) !important; flex-wrap: wrap; max-width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-seg__opt { color: var(--color-secondary) !important; font-family: var(--font-body) !important; font-size: 14px !important; font-weight: 400; letter-spacing: .12em; min-height: 36px; padding: 0 10px !important; text-transform: uppercase; }
#rdbg-guidebook.rdbg-app .rdbg-seg__opt + .rdbg-seg__opt { border-left-color: var(--border-hairline) !important; }
#rdbg-guidebook.rdbg-app .rdbg-seg__opt:is(.is-active, [aria-current], [aria-pressed="true"]) { background: var(--color-secondary) !important; color: var(--color-accent) !important; font-weight: 700; }
#rdbg-guidebook.rdbg-app :is(.rdbg-language-current, .rdbg-language-switcher .trp-language-switcher) {
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .12em;
	min-height: 36px !important;
}

/* ---------- Tags (filters) and badges (statuses) ---------- */
/* DS Tag: pill 34, Saira 17, quiet border; selected = brown fill. */
#rdbg-guidebook.rdbg-app :is(.rdbg-chip, .rdbg-g2-chip, .rdbg-g2-cat, .rdbg-g2-opt, .rdbg-explore-quick-filters button, .rdbg-guide-filters button) {
	align-items: center;
	background: transparent !important;
	border: 1px solid var(--border-quiet) !important;
	border-radius: 999px !important;
	color: var(--color-secondary) !important;
	display: inline-flex;
	font-family: var(--font-body) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	gap: 8px;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	min-height: 34px !important;
	padding: 0 14px !important;
	text-transform: none !important;
	transition: var(--transition-control);
}
#rdbg-guidebook.rdbg-app :is(.rdbg-chip, .rdbg-g2-chip, .rdbg-g2-cat, .rdbg-g2-opt, .rdbg-explore-quick-filters button, .rdbg-guide-filters button):hover { background: var(--primary-08) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-chip, .rdbg-g2-chip, .rdbg-g2-cat, .rdbg-g2-opt, .rdbg-explore-quick-filters button, .rdbg-guide-filters button):is(.is-active, .is-on, [aria-pressed="true"], [aria-checked="true"], [aria-selected="true"]) {
	background: var(--color-secondary) !important;
	border-color: transparent !important;
	color: var(--color-accent) !important;
	font-weight: 700 !important;
}
/* DS Badge: pill 26, eyebrow type. */
#rdbg-guidebook.rdbg-app :is(.rdbg-tag, .rdbg-status, .rdbg-badge, .rdbg-g2-tag, .rdbg-g2-status) {
	align-items: center;
	background: var(--surface-card) !important;
	border: 1px solid var(--border-hairline) !important;
	border-radius: 999px !important;
	color: var(--color-secondary) !important;
	display: inline-flex;
	font-family: var(--font-body) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	gap: 6px;
	letter-spacing: .16em !important;
	line-height: 1 !important;
	min-height: 26px;
	padding: 0 12px !important;
	text-transform: uppercase !important;
	white-space: nowrap;
}
#rdbg-guidebook.rdbg-app :is(.rdbg-tag, .rdbg-status, .rdbg-badge, .rdbg-g2-tag, .rdbg-g2-status) svg { height: 13px !important; width: 13px !important; }
#rdbg-guidebook.rdbg-app .rdbg-status::before { display: none !important; }
/* primary tone: positive / available */
#rdbg-guidebook.rdbg-app :is(.rdbg-tag.is-ok, .rdbg-tag.is-success, .rdbg-status--available, .rdbg-status--active, .rdbg-status--confirmed, .rdbg-status--open, .rdbg-status--approved, .rdbg-status--completed, .rdbg-g2-tag.is-ok, .rdbg-g2-status.is-open, .rdbg-g2-status.is-always, .rdbg-g2-status.is-ok, .rdbg-g2-tag.is-accent) {
	background: var(--color-primary) !important;
	border-color: transparent !important;
	color: var(--color-accent) !important;
}
/* alert tone */
#rdbg-guidebook.rdbg-app :is(.rdbg-tag.is-error, .rdbg-tag.is-danger, .rdbg-status--failed, .rdbg-status--rejected, .rdbg-status--error, .rdbg-g2-status.is-closed, .rdbg-g2-tag.is-error) {
	background: var(--color-highlight-red) !important;
	border-color: transparent !important;
	color: var(--color-accent) !important;
}
/* muted neutral */
#rdbg-guidebook.rdbg-app :is(.rdbg-tag.is-muted, .rdbg-status--unavailable, .rdbg-status--closed, .rdbg-status--expired, .rdbg-g2-tag.is-muted, .rdbg-g2-tag.is-neutral, .rdbg-g2-status.is-muted, .rdbg-g2-status.is-unknown) {
	background: transparent !important;
	border-color: var(--border-hairline) !important;
	color: var(--color-text-secondary) !important;
}
/* "Accesso · Disponibile" line in the Home access card stays a badge. */
#rdbg-guidebook.rdbg-app .rdbg-home-access > header .rdbg-status,
#rdbg-guidebook.rdbg-app .rdbg-home-access > .rdbg-status { align-self: flex-start; border-radius: 999px !important; font-size: 12px !important; letter-spacing: .16em !important; padding: 0 12px !important; text-transform: uppercase !important; }

/* ---------- Cards (DS Card: warm = crema, no border; plain = panna + hairline; radius 4, no resting shadow) ---------- */
#rdbg-guidebook.rdbg-app :is(.rdbg-card, .rdbg-feature-card, .rdbg-guide-card, .rdbg-window-card, .rdbg-contact-card, .rdbg-link-state__card, .rdbg-editorial-card) {
	background: var(--surface-card) !important;
	border: 1px solid transparent !important;
	border-radius: var(--radius-card) !important;
	box-shadow: none !important;
	color: var(--color-text);
}
#rdbg-guidebook.rdbg-app :is(.rdbg-card, .rdbg-feature-card) :is(h2, h3) { color: var(--color-secondary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-card h2 { font-size: var(--text-h4) !important; }
#rdbg-guidebook.rdbg-app .rdbg-card h3 { font-size: var(--text-h4) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-editorial-card, .rdbg-guide-card, .rdbg-service-card, .rdbg-xcard, .rdbg-g2-card) { transition: transform 220ms var(--ease-standard), box-shadow 220ms var(--ease-standard); }
#rdbg-guidebook.rdbg-app :is(.rdbg-editorial-card, .rdbg-guide-card, .rdbg-service-card, .rdbg-xcard, .rdbg-g2-card):hover { box-shadow: var(--shadow-card) !important; transform: translateY(-2px); }
#rdbg-guidebook.rdbg-app .rdbg-feature-card__icon {
	border: 1px solid var(--border-quiet) !important;
	color: var(--color-primary) !important;
}

/* ---------- Photos: containers clip, image covers, torn bottom edge, archival grade ---------- */
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media, .rdbg-editorial-card__media, .rdbg-guide-card__media, .rdbg-home-stay-card figure, .rdbg-post__review figure, .rdbg-xhero, .rdbg-stay-photo, .rdbg-detail-hero) {
	background: var(--surface-card) !important;
	border: 0 !important;
	border-radius: 0 !important;
	display: block !important;
	margin: 0;
	overflow: hidden !important;
	position: relative !important;
}
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media, .rdbg-editorial-card__media, .rdbg-guide-card__media, .rdbg-home-stay-card figure, .rdbg-post__review figure, .rdbg-xhero, .rdbg-stay-photo, .rdbg-detail-hero) > img {
	display: block;
	filter: sepia(.12) saturate(.94) contrast(1.03) brightness(1.01);
	height: 100% !important;
	inset: 0;
	max-width: none !important;
	object-fit: cover;
	position: absolute !important;
	transition: transform 420ms cubic-bezier(.16, .84, .44, 1), opacity 220ms var(--ease-standard);
	width: 100% !important;
}
/* Placeholder: crema with an inset quiet frame, icon in rosa. */
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media, .rdbg-editorial-card__media):not(:has(img)) { align-items: center; color: color-mix(in srgb, var(--color-primary) 70%, var(--color-secondary)); display: flex !important; justify-content: center; }
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media, .rdbg-editorial-card__media):not(:has(img))::after { border: 1px solid var(--border-quiet); content: ""; inset: 8px; position: absolute; }
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media) > svg { height: 28px; stroke-width: 1.5; width: 28px; }
/* Torn bottom edge (DS --torn-b), photos only. */
#rdbg-guidebook.rdbg-app :is(.rdbg-service-card__media, .rdbg-editorial-card__media, .rdbg-guide-card__media, .rdbg-home-stay-card figure):has(img) { -webkit-mask: var(--torn-b); mask: var(--torn-b); }
#rdbg-guidebook.rdbg-app :is(.rdbg-stay-photo, .rdbg-post__review figure):has(img) { -webkit-mask: var(--torn-tb); mask: var(--torn-tb); }
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard, .rdbg-service-card, .rdbg-g2-card):hover :is(.rdbg-xcard__media, .rdbg-service-card__media, .rdbg-g2-card__media) > img { transform: scale(1.04); }
#rdbg-guidebook.rdbg-app .rdbg-plate { border: 0 !important; border-radius: 0 !important; outline: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-plate img { filter: sepia(.12) saturate(.94) contrast(1.03) brightness(1.01) !important; }
#rdbg-guidebook.rdbg-app .rdbg-home-photo { -webkit-mask: var(--torn-b); border: 0 !important; border-radius: 0 !important; box-shadow: none !important; mask: var(--torn-b); outline: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-home-photo img, #rdbg-guidebook.rdbg-app .rdbg-home-plate img { border-radius: 0 !important; filter: sepia(.12) saturate(.94) contrast(1.03) brightness(1.01) !important; }

/* ---------- Esperienze / I nostri consigli (DS ExperienceCard) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-xgrid { gap: 24px !important; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)) !important; margin-top: 24px !important; max-width: 1240px !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard {
	background: var(--surface-raised) !important;
	border: 1px solid var(--border-hairline) !important;
	border-radius: var(--radius-card) !important;
	display: flex !important;
	flex-direction: column;
	overflow: hidden;
	padding: 0 !important;
	position: relative;
}
#rdbg-guidebook.rdbg-app .rdbg-xcard__media,
#rdbg-guidebook.rdbg-app .rdbg-xcard--tip .rdbg-xcard__media { aspect-ratio: 1 / 1; flex: none; height: auto !important; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__body,
#rdbg-guidebook.rdbg-app .rdbg-xcard--tip .rdbg-xcard__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 20px 24px 24px !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__meta { color: var(--color-primary) !important; font-family: var(--font-body); font-size: var(--text-eyebrow) !important; font-weight: 700; letter-spacing: .2em; margin: 0 !important; opacity: 1 !important; text-transform: uppercase; }
#rdbg-guidebook.rdbg-app .rdbg-xcard h3 { font-size: var(--text-h4) !important; line-height: .96 !important; margin: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__link { color: var(--color-secondary) !important; font-family: var(--font-heading) !important; font-size: inherit !important; font-weight: 500 !important; line-height: inherit !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__link:focus-visible { outline: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard:has(.rdbg-xcard__link:focus-visible) { outline: 2px solid var(--color-primary); outline-offset: 2px; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__desc { color: var(--color-text); font-size: var(--text-body-sm); line-height: 1.33; margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__foot { align-items: center; border-top: 1px solid var(--border-hairline); display: flex; gap: 12px; justify-content: space-between; margin-top: auto; padding-top: 12px; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__price { color: var(--color-text) !important; font-family: var(--font-body) !important; font-size: var(--text-body) !important; margin: 0 !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__price strong { font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__price span { color: var(--color-text-secondary); font-size: var(--text-caption); }
#rdbg-guidebook.rdbg-app .rdbg-xcard__cta { pointer-events: none; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__actions { flex-wrap: wrap; gap: 16px !important; margin-top: auto !important; padding-top: 4px; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__actions .rdbg-button { flex: 0 0 auto !important; }
#rdbg-guidebook.rdbg-app .rdbg-xcard__actions .rdbg-text-button { align-self: center; }
#rdbg-guidebook.rdbg-app .rdbg-chips { gap: 8px !important; margin: 0 0 8px !important; }
#rdbg-guidebook.rdbg-app .rdbg-xhero { aspect-ratio: 16 / 9; border-radius: 0 !important; height: auto !important; max-height: 420px; }
#rdbg-guidebook.rdbg-app .rdbg-xhero figcaption { background: linear-gradient(to bottom, transparent 8%, color-mix(in srgb, var(--color-secondary) 62%, transparent) 60%, var(--color-secondary)) !important; color: var(--color-accent) !important; font-family: var(--font-body) !important; font-size: var(--text-eyebrow) !important; font-weight: 700 !important; letter-spacing: .2em !important; padding: 48px 24px 28px !important; }

/* ---------- Servizi extra (07a–07c) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-screen[data-screen="extras"] .rdbg-service-grid { gap: 24px !important; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)) !important; max-width: 1240px !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card {
	background: var(--surface-raised) !important;
	border: 1px solid var(--border-hairline) !important;
	border-radius: var(--radius-card) !important;
	overflow: hidden;
}
#rdbg-guidebook.rdbg-app .rdbg-service-card__media { aspect-ratio: 16 / 10; height: auto !important; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__body { gap: 10px; padding: 20px 24px 24px !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card h3 { font-size: var(--text-h4) !important; margin: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__body > p:not(.rdbg-eyebrow) { color: var(--color-text) !important; font-size: var(--text-body-sm) !important; margin: 0 !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__foot { border-top: 1px solid var(--border-hairline) !important; margin-top: auto !important; padding-top: 12px !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__foot strong { color: var(--color-text); font-family: var(--font-body) !important; font-size: var(--text-body) !important; font-weight: 700 !important; }
#rdbg-guidebook.rdbg-app .rdbg-request {
	align-items: center;
	background: var(--surface-card) !important;
	border: 1px solid var(--border-quiet) !important;
	border-radius: var(--radius-control) !important;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin-bottom: 24px;
	padding: 14px 16px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-request p { color: var(--color-text); flex: 1 1 240px; font-size: var(--text-body-sm); margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-request-list { margin: 0 0 28px; }
#rdbg-guidebook.rdbg-app .rdbg-request-row { border-bottom: 1px solid var(--border-hairline) !important; gap: 12px; padding: 12px 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-request-row strong { color: var(--color-secondary); font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-request-row small { color: var(--color-text-secondary); display: block; }

/* ---------- Dialogs (DS Dialog: brown scrim, panna panel, radius 4, overlay shadow) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-modal__backdrop,
#rdbg-guidebook.rdbg-app button.rdbg-modal__backdrop { background: var(--surface-scrim) !important; }
#rdbg-guidebook.rdbg-app .rdbg-content-dialog::backdrop { background: color-mix(in srgb, #594545 62%, transparent); }
#rdbg-guidebook.rdbg-app :is(.rdbg-modal__dialog, .rdbg-content-dialog) {
	background: var(--surface-raised) !important;
	border: 0 !important;
	border-radius: var(--radius-card) !important;
	box-shadow: var(--shadow-overlay) !important;
	color: var(--color-text) !important;
	font-family: var(--font-body);
	font-size: var(--text-body);
}
#rdbg-guidebook.rdbg-app .rdbg-modal__dialog > header,
#rdbg-guidebook.rdbg-app .rdbg-service-modal header { border-bottom: 0 !important; padding-bottom: 0 !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-modal__dialog, .rdbg-content-dialog) h2 { font-size: var(--text-h3) !important; margin-top: 6px !important; }
#rdbg-guidebook.rdbg-app .rdbg-modal__dialog .rdbg-eyebrow { display: block; }
#rdbg-guidebook.rdbg-app .rdbg-content-dialog .rdbg-detail-close { position: sticky; top: 0; z-index: 2; }
/* Richiedi servizio (07b) */
#rdbg-guidebook.rdbg-app .rdbg-service-modal { padding: 24px !important; width: min(440px, 100%) !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal header { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal h2 { font-size: var(--text-h3) !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal .rdbg-modal__content { display: grid; gap: 16px; padding-top: 16px; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__date { color: var(--color-text-secondary); font-size: var(--text-body-sm) !important; margin: 0; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__total { border-top: 1px solid var(--border-quiet) !important; margin-top: 0 !important; padding-top: 16px !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__total span { color: var(--color-text) !important; font-size: var(--text-body) !important; font-weight: 700; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__total strong { color: var(--color-secondary); font-family: var(--font-heading) !important; font-size: var(--text-h3) !important; font-weight: 500 !important; line-height: 1; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal [data-service-confirm] { min-height: 58px !important; padding: 0 32px !important; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__note { color: var(--color-text-secondary); font-size: var(--text-caption) !important; margin: 0; opacity: 1 !important; text-align: center; }
/* Richiesta ricevuta (07c), in the same dialog */
#rdbg-guidebook.rdbg-app .rdbg-received { align-items: center; display: flex; flex-direction: column; gap: 10px; padding: 12px 0 0 !important; text-align: center; width: 100% !important; }
#rdbg-guidebook.rdbg-app .rdbg-modal__dialog.rdbg-received { padding: 32px 24px 24px !important; width: min(400px, 100%) !important; }
#rdbg-guidebook.rdbg-app .rdbg-received:focus { outline: 0; }
#rdbg-guidebook.rdbg-app .rdbg-received__ring { background: var(--primary-16) !important; border: 1px solid var(--border-quiet); color: var(--color-secondary) !important; height: 56px !important; width: 56px !important; }
#rdbg-guidebook.rdbg-app .rdbg-received__ring svg { height: 26px !important; stroke-width: 1.5 !important; width: 26px !important; }
#rdbg-guidebook.rdbg-app .rdbg-received h2 { font-size: var(--text-h3) !important; margin: 6px 0 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-received p { color: var(--color-text-secondary) !important; font-size: var(--text-body-sm) !important; margin: 0 !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-received .rdbg-received__what { color: var(--color-text) !important; }
#rdbg-guidebook.rdbg-app .rdbg-received__text { max-width: 32ch; }
#rdbg-guidebook.rdbg-app .rdbg-received .rdbg-button { margin-top: 12px !important; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-received .rdbg-received__text + .rdbg-button { margin-top: 16px !important; }

/* ---------- Forms (DS Input / Select) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-field > span,
#rdbg-guidebook.rdbg-app .rdbg-field > label,
#rdbg-guidebook.rdbg-app label.rdbg-label {
	color: var(--color-secondary) !important;
	display: block;
	font-family: var(--font-body) !important;
	font-size: var(--text-eyebrow) !important;
	font-weight: 700 !important;
	letter-spacing: .2em !important;
	margin-bottom: 8px;
	text-transform: uppercase !important;
}
#rdbg-guidebook.rdbg-app :is(input[type="text"], input[type="email"], input[type="tel"], input[type="search"], input[type="number"], input[type="date"], input[type="time"], select, textarea):not(.rdbg-g2-search__input--bare) {
	background-color: var(--color-accent) !important;
	border: 1px solid var(--border-hairline) !important;
	border-radius: var(--radius-control) !important;
	box-shadow: none !important;
	color: var(--color-text) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body) !important;
	min-height: 48px;
	transition: var(--transition-control);
}
#rdbg-guidebook.rdbg-app select:not([multiple]) {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23594545' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") !important;
	background-position: right 14px center !important;
	background-repeat: no-repeat !important;
	padding: 0 40px 0 14px !important;
}
#rdbg-guidebook.rdbg-app :is(input, select, textarea):focus { border-color: var(--color-secondary) !important; outline: 0; }
#rdbg-guidebook.rdbg-app :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--color-secondary); }

/* ---------- Feedback: inline message, empty state, toast ---------- */
#rdbg-guidebook.rdbg-app .rdbg-inline-message {
	background: var(--surface-card);
	border: 1px solid var(--border-hairline);
	border-radius: var(--radius-control);
	color: var(--color-text);
	font-size: var(--text-body-sm);
	line-height: 1.33;
	margin: 0;
	padding: 14px 16px;
}
#rdbg-guidebook.rdbg-app .rdbg-inline-message--error { background: var(--color-accent); border-color: var(--color-highlight-red); color: var(--color-highlight-red); }
#rdbg-guidebook.rdbg-app .rdbg-inline-message[hidden] { display: none; }
#rdbg-guidebook.rdbg-app .rdbg-state {
	background: var(--surface-card) !important;
	border: 0 !important;
	border-radius: var(--radius-card) !important;
	box-shadow: none !important;
	gap: 14px;
	padding: 48px 24px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-state > svg { color: var(--color-primary) !important; height: 28px !important; margin: 0 !important; stroke-width: 1.5; width: 28px !important; }
#rdbg-guidebook.rdbg-app .rdbg-state :is(h2, h3) { font-size: var(--text-h4) !important; margin: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-state p { color: var(--color-text-secondary) !important; font-size: var(--text-body-sm) !important; margin: 0 !important; max-width: 340px !important; }
#rdbg-guidebook.rdbg-app .rdbg-toast,
#rdbg-guidebook.rdbg-app .rdbg-g2-toast {
	background: var(--surface-inverse) !important;
	border: 0 !important;
	border-radius: var(--radius-control) !important;
	box-shadow: var(--shadow-card) !important;
	color: var(--color-accent) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body-sm) !important;
	line-height: 1.3;
	padding: 12px 16px !important;
}

/* ---------- Tabs (DS Tabs: hairline baseline, 2px brown indicator, Saira uppercase) ---------- */
#rdbg-guidebook.rdbg-app :is(.rdbg-guide-tabs, .rdbg-g2-tabs) {
	border-bottom: 1px solid var(--border-hairline) !important;
	gap: 24px !important;
}
#rdbg-guidebook.rdbg-app :is(.rdbg-guide-tabs, .rdbg-g2-tabs) button {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	color: var(--color-text-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body-sm) !important;
	font-weight: 400 !important;
	letter-spacing: .04em !important;
	margin: 0 0 -1px !important;
	min-height: 44px;
	padding: 0 0 10px !important;
	text-transform: uppercase !important;
	transition: var(--transition-control);
}
#rdbg-guidebook.rdbg-app :is(.rdbg-guide-tabs, .rdbg-g2-tabs) button:hover { color: var(--color-primary) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-guide-tabs, .rdbg-g2-tabs) button:is(.is-active, .is-on, [aria-selected="true"]) {
	border-bottom-color: var(--color-secondary) !important;
	color: var(--color-secondary) !important;
	font-weight: 700 !important;
}

/* ---------- Accordions (Guida della casa, Assistenza) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-accordion__item > button {
	color: var(--color-secondary) !important;
	font-family: var(--font-heading) !important;
	font-size: var(--text-h5) !important;
	font-weight: 500 !important;
	letter-spacing: .005em;
	line-height: 1.1 !important;
	min-height: 56px;
}
#rdbg-guidebook.rdbg-app .rdbg-accordion__item > button > svg:first-child { color: var(--color-primary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-accordion__panel { border-top: 1px solid var(--border-hairline) !important; color: var(--color-text) !important; font-size: var(--text-body-sm); }

/* ---------- Skeleton ---------- */
#rdbg-guidebook.rdbg-app .rdbg-skel { border-radius: var(--radius-control); }

/* ---------- Mobile ---------- */
@media (max-width: 760px) {
	#rdbg-guidebook.rdbg-app .rdbg-modal__dialog { border-radius: var(--radius-card) var(--radius-card) 0 0 !important; }
	#rdbg-guidebook.rdbg-app .rdbg-service-modal { width: 100% !important; }
	#rdbg-guidebook.rdbg-app :is(.rdbg-guide-tabs, .rdbg-g2-tabs) { gap: 20px !important; }
	#rdbg-guidebook.rdbg-app .rdbg-xgrid, #rdbg-guidebook.rdbg-app .rdbg-screen[data-screen="extras"] .rdbg-service-grid { gap: 16px !important; }
	#rdbg-guidebook.rdbg-app .rdbg-xcard__body { padding: 16px 20px 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
	#rdbg-guidebook.rdbg-app :is(.rdbg-editorial-card, .rdbg-guide-card, .rdbg-service-card, .rdbg-xcard, .rdbg-g2-card):hover { transform: none; }
	#rdbg-guidebook.rdbg-app :is(.rdbg-xcard, .rdbg-service-card, .rdbg-g2-card):hover img { transform: none !important; }
}

/* ---------- Inverse surfaces (Guest Card, photo heroes): panna text on marrone ---------- */
#rdbg-guidebook.rdbg-app :is(.rdbg-gcard, .rdbg-digital-card) {
	background-color: var(--rdbg-card-bg, var(--color-secondary)) !important;
	background-image: var(--rdbg-card-image, url("../images/carta-fibre.png")) !important;
	background-blend-mode: multiply;
	background-size: var(--rdbg-card-image-size, 500px 300px);
	border-radius: var(--radius-card) !important;
	box-shadow: var(--shadow-card) !important;
	color: var(--rdbg-card-ink, var(--color-accent)) !important;
}
#rdbg-guidebook.rdbg-app .rdbg-gcard__kicker { color: var(--rdbg-card-accent, var(--color-surface-warm)) !important; font-family: var(--font-body) !important; font-size: var(--text-eyebrow) !important; font-weight: 700 !important; letter-spacing: .2em !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard__name { color: var(--rdbg-card-ink, var(--color-accent)) !important; font-size: var(--text-h3) !important; margin-top: 12px !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard__number { font-family: var(--font-body); font-size: 14px !important; letter-spacing: .2em !important; opacity: .8; }
#rdbg-guidebook.rdbg-app .rdbg-gcard__qr { background: var(--color-accent) !important; border-radius: var(--radius-control) !important; }
#rdbg-guidebook.rdbg-app .rdbg-home-hero--image .rdbg-home-hero__copy :is(h1, h2, p) { color: var(--color-accent) !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard-perks li { border-top-color: var(--border-hairline) !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard-perks li svg { color: var(--color-primary) !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard-perks li span { color: var(--color-text); font-size: var(--text-body) !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard-perks li small { color: var(--color-text-secondary); opacity: 1 !important; }
#rdbg-guidebook.rdbg-app .rdbg-gcard-note { background: var(--surface-card) !important; border: 1px solid var(--border-hairline) !important; border-radius: var(--radius-control) !important; font-size: var(--text-body-sm) !important; }

/* ---------- Home details ---------- */
#rdbg-guidebook.rdbg-app .rdbg-home-mini__link,
#rdbg-guidebook.rdbg-app .rdbg-home-stay-card .rdbg-text-button,
#rdbg-guidebook.rdbg-app .rdbg-guide-card .rdbg-text-button { align-self: flex-start; margin-top: 16px !important; }
#rdbg-guidebook.rdbg-app .rdbg-home-mini__title { color: var(--color-secondary) !important; font-family: var(--font-heading) !important; font-size: var(--text-h4) !important; font-weight: 500 !important; line-height: .96 !important; }
#rdbg-guidebook.rdbg-app .rdbg-home-mini__text { color: var(--color-text) !important; font-size: var(--text-body-sm) !important; opacity: 1 !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-quick-actions--cards, .rdbg-home-tiles) > * {
	background: var(--surface-raised) !important;
	border: 1px solid var(--border-hairline) !important;
	border-radius: var(--radius-card) !important;
	color: var(--color-secondary) !important;
	font-family: var(--font-body) !important;
	font-size: var(--text-body-sm) !important;
	font-weight: 700 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: var(--transition-control), transform 220ms var(--ease-standard), box-shadow 220ms var(--ease-standard);
}
#rdbg-guidebook.rdbg-app :is(.rdbg-quick-actions--cards, .rdbg-home-tiles) > *:hover { box-shadow: var(--shadow-card) !important; transform: translateY(-2px); }
#rdbg-guidebook.rdbg-app :is(.rdbg-quick-actions--cards, .rdbg-home-tiles) > * svg { color: var(--color-primary); }
#rdbg-guidebook.rdbg-app .rdbg-summary-bar { border-color: var(--border-hairline) !important; font-size: var(--text-body-sm) !important; }
#rdbg-guidebook.rdbg-app .rdbg-summary-bar svg { color: var(--color-primary) !important; }
@media (max-width: 760px) {
	#rdbg-guidebook.rdbg-app :is(.rdbg-quick-actions--cards, .rdbg-home-tiles) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* ---------- La mia guida v2 ---------- */
#rdbg-guidebook.rdbg-app .rdbg-g2-actions > .rdbg-button { flex: 1 1 auto; padding: 0 14px !important; white-space: nowrap; }
#rdbg-guidebook.rdbg-app .rdbg-g2-actions .rdbg-text-button { min-height: 0 !important; padding: 0 0 3px !important; }
#rdbg-guidebook.rdbg-app .rdbg-g2-actions .rdbg-text-button.is-danger { color: var(--color-highlight-red) !important; }
#rdbg-guidebook.rdbg-app .rdbg-g2-card { background: var(--surface-card) !important; border: 1px solid transparent !important; border-radius: var(--radius-card) !important; box-shadow: none !important; }
#rdbg-guidebook.rdbg-app .rdbg-g2-card__media { aspect-ratio: 16 / 9; height: auto !important; }
#rdbg-guidebook.rdbg-app .rdbg-g2-why { background: var(--surface-raised) !important; border: 1px solid var(--border-hairline) !important; border-radius: var(--radius-control) !important; }
#rdbg-guidebook.rdbg-app .rdbg-g2-days button, #rdbg-guidebook.rdbg-app .rdbg-g2-day { border-radius: var(--radius-control) !important; }
#rdbg-guidebook.rdbg-app .rdbg-accordion__item { background: var(--surface-card) !important; border: 1px solid transparent !important; border-radius: var(--radius-card) !important; box-shadow: none !important; }
#rdbg-guidebook.rdbg-app .rdbg-house-wifi, #rdbg-guidebook.rdbg-app .rdbg-house-wifi .rdbg-button { justify-content: space-between; }
/* 4.0.8: the photos of the plates (Esperienze, Consigli, Home, Soggiorno) get their torn edge from the DS classes rb-torn-all … rb-torn-all-6 on the <img> (RDBG_Photo). */
#rdbg-guidebook.rdbg-app :is(.rdbg-pre-head, .rdbg-post__main > header, .rdbg-link-state__card) h1 { font-size: var(--text-h1) !important; line-height: .9 !important; }

/* ---------- Content detail sheet ---------- */
#rdbg-guidebook.rdbg-app .rdbg-content-dialog .rdbg-detail-close {
	background: var(--surface-raised) !important;
	display: flex;
	font-size: 17px !important;
	margin: 0 0 12px auto;
	min-height: 38px !important;
	padding: 0 16px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-content-dialog h2 { font-size: var(--text-h2) !important; margin: 0 0 16px !important; }
#rdbg-guidebook.rdbg-app .rdbg-content-dialog h3 { font-size: var(--text-h4) !important; margin: 32px 0 12px !important; }
#rdbg-guidebook.rdbg-app .rdbg-content-dialog :is(dt, th) { color: var(--color-text-secondary); font-weight: 400; }
#rdbg-guidebook.rdbg-app .rdbg-content-dialog img { filter: sepia(.12) saturate(.94) contrast(1.03) brightness(1.01); }
#rdbg-guidebook.rdbg-app img.rdbg-detail-hero { aspect-ratio: 16 / 9; height: auto !important; object-fit: cover; width: 100%; }

/* ---------- 4.0.4 Check-in online (checkin.com) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta {
	align-items: center;
	border: 1px solid var(--border-quiet) !important;
	display: grid;
	gap: 16px 24px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	margin: 0 0 24px;
	padding: 20px 24px !important;
}
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__icon {
	align-items: center;
	border: 1px solid var(--border-quiet);
	border-radius: 50%;
	color: var(--color-primary);
	display: inline-flex;
	height: 48px;
	justify-content: center;
	width: 48px;
}
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__icon svg { height: 22px; width: 22px; }
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta h2 { font-size: var(--text-h4) !important; margin: 4px 0 6px !important; }
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta p:not(.rdbg-eyebrow) { color: var(--color-text); font-size: var(--text-body-sm); margin: 0; max-width: 52ch; }
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__action { align-items: flex-end; display: flex; flex-direction: column; gap: 6px; }
#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__action small { color: var(--color-text-secondary); font-size: var(--text-caption); }
#rdbg-guidebook.rdbg-app .rdbg-checkin-link svg { height: 18px; width: 18px; }
#rdbg-guidebook.rdbg-app .rdbg-door .rdbg-checkin-link { margin: 8px 0 0; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-pre-list li > a { align-items: center; color: var(--color-secondary) !important; display: flex; gap: 12px; padding: 12px 0; text-decoration: none; }
#rdbg-guidebook.rdbg-app .rdbg-pre-list li > a > svg:last-child { color: var(--color-primary); height: 16px; margin-left: auto; width: 16px; }
#rdbg-guidebook.rdbg-app .rdbg-pre-list li > a .rdbg-pre-list__label { font-weight: 700; text-decoration: underline; text-decoration-color: var(--border-quiet); text-underline-offset: 4px; }
@media (max-width: 760px) {
	#rdbg-guidebook.rdbg-app .rdbg-checkin-cta { grid-template-columns: auto minmax(0, 1fr); padding: 18px !important; }
	#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__action { align-items: stretch; grid-column: 1 / -1; }
	#rdbg-guidebook.rdbg-app .rdbg-checkin-cta__action .rdbg-button { width: 100%; }
}

/* ---------- 4.0.5 Language dropdown ---------- */
#rdbg-guidebook.rdbg-app .rdbg-lang { display: inline-block; position: relative; }
#rdbg-guidebook.rdbg-app .rdbg-lang > summary,
#rdbg-guidebook.rdbg-app .rdbg-lang__current {
	align-items: center;
	border: 1px solid var(--border-quiet);
	border-radius: var(--radius-control);
	color: var(--color-secondary);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 700;
	gap: 6px;
	letter-spacing: .12em;
	list-style: none;
	min-height: 40px;
	padding: 0 10px;
	transition: var(--transition-control);
	user-select: none;
}
#rdbg-guidebook.rdbg-app .rdbg-lang > summary::-webkit-details-marker { display: none; }
#rdbg-guidebook.rdbg-app .rdbg-lang > summary:hover,
#rdbg-guidebook.rdbg-app .rdbg-lang[open] > summary { background: var(--primary-08); border-color: var(--color-secondary); }
#rdbg-guidebook.rdbg-app .rdbg-lang svg { height: 16px; width: 16px; }
#rdbg-guidebook.rdbg-app .rdbg-lang__chevron { transition: transform 220ms var(--ease-standard); }
#rdbg-guidebook.rdbg-app .rdbg-lang[open] .rdbg-lang__chevron { transform: rotate(180deg); }
#rdbg-guidebook.rdbg-app .rdbg-lang__menu {
	background: var(--surface-raised);
	border: 1px solid var(--border-hairline);
	border-radius: var(--radius-card);
	box-shadow: var(--shadow-overlay);
	list-style: none;
	margin: 0;
	min-width: 200px;
	padding: 6px;
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	z-index: 1000;
}
#rdbg-guidebook.rdbg-app .rdbg-lang--up .rdbg-lang__menu { bottom: calc(100% + 6px); left: 0; right: auto; top: auto; }
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a {
	align-items: center;
	border-radius: var(--radius-control);
	color: var(--color-text) !important;
	display: flex;
	font-family: var(--font-body);
	font-size: var(--text-body-sm);
	gap: 10px;
	min-height: 44px;
	padding: 0 12px;
	text-decoration: none !important;
}
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a:hover,
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a:focus-visible { background: var(--primary-08); }
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a small { color: var(--color-text-secondary); font-size: 12px; font-weight: 700; letter-spacing: .12em; margin-left: auto; }
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a.is-active { color: var(--color-secondary) !important; font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-lang__menu a.is-active svg { color: var(--color-secondary); }
#rdbg-guidebook.rdbg-app .rdbg-mobile-header__actions .rdbg-lang > summary { min-height: 40px; }

/* =========================================================================
   4.0.7
   ========================================================================= */

/* ---------- Opening states: Success / Warning / Error ----------
   Light tints for "Aperto", "Chiude tra N min" and "Chiuso" (the DS palette has no green or orange: these three
   tints exist only for this state). Text/background contrast is above 7:1 in every state. */
#rdbg-guidebook.rdbg-app {
	--state-success-bg: #E1EDDB; --state-success-fg: #26421F; --state-success-line: #B3CCA9;
	--state-warning-bg: #FDE6C8; --state-warning-fg: #6E3B00; --state-warning-line: #EFBB80;
	--state-error-bg: #F9DADA; --state-error-fg: #8A0000; --state-error-line: #E4A5A5;
}
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-tag, .rdbg-g2-status, .rdbg-status).is-success { background: var(--state-success-bg) !important; border-color: var(--state-success-line) !important; color: var(--state-success-fg) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-tag, .rdbg-g2-status, .rdbg-status).is-warning { background: var(--state-warning-bg) !important; border-color: var(--state-warning-line) !important; color: var(--state-warning-fg) !important; }
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-tag, .rdbg-g2-status, .rdbg-status).is-error { background: var(--state-error-bg) !important; border-color: var(--state-error-line) !important; color: var(--state-error-fg) !important; }
/* The text may be long ("Chiuso · apre domani alle 12:00"): it wraps instead of running out of the card. */
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-status, .rdbg-editorial-card__meta .rdbg-status, .rdbg-detail-status .rdbg-status).is-success,
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-status, .rdbg-editorial-card__meta .rdbg-status, .rdbg-detail-status .rdbg-status).is-warning,
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-status, .rdbg-editorial-card__meta .rdbg-status, .rdbg-detail-status .rdbg-status).is-error,
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-status, .rdbg-editorial-card__meta .rdbg-status, .rdbg-detail-status .rdbg-status).is-muted {
	align-items: flex-start;
	border-radius: 16px !important;
	line-height: 1.3 !important;
	max-width: 100%;
	padding: 6px 12px !important;
	white-space: normal;
}
#rdbg-guidebook.rdbg-app :is(.rdbg-g2-status, .rdbg-editorial-card__meta .rdbg-status, .rdbg-detail-status .rdbg-status) svg { flex: none; margin-top: 1px; }
#rdbg-guidebook.rdbg-app .rdbg-g2-status { margin: 14px 0 0; }
#rdbg-guidebook.rdbg-app .rdbg-editorial-card__meta { flex-wrap: wrap; }
#rdbg-guidebook.rdbg-app .rdbg-detail-status { margin: 12px 0 0; }
#rdbg-guidebook.rdbg-app .rdbg-g2-dbody .rdbg-g2-status { font-size: 12px !important; padding: 8px 14px !important; }

/* ---------- Weekly hours (modals): Monday → Sunday, one row per day, split hours on the same row ---------- */
#rdbg-guidebook.rdbg-app .rdbg-hours { margin: 26px 0 0; }
#rdbg-guidebook.rdbg-app .rdbg-hours > h3 { margin-bottom: 8px !important; }
#rdbg-guidebook.rdbg-app .rdbg-hours dl { border-top: 1px solid var(--border-hairline); margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-hours dl > div { align-items: baseline; border-bottom: 1px solid var(--border-hairline); display: flex; gap: 14px; justify-content: space-between; padding: 9px 8px; }
#rdbg-guidebook.rdbg-app .rdbg-hours dt { align-items: baseline; color: var(--color-text) !important; display: flex; flex: none; font-family: var(--font-body); font-size: var(--text-body-sm); gap: 8px; margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-hours dt small { color: var(--color-primary); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
#rdbg-guidebook.rdbg-app .rdbg-hours dd { align-items: baseline; display: flex; flex-wrap: nowrap; font-size: var(--text-body-sm); font-variant-numeric: tabular-nums; gap: 0 8px; justify-content: flex-end; margin: 0; text-align: right; }
#rdbg-guidebook.rdbg-app .rdbg-hours dd span { white-space: nowrap; }
#rdbg-guidebook.rdbg-app .rdbg-hours dd i { color: var(--color-text-secondary); font-style: normal; }
#rdbg-guidebook.rdbg-app .rdbg-hours .is-closed dd { color: var(--color-text-secondary); }
#rdbg-guidebook.rdbg-app .rdbg-hours .is-today { background: var(--primary-08); }
#rdbg-guidebook.rdbg-app .rdbg-hours .is-today :is(dt, dd) { color: var(--color-secondary) !important; font-weight: 700; }
#rdbg-guidebook.rdbg-app .rdbg-hours__notes { color: var(--color-text-secondary); font-size: var(--text-caption); margin: 12px 0 0; padding-left: 18px; }
#rdbg-guidebook.rdbg-app .rdbg-hours__notes li { margin: 0 0 4px; }
@media (max-width: 340px) { #rdbg-guidebook.rdbg-app .rdbg-hours dd { flex-wrap: wrap; } }

/* ---------- "Aggiorna le preferenze" under the empty tips ---------- */
#rdbg-guidebook.rdbg-app .rdbg-state__action { margin-top: 18px; }

/* ---------- Wi-Fi QR: large enough to be scanned from another device (it was 72 px) ---------- */
#rdbg-guidebook.rdbg-app .rdbg-wifi { max-width: 520px; }
#rdbg-guidebook.rdbg-app .rdbg-wifi-qr { align-items: center; flex-direction: column; gap: 18px; padding: 24px 20px 22px !important; text-align: center; }
#rdbg-guidebook.rdbg-app .rdbg-wifi-qr .rdbg-qr {
	background: #fff;
	border: 1px solid var(--border-hairline);
	border-radius: 4px;
	box-sizing: content-box;
	flex: none;
	height: min(60vw, 264px);
	padding: 24px;
	width: min(60vw, 264px);
}
#rdbg-guidebook.rdbg-app .rdbg-wifi-qr .rdbg-qr :is(canvas, img) { height: 100% !important; width: 100% !important; }
#rdbg-guidebook.rdbg-app .rdbg-wifi-qr p { font-size: var(--text-body-sm); margin: 0; max-width: 32ch; opacity: 1; }
@media (min-width: 901px) {
	#rdbg-guidebook.rdbg-app .rdbg-wifi-qr .rdbg-qr { height: 300px; width: 300px; }
}

/* ---------- 4.0.7 details ---------- */
/* Weekly hours: day and hours stay close on wide dialogs. */
#rdbg-guidebook.rdbg-app .rdbg-hours { max-width: 480px; }
#rdbg-guidebook.rdbg-app .rdbg-detail-status + p { margin-top: 12px; }
/* Pre-arrival Home: the code is shown once the check-in is done (the card is no longer a dashed placeholder). */
#rdbg-guidebook.rdbg-app .rdbg-pre-door.is-ready { border-style: solid !important; gap: 12px; max-width: 460px; opacity: 1; padding: 20px 22px !important; }
#rdbg-guidebook.rdbg-app .rdbg-pre-door.is-ready .rdbg-tag { justify-self: start; }
#rdbg-guidebook.rdbg-app .rdbg-pre-door.is-ready p { opacity: .9; }

/* ============================================================================================
   4.0.8
   ============================================================================================ */
/* Torn photo edges: the DS classes rb-torn-all … rb-torn-all-6. The plugin only supplies a fallback with zero
   specificity (:where): when the site's own CSS defines the classes, that definition is the one used. */
#rdbg-guidebook.rdbg-app {
	--rdbg-torn-all-1: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.011 0.019' numOctaves='5' seed='23' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--rdbg-torn-all-2: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.008 0.023' numOctaves='5' seed='37' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--rdbg-torn-all-3: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.010 0.020' numOctaves='5' seed='52' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--rdbg-torn-all-4: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.012 0.017' numOctaves='5' seed='68' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--rdbg-torn-all-5: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.009 0.024' numOctaves='5' seed='81' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
	--rdbg-torn-all-6: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000' preserveAspectRatio='none'><filter id='t' x='-25%25' y='-25%25' width='150%25' height='150%25'><feTurbulence type='fractalNoise' baseFrequency='0.0105 0.0205' numOctaves='5' seed='94' result='n'/><feDisplacementMap in='SourceGraphic' in2='n' scale='30' xChannelSelector='R' yChannelSelector='G'/></filter><rect x='24' y='24' width='952' height='952' fill='white' filter='url(%23t)'/></svg>") 50%/100% 100% no-repeat;
}
:where(#rdbg-guidebook.rdbg-app .rb-torn-all) { -webkit-mask: var(--torn-all); mask: var(--torn-all); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-1) { -webkit-mask: var(--rdbg-torn-all-1); mask: var(--rdbg-torn-all-1); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-2) { -webkit-mask: var(--rdbg-torn-all-2); mask: var(--rdbg-torn-all-2); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-3) { -webkit-mask: var(--rdbg-torn-all-3); mask: var(--rdbg-torn-all-3); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-4) { -webkit-mask: var(--rdbg-torn-all-4); mask: var(--rdbg-torn-all-4); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-5) { -webkit-mask: var(--rdbg-torn-all-5); mask: var(--rdbg-torn-all-5); }
:where(#rdbg-guidebook.rdbg-app .rb-torn-all-6) { -webkit-mask: var(--rdbg-torn-all-6); mask: var(--rdbg-torn-all-6); }

/* Filters (Esperienze, Consigli): "display: flex !important" of the cards beat the [hidden] attribute, so the cards
   the filter hides stayed on screen. */
#rdbg-guidebook.rdbg-app :is(.rdbg-xcard, .rdbg-editorial-card, .rdbg-guide-card, .rdbg-service-card)[hidden] { display: none !important; }

/* Come arrivare: card (Home, Il mio soggiorno) — icon and text side by side, the button under the text */
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) { align-items: start; display: grid; gap: 4px 16px; grid-template-columns: auto 1fr; margin: 0 0 22px; max-width: 720px; padding: 18px 20px !important; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) > div { min-width: 0; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) h2 { font-size: var(--text-h4); line-height: .96; margin: 4px 0 6px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) p:not(.rdbg-eyebrow) { font-size: var(--text-body-sm); margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) .rdbg-eyebrow { margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) > .rdbg-button { grid-column: 2; justify-self: start; margin-top: 12px; }
@media (max-width: 640px) {
	#rdbg-guidebook.rdbg-app .rdbg-arrive-card:not(.is-mini) > .rdbg-button { grid-column: 1 / -1; justify-content: center; justify-self: stretch; }
}

/* Come arrivare: page */
#rdbg-guidebook.rdbg-app .rdbg-arrive { display: grid; gap: 22px; max-width: 760px; padding-bottom: 32px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__map { margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__zoom { background: none; border: 0; cursor: zoom-in; display: block; margin: 0; padding: 0; position: relative; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__zoom img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__zoom:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__hint { align-items: center; background: color-mix(in srgb, var(--color-secondary) 84%, transparent); bottom: 18px; color: var(--color-accent); display: inline-flex; font-size: var(--text-eyebrow); font-weight: 700; gap: 8px; letter-spacing: .12em; padding: 7px 12px; position: absolute; right: 18px; text-transform: uppercase; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__hint svg { height: 16px; width: 16px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__map figcaption { font-size: var(--text-caption); margin-top: 12px; opacity: .8; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__actions { display: flex; flex-wrap: wrap; gap: 12px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive__modes { display: grid; gap: 14px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-mode { padding: 18px 20px 20px !important; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-mode > header { align-items: center; display: flex; gap: 14px; margin-bottom: 4px; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-mode h2 { font-size: var(--text-h4); line-height: .96; margin: 0; }
#rdbg-guidebook.rdbg-app .rdbg-arrive-mode p { font-size: var(--text-body-sm); margin: 10px 0 0; }

/* Lightbox (the entrance map) */
#rdbg-guidebook.rdbg-app .rdbg-lightbox { background: transparent; border: 0; box-sizing: border-box; color: #fff; height: 100dvh; inset: 0; margin: 0; max-height: none; max-width: none; overflow: hidden; padding: 0; width: 100vw; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox::backdrop { background: rgb(24 17 17 / .97); }
#rdbg-guidebook.rdbg-app .rdbg-lightbox__stage { align-items: center; box-sizing: border-box; display: grid; height: 100%; justify-items: center; overflow: auto; padding: 64px 14px 14px; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox__stage img { cursor: zoom-in; display: block; height: auto; max-height: calc(100dvh - 78px); max-width: 100%; object-fit: contain; width: auto; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox.is-zoomed .rdbg-lightbox__stage { align-items: start; display: block; justify-items: start; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox.is-zoomed .rdbg-lightbox__stage img { cursor: zoom-out; max-height: none; max-width: none; width: max(190%, 1100px); }
#rdbg-guidebook.rdbg-app .rdbg-lightbox__close { align-items: center; background: var(--color-accent); border: 0; border-radius: 50%; color: var(--color-secondary); cursor: pointer; display: inline-flex; height: 44px; justify-content: center; padding: 0; position: absolute; right: 12px; top: 12px; width: 44px; z-index: 2; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox__close svg { height: 22px; width: 22px; }
#rdbg-guidebook.rdbg-app .rdbg-lightbox__close:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* Accesso: "Come si apre la porta" (keypad photo + instructions) */
#rdbg-guidebook.rdbg-app .rdbg-door__keypad { align-items: center; display: flex; gap: 22px; margin-top: 16px; padding: 18px 20px !important; }
#rdbg-guidebook.rdbg-app .rdbg-door__keypad figure { flex: none; margin: 0; width: clamp(120px, 30vw, 180px); }
#rdbg-guidebook.rdbg-app .rdbg-door__keypad img { aspect-ratio: 9 / 16; display: block; height: auto; object-fit: cover; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-door__keypad h2 { font-size: var(--text-h5); line-height: .96; margin: 0 0 10px; }
#rdbg-guidebook.rdbg-app .rdbg-door__keypad p { font-size: var(--text-body); margin: 0; }
@media (max-width: 480px) {
	#rdbg-guidebook.rdbg-app .rdbg-door__keypad { gap: 16px; padding: 14px 14px !important; }
}
#rdbg-guidebook.rdbg-app .rdbg-arrive__back { margin: 6px 0 0; }

/* ============================================================================================
   4.0.9
   ============================================================================================ */
/* Home hero photo: phones only (the img carries rb-torn-all; the container has no mask), hidden on desktop. */
#rdbg-guidebook.rdbg-app .rdbg-home-plate { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; outline: 0 !important; }
@media (min-width: 901px) {
	#rdbg-guidebook.rdbg-app :is(.rdbg-home-plate, .rdbg-pre-plate) { display: none !important; }
}

/* Extra del Guestbook: card (price with the old price struck through, unit, deadline) and the request form in the modal */
#rdbg-guidebook.rdbg-app .rdbg-service-card__foot { align-items: center; display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__price { align-items: baseline; display: inline-flex; flex-wrap: wrap; gap: 2px 8px; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__price s { font-size: var(--text-body-sm); opacity: .6; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__price small { flex-basis: 100%; font-size: var(--text-caption); opacity: .75; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__hint { align-items: flex-start; color: var(--color-text-secondary) !important; display: flex; font-size: var(--text-caption) !important; gap: 8px; margin: 0 !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__hint svg { flex: none; height: 15px; margin-top: 2px; width: 15px; }
#rdbg-guidebook.rdbg-app .rdbg-service-card__hint.is-closed { color: var(--color-highlight-red) !important; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields { display: grid; gap: 14px; margin: 4px 0 6px; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields[hidden] { display: none; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields .rdbg-field { display: grid; gap: 6px; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields .rdbg-field > span { font-size: var(--text-caption); font-weight: 700; opacity: 1; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields :is(input, select, textarea) { background: var(--surface-raised, #fff); border: 1px solid var(--border-quiet); border-radius: var(--radius-control); box-sizing: border-box; color: inherit; font: inherit; min-height: 44px; padding: 9px 12px; width: 100%; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields textarea { min-height: 88px; resize: vertical; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal__fields :is(input, select, textarea):focus-visible { outline: 2px solid var(--color-primary); outline-offset: 1px; }
#rdbg-guidebook.rdbg-app .rdbg-service-modal { max-height: calc(100dvh - 32px); overflow-y: auto; }
