/* ==========================================================================
   Home a blocchi Avada (.p9a)
   Ogni sezione è un container Avada con classe "p9a" + variante. Righe e colonne
   di Avada vengono trasformate in griglie che riproducono il layout della home
   a shortcode. I contenuti (testi, foto, pulsanti) restano elementi Avada.
   ========================================================================== */

/* ---------- base: contenitore, riga, colonne ---------- */
body.p9 .p9a { position: relative; overflow: hidden; }
body.p9 .fusion-fullwidth.p9a > .fusion-builder-row.fusion-row {
	display: grid !important; grid-template-columns: minmax(0, 1fr); align-items: start;
	/* Avada fissa width/max-width inline: la larghezza massima si ottiene con il padding laterale */
	--p9a-max: var(--p9-max);
	--p9a-side: max(var(--p9-gutter), calc((100% - var(--p9a-max)) / 2 + var(--p9-gutter)));
	margin: 0 !important; box-sizing: border-box;
	padding: clamp(80px, 12vw, 160px) var(--p9a-side) !important;
	position: relative; z-index: 2;
}
body.p9 .p9a .fusion-layout-column { display: block !important; width: auto !important; max-width: none !important; min-width: 0; margin: 0 !important; padding: 0 !important; flex: none !important; }
body.p9 .p9a .fusion-column-wrapper { display: block !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; width: 100% !important; max-width: none !important; }
body.p9 .p9a .fusion-image-element { margin: 0; }
body.p9 .p9a .fusion-imageframe { display: block; }
/* come nella home originale, anche l'ultimo paragrafo mantiene il margine (Avada lo azzera) */
body.p9 .p9a .fusion-text > p:last-child { margin-bottom: 1.1em; }
body.p9 .p9a .fusion-imageframe img { display: block; width: 100%; height: auto; }

body.p9 .p9a-ivory { background: var(--p9-ivory) !important; color: var(--p9-ivory-ink); }
body.p9 .p9a-ink { background: var(--p9-ink) !important; }
body.p9 .p9a-surface { background: var(--p9-surface) !important; }
.p9a-ivory .p9-muted { color: #6f6a61; }
.p9a-ivory .p9-eyebrow { color: #9c7a39; }
.p9a-ivory .p9-title em { color: #9c7a39; }
.p9a-ivory h2, .p9a-ivory h3 { color: var(--p9-ivory-ink); }
.p9a-center { text-align: center; }
body.p9 .p9a-center .p9-eyebrow { justify-content: center; }
body.p9 .fusion-text.p9a-center, body.p9 .p9a-center .fusion-text { text-align: center !important; }
.p9a-center .p9-muted { max-width: 640px; margin: 0 auto 56px; }

/* ---------- pulsanti (elemento Pulsante di Avada) ---------- */
body.p9 .fusion-button.p9a-btn {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 12px;
	min-height: 52px; padding: 0 30px !important; margin: 0;
	border: 1px solid var(--p9-gold) !important; border-radius: 0 !important; box-shadow: none !important;
	background: var(--p9-gold) !important; color: var(--p9-black) !important;
	position: relative; overflow: hidden; isolation: isolate; transition: color .4s var(--p9-ease), border-color .4s;
}
body.p9 .fusion-button.p9a-btn .fusion-button-text {
	font-family: var(--p9-sans) !important; font-size: 12px !important; font-weight: 500 !important; line-height: 1.2 !important;
	letter-spacing: .24em !important; text-transform: uppercase !important; color: inherit !important;
}
body.p9 .fusion-button.p9a-btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--p9-gold-2); transform: scaleX(0); transform-origin: right; transition: transform .5s var(--p9-ease); }
body.p9 .fusion-button.p9a-btn:hover::after { transform: scaleX(1); transform-origin: left; }
body.p9 .fusion-button.p9a-btn--ghost { background: transparent !important; color: var(--p9-text) !important; border-color: rgba(233, 228, 218, .45) !important; }
body.p9 .fusion-button.p9a-btn--ghost::after { background: var(--p9-text); }
body.p9 .fusion-button.p9a-btn--ghost:hover { color: var(--p9-black) !important; border-color: var(--p9-text) !important; }

/* ---------- 1. hero con slideshow di sfondo ---------- */
body.p9 .p9a-hero { min-height: 100vh; min-height: 100svh; background: #000 !important; display: flex !important; align-items: center; }
body.p9 .p9a-hero .awb-background-slider { position: absolute; inset: 0; z-index: 0; }
body.p9 .p9a-hero .awb-background-slider__image { width: 100%; height: 100%; object-fit: cover; }
body.p9 .p9a-hero .swiper-slide img { transform: scale(1.12); transition: transform 9s linear; }
body.p9 .p9a-hero .swiper-slide-active img { transform: scale(1); }
body.p9 .p9a-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background:
	radial-gradient(ellipse at center, rgba(0,0,0,.25) 0%, rgba(0,0,0,.6) 75%),
	linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,.15) 60%, rgba(11,11,11,1) 100%); }
