/* =====================================================================
   La Cucina dei Frigoriferi Milanesi
   Regole e motivazioni: vedi DESIGN.md nella cartella del tema.
   Nessun effetto legato allo scroll: niente parallax, blur, snap.
   ===================================================================== */

/* ---------- Font (self-hosted, licenza OFL: vedi assets/fonts/LICENSE-*) ---------- */
@font-face {
	font-family: "Italiana";
	src: url("../fonts/Italiana.woff2") format("woff2");
	font-weight: 400; font-style: normal; font-display: swap;
}
/* Italiana non ha il simbolo €: lo prende da Cormorant Light, solo per quel carattere. */
@font-face {
	font-family: "ItalianaEuro";
	src: url("../fonts/Cormorant-Light.woff2") format("woff2");
	font-weight: 400; font-style: normal; font-display: swap;
	unicode-range: U+20AC;
}

/* ---------- Token ---------- */
:root {
	--red: #951528;          /* accento: titoli, logo, bordi bottoni, etichette */
	--bg: #EADFCB;           /* beige: sfondo delle pagine */
	--ink: #1F1311;
	--wine: #542129;         /* bordeaux: pagina Vini, footer */
	--pine: #1E3F24;         /* verde pino: pagina Pranzo */
	--light: #F7EFE4;        /* testo chiaro sui fondi scuri */
	--bg-deep: #DACCB1;      /* barra categorie su beige */
	--pine-deep: #16301B;    /* barra categorie su Pranzo */
	--wine-deep: #3E171D;    /* barra categorie su Vini */

	--pg: var(--bg);         /* sfondo della pagina corrente */
	--txt: var(--ink);       /* testo della pagina corrente */
	--btn: var(--red);       /* colore bordo e testo dei bottoni */
	--hov: var(--bg);        /* testo del bottone al riempimento */
	--line: rgba(43, 27, 26, .22);

	--font: "Italiana", "ItalianaEuro", serif;
	--bar-h: 76px;
	--gutter: clamp(20px, 6vw, 100px);
}
body.pg-pranzo { --pg: var(--pine); }
body.pg-vini   { --pg: var(--wine); }
body.pg-pranzo, body.pg-vini {
	--txt: var(--light); --btn: var(--light); --hov: var(--pg);
	--line: rgba(255, 255, 255, .28);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	background: var(--pg); color: var(--txt);
	font: 400 1.25rem/1.55 var(--font);
	font-synthesis: none;
	-webkit-font-smoothing: antialiased;
}
/* Italiana è sottile: sul beige la ispessiamo appena. Non su verde e bordeaux. */
body:not(.is-home):not(.pg-pranzo):not(.pg-vini) { -webkit-text-stroke: .35px currentColor; }
h1, h2, h3, h4, b, strong { font-weight: 400; }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
::selection { background: var(--red); color: #fff; }

.fm-skip { position: absolute; left: 16px; top: -4rem; z-index: 100; background: var(--light); color: var(--red); padding: .6rem 1rem; }
.fm-skip:focus { top: .75rem; }

/* Etichette in maiuscolo */
.fm-cap, .fm-btn, .fm-sec__title, .fm-tabs a, .fm-tag, .fm-foot h2 {
	text-transform: uppercase; letter-spacing: .2em;
}

/* ---------- Barra superiore ---------- */
.fm-bar {
	position: fixed; inset: 0 0 auto 0; height: var(--bar-h); z-index: 50;
	display: flex; align-items: center; justify-content: space-between;
	padding: 0 clamp(16px, 3vw, 40px);
	background: var(--bg); color: var(--red);
}
.is-home .fm-bar { background: linear-gradient(rgba(40, 12, 16, .55), transparent); color: #fff; }
.pg-pranzo .fm-bar, .pg-vini .fm-bar { background: var(--pg); color: #fff; }
.fm-open .fm-bar { background: transparent !important; color: #fff; }

.fm-bar__logo img { height: 60px; width: auto; }
.fm-logo--w { display: none; }
.is-home .fm-logo--w, .pg-pranzo .fm-logo--w, .pg-vini .fm-logo--w, .fm-open .fm-logo--w { display: block; }
.is-home .fm-logo--r, .pg-pranzo .fm-logo--r, .pg-vini .fm-logo--r, .fm-open .fm-logo--r { display: none; }
.is-home .fm-bar__logo { visibility: hidden; }          /* in home il logo è già nella hero */
.is-home.fm-open .fm-bar__logo { visibility: visible; }

.fm-burger {
	width: 44px; height: 44px; padding: 0; border: 0; background: none; color: inherit; cursor: pointer;
	display: flex; flex-direction: column; justify-content: center; align-items: flex-end; gap: 7px;
}
.fm-burger i { display: block; height: 2px; width: 30px; background: currentColor; transition: transform .3s, opacity .3s; }
.fm-burger i:nth-child(2) { width: 20px; }
.fm-open .fm-burger i:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.fm-open .fm-burger i:nth-child(2) { opacity: 0; }
.fm-open .fm-burger i:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* ---------- Pannello di navigazione a tutto schermo ---------- */
.fm-nav {
	position: fixed; inset: 0; z-index: 40;
	background: var(--red); color: #fff;
	display: flex; flex-direction: column; justify-content: center; align-items: flex-end;
	padding: 0 clamp(24px, 6vw, 90px);
	transform: translateX(100%); visibility: hidden;
	transition: transform .5s cubic-bezier(.7, 0, .2, 1), visibility 0s linear .5s;
}
.fm-open .fm-nav { transform: none; visibility: visible; transition-delay: 0s; }
.fm-nav__list { display: flex; flex-direction: column; align-items: flex-end; gap: .3em; }
.fm-nav a { font-size: clamp(2.2rem, 6vw, 4.5rem); line-height: 1.1; transition: opacity .25s; }
.fm-nav a:hover, .fm-nav .current-menu-item > a, .fm-nav .current_page_item > a { opacity: .55; }
@media (prefers-reduced-motion: reduce) {
	.fm-nav, .fm-burger i { transition: none; }
}

/* ---------- Bottoni ---------- */
.fm-btn {
	display: inline-block; padding: 1em 2.2em;
	border: 2px solid var(--btn); color: var(--btn); background: transparent;
	font-family: inherit; font-size: .9rem; line-height: 1.2; text-align: center; cursor: pointer;
	transition: background-color .25s, color .25s;
}
.fm-btn:hover, .fm-btn:focus-visible { background: var(--btn); color: var(--hov); }

/* ---------- Home: solo la hero ---------- */
.fm-hero {
	position: relative; isolation: isolate;
	height: 100vh; height: 100svh; min-height: 600px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.8rem;
	padding: 90px 20px 40px; text-align: center;
	background: var(--wine); color: var(--light);
	--btn: var(--light); --hov: var(--wine);
}
.fm-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fm-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(48, 14, 20, .6); }
.fm-hero__logo { width: min(440px, 75%); height: auto; }
.fm-hero h1 { font-size: clamp(2.6rem, 6vw, 5.5rem); line-height: 1; letter-spacing: -.01em; }
.fm-hero .fm-btn { font-size: .95rem; padding: 1.1em 2.8em; background: rgba(48, 14, 20, .45); }
.fm-hero .fm-btn:hover, .fm-hero .fm-btn:focus-visible { background: var(--light); color: var(--wine); }

/* ---------- Testata di pagina ---------- */
.fm-ph { display: flex; flex-direction: column; padding: calc(var(--bar-h) + clamp(40px, 7vw, 100px)) var(--gutter) 0; }
.fm-ph--plain { padding-bottom: clamp(24px, 4vw, 48px); }
.fm-ph__img { order: 1; height: min(46vh, 480px); margin: clamp(28px, 4vw, 56px) 0 0; }
.fm-ph__img img { width: 100%; height: 100%; object-fit: cover; }
.fm-ph h1 { font-size: clamp(3.2rem, 9vw, 8rem); line-height: .95; letter-spacing: -.02em; color: var(--red); }
.fm-ph p { margin: 1rem 0 0; max-width: 34em; opacity: .85; }

/* Pranzo e Vini: foto a tutta larghezza che sfuma nel colore della pagina */
.fm-ph--dark {
	position: relative; min-height: 55vh; flex-direction: row; align-items: flex-end;
	padding: 0 clamp(20px, 5vw, 80px) clamp(30px, 5vw, 70px);
}
.fm-ph--dark .fm-ph__img { position: absolute; inset: 0; height: 100%; margin: 0; }
.fm-ph--dark::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(color-mix(in srgb, var(--pg) 35%, transparent), var(--pg));
}
.fm-ph--dark .fm-ph__text { position: relative; z-index: 2; }
.fm-ph--dark h1 { color: #fff; }

/* ---------- Barra categorie: sempre piena, mai trasparente ---------- */
.fm-tabs {
	position: sticky; top: var(--bar-h); z-index: 30;
	display: flex; flex-wrap: wrap; gap: .5rem 1.6rem;
	padding: 1rem var(--gutter);
	background: var(--bg-deep); color: var(--red);
	box-shadow: 0 1px 0 rgba(43, 27, 26, .15);
}
.pg-pranzo .fm-tabs { background: var(--pine-deep); color: #fff; }
.pg-vini .fm-tabs   { background: var(--wine-deep); color: #fff; }
.fm-tabs a { font-size: .85rem; padding: .05rem 0; }
.fm-tabs a:hover { text-decoration: underline; text-underline-offset: .3em; }
/* Mobile: una sola riga a scorrimento orizzontale (altezza totale ~48px), sempre piena e sticky */
@media (max-width: 49.99em) {
	.fm-tabs {
		flex-wrap: nowrap; gap: 1.4rem; overflow-x: auto; white-space: nowrap;
		padding-top: .8rem; padding-bottom: .8rem;
		scrollbar-width: none; -webkit-overflow-scrolling: touch;
	}
	.fm-tabs::-webkit-scrollbar { display: none; }
	.fm-tabs a { flex: none; }
}

/* ---------- Contenuto ---------- */
.fm-wrap { max-width: 1100px; margin: 0 auto; padding: clamp(50px, 8vw, 110px) var(--gutter); }

.fm-prose p { max-width: 42em; margin-bottom: 1.1em; }
.fm-prose--lead > p:first-child,
.fm-prose--lead > .wp-block-paragraph:first-child,
.fm-prose--lead > .wp-block-paragraph:first-child > p {
	font-size: clamp(1.6rem, 2.8vw, 2.3rem); line-height: 1.3; max-width: 28em;
}
.fm-prose .fm-sign { font-size: 1.6rem; margin-top: 1.5rem; }

/* Sezioni (Antipasti, Primi, ... / Champagne, Bianchi, ...) */
.fm-sec { scroll-margin-top: calc(var(--bar-h) + 4.5rem); }
.fm-sec__title { margin: 3rem 0 .4rem; font-size: .85rem; line-height: 1.4; color: var(--red); }
.pg-pranzo .fm-sec__title, .pg-vini .fm-sec__title { color: #fff; opacity: .8; }

.fm-list { display: block; }
.fm-item { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.fm-item__name { font-size: 1.4rem; line-height: 1.2; }
.fm-item p { margin: .2em 0 0; font-size: 1.08rem; opacity: .88; }
.fm-item__meta { font-size: .95rem; letter-spacing: .04em; }
.fm-item__all { font-size: .92rem; opacity: .75; }
.fm-item__all span { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; margin-right: .5em; }
.fm-price { font-size: 1.4rem; white-space: nowrap; }
.fm-item.is-off { opacity: .42; }

.fm-mark { margin-left: .05em; }
.fm-tag {
	display: inline-block; margin-left: .6em; padding: .3em .7em; vertical-align: middle;
	background: var(--red); color: #fff; font-size: .62rem; line-height: 1.2; letter-spacing: .2em;
}

/* Menù degustazione: la tabella dell'editor diventa una lista a righe con filetto */
.fm-tasting h3 { margin: 3rem 0 .4rem; font-size: .85rem; line-height: 1.4; text-transform: uppercase; letter-spacing: .2em; color: var(--red); }
.fm-tasting p { max-width: 36em; opacity: .85; }
.fm-tasting figure { margin: 0; }
/* ".wp-block-table" alza la specificità sopra gli stili inline che WordPress aggiunge ai blocchi tabella */
.fm-tasting .wp-block-table table, .fm-tasting .wp-block-table tbody { display: block; width: 100%; border: 0; }
.fm-tasting .wp-block-table tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--line); }
.fm-tasting .wp-block-table td { padding: 0; border: 0; }
.fm-tasting .wp-block-table td:last-child { white-space: nowrap; font-size: 1.4rem; }
.fm-tasting figure ~ p { margin-top: 1rem; font-size: 1rem; opacity: .7; }

.fm-notes { margin-top: 2.5rem; }
.fm-notes p { margin: 0 0 .5rem; font-size: 1rem; opacity: .7; max-width: 42em; }

/* Pranzo: prezzo gigante */
.fm-big { margin: 0 0 1rem; font-size: clamp(4rem, 12vw, 9rem); line-height: .9; color: #fff; }

/* Prenotazioni */
.fm-tel { display: block; font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.2; }
.fm-tel + .fm-tel { margin-top: .15em; }
.fm-book__widget { margin-top: 2.5rem; }

/* ---------- Striscia di foto ---------- */
.fm-strip { display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 12px; }
.fm-strip__ph { aspect-ratio: 4 / 5; margin: 0; }
.fm-strip__ph img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 50em) { .fm-strip { grid-template-columns: 1fr; } }

/* ---------- Fascia finale ---------- */
.fm-cta { margin-top: 12px; padding: clamp(80px, 12vw, 180px) 20px; text-align: center; background: rgba(43, 27, 26, .07); }
.fm-cta h2 { margin-bottom: 1.5rem; font-size: clamp(2.4rem, 6vw, 5rem); line-height: 1; color: var(--red); }
.pg-pranzo .fm-cta, .pg-vini .fm-cta { background: var(--red); color: #fff; --btn: var(--light); --hov: var(--red); }
.pg-pranzo .fm-cta h2, .pg-vini .fm-cta h2 { color: #fff; }

/* ---------- Footer ---------- */
.fm-foot { background: var(--wine); color: #F1E4D9; }
.fm-foot__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
	padding: 3rem clamp(16px, 4vw, 60px); font-size: 1rem;
}
.fm-foot h2 { margin-bottom: .6rem; font-size: .8rem; opacity: .75; }
.fm-foot address { font-style: normal; }
.fm-foot p { margin: 0 0 .25em; }
.fm-foot dl { margin: 0; }
.fm-foot__hours div { margin-bottom: .6em; }
.fm-foot__hours dt, .fm-foot__hours dd { margin: 0; }
.fm-foot a:hover { text-decoration: underline; text-underline-offset: .25em; }
/* Riga in basso: dati societari, poi link legali a sinistra e firma a destra (colore attenuato, contrasto 6,9:1 sul bordeaux) */
.fm-foot__legal {
	--foot-dim: #CDB9B3;
	padding: 1.25rem clamp(16px, 4vw, 60px) 1rem; border-top: 1px solid rgba(255, 255, 255, .18);
	font-size: .85rem; color: var(--foot-dim);
}
.fm-foot__legal p { margin: 0; }
.fm-foot__company { margin-bottom: .25rem !important; }
.fm-foot__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 2rem; }
.fm-foot__links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 .6rem; margin-left: -.5rem; }
.fm-foot__links a, .fm-foot__credit a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .5rem; text-decoration: underline; text-underline-offset: .2em; color: var(--foot-dim); }
.fm-foot__credit { display: flex; align-items: center; flex-wrap: wrap; }
.fm-foot__credit a { padding: 0 0 0 .3em; margin-right: -.5rem; padding-right: .5rem; }
.fm-foot__legal a:hover, .fm-foot__legal a:focus-visible { color: #F1E4D9; }
@media (max-width: 50em) {
	.fm-foot__grid { grid-template-columns: 1fr; }
	.fm-foot__legal { text-align: center; }
	.fm-foot__bottom { flex-direction: column; justify-content: center; }
	.fm-foot__links { justify-content: center; margin-left: 0; }
	.fm-foot__credit { justify-content: center; }
	.fm-foot__credit a { margin-right: 0; padding-right: .5rem; }
}

/* =====================================================================
   Pagina Prenotazioni: blocchi, modulo TheFork, sezione eventi
   ===================================================================== */

/* Telefoni nell'intro */
.fm-tel { display: block; width: fit-content; }
a.fm-tel:hover { text-decoration: underline; text-underline-offset: .2em; }
.fm-book__intro { padding-bottom: clamp(24px, 4vw, 56px); }

/* Due blocchi affiancati, stessa altezza (grid): impilati su mobile */
.fm-choice {
	display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
	max-width: 1280px; margin: 0 auto; padding: 0 var(--gutter);
}
.fm-choice__box {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: clamp(320px, 34vw, 440px);
	display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 2rem;
	padding: clamp(28px, 4vw, 56px);
}
.fm-choice__box h2 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1; margin-bottom: .8rem; }
.fm-choice__box p { margin: 0; max-width: 24em; }
.fm-choice__box--book { background: var(--bg-deep); }
.fm-choice__box--book h2 { color: var(--red); }

/* "Organizza un evento": bordeaux + foto sotto velo scuro, più enfasi del primo */
.fm-choice__box--event { background: var(--wine); color: var(--light); -webkit-text-stroke: 0; --btn: var(--light); --hov: var(--wine); }
.fm-choice__box--event h2 { font-size: clamp(2.6rem, 5.4vw, 4.6rem); color: var(--light); }
.fm-choice__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.fm-choice__box--event::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(rgba(84, 33, 41, .55), rgba(48, 14, 20, .82));
}
@media (max-width: 49.99em) { .fm-choice { grid-template-columns: 1fr; } .fm-choice__box { min-height: 300px; } }

/* #prenota: modulo TheFork, con spazio riservato per non far saltare la pagina */
.fm-prenota, .fm-eventi { scroll-margin-top: calc(var(--bar-h) + 4.5rem); }
.fm-section__title { margin-bottom: 2rem; font-size: clamp(2.4rem, 6vw, 4.5rem); line-height: 1; color: var(--red); text-align: center; }
.fm-embed { max-width: 760px; min-height: var(--h, 700px); margin: 0 auto; background: var(--bg-deep); }
.fm-embed iframe { display: block; width: 100%; height: var(--h, 700px); border: 0; }
.fm-prenota__help { max-width: 760px; margin: 1.2rem auto 0; text-align: center; font-size: 1.05rem; }
.fm-prenota__help a { text-decoration: underline; text-underline-offset: .25em; }
.fm-prenota .fm-tel { margin: 0 auto; text-align: center; }

/* #eventi: fondo bordeaux, testo crema */
.fm-eventi {
	background: var(--wine); color: var(--light); -webkit-text-stroke: 0;
	--btn: var(--light); --hov: var(--wine); --line: rgba(255, 255, 255, .28);
	padding: clamp(60px, 9vw, 130px) var(--gutter);
}
.fm-eventi__in { max-width: 1000px; margin: 0 auto; }
.fm-eventi__title { font-size: clamp(2.6rem, 7vw, 6rem); line-height: .98; letter-spacing: -.02em; margin-bottom: 1.6rem; }
.fm-eventi__text { max-width: 40em; margin-bottom: clamp(32px, 5vw, 56px); }
.fm-eventi .fm-strip { margin-bottom: clamp(40px, 6vw, 80px); }
.fm-eventi .fm-strip__ph { aspect-ratio: 4 / 3; }
.pg-prenotazioni .fm-foot { border-top: 1px solid rgba(255, 255, 255, .18); }

/* Modulo richieste: bordo sottile crema su fondo bordeaux */
.fm-form { max-width: 900px; }
.fm-form__title { margin-bottom: 1.6rem; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.fm-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem 1.8rem; margin-bottom: 1.6rem; }
.fm-form__wide { grid-column: 1 / -1; }
.fm-field { margin: 0; }
.fm-field label { display: block; margin-bottom: .45rem; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; }
.fm-field input:not([type="checkbox"]), .fm-field select, .fm-field textarea {
	display: block; width: 100%; padding: .8rem 1rem;
	background: transparent; color: inherit; border: 1px solid rgba(247, 239, 228, .7); border-radius: 0;
	font: inherit; font-size: 1.1rem; line-height: 1.4; color-scheme: dark;
}
.fm-field select option { background: var(--wine); color: var(--light); }
.fm-field textarea { resize: vertical; min-height: 9rem; }
.fm-field input:not([type="checkbox"]):focus-visible, .fm-field select:focus-visible, .fm-field textarea:focus-visible {
	outline: 2px solid var(--light); outline-offset: 2px; border-color: var(--light);
}
.fm-field.has-error input:not([type="checkbox"]), .fm-field.has-error select, .fm-field.has-error textarea { border: 2px solid var(--light); }
.fm-field__err { margin: .4rem 0 0; font-size: 1rem; }
.fm-field__err::before { content: "! "; }
.fm-field--check { margin-bottom: 1.2rem; }
.fm-field--check label { display: flex; gap: .8rem; align-items: flex-start; margin: 0; font-size: 1rem; letter-spacing: 0; text-transform: none; line-height: 1.45; }
.fm-field--check input { flex: none; width: 1.3rem; height: 1.3rem; margin: .1rem 0 0; accent-color: var(--light); }
.fm-field--check a { text-decoration: underline; text-underline-offset: .2em; }
.fm-field--check.has-error input { outline: 2px solid var(--light); outline-offset: 2px; }
.fm-form__note { margin: 0 0 1.6rem; font-size: .95rem; opacity: .8; }
.fm-form__alert, .fm-form__ok { margin: 0 0 1.8rem; padding: 1rem 1.3rem; border: 1px solid var(--light); background: rgba(0, 0, 0, .16); }
.fm-form__alert p, .fm-form__ok p { margin: 0; }
.fm-form__ok { padding: clamp(1.4rem, 3vw, 2.2rem); font-size: clamp(1.4rem, 3vw, 2rem); max-width: 900px; }
.fm-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 49.99em) { .fm-form__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .fm-btn { transition: none; } }

/* ---------- Selettore lingua (IT / EN) ---------- */
.fm-bar__tools { display: flex; align-items: center; gap: clamp(8px, 2vw, 20px); }
.fm-lang { display: flex; align-items: center; gap: .45em; font-size: .85rem; text-transform: uppercase; letter-spacing: .2em; }
.fm-lang a { opacity: .6; padding: .5em .1em; transition: opacity .25s; }
.fm-lang a[aria-current] { opacity: 1; text-decoration: underline; text-underline-offset: .35em; text-decoration-thickness: 1px; }
.fm-lang a:hover, .fm-lang a:focus-visible { opacity: 1; }
.fm-lang__sep { opacity: .6; }

/* ---------- Footer: stagione degli orari ---------- */
.fm-foot__season { margin: 0 0 .8em; opacity: .75; font-size: .95rem; }

/* ---------- Prenotazioni: pulsante TheFork ---------- */
.fm-btn--lg { font-size: 1.05rem; padding: 1.2em 3em; }
.fm-prenota__cta { margin: 0 0 1rem; text-align: center; }
.fm-prenota { --btn: var(--red); --hov: var(--bg); }
.fm-prenota .fm-embed { margin-top: 2rem; }

/* ---------- Chi siamo: foto di testata più alta, ritagliata sul soggetto ---------- */
.pg-chisiamo .fm-ph__img { height: min(85vh, 900px); }
.pg-chisiamo .fm-ph__img img { object-position: center 30%; }

/* Home: il selettore IT / EN resta leggibile anche sulle foto chiare (soffitti, vetrate) */
.is-home .fm-bar { background: linear-gradient(rgba(40, 12, 16, .72), transparent); }
.is-home .fm-lang a:not([aria-current]), .is-home .fm-lang__sep { opacity: .85; }
.is-home .fm-lang, .is-home .fm-burger { text-shadow: 0 0 8px rgba(40, 12, 16, .6); }

/* =====================================================================
   Buono Menù (buono regalo): prezzo, totale, coordinate del bonifico
   ===================================================================== */
.fm-gc__price { font-size: clamp(1.4rem, 3vw, 2rem); margin: 0 0 1rem; }
.fm-gc__total { display: flex; flex-direction: column; justify-content: flex-end; }
.fm-gc__total-label { display: block; margin-bottom: .45rem; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; }
.fm-gc__total output { font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.1; }
.fm-gc__total-note { display: block; margin-top: .3rem; font-size: .85rem; opacity: .85; }
.fm-gc__sum { font-size: clamp(1.2rem, 2.6vw, 1.6rem); }
.fm-gc__small { font-size: 1rem; opacity: .9; margin-top: 1rem; }
.fm-gc__bank { margin: 1.2rem 0 0; font-size: 1rem; }
.fm-gc__bank div { display: flex; flex-wrap: wrap; gap: .2rem 1rem; padding: .5rem 0; border-top: 1px solid rgba(247, 239, 228, .28); }
.fm-gc__bank dt { min-width: 9rem; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; opacity: .85; }
.fm-gc__bank dd { margin: 0; font-size: 1.15rem; word-break: break-all; }
