/* Fondamenta 0.3 — solo ciò che theme.json non esprime. */

/* Font propri, ospitati in locale (nessuna richiesta esterna: GDPR-friendly).
   File variabili: un solo file copre tutti i pesi della famiglia. */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/sora-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Sora';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/sora-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Schede */
.fondamenta-card,
.is-style-card {
	border-radius: var(--wp--custom--radius--medium, 12px);
	box-shadow: var(--wp--custom--shadow--card, 0 8px 30px rgba(22, 33, 61, .10));
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease;
}
.fondamenta-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 40px rgba(22, 33, 61, .16);
}
.fondamenta-card .wp-block-post-featured-image img { display: block; }

/* Testata sticky con ombra leggera */
.fondamenta-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--neutral-100);
}
.admin-bar .fondamenta-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .fondamenta-header { top: 46px; } }

/* Hero: motivo decorativo "blocchi di fondamenta", dietro al testo.
   Solo su schermi larghi: sotto i 1200px il margine attorno al testo
   centrato non basta a ospitarlo senza sovrapporsi ai pulsanti. */
.fondamenta-hero {
	overflow: hidden;
}
@media (min-width: 1201px) {
	.fondamenta-hero::after {
		content: "";
		position: absolute;
		z-index: 0;
		top: -7%;
		right: -4%;
		width: 17%;
		aspect-ratio: 1 / 1;
		background-image: url('../img/motivo-fondamenta.svg');
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
		opacity: .85;
		pointer-events: none;
	}
}

/* Etichetta "eyebrow" con trattino d'accento: firma visiva ripetuta del tema */
.fondamenta-eyebrow { position: relative; }
.fondamenta-eyebrow::before {
	content: "";
	display: block;
	width: 32px;
	height: 3px;
	border-radius: 2px;
	background: var(--wp--preset--color--accent);
	margin: 0 auto .6em;
}

/* Badge icona circolare per servizi/vantaggi */
.fondamenta-icon-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 999px;
	background: var(--wp--preset--color--neutral-100);
	color: var(--wp--preset--color--primary);
	margin-bottom: .9rem;
}
.fondamenta-icon-badge.wp-block-group { margin-bottom: .9rem; display: inline-flex; }
.fondamenta-icon {
	width: 24px;
	height: 24px;
	margin: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.fondamenta-icon--scudo { -webkit-mask-image: url('../img/icona-scudo.svg'); mask-image: url('../img/icona-scudo.svg'); }
.fondamenta-icon--fulmine { -webkit-mask-image: url('../img/icona-fulmine.svg'); mask-image: url('../img/icona-fulmine.svg'); }
.fondamenta-icon--bersaglio { -webkit-mask-image: url('../img/icona-bersaglio.svg'); mask-image: url('../img/icona-bersaglio.svg'); }

/* Stili di blocco */
.is-style-rounded-full img { border-radius: 999px !important; aspect-ratio: 1; object-fit: cover; }
.is-style-checklist { list-style: none; padding-left: 0; }
.is-style-checklist li { padding-left: 1.6em; position: relative; }
.is-style-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--wp--preset--color--primary); font-weight: 700; }
.is-style-pill .wp-block-button__link { border-radius: 999px; }

/* Pulsante outline coerente con i colori del tema, su sfondo chiaro o scuro */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
	padding: calc(.8rem - 2px) calc(1.5rem - 2px);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: color-mix(in srgb, currentColor 12%, transparent);
}

/* FAQ */
.fondamenta-faq summary { cursor: pointer; font-weight: 600; font-size: var(--wp--preset--font-size--large); }
.fondamenta-faq details[open] summary { color: var(--wp--preset--color--primary); }

/* Breadcrumb (plugin ChiBri SEO) */
.chibri-breadcrumbs { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--neutral-600); margin-bottom: var(--wp--preset--spacing--20); }
.chibri-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4em; }
.chibri-breadcrumbs li + li::before { content: "›"; margin-right: .4em; }
.chibri-breadcrumbs a { text-decoration: none; }
.chibri-breadcrumbs a:hover { text-decoration: underline; }

