/* Ristorante San Lucchese: stile del sito.
   Colori e font arrivano da theme.json (var --wp--preset--*): qui solo composizione e movimento. */

:root {
  --sl-notte: var(--wp--preset--color--notte, #1C1F22);
  --sl-ardesia: var(--wp--preset--color--ardesia, #25292D);
  --sl-crema: var(--wp--preset--color--crema, #F3E9D2);
  --sl-pietra: var(--wp--preset--color--pietra, #B8AF9C);
  --sl-terracotta: var(--wp--preset--color--terracotta, #A64A1D);
  --sl-cotto: var(--wp--preset--color--cotto, #E08A5C);
  --sl-linea: var(--wp--preset--color--linea, #3A3F44);
  --sl-goudy: var(--wp--preset--font-family--goudy);
  --sl-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --sl-header-h: 76px;
  color-scheme: dark;
  accent-color: var(--sl-terracotta);
  scrollbar-color: var(--sl-linea) var(--sl-notte);
}
::selection { background: var(--sl-terracotta); color: var(--sl-crema); }
body { caret-color: var(--sl-cotto); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
:where(a, button, summary, input):focus-visible { outline: 2px solid var(--sl-cotto); outline-offset: 3px; border-radius: 1px; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.wp-block-image { margin-block: 0; }
.wp-block-image img { display: block; }

/* ---------- Bottoni ---------- */
.wp-block-button__link { transition: background-color .2s var(--sl-ease), color .2s, border-color .2s, transform .12s; white-space: nowrap; }
.wp-block-button__link:active { transform: translateY(1px); }
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button .wp-block-button__link.is-style-outline {
  background: transparent; color: var(--sl-crema); border: 1px solid rgba(243, 233, 210, .55);
  padding: calc(.95rem - 1px) calc(1.6rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: rgba(243, 233, 210, .1); border-color: var(--sl-crema); color: var(--sl-crema); }

/* ---------- Testata ---------- */
.wp-block-template-part:has(> .sl-header) { position: sticky; top: 0; z-index: 50; }
.sl-header {
  padding: .8rem max(1.25rem, 4vw); min-height: var(--sl-header-h); align-items: center; gap: 2rem;
  background: var(--sl-notte); border-bottom: 1px solid var(--sl-linea);
  transition: background-color .35s var(--sl-ease), border-color .35s;
}
.sl-header .sl-logo img { width: clamp(140px, 13vw, 180px) !important; }
.sl-header-dx { gap: clamp(1rem, 2.5vw, 2.25rem); }
.sl-menu-principale .wp-block-navigation-item__content { color: var(--sl-crema); text-decoration: none; padding-block: .4rem; position: relative; }
.sl-menu-principale .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--sl-cotto);
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--sl-ease);
}
.sl-menu-principale .wp-block-navigation-item__content:hover::after,
.sl-menu-principale .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.sl-menu-principale .wp-block-navigation-item:last-child { padding-left: 1.4rem; border-left: 1px solid var(--sl-linea); }
.sl-header-cta .wp-block-button__link { padding: .7rem 1.15rem; font-size: .875rem; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--sl-notte) !important; color: var(--sl-crema) !important; padding: 1.5rem max(1.25rem, 4vw); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--sl-goudy); font-size: 2rem; letter-spacing: 0; text-transform: none; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--sl-crema); }

/* Sulle pagine con foto a tutto schermo la testata si appoggia sulla foto e diventa piena scorrendo */
body:is(.home, .page-template-page-hero, .page-template-page-hero-en) .wp-block-template-part:has(> .sl-header) { position: fixed; left: 0; right: 0; }
body:is(.home, .page-template-page-hero, .page-template-page-hero-en) .sl-header:not(.is-solid) {
  background: linear-gradient(to bottom, rgba(18, 20, 22, .72), rgba(18, 20, 22, 0)); border-bottom-color: transparent;
}
body:is(.home, .page-template-page-hero, .page-template-page-hero-en) .sl-header:not(.is-solid) .sl-header-cta { opacity: 0; pointer-events: none; }
.sl-header .sl-header-cta { transition: opacity .3s var(--sl-ease); }
body.admin-bar .wp-block-template-part:has(> .sl-header) { top: var(--wp-admin--admin-bar--height, 32px); }

/* ---------- Hero Home ---------- */
.sl-hero { padding-top: calc(var(--sl-header-h) + 2rem); padding-bottom: 6.5rem; }
.sl-hero .wp-block-cover__inner-container { position: static; display: flex; flex-direction: column; align-items: center; gap: 1.4rem; }
.sl-hero .wp-block-cover__inner-container > * { position: relative; z-index: 1; }
.sl-hero .wp-block-cover__background { background: radial-gradient(ellipse 60% 45% at 50% 52%, rgba(18,20,22,.55), rgba(18,20,22,0) 70%), linear-gradient(180deg, rgba(18,20,22,.6) 0%, rgba(18,20,22,.4) 40%, rgba(18,20,22,.82) 100%) !important; opacity: 1 !important; }
.sl-hero-logo { width: min(520px, 80vw); margin: 0 !important; }
.sl-hero-logo img { width: 100% !important; height: auto; filter: drop-shadow(0 2px 18px rgba(0,0,0,.35)); }
.sl-hero-titolo { max-width: 34ch; margin: 0 !important; color: var(--sl-crema); font-weight: 400 !important; text-shadow: 0 1px 14px rgba(18,20,22,.85), 0 0 2px rgba(18,20,22,.6); }
.sl-stato { margin: 0 !important; font-size: 1.0625rem; font-weight: 400; letter-spacing: .02em; text-shadow: 0 1px 12px rgba(18,20,22,.85), 0 0 2px rgba(18,20,22,.6); display: inline-flex; align-items: center; gap: .6rem; }
.sl-stato.is-aperto::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--sl-cotto); box-shadow: 0 0 0 3px rgba(224,138,92,.25); }
.sl-hero-azioni { margin-top: .4rem; }
.sl-hero .sl-hero-barra {
  position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; gap: 0 !important; margin: 0 !important;
  border-top: 1px solid rgba(243, 233, 210, .18); background: rgba(18, 20, 22, .45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.sl-hero-barra p { margin: 0 !important; padding: 1rem clamp(1rem, 3vw, 2.5rem); font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sl-crema); }
.sl-hero-barra p + p { border-left: 1px solid rgba(243, 233, 210, .18); }
.sl-hero-barra a { color: inherit; text-decoration: none; }
.sl-hero-barra a:hover { color: var(--sl-cotto); }

/* ---------- Testata delle pagine interne ---------- */
.sl-testata { padding-top: var(--sl-header-h); }
.sl-testata .wp-block-cover__background { background: linear-gradient(180deg, rgba(18,20,22,.5) 0%, rgba(18,20,22,.25) 45%, rgba(18,20,22,.85) 100%) !important; opacity: 1 !important; }
.sl-testata .wp-block-cover__inner-container { width: 100%; }
.sl-testata { padding-inline: 0; }
.sl-testata .sl-testata-testo { padding-inline: max(1.25rem, 4vw); }
.sl-testata h1 { margin: 0; max-width: 16ch; }
.sl-testata p { margin-top: .8rem; max-width: 44ch; color: var(--sl-crema); }

/* ---------- Sezioni ---------- */
.sl-intro h2 { margin-bottom: 1.5rem; }
.sl-link-freccia a {
  display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--sl-crema);
  font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500;
}
.sl-link-freccia a::after { content: ""; width: 4rem; height: 1px; background: var(--sl-cotto); transform: scaleX(.6); transform-origin: left; transition: transform .35s var(--sl-ease); }
.sl-link-freccia a:hover::after { transform: scaleX(1); }

.sl-sequenza { gap: 1rem !important; }
.sl-sequenza figure, .sl-sequenza img { width: 100%; }
.sl-sequenza img { height: 100%; object-fit: cover; }
.sl-sequenza > .wp-block-column:first-child img { aspect-ratio: 1.125; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:first-child figure { height: 100%; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:first-child img { aspect-ratio: auto; min-height: 100%; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:last-child { aspect-ratio: 0.75; }
.sl-coppia { gap: 1rem !important; }
.sl-coppia figure, .sl-coppia img { width: 100%; height: 100%; }
.sl-coppia img { object-fit: cover; aspect-ratio: 1.5; }
.sl-coppia > .wp-block-column:last-child img { aspect-ratio: auto; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:last-child { display: grid; grid-template-rows: 1fr 1fr; gap: 1rem; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:last-child figure { height: 100%; min-height: 0; }
.sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:last-child img { aspect-ratio: auto; height: 100%; }
.sl-sequenza > .wp-block-column:last-child > * { margin: 0 !important; }
.sl-sequenza.sl-sequenza-fine { margin-block-end: var(--wp--preset--spacing--60); }
.sl-sequenza.sl-sequenza-fine img { aspect-ratio: 1.4 !important; }

.sl-eventi-home .wp-block-media-text__content, .sl-eventi-spazi .wp-block-media-text__content { padding: clamp(2rem, 6vw, 6rem) clamp(1.25rem, 5vw, 5rem); }
.sl-eventi-home .wp-block-media-text__content > *, .sl-eventi-spazi .wp-block-media-text__content > * { max-width: 34rem; }
.sl-eventi-spazi h3 { margin-top: 1.8rem; margin-bottom: .3rem; font-size: 1.5rem; }
.sl-eventi-spazi h3 + p { margin-top: 0; }
.wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { min-height: 420px; }

.sl-voti-testo { font-family: var(--sl-goudy); font-style: normal; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.42; max-width: 32ch; margin-inline: auto !important; }
.sl-voti-testo strong { font-style: italic; font-weight: 400; color: var(--sl-cotto); white-space: nowrap; }
.sl-voti-testo a { color: var(--sl-crema); text-decoration-color: var(--sl-cotto); text-decoration-thickness: 1px; text-underline-offset: .2em; }

.sl-info .wp-block-column { border-top: 1px solid var(--sl-linea); padding-top: 1.5rem; }
.sl-info h3 { font-size: 1.75rem; margin-bottom: .6rem; }
.sl-info p { margin-block: .45rem; }

.sl-fascia { text-align: center; }
.sl-fascia h2 { margin-bottom: .2rem; }

.sl-spazi { gap: 0; }
.sl-spazi .wp-block-media-text__content { padding-inline: 0 clamp(1.5rem, 5vw, 4.5rem); }
.sl-spazi h3 { margin-top: 1.6rem; margin-bottom: .2rem; }
.sl-spazi h3:first-child { margin-top: 0; }
.sl-spazi h3 + p { margin-top: 0; }
.sl-spazi img, .sl-cantina img { width: 100%; }
.sl-cantina .wp-block-media-text__content { padding-inline: clamp(1.25rem, 4vw, 3.5rem) 0; }
.sl-cantina.is-image-fill-element > .wp-block-media-text__media { min-height: 360px; }

.sl-elenco { list-style: none; padding: 0; margin: 0; }
.sl-elenco li { font-family: var(--sl-goudy); font-size: 1.5rem; padding: .7rem 0; border-bottom: 1px solid var(--sl-linea); }

.sl-menu-sezione { border-top: 1px solid var(--sl-linea); padding-top: 2.2rem; margin-top: 3rem !important; }
.sl-menu-sezione:first-child { margin-top: 0 !important; }
.sl-da-completare {
  border: 1px dashed var(--sl-cotto); padding: 1rem 1.2rem; font-size: .875rem; color: var(--sl-pietra);
  background: rgba(224, 138, 92, .06);
}

.sl-faq .wp-block-details summary {
  font-family: var(--sl-goudy); font-size: clamp(1.25rem, 2vw, 1.5rem); cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem;
}
.sl-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.sl-faq .wp-block-details summary::after { content: "+"; font-family: var(--wp--preset--font-family--jost); font-weight: 300; font-size: 1.6rem; color: var(--sl-cotto); transition: transform .3s var(--sl-ease); line-height: 1; }
.sl-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.sl-faq .wp-block-details > p { color: var(--sl-pietra); margin-top: .8rem; max-width: 60ch; }
.sl-faq .wp-block-details:first-child { border-top: 1px solid var(--sl-linea); }

.sl-contatti h2 { margin-top: 2rem; margin-bottom: .4rem; color: var(--sl-pietra); }
.sl-contatti .wp-block-column > h2:first-child { margin-top: 0; }

.sl-tabella table { border-collapse: collapse; width: 100%; font-variant-numeric: tabular-nums; font-size: .9375rem; }
.sl-tabella th, .sl-tabella td { border: 0; border-bottom: 1px solid var(--sl-linea); padding: .75rem .5rem; text-align: left; vertical-align: top; }
.sl-tabella th { color: var(--sl-pietra); font-weight: 500; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; }
.sl-main-semplice { padding-top: calc(var(--sl-header-h) * .5); }

/* ---------- Piè di pagina ---------- */
.sl-footer { border-top: 1px solid var(--sl-linea); }
.sl-footer-titolo { font-family: var(--wp--preset--font-family--jost) !important; font-size: .8125rem !important; letter-spacing: .16em; text-transform: uppercase; font-weight: 500 !important; color: var(--sl-pietra) !important; margin-bottom: .8rem; }
.sl-footer p { font-size: .9375rem; line-height: 1.8; }
.sl-footer a { color: var(--sl-crema); text-decoration-color: rgba(243,233,210,.35); }
.sl-footer a:hover { color: var(--sl-cotto); text-decoration-color: currentColor; }
.sl-footer .wp-block-separator { border-color: var(--sl-linea); opacity: 1; margin-block: 2.5rem 1rem; }
.sl-footer-legale p { margin: 0; }

.sl-barra-mobile { display: none !important; }
@media (max-width: 781px) {
  .sl-barra-mobile {
    display: flex !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; margin: 0 !important;
    padding: .6rem max(.75rem, env(safe-area-inset-left)) calc(.6rem + env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-right));
    background: rgba(28, 31, 34, .96); border-top: 1px solid var(--sl-linea);
    transform: translateY(0); transition: transform .35s var(--sl-ease);
  }
  .sl-barra-mobile.is-nascosta { transform: translateY(110%); }
  .sl-barra-mobile .wp-block-buttons { width: 100%; gap: .5rem; }
  .sl-barra-mobile .wp-block-button { flex: 1 1 0; }
  .sl-barra-mobile .wp-block-button:first-child { flex: 1.4 1 0; }
  .sl-barra-mobile .wp-block-button__link { width: 100%; padding: .8rem .4rem; font-size: .875rem; text-align: center; }
  body { padding-bottom: calc(4.4rem + env(safe-area-inset-bottom)); }
  .sl-header { gap: 1rem; padding-block: .6rem; --sl-header-h: 64px; }
  :root { --sl-header-h: 64px; }
  .sl-header-cta { display: none !important; }
  .sl-hero .sl-hero-barra { position: static; margin-top: 1.5rem !important; flex-direction: column; background: transparent; backdrop-filter: none; border-top: 0; }
  .sl-hero-barra p { padding: .25rem 0; font-size: .75rem; }
  .sl-hero-barra p + p { border-left: 0; }
  .sl-hero { padding-bottom: 2.5rem; }
  .sl-hero-azioni { flex-direction: column; align-items: stretch !important; width: min(100%, 22rem); }
  .sl-hero-azioni .wp-block-button__link { width: 100%; text-align: center; }
  .sl-sequenza > .wp-block-column:first-child img, .sl-sequenza > .wp-block-column:last-child img { aspect-ratio: 1.4; height: auto; }
  .sl-sequenza > .wp-block-column:last-child { grid-template-rows: auto; aspect-ratio: auto !important; }
  .sl-sequenza:not(.sl-sequenza-fine) > .wp-block-column:first-child img { min-height: 0; aspect-ratio: 1.4; }
  .sl-coppia img { aspect-ratio: 1.4 !important; height: auto; }
  .sl-spazi .wp-block-media-text__content, .sl-cantina .wp-block-media-text__content { padding: 1.5rem 0 0; }
  .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { min-height: 280px; }
  .sl-menu-principale .wp-block-navigation-item:last-child { padding-left: 0; border-left: 0; }
}

/* ---------- Movimento ----------
   Firma: il logo si scrive da sinistra a destra mentre la foto della terrazza si assesta.
   Le sezioni si rivelano una volta sola (a tendina per le foto). Tutto visibile senza JS. */
@keyframes sl-scrivi { from { clip-path: inset(0 100% 0 0); opacity: .2; } to { clip-path: inset(0 0 0 0); opacity: 1; } }
@keyframes sl-assesta { from { transform: scale(1.07); filter: brightness(.7); } to { transform: scale(1); filter: brightness(1); } }
@keyframes sl-sali { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: no-preference) {
  .sl-hero .wp-block-cover__image-background { animation: sl-assesta 2.6s var(--sl-ease) both; }
  .sl-hero-logo { animation: sl-scrivi 1.6s cubic-bezier(.65, 0, .35, 1) .25s both; }
  .sl-hero-titolo { animation: sl-sali .8s var(--sl-ease) 1.05s both; }
  .sl-stato { animation: sl-sali .8s var(--sl-ease) 1.2s both; }
  .sl-hero-azioni { animation: sl-sali .8s var(--sl-ease) 1.35s both; }
  .sl-hero-barra { animation: sl-sali .9s var(--sl-ease) 1.6s both; }
  .sl-testata .wp-block-cover__image-background { animation: sl-assesta 2s var(--sl-ease) both; }
  .sl-testata .sl-riga { animation: sl-sali .8s var(--sl-ease) .2s both; }
  .sl-testata .sl-riga + .sl-riga { animation-delay: .38s; }

  html.sl-motion .sl-rivela:not(.is-visibile) { opacity: 0; transform: translateY(18px); }
  html.sl-motion .sl-rivela { transition: opacity .9s var(--sl-ease), transform .9s var(--sl-ease); }
  html.sl-motion .sl-rivela-img img { transition: clip-path 1.3s var(--sl-ease), transform 1.6s var(--sl-ease); }
  html.sl-motion .sl-rivela-img:not(.is-visibile) img { clip-path: inset(0 0 100% 0); transform: scale(1.06); }
  .sl-rivela-img { overflow: hidden; }
  .sl-sequenza figure:hover img { transform: scale(1.03); transition-duration: .8s; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
