/* ============================================================
   Camillo — Mobile overrides  (≤ 767px)
   Caricato dopo brand.css su ogni pagina.
   ============================================================ */

@media (max-width: 767.98px) {

  /* ── 0. BASE ─────────────────────────────────────────────── */
  body,
  .wp-site-blocks {
    overflow-x: hidden;
    width: 100%;
  }

  /* ── 1. HEADER ───────────────────────────────────────────── */
  /* Header TRASPARENTE: l'immagine dell'hero parte da y=0 e l'header
     ci galleggia sopra, con logo+lang+hamburger in bianco —
     identico al desktop. */
  header .wp-block-group.alignwide,
  header .wp-block-group.is-content-justification-space-between {
    padding-left: 20px !important;
    padding-right: 6px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  /* Logo mobile — dimensione più generosa */
  #logo-bianco img,
  #logo-bianco svg {
    width: 130px !important;
  }
  /* Forza il colore bianco: l'SVG usa fill="currentColor" ma caricato
     via <img> ignora il color CSS del contesto. Invertiamo i pixel. */
  #logo-bianco img {
    filter: brightness(0) invert(1);
  }

  /* Bottone hamburger — più grande e facile da toccare */
  .wp-block-navigation__responsive-container-open {
    padding: 8px 6px 8px 8px !important;
    min-width: 52px;
    min-height: 52px;
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
  .wp-block-navigation__responsive-container-open svg {
    width: 42px !important;
    height: 42px !important;
  }

  /* ── 1b. SELETTORE LINGUA nel menu header mobile ─────────── */
  /* Il wrapper del lang switcher ha block-visibility-hide-small-screen
     (display:none su mobile). Lo distinguiamo dagli altri elementi nascosti
     dello stesso header tramite la combinazione classes che ha SOLO lui:
     .wp-block-group + .is-layout-constrained + .has-global-padding
     (il desktop logo e l'h1 non hanno is-layout-constrained). */
  header .wp-block-group.is-layout-constrained.block-visibility-hide-small-screen,
  header .block-visibility-hide-small-screen.has-global-padding.is-layout-constrained,
  header .block-visibility-hide-small-screen:has(.polylang-switcher-inline) {
    display: flex !important;
    align-items: center;
    padding: 0 !important;
    margin-right: 0;
  }

  /* Azzera gap tra lang switcher e nav hamburger */
  header [class*="wp-container-core-group-is-layout-"] {
    gap: 0 !important;
  }
  header .polylang-switcher-inline {
    font-family: var(--font-display);
    font-size: clamp(12px, 6vw, 45px);
    font-weight: 400;
    letter-spacing: -0.023em;
    text-transform: uppercase;
    line-height: 1;
    color: #fff;
  }
  header .polylang-switcher-inline a {
    color: #fff;
    text-decoration: none;
  }
  header .polylang-switcher-inline .divider {
    font-weight: 400;
  }

  /* ── 2. MAIN margin-top ──────────────────────────────────── */
  /* Manteniamo il margin-top negativo del main (style.css: -151px)
     anche su mobile, così l'hero parte da y=0 e l'header ci galleggia
     sopra — stesso comportamento del desktop. */

  /* ── 3. GLOBAL PADDING ───────────────────────────────────── */
  /* WP usa --wp--style--root--padding-* per calcolare i margin negativi
     dei blocchi .alignfull dentro a contenitori is-layout-constrained.
     Allineiamo questi token al padding di 20px che mettiamo su mobile,
     altrimenti .alignfull sfora di 12px per lato. */
  :root,
  body {
    --wp--style--root--padding-left: 20px !important;
    --wp--style--root--padding-right: 20px !important;
    --wp--style--root--padding-top: 0 !important;
    --wp--style--root--padding-bottom: 0 !important;
  }
  .has-global-padding,
  :where(.wp-block-group.has-global-padding) {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* ── 4. SPACING TOKENS — riduce i valori grandi ─────────── */
  [style*="padding-top:var(--wp--preset--spacing--xxx-large)"],
  [style*="padding-top: var(--wp--preset--spacing--xxx-large)"] {
    padding-top: 40px !important;
  }
  [style*="padding-bottom:var(--wp--preset--spacing--xxx-large)"],
  [style*="padding-bottom: var(--wp--preset--spacing--xxx-large)"] {
    padding-bottom: 40px !important;
  }
  [style*="padding-top:var(--wp--preset--spacing--xx-large)"],
  [style*="padding-top: var(--wp--preset--spacing--xx-large)"] {
    padding-top: 36px !important;
  }
  [style*="padding-bottom:var(--wp--preset--spacing--xx-large)"],
  [style*="padding-bottom: var(--wp--preset--spacing--xx-large)"] {
    padding-bottom: 36px !important;
  }
  [style*="padding-top:var(--wp--preset--spacing--x-large)"],
  [style*="padding-top: var(--wp--preset--spacing--x-large)"] {
    padding-top: 28px !important;
  }
  [style*="padding-bottom:var(--wp--preset--spacing--x-large)"],
  [style*="padding-bottom: var(--wp--preset--spacing--x-large)"] {
    padding-bottom: 28px !important;
  }
  [style*="padding-top:var(--wp--preset--spacing--large)"],
  [style*="padding-top: var(--wp--preset--spacing--large)"] {
    padding-top: 24px !important;
  }
  [style*="padding-bottom:var(--wp--preset--spacing--large)"],
  [style*="padding-bottom: var(--wp--preset--spacing--large)"] {
    padding-bottom: 24px !important;
  }
  [style*="padding-top:var(--wp--preset--spacing--medium)"],
  [style*="padding-top: var(--wp--preset--spacing--medium)"] {
    padding-top: 16px !important;
  }
  [style*="padding-bottom:var(--wp--preset--spacing--medium)"],
  [style*="padding-bottom: var(--wp--preset--spacing--medium)"] {
    padding-bottom: 16px !important;
  }

  /* ── 5. FONT SIZES ───────────────────────────────────────── */
  .has-xxx-large-font-size {
    font-size: clamp(2.4rem, 11vw, 3.6rem) !important;
    line-height: 0.95 !important;
  }
  .has-super-huge-font-size {
    font-size: clamp(2.2rem, 10vw, 3.2rem) !important;
    line-height: 0.95 !important;
  }
  .has-extra-huge-font-size {
    font-size: clamp(1.9rem, 9vw, 2.8rem) !important;
    line-height: 0.98 !important;
  }
  .has-xx-large-font-size {
    font-size: clamp(1.5rem, 7vw, 2.2rem) !important;
    line-height: 1.05 !important;
  }
  .has-xl-heading-font-size {
    font-size: clamp(1.25rem, 5.5vw, 1.8rem) !important;
    line-height: 1.1 !important;
  }
  .has-x-large-font-size {
    font-size: clamp(1.1rem, 5vw, 1.6rem) !important;
  }
  .has-big-font-size {
    font-size: clamp(0.95rem, 4vw, 1.3rem) !important;
  }
  .has-small-plus-font-size {
    font-size: 0.82rem !important;
  }

  /* ── 6. COLUMNS — forza lo stacking ─────────────────────── */
  /* I contenitori con flex-wrap:nowrap generati da WP impediscono
     lo stacking. Override aggressivo con attributo selector. */
  [class*="wp-container-core-columns-is-layout-"] {
    flex-wrap: wrap !important;
  }
  .wp-block-columns {
    flex-wrap: wrap !important;
    gap: 0 !important;
  }
  .wp-block-columns > .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Override per le flex-basis inline (66%, 33%, 50% ecc.) */
  .wp-block-column[style*="flex-basis"] {
    flex-basis: 100% !important;
  }

  /* ── 7. COVER / HERO ─────────────────────────────────────── */
  /* Altezze ridotte su mobile */
  .wp-block-cover[style*="min-height:80vh"],
  .wp-block-cover[style*="min-height: 80vh"] {
    min-height: 65vmax !important;
  }
  .wp-block-cover[style*="min-height:100vh"],
  .wp-block-cover[style*="min-height: 100vh"] {
    min-height: 65vmax !important;
  }
  /* Covers inside stacked columns — altezza proporzionale */
  .wp-block-columns .wp-block-column .wp-block-cover {
    min-height: 70vw !important;
  }
  /* Made in Camillo: immagini ritratto (tortelli, impasto) — più alte */
  body.page-id-30 .wp-block-columns .wp-block-column .wp-block-cover {
    min-height: 90vw !important;
  }

  /* Banner padding compensativo per header */
  /* Il main ha margin-top: -151px (sotto l'header trasparente).
     Aggiungiamo padding-top al cover sufficiente per spingere il contenuto
     sotto la zona dell'header (header h ≈ 90 + offset top ≈ 27 + respiro). */
  main .banner > .wp-block-cover.alignfull:first-child,
  main > .entry-content > .banner:first-child .wp-block-cover.alignfull {
    padding-top: 170px !important;
  }

  /* Spacer da 388px nella sezione Our Vibe — inutile su mobile */
  .wp-block-spacer[style*="388px"] {
    display: none !important;
  }

  /* ── 8. BUTTONS ──────────────────────────────────────────── */
  .wp-block-buttons {
    flex-wrap: wrap !important;
    gap: 10px 0 !important;
  }
  .wp-block-buttons.is-nowrap {
    flex-wrap: wrap !important;
  }
  .wp-block-buttons > .wp-block-button {
    width: 100%;
    display: block;
  }
  .wp-block-button__link {
    width: 100% !important;
    text-align: center !important;
    font-size: 13px !important;
    padding: 0.85em 1em !important;
  }

  /* ── 9. FLOAT RIGHT override ─────────────────────────────── */
  .float-right {
    float: none !important;
    text-align: left !important;
  }
  [class*="wp-container-core-column-is-layout-"] {
    text-align: left !important;
  }

  /* ── 10. HOME — sezione EVENTS & WHATS ON ────────────────── */
  .has-black-background-color .wp-block-columns {
    flex-direction: column !important;
  }
  .has-black-background-color .wp-block-column {
    width: 100% !important;
    flex-basis: 100% !important;
  }

  /* ── 11. INTENSE PINK section (don't follow us) ──────────── */
  .has-intense-pink-background-color h4.wp-block-heading {
    font-size: clamp(1.3rem, 6vw, 1.9rem) !important;
    line-height: 1.1 !important;
  }

  /* ── 12. FOOTER ──────────────────────────────────────────── */
  footer .wp-block-columns {
    flex-direction: column !important;
  }
  footer .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    text-align: left !important;
  }
  footer .wp-block-column.float-right,
  footer .wp-block-column.is-content-justification-right {
    text-align: left !important;
    justify-content: flex-start !important;
  }
  footer [class*="wp-container-core-column-is-layout-"] {
    text-align: left !important;
  }
  footer #logo-nero img,
  footer #logo-nero svg {
    width: 160px !important;
  }
  /* Orari footer */
  footer .has-displace-2-0-font-family {
    font-size: clamp(1.1rem, 5vw, 1.5rem) !important;
    line-height: 1.25 !important;
  }
  /* Social link row */
  footer p {
    font-size: 0.8rem !important;
    line-height: 1.8;
  }
  /* Spacers inutili nel footer */
  footer .wp-block-spacer {
    height: 24px !important;
  }

  /* Striscia copyright */
  footer .wp-block-group.has-black-background-color {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  /* ── 13. MENU PAGE — sticky nav ─────────────────────────── */
  .menu-page .menu-nav {
    top: 0 !important;
    padding: 12px 16px !important;
    gap: 6px !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .menu-page .menu-nav a {
    font-size: 11px !important;
    padding: 6px 12px !important;
    white-space: nowrap;
  }
  .menu-page .menu-sections {
    padding: 0 !important;
  }
  .menu-page .menu-section {
    padding: 32px 16px !important;
  }
  .menu-page .menu-section__head {
    padding: 0 0 16px !important;
  }
  .menu-page .dish-grid {
    grid-template-columns: 1fr !important;
  }
  .menu-page .menu-section__title {
    font-size: clamp(2rem, 10vw, 3rem) !important;
  }

  /* ── 14. CONTACT page ───────────────────────────────────── */
  .contact-hero {
    min-height: 50vmax !important;
    padding-top: 80px !important;
  }
  .contact-body {
    grid-template-columns: 1fr !important;
    padding: 32px 20px !important;
    gap: 32px !important;
  }
  .contact-map iframe {
    height: 220px !important;
  }

  /* ── 15. OUR VIBES — gallery grid ───────────────────────── */
  .vibes-gallery,
  [class*="vibes-grid"] {
    grid-template-columns: 1fr !important;
  }

  /* ── 16. MADE IN CAMILLO — product cards ────────────────── */
  .mic-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .mic-card {
    min-height: 260px !important;
  }

  /* ── 17. LOCAL TIPS blog ─────────────────────────────────── */
  .blog-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

/* ── HOME (page-id-103) — hero mobile ───────────────────────── */
@media (max-width: 767.98px) {
  /* Hero tipografia proporzionata per mobile */
  body.page-id-103 .banner h2.wp-block-heading {
    font-size: clamp(2.4rem, 11vw, 3.4rem) !important;
    line-height: 1 !important;
    letter-spacing: -0.035em !important;
    margin-bottom: 8px !important;
  }
  body.page-id-103 .banner .has-big-font-size {
    font-size: 1rem !important;
    line-height: 1.4 !important;
    margin-bottom: 20px !important;
  }

  /* ── HOME: WHO WE ARE e tutte le sezioni con alignwide ── */
  body.page-id-103 .wp-block-group.alignwide {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box;
  }
  body.page-id-103 .has-light-pink-background-color h2.wp-block-heading {
    font-size: clamp(2rem, 10vw, 3rem) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.03em !important;
    text-align: center !important;
  }
  body.page-id-103 .has-light-pink-background-color p {
    text-wrap: pretty;
  }

  /* ── HOME EAT / DRINKS — forza stack verticale ── */
  body.page-id-103 .wp-block-columns {
    flex-direction: column !important;
    flex-wrap: wrap !important;
  }
  body.page-id-103 .wp-block-columns > .wp-block-column {
    width: 100% !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
  }
  body.page-id-103 .wp-block-columns .wp-block-column .wp-block-cover {
    min-height: 60vw !important;
  }
}

/* ── MADE IN CAMILLO: titolo appiccicato al logo ─────────────── */
/* La regola generale del banner (mobile.css §7) ha specificità (0,5,1).
   Qui usiamo selettori uguali o più specifici, posizionati dopo nel file. */
@media (max-width: 767.98px) {
  body.page-id-30 main > .entry-content > .banner:first-child > .wp-block-cover.alignfull,
  body.page-id-30 main .banner > .wp-block-cover.alignfull:first-child {
    padding-top: 160px !important;
  }
  body.page-id-30 main .banner .wp-block-cover__inner-container h2.wp-block-heading {
    margin-top: 0px !important;
    margin-bottom: 10px !important;
  }
  body.page-id-30 main .banner .wp-block-cover__inner-container p {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }

  /* PASTA WITH A PERSONALITY: testo PRIMA dell'immagine dei tortelli */
  body.page-id-30 .wp-block-columns:has(img[src*="mic-tortelli"]) > .wp-block-column:first-child {
    order: 2;
  }
  body.page-id-30 .wp-block-columns:has(img[src*="mic-tortelli"]) > .wp-block-column:nth-child(2) {
    order: 1;
  }

  /* Tortelli: usa l'aspect ratio reale dell'immagine — niente crop */
  body.page-id-30 .wp-block-columns:has(img[src*="mic-tortelli"]) .wp-block-cover {
    aspect-ratio: 1137 / 1800 !important;
    min-height: 0 !important;
  }
  /* Dough/bread: aspect ratio reale anche qui */
  body.page-id-30 .wp-block-columns:has(img[src*="mic-dough"]) .wp-block-cover {
    aspect-ratio: 16 / 9 !important;
    min-height: 0 !important;
  }
}

/* ── CONTACT: gap kicker→numero/email troppo grande ──────────── */
@media (max-width: 767.98px) {
  /* margin-bottom:auto sul kicker spinge il titolo in fondo
     al flex-column — su mobile lo azzeriamo */
  .contact-panel__kicker {
    margin-bottom: 10px !important;
  }
  .contact-panel__title {
    margin-top: 0 !important;
    margin-bottom: 8px !important;
    /* WhatsApp: bella grande, ci sta su una riga */
    font-size: clamp(1.6rem, 6vw, 2.4rem) !important;
  }
  /* Email: più lunga — font calibrato per stare su una riga */
  .contact-panel--mail .contact-panel__title {
    font-size: clamp(1rem, 4.4vw, 1.25rem) !important;
    white-space: nowrap;
  }
  .contact-panel__copy {
    margin-bottom: 20px !important;
  }
  .contact-panel {
    padding-top: 36px !important;
    padding-bottom: 36px !important;
    min-height: 0 !important;
  }
}

/* ── OUR VIBES: ordine sezione rosa — lasciato invariato (HTML già corretto) ── */
/* Foto proprietari prima, WHO WE ARE testo dopo — ordine DOM originale. */

/* ── BOOK A TABLE / MANAGE RESERVATION: form mobile-friendly ─── */
@media (max-width: 767.98px) {
  /* Section padding compatto */
  .book-flow {
    padding: 32px 16px 48px !important;
  }
  .book-flow__inner {
    gap: 28px !important;
  }
  /* Title head: tighter */
  .book-flow__head {
    margin-bottom: 24px !important;
    padding-bottom: 16px !important;
    gap: 8px !important;
  }
  .book-flow__head h3 {
    font-size: clamp(28px, 9vw, 40px) !important;
    max-width: none !important;
    line-height: 1 !important;
  }
  .book-flow__head p {
    font-size: 0.9rem !important;
  }

  /* App container */
  .site-booking-app {
    gap: 24px !important;
  }

  /* Steps */
  .book-step__num {
    font-size: 36px !important;
    line-height: 1 !important;
  }
  .book-step__title {
    font-size: 18px !important;
    line-height: 1.05 !important;
  }
  .book-step__hint {
    font-size: 0.78rem !important;
  }

  /* Fields: shadow ridotto (no overflow), padding ridotto */
  .book-step--row {
    gap: 18px !important;
  }
  .book-field {
    padding: 18px !important;
    box-shadow: 4px 4px 0 var(--book-pink-deep) !important;
    column-gap: 12px !important;
    row-gap: 4px !important;
  }
  .book-field:hover,
  .book-field:focus-within {
    box-shadow: 2px 2px 0 var(--book-bordeaux) !important;
    transform: translate(2px, 2px) !important;
  }
  .book-field .book-step__title {
    font-size: 16px !important;
  }
  /* Control: min 16px così iOS non zooma il viewport */
  .book-control {
    font-size: 18px !important;
    line-height: 1.1 !important;
    padding: 6px 0 !important;
  }

  /* Calendar: celle più piccole */
  .book-step--cal {
    padding: 16px !important;
  }
  .booking-calendar {
    grid-auto-columns: 64px !important;
    gap: 8px !important;
  }
  .booking-day {
    min-height: 72px !important;
    padding: 10px 4px !important;
  }
  .booking-day strong {
    font-size: 1rem !important;
  }
  .booking-day span {
    font-size: 0.62rem !important;
    letter-spacing: 0.14em !important;
  }

  /* Slot orari: target più grandi */
  .booking-slots {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)) !important;
    gap: 8px !important;
  }
  .booking-slot {
    min-height: 52px !important;
    font-size: 1rem !important;
  }

  /* Summary ribbon */
  .booking-summary {
    padding: 14px 18px !important;
    min-height: 56px !important;
    font-size: 14px !important;
    gap: 12px !important;
  }

  /* Form: input più alti, font 16px (no zoom iOS), shadow ridotto */
  .book-form__grid {
    gap: 18px !important;
    grid-template-columns: 1fr !important;
  }
  .book-form__grid input,
  .book-form__grid textarea {
    min-height: 52px !important;
    font-size: 16px !important;
    padding: 14px 14px !important;
    box-shadow: 3px 3px 0 var(--book-pink-deep) !important;
  }
  .book-form__grid input:hover,
  .book-form__grid textarea:hover {
    box-shadow: 2px 2px 0 var(--book-pink-deep) !important;
    transform: translate(1px, 1px) !important;
  }
  .book-form__grid input:focus,
  .book-form__grid textarea:focus {
    box-shadow: 0 0 0 var(--book-bordeaux) !important;
    transform: translate(3px, 3px) !important;
  }
  .book-form__grid label {
    font-size: 0.68rem !important;
    gap: 8px !important;
  }
  /* Prefix + Phone: stessa riga ma con proporzioni corrette su mobile */
  .book-phone {
    grid-template-columns: 76px 1fr !important;
    gap: 28px !important;
    align-items: start !important;
  }

  /* Fix: "04" e "Chi sei?" si sovrappongono perché il numero ha
     grid-row:1/span 5 dal CSS base. Resettiamo grid-row su tutti i
     figli del .book-form così scorrono ognuno nella propria riga. */
  .book-form {
    grid-template-columns: 1fr !important;
  }
  .book-form > .book-step__num,
  .book-form > .book-step__title,
  .book-form > .book-form__grid,
  .book-form > #booking-submit,
  .book-form > .booking-message {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .book-form > .book-step__num {
    margin-bottom: 4px;
  }

  /* Stessa cosa per book-step--times: "03" e "A che ora?" non si
     devono sovrapporre */
  .book-step--times {
    grid-template-columns: 1fr !important;
  }
  .book-step--times .book-step__num,
  .book-step--times .book-step__title,
  .book-step--times .booking-slots {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .book-step--times .book-step__num {
    margin-bottom: 4px;
  }

  /* Submit button: full width, target adeguato */
  .book-form > button {
    min-height: 60px !important;
    padding: 14px 18px !important;
    font-size: 17px !important;
    gap: 14px !important;
    width: 100%;
  }
  .book-form > button .book-arrow {
    width: 34px !important;
    height: 34px !important;
    font-size: 1.1rem !important;
  }

  /* Aside */
  .book-aside {
    padding: 20px !important;
    margin-top: 8px !important;
  }
  .book-aside__kicker {
    font-size: 0.78rem !important;
    margin-bottom: 14px !important;
  }
  .book-aside li {
    font-size: 0.88rem !important;
  }

  /* ── MANAGE RESERVATION ── */
  .manage-summary {
    grid-template-columns: 1fr !important;
  }
  .manage-summary p {
    padding: 12px 16px !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(245,193,205,0.3);
  }
  .manage-summary p:last-child {
    border-bottom: 0 !important;
  }
  .manage-form__grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .manage-input,
  .manage-select,
  .manage-textarea {
    min-height: 52px !important;
    font-size: 16px !important;
    padding: 14px 14px !important;
    box-shadow: 3px 3px 0 var(--book-pink-deep) !important;
  }
  .manage-form__grid label {
    font-size: 0.68rem !important;
  }
  .manage-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }
  .manage-btn--primary {
    min-height: 60px !important;
    font-size: 17px !important;
    padding: 14px 18px !important;
  }
  .manage-btn--secondary {
    min-height: 48px !important;
    font-size: 14px !important;
  }
  .reservation-manage-message {
    padding: 14px 18px !important;
    font-size: 15px !important;
    box-shadow: 3px 3px 0 var(--book-pink-deep) !important;
  }

  /* Hero del booking: titolo h2 più contenuto */
  body.page-id-25 .banner h2.wp-block-heading,
  body.page-id-25 .banner h1.wp-block-heading {
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: 1 !important;
  }

  /* La pagina prenotazioni ha un flusso mobile dedicato: lasciamo
     invariati header e hero mentre il resto del sito usa il nuovo header. */
  body.page-id-25 main.wp-block-group {
    margin-top: 0 !important;
  }
  body.page-id-25 header .wp-block-group.alignwide,
  body.page-id-25 header .wp-block-group.is-content-justification-space-between {
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }
  body.page-id-25 header .wp-block-group.is-layout-constrained.block-visibility-hide-small-screen,
  body.page-id-25 header .block-visibility-hide-small-screen.has-global-padding.is-layout-constrained {
    display: none !important;
  }
  body.page-id-25 .wp-block-navigation__responsive-container-open {
    padding: 8px !important;
    min-width: 44px;
    min-height: 44px;
    display: block !important;
  }
  body.page-id-25 .wp-block-navigation__responsive-container-open svg {
    width: 28px !important;
    height: 28px !important;
  }
  body.page-id-25 main .banner > .wp-block-cover.alignfull:first-child,
  body.page-id-25 main > .entry-content > .banner:first-child .wp-block-cover.alignfull {
    padding-top: 80px !important;
  }
}

/* ── Tablet (768–991px): aggiustamenti intermedi ─────────────── */
@media (min-width: 768px) and (max-width: 991.98px) {
  .has-xxx-large-font-size {
    font-size: clamp(3rem, 7vw, 5rem) !important;
  }
  .has-super-huge-font-size {
    font-size: clamp(2.6rem, 6vw, 4.5rem) !important;
  }
  .has-extra-huge-font-size {
    font-size: clamp(2.2rem, 5.5vw, 3.8rem) !important;
  }
  .wp-block-cover[style*="min-height:100vh"],
  .wp-block-cover[style*="min-height: 100vh"] {
    min-height: 75vh !important;
  }
}