body.p9 .fusion-fullwidth.p9a-hero > .fusion-builder-row.fusion-row { --p9a-max: 900px; padding: calc(var(--p9-header-h) + 40px) var(--p9a-side) !important; text-align: center; }
body.p9 .p9a-hero__content .fusion-column-wrapper { display: flex !important; flex-direction: row !important; flex-wrap: wrap; justify-content: center; gap: 14px; }
body.p9 .p9a-hero__content .fusion-column-wrapper > * { flex: 0 0 100%; }
/* lo spazio di 14px serve solo tra i pulsanti (anche quando vanno a capo): logo e testi restano attaccati come nell'originale */
body.p9 .p9a-hero__content .fusion-column-wrapper > .fusion-text { margin-top: -14px !important; margin-bottom: 20px !important; }
body.p9 .p9a-hero__content .fusion-column-wrapper > div:has(> .fusion-button) { flex: 0 0 auto; }
body.p9 .p9a-hero__logo img { width: min(64vw, 340px) !important; margin: 0 auto; filter: drop-shadow(0 6px 30px rgba(0,0,0,.5)); }
body.p9 .p9a-hero__content .fusion-column-wrapper > * { opacity: 0; transform: translateY(24px); animation: p9-in 1.2s var(--p9-ease) forwards; }
body.p9 .p9a-hero__content .fusion-column-wrapper > :nth-child(2) { animation-delay: .25s; }
body.p9 .p9a-hero__content .fusion-column-wrapper > :nth-child(3) { animation-delay: .4s; }
body.p9 .p9a-hero__content .fusion-column-wrapper > :nth-child(4) { animation-delay: .5s; }