/* Accessibilità: focus visibile ovunque */
:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

/* Immagini sempre responsive */
img { height: auto; max-width: 100%; }

/* Riduci il movimento se l'utente lo chiede */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* =====================================================================
   0.3 — Sezioni per attività locali (ristoranti, saloni, B&B).
   Tutto è guidato dalla palette del tema/variazione: nessun colore fisso.
   ===================================================================== */

/* Pagine "vetrina" (modello Pagina larga): sezioni a tutta larghezza
   attaccate l'una all'altra, senza lo spazio automatico tra i blocchi. */
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

/* Etichetta sopra i titoli: la variazione può trasformarla (es. corsivo). */
.fondamenta-etichetta {
	font-family: var(--wp--custom--eyebrow--font-family, inherit);
	font-size: var(--wp--custom--eyebrow--font-size, var(--wp--preset--font-size--small));
	text-transform: var(--wp--custom--eyebrow--text-transform, uppercase);
	letter-spacing: var(--wp--custom--eyebrow--letter-spacing, .12em);
	font-weight: var(--wp--custom--eyebrow--font-weight, 600);
	line-height: var(--wp--custom--eyebrow--line-height, 1.4);
	color: var(--wp--preset--color--accent);
	margin-bottom: .2em !important;
}

/* Hero con foto */
.fondamenta-hero-foto { overflow: hidden; }
.fondamenta-hero-foto .wp-block-cover__image-background { transform: scale(1.04); animation: fondamenta-zoom 14s ease-out forwards; }
@keyframes fondamenta-zoom { to { transform: scale(1); } }
.fondamenta-hero-foto .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.78) 100%) !important;
	opacity: 1 !important;
}
.fondamenta-hero-foto h1 { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.25); max-width: 17ch; font-size: clamp(2.5rem, 6.2vw, 4.6rem) !important; }
.fondamenta-hero-foto .fondamenta-etichetta { color: #f3d9b8; }
.fondamenta-hero-foto p { color: rgba(255,255,255,.92); max-width: 46ch; line-height: 1.5; }
.fondamenta-hero-foto p.has-large-font-size { font-size: clamp(1.1rem, 2.2vw, 1.35rem) !important; }
.fondamenta-hero-foto .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.fondamenta-chip-riga { gap: .5rem !important; }
.fondamenta-chip {
	display: inline-flex; align-items: center; gap: .45em;
	margin: 0 !important; padding: .35em .9em; border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	background: rgba(255,255,255,.14); color: #fff !important;
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(255,255,255,.22);
}
.fondamenta-chip::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: var(--wp--preset--color--accent); flex: none; }

/* Punti di forza in striscia */
.fondamenta-punti .wp-block-column { text-align: center; }
.fondamenta-punti h3 { margin-bottom: .25rem; }
.fondamenta-punti p { color: var(--wp--preset--color--neutral-600); margin-top: 0; }
.fondamenta-punti .wp-block-column + .wp-block-column { border-left: 1px solid var(--wp--preset--color--neutral-300); }
@media (max-width: 781px) {
	.fondamenta-punti .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--wp--preset--color--neutral-300); padding-top: var(--wp--preset--spacing--30); }
}

/* Foto con cornice sfalsata (storia, chi siamo) */
.fondamenta-foto-cornice { position: relative; }
.fondamenta-foto-cornice img { border-radius: var(--wp--custom--radius--large, 24px) !important; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; box-shadow: var(--wp--custom--shadow--card); }
@media (min-width: 782px) {
	.fondamenta-foto-cornice::before {
		content: ""; position: absolute; inset: 1.5rem 1.5rem -1.5rem -1.5rem; z-index: -1;
		border: 2px solid var(--wp--preset--color--accent); border-radius: var(--wp--custom--radius--large, 24px); opacity: .45;
	}
}

/* Menù / listino a schede */
.fondamenta-schede-nav {
	display: flex; gap: .5rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
	justify-content: flex-start; padding: .25rem .1rem 1rem; margin: 0 0 var(--wp--preset--spacing--30);
	scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
}
.fondamenta-schede-nav::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .fondamenta-schede-nav { flex-wrap: wrap; justify-content: center; overflow: visible; } }
.fondamenta-schede-nav button {
	flex: none; scroll-snap-align: start; cursor: pointer;
	font: inherit; font-weight: 600; font-size: var(--wp--preset--font-size--small);
	padding: .6em 1.2em; border-radius: 999px;
	border: 1px solid var(--wp--preset--color--neutral-300);
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	transition: background .2s, color .2s, border-color .2s;
}
.fondamenta-schede-nav button:hover { border-color: var(--wp--preset--color--primary); }
.fondamenta-schede-nav button[aria-selected="true"] { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.fondamenta-schede.is-attive > .fondamenta-scheda[hidden] { display: none !important; }
.fondamenta-schede.is-attive > .fondamenta-scheda > .fondamenta-scheda__titolo { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fondamenta-scheda { animation: fondamenta-comparsa .35s ease; }
@keyframes fondamenta-comparsa { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.fondamenta-schede:not(.is-attive) > .fondamenta-scheda + .fondamenta-scheda { margin-top: var(--wp--preset--spacing--50); }

.fondamenta-listino {
	display: grid !important; grid-template-columns: 1fr; column-gap: var(--wp--preset--spacing--50); row-gap: 1.35rem;
}
@media (min-width: 782px) { .fondamenta-listino { grid-template-columns: 1fr 1fr; } }
.fondamenta-listino > * { margin: 0 !important; }
.fondamenta-voce > * { margin: 0 !important; }
.fondamenta-voce__riga { gap: .6rem !important; align-items: baseline !important; }
.fondamenta-voce__nome {
	display: flex; align-items: baseline; gap: .6rem; flex: 1 1 auto; min-width: 0;
	font-family: var(--wp--preset--font-family--display, var(--wp--preset--font-family--sora));
	font-size: 1.45rem; font-weight: 600; line-height: 1.2; color: var(--wp--preset--color--contrast);
}
.fondamenta-voce__nome::after { content: ""; flex: 1 1 1.5rem; min-width: 1.5rem; border-bottom: 2px dotted var(--wp--preset--color--neutral-300); transform: translateY(-.3em); }
.fondamenta-voce__prezzo { flex: none; font-weight: 700; color: var(--wp--preset--color--accent); white-space: nowrap; }
.fondamenta-voce__descrizione { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--neutral-600); line-height: 1.5; margin-top: .2rem !important; }
.fondamenta-nota-listino { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--neutral-600); }
.fondamenta-nota-listino { max-width: 760px; margin-inline: auto !important; margin-top: var(--wp--preset--spacing--40) !important; text-align: center; }
.fondamenta-nota-listino[open] { text-align: left; }
.fondamenta-nota-listino summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--contrast); }

/* Riquadro evidenziato dentro il listino (es. varianti, formati speciali) */
.fondamenta-riquadro { border: 1px dashed var(--wp--preset--color--neutral-300); border-radius: var(--wp--custom--radius--medium, 12px); }

/* Galleria fotografica */
.fondamenta-galleria.wp-block-gallery { gap: .75rem; }
.fondamenta-galleria.wp-block-gallery .wp-block-image img { aspect-ratio: 1 / 1; object-fit: cover; border-radius: var(--wp--custom--radius--medium, 12px); transition: transform .5s ease, filter .3s; }
.fondamenta-galleria.wp-block-gallery .wp-block-image { overflow: hidden; border-radius: var(--wp--custom--radius--medium, 12px); }
.fondamenta-galleria.wp-block-gallery .wp-block-image:hover img { transform: scale(1.05); }