/* ---------- 2. informazioni ---------- */
/* Flex con margini invece della griglia: testo/foto e i tre punti hanno spaziature diverse, come .p9-split e .p9-pillars */
body.p9 .fusion-fullwidth.p9a-info > .fusion-builder-row.fusion-row { display: flex !important; flex-wrap: wrap; align-items: center; gap: 0; --p9a-split: clamp(48px, 7vw, 110px); --p9a-pgap: 40px; }
body.p9 .p9a-info .fusion-layout-column.p9a-info__text,
body.p9 .p9a-info .fusion-layout-column.p9a-stack,
body.p9 .p9a-info .fusion-layout-column.p9a-pillar { width: 100% !important; }
body.p9 .p9a-info .fusion-layout-column.p9a-stack { margin-top: var(--p9a-split) !important; }
body.p9 .p9a-info .fusion-layout-column.p9a-pillar { align-self: flex-start; margin-top: var(--p9a-pgap) !important; }
body.p9 .p9a-info .fusion-layout-column.p9a-stack + .p9a-pillar { margin-top: clamp(64px, 9vw, 120px) !important; }
@media (min-width: 768px) {
	body.p9 .p9a-info .fusion-layout-column.p9a-pillar { width: calc((100% - 2 * var(--p9a-pgap)) / 3) !important; margin-top: clamp(64px, 9vw, 120px) !important; margin-right: var(--p9a-pgap) !important; }
	body.p9 .p9a-info .fusion-layout-column.p9a-pillar:last-child { margin-right: 0 !important; }
}
@media (min-width: 900px) {
	body.p9 .p9a-info .fusion-layout-column.p9a-info__text,
	body.p9 .p9a-info .fusion-layout-column.p9a-stack { width: calc(50% - var(--p9a-split) / 2) !important; }
	body.p9 .p9a-info .fusion-layout-column.p9a-info__text { margin-right: var(--p9a-split) !important; }
	body.p9 .p9a-info .fusion-layout-column.p9a-stack { margin-top: 0 !important; }
}
body.p9 .p9a-stack .fusion-column-wrapper { position: relative; padding-bottom: 18% !important; }
body.p9 .p9a-stack .fusion-image-element:first-child { width: 78%; }
body.p9 .p9a-stack .fusion-image-element:nth-child(2) { position: absolute; right: 0; bottom: 0; width: 52%; box-shadow: -18px -18px 0 var(--p9-ivory); }
body.p9 .p9a-stack img { aspect-ratio: 4 / 5; object-fit: cover; }
/* separatore unico sopra i tre punti, come nella home originale: la linea attraversa anche gli spazi tra le colonne */
body.p9 .p9a .fusion-layout-column.p9a-pillar { position: relative; clip-path: none !important; padding-top: clamp(40px, 5vw, 64px) !important; }
body.p9 .p9a-pillar::before { content: ""; position: absolute; top: 0; left: 0; right: 0; border-top: 1px solid rgba(29,27,24,.15); }
@media (max-width: 767px) {
	body.p9 .p9a-pillar ~ .p9a-pillar::before { display: none; }
	body.p9 .p9a .fusion-layout-column.p9a-pillar ~ .p9a-pillar { padding-top: 0 !important; }
}
@media (min-width: 768px) {
	body.p9 .p9a-pillar::before { right: calc(-1 * var(--p9a-pgap)); }
	body.p9 .p9a-pillar:last-child::before { right: 0; }
}
body.p9 .p9a-pillar .p9-ico { width: 34px; height: 34px; color: #9c7a39; margin-bottom: 18px; stroke-width: 1.1; }
body.p9 .p9a-pillar h3 { font-size: 1.8rem !important; margin-bottom: .35em !important; }
body.p9 .p9a-pillar p { font-size: 16.5px; line-height: 1.7; color: #3d3933; }

/* ---------- 3. banda con citazione + scritta che scorre ---------- */
body.p9 .p9a-band { min-height: 78vh; min-height: 78svh; display: flex !important; align-items: center; background-size: cover !important; }
body.p9 .p9a-band::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0,0,0,.55); pointer-events: none; }
body.p9 .fusion-fullwidth.p9a-band > .fusion-builder-row.fusion-row { --p9a-max: 1000px; text-align: center; }
body.p9 .p9a-band blockquote { margin: 0 !important; border: 0 !important; padding: 0 !important; background: none !important; font-family: var(--p9-serif) !important; font-style: italic; font-size: clamp(2.2rem, 6.5vw, 5rem) !important; line-height: 1.08 !important; color: var(--p9-text) !important; }
body.p9 .p9a-band .fusion-text { padding-bottom: 1.1em; }
body.p9 .p9a-band__cite { margin: 26px 0 0 !important; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--p9-gold); }
body.p9 .fusion-fullwidth.p9a-marquee > .fusion-builder-row.fusion-row { padding: 0 !important; }