/* Recensioni */
.fondamenta-voto { font-family: var(--wp--preset--font-family--display, var(--wp--preset--font-family--sora)); font-size: clamp(3rem, 8vw, 4.5rem) !important; line-height: 1 !important; font-weight: 600; margin: 0 !important; }
.fondamenta-stelle { color: #e0a526; letter-spacing: .12em; font-size: 1.15rem; margin: 0 !important; }
.fondamenta-recensione { display: flex; flex-direction: column; }
.fondamenta-recensione > p:last-child { margin-top: auto !important; padding-top: 1rem; }
.fondamenta-recensione blockquote, .fondamenta-recensione .fondamenta-recensione__testo { font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.25rem; line-height: 1.45; font-style: italic; }

/* Orari */
.fondamenta-orari table { border-collapse: collapse; width: 100%; }
.fondamenta-orari td { border: 0 !important; border-bottom: 1px solid var(--wp--preset--color--neutral-300) !important; padding: .65rem 0 !important; }
.fondamenta-orari td:last-child { text-align: right; font-weight: 600; }
.fondamenta-orari tr.is-oggi td { color: var(--wp--preset--color--primary); }
.fondamenta-orari tr.is-oggi td:first-child::after { content: " · oggi"; font-size: .85em; color: var(--wp--preset--color--accent); font-weight: 600; }

/* Mappa caricata solo su richiesta (niente cookie di terzi finché non si clicca) */
.fondamenta-mappa {
	position: relative; min-height: 340px; height: 100%; overflow: hidden;
	border-radius: var(--wp--custom--radius--large, 24px);
	background-color: var(--wp--preset--color--neutral-100);
	background-image: url('../img/mappa-segnaposto.svg'); background-size: cover; background-position: center;
	display: flex !important; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
.fondamenta-mappa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fondamenta-mappa .fondamenta-mappa__nota { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--neutral-600); max-width: 30ch; }

/* Barra fissa su telefono: chiama / prenota */
.fondamenta-barra-mobile { display: none !important; }
@media (max-width: 781px) {
	.fondamenta-barra-mobile {
		display: flex !important; position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 60;
		gap: .5rem !important; padding: .5rem; margin: 0 !important;
		background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
		backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
		border-radius: 999px; box-shadow: 0 10px 30px rgba(0,0,0,.18);
		transform: translateY(0); transition: transform .3s ease;
	}
	.fondamenta-barra-mobile .wp-block-button { flex: 1; margin: 0; }
	.fondamenta-barra-mobile .wp-block-button__link { width: 100%; padding: .75rem 1rem; text-align: center; }
	body:has(.fondamenta-barra-mobile) { padding-bottom: 5rem; }
	.fondamenta-barra-mobile.is-nascosta { transform: translateY(160%); }
}

/* Comparsa morbida delle sezioni allo scorrimento (solo se il JS è attivo) */
.fondamenta-anim .fondamenta-rivela { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.fondamenta-anim .fondamenta-rivela.is-visibile { opacity: 1; transform: none; }
.fondamenta-recensione.wp-block-column { background: var(--wp--preset--color--neutral-100); padding: var(--wp--preset--spacing--30) !important; }
.fondamenta-recensione > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.fondamenta-recensione > * + * { margin-top: .75rem !important; }
.fondamenta-banner-foto h2 { color: #fff; max-width: none; }
.fondamenta-banner-foto p { margin-inline: auto; }

/* Testata: logo e pulsante */
.fondamenta-logo img { display: block; }
.fondamenta-logo img { width: 120px !important; }
@media (max-width: 781px) { .fondamenta-solo-desktop { display: none !important; } .fondamenta-logo img { width: 84px !important; } }
.fondamenta-footer a { color: inherit; }
.fondamenta-footer .wp-block-separator { opacity: .2; max-width: none !important; }

/* Su telefono l'hero lascia spazio alla barra fissa e resta arioso */
@media (max-width: 781px) {
	.fondamenta-hero-foto { min-height: 92svh !important; }
	.fondamenta-hero-foto .wp-block-cover__inner-container { padding-bottom: 6rem; }
	.fondamenta-chip { font-size: .8rem; }
	.fondamenta-hero-foto .wp-block-buttons .wp-block-button { flex: 1 1 auto; }
	.fondamenta-hero-foto .wp-block-buttons .wp-block-button__link { width: 100%; }
}
.fondamenta-orari + p + .wp-block-buttons { gap: .6rem; }