/* ---------- 4. menu e specialità ---------- */
body.p9 .fusion-fullwidth.p9a-menu > .fusion-builder-row.fusion-row { gap: 30px; padding-bottom: 22px !important; }
@media (min-width: 900px) {
	body.p9 .fusion-fullwidth.p9a-menu > .fusion-builder-row.fusion-row { grid-template-columns: 1.1fr .9fr; align-items: end; }
	body.p9 .p9a-menu__sub { grid-column: 1 / -1; }
}
body.p9 .p9a .fusion-layout-column.p9a-menu__sub { margin-top: calc(clamp(48px, 6vw, 80px) - 30px) !important; }
body.p9 .p9a-menu__sub .p9-eyebrow { margin-bottom: 0 !important; }
body.p9 .p9a-menu__links .fusion-column-wrapper { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 12px; }
body.p9 .p9a-menu__links .fusion-column-wrapper > div { margin: 0; width: 100%; }
body.p9 .fusion-button.p9a-menu-link {
	display: flex !important; justify-content: flex-start; width: 100%; gap: 18px; min-height: 0; padding: 22px 24px !important;
	background: transparent !important; border-color: var(--p9-line) !important; color: var(--p9-text) !important; text-align: left;
	transition: border-color .4s, background .4s;
}
body.p9 .fusion-button.p9a-menu-link:hover { border-color: var(--p9-gold) !important; background: rgba(201,164,92,.06) !important; color: var(--p9-text) !important; }
body.p9 .fusion-button.p9a-menu-link .fusion-button-text { font-family: var(--p9-serif) !important; font-size: 1.5rem !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.p9 .fusion-button.p9a-menu-link .fusion-button-text { line-height: 1.2 !important; }
/* sottotitolo: testo del campo "Title" del pulsante, inserito da p945.js */
body.p9 .fusion-button.p9a-menu-link .fusion-button-text small { display: block; font-family: var(--p9-sans) !important; font-size: 12px; font-weight: 400; line-height: 21px; letter-spacing: .14em; text-transform: uppercase; color: var(--p9-muted); }
/* icona (sinistra) e freccia (destra) disegnate via CSS */
body.p9 .fusion-button.p9a-menu-link::before { content: ""; flex: none; width: 28px; height: 28px; background: var(--p9-gold); -webkit-mask: var(--p9a-ico) center / contain no-repeat; mask: var(--p9a-ico) center / contain no-repeat; }
body.p9 .fusion-button.p9a-menu-link::after {
	position: static; inset: auto; z-index: auto; transform: none; margin-left: auto; flex: none; width: 20px; height: 20px; background: var(--p9-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .4s var(--p9-ease);
}
body.p9 .fusion-button.p9a-menu-link:hover::after { transform: translateX(6px); }
.p9a-ico-file { --p9a-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E"); }
.p9a-ico-globe { --p9a-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E"); }

/* specialità: scorrimento orizzontale su mobile, griglia sfalsata su desktop */
body.p9 .fusion-fullwidth.p9a-dishes > .fusion-builder-row.fusion-row {
	grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 74%; gap: 16px;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-padding: 0 var(--p9-gutter);
	padding-top: 0 !important;
}
body.p9 .fusion-fullwidth.p9a-dishes > .fusion-builder-row.fusion-row::-webkit-scrollbar { display: none; }
body.p9 .p9a-dish { scroll-snap-align: start; }
body.p9 .p9a-dish .fusion-imageframe { aspect-ratio: 4 / 5; overflow: hidden; background: #1a1916; }
body.p9 .p9a-dish img { height: 100% !important; object-fit: cover; transition: transform 1.2s var(--p9-ease); }
body.p9 .p9a-dish:hover img { transform: scale(1.06); }
body.p9 .p9a-dish h3 { font-size: 1.55rem !important; margin: 18px 0 4px !important; }
@media (min-width: 700px) { body.p9 .fusion-fullwidth.p9a-dishes > .fusion-builder-row.fusion-row { grid-auto-columns: 42%; } }
@media (min-width: 1100px) {
	body.p9 .fusion-fullwidth.p9a-dishes > .fusion-builder-row.fusion-row { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; gap: 48px 32px; }
}

/* ---------- 5. riconoscimenti e recensioni ---------- */
body.p9 .fusion-fullwidth.p9a-awards > .fusion-builder-row.fusion-row { padding-top: clamp(56px, 8vw, 100px) !important; padding-bottom: 0 !important; }
body.p9 .fusion-fullwidth.p9a-reviews > .fusion-builder-row.fusion-row { gap: 40px; padding-top: clamp(64px, 8vw, 110px) !important; padding-bottom: clamp(56px, 8vw, 100px) !important; }
@media (min-width: 900px) { body.p9 .fusion-fullwidth.p9a-reviews > .fusion-builder-row.fusion-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- 8. regala una cena ---------- */
body.p9 .fusion-fullwidth.p9a-gift > .fusion-builder-row.fusion-row { padding: 0 !important; gap: 0; align-items: stretch; }
@media (min-width: 900px) { body.p9 .fusion-fullwidth.p9a-gift > .fusion-builder-row.fusion-row { grid-template-columns: 1.1fr 1fr; min-height: 86vh; } }
body.p9 .p9a-gift__media { position: relative; min-height: 64vh; }
body.p9 .p9a-gift__media .fusion-column-wrapper, body.p9 .p9a-gift__media .fusion-image-element, body.p9 .p9a-gift__media .fusion-imageframe { position: absolute; inset: 0; height: 100%; }
body.p9 .p9a-gift__media img { height: 100% !important; object-fit: cover; }
body.p9 .p9a-gift__body { display: flex; background: var(--p9-surface); }
body.p9 .p9a-gift__body .fusion-column-wrapper { display: flex !important; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(56px, 8vw, 120px) var(--p9-gutter) !important; }
body.p9 .p9a-gift__body .fusion-text { width: 100%; }
body.p9 .p9a-gift__body .fusion-text:not(.p9-gift__card) > .p9-eyebrow { display: flex; }
body.p9 .p9a-gift__body .p9-gift__card { margin-top: clamp(32px, 4vw, 48px) !important; margin-bottom: 34px; }

/* ---------- 9. contatti ---------- */
body.p9 .fusion-fullwidth.p9a-contact > .fusion-builder-row.fusion-row { gap: clamp(48px, 6vw, 96px); }
@media (min-width: 1000px) { body.p9 .fusion-fullwidth.p9a-contact > .fusion-builder-row.fusion-row { grid-template-columns: 1.1fr .9fr; } }

/* animazioni d'ingresso: gestite da p945.js (data-reveal sulle colonne) */
@media (prefers-reduced-motion: reduce) {
	body.p9 .p9a-hero__content .fusion-column-wrapper > * { animation: none; opacity: 1; transform: none; }
	body.p9 .p9a-hero .swiper-slide img { transition: none; transform: none; }
}
body.p9 .p9a-menu__links .fusion-column-wrapper > div { display: block; width: 100%; }
body.p9 .p9a-center :is(h1, h2, h3, p) { text-align: center !important; }
body.p9 .p9a-gift .fusion-layout-column { align-self: stretch !important; }
body.p9 .p9a-gift__body .fusion-column-wrapper { height: 100%; }
body.p9 .p9a .p9a-center > .p9-muted { margin-bottom: 56px !important; }

/* ---------- parallax e slideshow (classi e attributi aggiunti da p945.js / inc/avada-blocks.php) ---------- */
body.p9 .p9a-hero .awb-background-slider { top: -6% !important; bottom: auto !important; height: 112% !important; will-change: transform; }
body.p9 .p9a-hero .p9a-slide-pic { display: block; width: 100%; height: 100%; }
body.p9 .p9a .fusion-imageframe.p9a-par { overflow: hidden; }
body.p9 .p9a-stack .fusion-imageframe.p9a-par { position: relative; aspect-ratio: 4 / 5; }
body.p9 .p9a .fusion-imageframe.p9a-par img { position: absolute; left: 0; top: -12%; width: 100%; height: 124% !important; aspect-ratio: auto; object-fit: cover; will-change: transform; }

/* "Scorri per scoprire" sotto le specialità finché sono a scorrimento orizzontale (come .p9-swipe-hint) */
@media (max-width: 1099px) {
	body.p9 .fusion-fullwidth.p9a-dishes > .fusion-builder-row.fusion-row { padding-bottom: calc(clamp(80px, 12vw, 160px) + 40px) !important; }
	body.p9 .fusion-fullwidth.p9a-dishes::after {
		content: "Scorri per scoprire"; position: absolute; z-index: 3; left: var(--p9-gutter); bottom: calc(clamp(80px, 12vw, 160px) + 12px);
		display: flex; align-items: center; height: 20px; padding-right: 30px; pointer-events: none;
		font-family: var(--p9-sans); font-size: 11px; line-height: 19.25px; letter-spacing: .24em; text-transform: uppercase; color: var(--p9-muted);
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bab3a7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") right center / 20px 20px no-repeat;
	}
}
/* <picture> aggiunto da inc/avada-blocks.php per il ritaglio mobile: non deve cambiare il layout dell'immagine */
body.p9 .p9a .p9a-pic { display: contents; }
