/* ==========================================================================
   LAICA 2026 — tablet e mobile (sotto i 1280px: da qui in giu' c'e' il menu hamburger)
   Il file e' caricato con media="screen and (max-width: 1279px)" e OGNI regola sta dentro
   una media query max-width: il desktop (>=1280px) non viene mai toccato da questo file.
   Soglie: telefono <= 767 · tablet 768–1279.
   ========================================================================== */

/* ---------- Menu hamburger: overlay bianco pieno ---------- */
@media (max-width: 1279px) {
  .menu-overlay {
    background: var(--white);
    display: flex; flex-direction: column;
    overflow-y: auto; overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  /* barra alta quanto l'header: logo al centro, X dove stava l'hamburger */
  .menu-overlay__bar {
    position: sticky; top: 0; z-index: 1;
    flex: 0 0 var(--header-h);
    display: grid; place-items: center;
    background: var(--white);
  }
  .menu-overlay__logo { display: block; width: 150px; will-change: transform; }
  .menu-overlay__logo img { display: block; width: 100%; height: auto; aspect-ratio: 991.6 / 386.85; transform: translateY(-6.7%); }
  .menu-overlay__close {
    position: absolute; right: var(--gutter); top: 50%; translate: 0 -50%;
    width: 44px; height: 44px;
    display: grid; place-items: center;
    background: none; border: 0; padding: 0; cursor: pointer;
    color: var(--cocoa);
    border-radius: 50%;
    transition: background-color 0.3s var(--ease);
  }
  .menu-overlay__close:active { background: rgba(60, 37, 31, 0.07); }
  .menu-overlay__close:focus-visible, .mnav__link:focus-visible, .mnav__sub a:focus-visible { outline: 2px solid var(--toast); outline-offset: 3px; }

  .menu-overlay__nav {
    flex: 1 0 auto;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: clamp(0.5rem, 3vh, 2rem) var(--gutter) max(2rem, env(safe-area-inset-bottom));
  }
  .mnav { list-style: none; margin: 0; padding: 0; width: min(100%, 560px); display: grid; gap: 0.1rem; text-align: center; }
  .mnav > li { margin: 0; }

  /* voci: sempre lo stesso font (serif del sito), nessun cambio al passaggio/tap */
  .mnav__link {
    font-family: var(--serif);
    font-style: normal;
    font-weight: 400;
    font-size: clamp(1.55rem, 5.4vw, 2.05rem);
    line-height: 1.15;
    color: var(--cocoa);
    display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem;
    min-height: 52px;
    padding: 0.3rem 1rem;
    background: none; border: 0; cursor: pointer;
    transition: color 0.3s var(--ease);
    -webkit-tap-highlight-color: transparent;
  }
  .mnav__link:hover, .mnav__link:active, .mnav__link[aria-current="page"], .mnav__toggle[aria-expanded="true"] { color: var(--toast); font-style: normal; }
  .mnav__chev { flex: none; margin-top: 0.15em; transition: transform 0.45s var(--ease-out); }
  .mnav__toggle[aria-expanded="true"] .mnav__chev { transform: rotate(180deg); }

  /* Area Riservata: bottone, staccato dalle pagine */
  .mnav__item--reserved { margin-top: 1.1rem !important; }
  .mnav__item--reserved .mnav__link {
    font-family: var(--sans);
    font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--toast);
    min-height: 46px; padding: 0.4rem 1.4rem;
    border: 1px solid rgba(135, 81, 41, 0.4); border-radius: var(--r-s);
  }

  /* Sottomenu Prodotti (tendina) */
  .mnav__sub { overflow: hidden; }
  .mnav__sub[hidden] { display: none; }
  .mnav__sub-inner {
    margin: 0.4rem auto 1rem;
    padding: 1.1rem 0.4rem 0.4rem;
    border-block: 1px solid rgba(60, 37, 31, 0.1);
    display: grid; gap: 1.15rem;
  }
  .mnav__all { display: flex; justify-content: center; gap: 0.5rem; margin: 0; }
  .mnav__all a {
    font-family: var(--sans); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.11em; text-transform: uppercase;
    color: var(--white); background: var(--cocoa);
    flex: 1 1 0; max-width: 220px;
    display: inline-flex; align-items: center; justify-content: center; text-align: center;
    min-height: 46px; padding: 0 0.6rem;
    border-radius: var(--r-s);
  }
  .mnav__all a + a { color: var(--cocoa); background: transparent; border: 1px solid rgba(60, 37, 31, 0.3); }
  .mnav__group h3 {
    font-family: var(--sans); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--toast); margin: 0 0 0.25rem;
  }
  /* flex centrato: le righe incomplete (1 voce su 2, 2 su 3) restano al centro */
  .mnav__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; }
  .mnav__group li { margin: 0; flex: 0 0 50%; min-width: 0; }
  .mnav__sub .mnav__group a {
    font-family: var(--sans); font-size: 1rem; font-weight: 400; letter-spacing: 0.01em;
    color: var(--ink-soft);
    display: flex; align-items: center; justify-content: center; text-align: center;
    min-height: 44px; padding: 0.2rem 0.3rem;
  }
  .mnav__sub .mnav__group a:active { color: var(--toast); }

  .menu-overlay__lang {
    margin: 1.6rem 0 0;
    display: flex; gap: 0.7rem; align-items: center; justify-content: center;
    font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--muted);
  }
  .menu-overlay__lang a, .menu-overlay__lang [aria-current] { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.4rem; }
  .menu-overlay__lang [aria-current] { color: var(--cocoa); }
  .menu-overlay__lang a { color: var(--muted); }
  .menu-overlay__meta {
    margin: 0.6rem 0 0;
    text-align: center;
    font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--muted);
    text-wrap: balance;
  }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .mnav__group li { flex-basis: 33.333%; }
  .mnav { width: min(100%, 680px); }
}
/* telefoni bassi / orizzontali: voci piu' compatte cosi' il menu sta in una schermata */
@media (max-width: 1279px) and (max-height: 700px) {
  .mnav__link { font-size: clamp(1.3rem, 4.6vw, 1.7rem); min-height: 44px; }
  .mnav__item--reserved { margin-top: 0.6rem !important; }
  .menu-overlay__lang { margin-top: 0.8rem; }
}

/* ==========================================================================
   RESPONSIVE — correzioni tablet e telefono (audit 18/09/2026)
   ========================================================================== */

/* ---------- 1. Bug strutturali (valgono per tutta la fascia) ---------- */
@media (max-width: 900px) {
  /* Testata Qualità: la variante foto 4:3 (3 classi) batteva la regola che impila le colonne (2 classi):
     sotto i 900px restava a 2 colonne con il testo largo 6px, una parola per riga. */
  .page-hero--right .page-hero__grid,
  .page-hero--right.page-hero--photo43 .page-hero__grid { grid-template-columns: 1fr; }
  /* Testate con foto/video: prima il titolo, poi l'immagine (Azienda e Lavora con noi avevano l'ordine opposto) */
  .page-hero--media:not(.page-hero--right) .page-hero__copy { order: -1; }
  /* Blocco Lino Saini impilato: il bottone quasi toccava la testa della figura */
  .company__grid--lino { row-gap: 2.75rem; }
}
@media (max-width: 1279px) {
  /* Numeri: col contatore a regime "5.000.000" allargava la prima colonna e spingeva fuori la seconda */
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stats__item { min-width: 0; padding-inline: 0.75rem; }
}
@media (min-width: 900px) and (max-width: 1279px) {
  /* da 900px in su i quattro numeri stanno in fila come su desktop */
  .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- 2. Etichette troppo piccole e aree di tocco (tablet + telefono) ---------- */
@media (max-width: 1279px) {
  .product-card__line,
  .band__eyebrow,
  .recipe__meta span,
  .news-item__tag,
  .cert__dl,
  .world__list { font-size: 0.75rem; }
  .product-card__formats,
  .figure__cap,
  .newsletter__privacy,
  .footer__legal a { font-size: 0.875rem; }
  .cert p { font-size: 0.9rem; }

  /* tocco >= 44px senza spostare il layout: si allarga l'area, non il segno */
  .showcase__dot { height: 44px; }
  .cert__dl { display: inline-block; margin-top: 0; padding-block: 0.85rem 0.35rem; }
  .quality__link { padding-block: 0.65rem 0.35rem; }
  .footer__col ul { gap: 0; }
  .footer__col a { display: inline-block; padding-block: 0.6rem; }
  .footer__legal ul { gap: 0 1.4rem; }
  .footer__legal a { display: inline-block; padding-block: 0.7rem; }
}

/* ---------- 3. Tablet (768–1279): a 768 il tema usava il layout da telefono ---------- */
@media (min-width: 768px) and (max-width: 1279px) {
  .company__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 3rem); }
  .quality__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recipes__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
  .values, .team { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; }
  .value-card { padding: 1.6rem 1.3rem; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-head--row { flex-direction: row; align-items: flex-end; }
  .footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2rem; }

  /* misura del testo: niente righe da 100+ caratteri */
  .band__sub { max-width: 56ch; margin-inline: auto; }
  .page-hero--center .page-hero__sub { max-width: 60ch; }
  .page-hero--media .page-hero__sub { max-width: 62ch; }
}
@media (min-width: 768px) and (max-width: 900px) {
  .company__grid--lino { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: end; }
  .company__grid--lino .company__copy { justify-self: start; max-width: none; }
  .company__media--lino { max-width: none; justify-self: center; }
  .world__list { columns: 3; }
  .certs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 901px) and (max-width: 1279px) {
  /* testate con video/foto: la colonna testo era 300px, titolo su 5 righe */
  .page-hero--media:not(.page-hero--right) .page-hero__grid { grid-template-columns: minmax(0, 56fr) minmax(0, 44fr); }
  .page-hero--media .page-hero__title { font-size: clamp(1.9rem, 3vw, 2.4rem); }
  .steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- 4. Telefono (<= 767): centrature, leggibilita', ritmo ---------- */
@media (max-width: 767px) {
  /* Regola di pagina: titoli di sezione, sottotitoli e bottoni al centro; il testo lungo resta a sinistra. */
  .section-head { text-align: center; margin-inline: auto; }
  .section-head__title { text-wrap: balance; }
  .section-head__sub { margin-inline: auto; }
  .section-head--row { align-items: center; text-align: center; gap: 1.2rem; margin-bottom: 2.2rem; }

  /* Testate pagina */
  .page-hero { padding-top: calc(var(--header-h) + 2.25rem); }
  .page-hero .container, .page-hero__copy { text-align: center; }
  .page-hero__title { max-width: none; margin-inline: auto; text-wrap: balance; }
  .page-hero__sub { margin-inline: auto; }

  /* Home */
  .products__more { flex-direction: column; align-items: center; text-align: center; }
  .products__more p { margin-inline: auto; }
  .quality__title { text-align: center; }
  .quality__inner > .quality__link { display: table; margin-inline: auto; }
  .stats__num { font-size: clamp(1.6rem, 7.6vw, 2.2rem); }
  .stats__item { padding-block: 1.8rem; }
  .band__eyebrow { letter-spacing: 0.14em; }
  .news-item--media { padding-inline: 0; }
  /* testata della colonna news (kicker + titolo, senza classe propria) */
  .news__list > :first-child:not(.news-item) { text-align: center; }

  /* Blocchi testo + foto impilati: titolo e bottone al centro, paragrafi a sinistra */
  .company__title { text-align: center; text-wrap: balance; }
  .company__copy .btn { display: flex; width: max-content; max-width: 100%; margin-inline: auto; }
  /* Acrostico L-A-I-C-A: le righe restano allineate a sinistra (le iniziali in grassetto fanno colonna),
     ma il blocco sta al centro */
  .lino__acronym { margin-inline: auto; }
  .lino__sign { text-align: center; }
  .company__grid--lino .company__copy > p { text-align: center; text-wrap: pretty; }
  .lino__firma { margin-inline: auto; }

  /* Newsletter */
  .newsletter__inner { text-align: center; }
  .newsletter__form label { text-align: center; }
  .newsletter__field .btn { flex: 1 1 100%; justify-content: center; }
  .newsletter__privacy { text-align: center; }

  /* Azienda: timeline con colonna logo piu' stretta (il testo aveva 26 caratteri per riga) */
  .timeline__item { grid-template-columns: 60px minmax(0, 1fr); column-gap: 0.9rem; }
  .timeline__badge { width: 60px; }

  /* Qualita': certificazioni su una colonna, logo a sinistra e testo a destra */
  .certs { grid-template-columns: 1fr; }
  .cert { grid-template-columns: 88px minmax(0, 1fr); grid-template-rows: auto; column-gap: 1rem; row-gap: 0.25rem; align-items: start; padding: 1.2rem 1.1rem; }
  .cert .cert__logo { grid-row: 1 / span 3; align-self: center; }
  .cert > :not(.cert__logo) { grid-column: 2; }
  .cert__logo { height: auto; margin-bottom: 0; justify-content: center; }
  .cert__logo img { max-width: 100%; max-height: 72px; }

  /* Sostenibilita': titoletti dei tre fronti */
  .value h3 { margin-bottom: 0.45rem; }
  .value + .value { margin-top: 0.4rem; }

  /* Private Label */
  .world__lead { text-align: center; }

  /* Azienda: schede della famiglia */
  .team__card { text-align: center; }

  /* Footer: marchio al centro; "Naviga" a sinistra su due righe, Contatti e Seguici impilati a destra */
  .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.2rem 1.5rem; font-size: 0.97rem; }
  .footer__grid > .footer__col:nth-child(2) { grid-row: span 2; }
  .footer__col a { padding-block: 0.5rem; }
  .footer__brand { grid-column: 1 / -1; text-align: center; }
  .footer__brand img { margin-inline: auto; }
  .footer__legal { justify-content: center; text-align: center; }
  .footer__legal ul { justify-content: center; }
}
@media (max-width: 480px) {
  /* Private Label: 39 Paesi su due colonne (una sola colonna = 1160px di elenco) */
  .world__list { columns: 2; column-gap: 1rem; letter-spacing: 0.08em; line-height: 1.9; }
}

/* ---------- 5. Catalogo e schede prodotto ---------- */
@media (max-width: 1279px) {
  /* chip filtro: area di tocco piena */
  .chip { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .catalog-head__intro { font-size: 1rem; }
  /* testata che contiene solo le briciole (nascoste): resta come semplice distanza dall'header */
  .page-hero:has(> .container > .page-hero__crumb:only-child) { background: none; padding-top: calc(var(--header-h) + 1.25rem); padding-bottom: 0; }
  /* niente "salto" al tocco sulle card (sul touch l'hover resta appiccicato) */
  .product-card:hover { transform: none; box-shadow: none; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  /* Tablet: 3 card per riga (a 2 colonne ogni card era alta 650px: una riga riempiva lo schermo) */
  .product-grid, .product-grid--featured { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(0.9rem, 1.8vw, 1.4rem); }
  .product-card { padding: clamp(0.9rem, 1.7vw, 1.4rem); }
  .product-card__media { margin-bottom: 0.9rem; }
  .product-card__name { font-size: clamp(1.1rem, 1.9vw, 1.3rem); line-height: 1.25; }
  .product-card__desc { font-size: 0.9rem; line-height: 1.5; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
}
@media (max-width: 767px) {
  /* Telefono: 2 card per riga (catalogo, pagine linea, in evidenza). Card compatte: meno padding, titolo e
     testo ridotti, righe limitate (titolo 3, descrizione 3, formati 2) cosi' le file restano pari; il resto
     si legge nella scheda prodotto. */
  .product-grid, .product-grid--featured { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .product-grid .product-card, .pcarousel__track .product-card { padding: 0.7rem 0.7rem 0.85rem; border-radius: 12px; }
  .product-grid .product-card__media, .pcarousel__track .product-card__media { margin-bottom: 0.7rem; border-radius: 8px; }
  .product-grid .product-card__media img, .pcarousel__track .product-card__media img { max-height: 90%; max-width: 88%; }
  .product-grid .product-card__line, .pcarousel__track .product-card__line { font-size: 0.6875rem; letter-spacing: 0.1em; line-height: 1.3; margin-bottom: 0.25rem; }
  .product-grid .product-card__name, .pcarousel__track .product-card__name {
    font-size: 1.04rem; line-height: 1.22; margin-bottom: 0.35rem; overflow-wrap: anywhere;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  }
  .product-grid .product-card__desc, .pcarousel__track .product-card__desc {
    font-size: 0.84rem; line-height: 1.45; margin-bottom: 0.6rem;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
  }
  .product-grid .product-card__tags { gap: 0.25rem; margin-bottom: 0.5rem; }
  .product-grid .product-card__tags li { font-size: 0.6rem; letter-spacing: 0.06em; padding: 0.2rem 0.35rem; }
  .product-grid .product-card__tags li:nth-child(n+3) { display: none; }
  .product-grid .product-card__formats, .pcarousel__track .product-card__formats {
    font-size: 0.75rem; line-height: 1.4; padding-top: 0.55rem;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  }

  /* linea con un solo prodotto: card orizzontale a tutta larghezza (foto a sinistra, testi a destra) */
  .product-grid > .product-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); column-gap: 14px; align-content: center; padding: 12px; }
  .product-grid > .product-card:only-child .product-card__media { grid-column: 1; grid-row: 1 / span 6; margin-bottom: 0; align-self: center; }
  .product-grid > .product-card:only-child > :not(.product-card__media) { grid-column: 2; }
  .product-grid > .product-card:only-child .product-card__formats { margin-top: 0; }

  /* carosello "in evidenza": due card piene + un pezzo della terza (si capisce che scorre) */
  .pcarousel__track { gap: 10px; }
  .pcarousel__track .product-card { width: clamp(150px, 43vw, 190px); }
  .pcarousel::before, .pcarousel::after { width: 16px; }

  /* 8 chip su 3 righe a 375px (erano 4): tutti visibili, utile con la selezione multipla */
  .catalog-filters { gap: 0.4rem; }
  .catalog-filters .chip { padding: 0.4rem 0.7rem; font-size: 0.72rem; letter-spacing: 0.085em; }
}
@media (max-width: 559px) {
  /* numero dispari di prodotti (pagine linea, Ricorrenze, Linea Cucina): l'ultima card sta al centro.
     Escluso il catalogo filtrabile: le card nascoste dal filtro falserebbero il conteggio. */
  main:not(:has(.catalog-filters)) .product-grid > .product-card:last-child:nth-child(odd):not(:only-child) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 5px); }
}
@media (min-width: 560px) and (max-width: 767px) {
  .product-grid, .product-grid--featured { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
}

/* ---------- 5b. Collezioni ---------- */
@media (max-width: 767px) { .catline__media img { aspect-ratio: 2 / 1; } }
@media (min-width: 768px) and (max-width: 1279px) {
  /* due tessere per riga (una per riga = 7-8000px di pagina, banner storici ingranditi 2,5x) */
  .container:has(> .catline) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.6rem, 3vw, 2.4rem) clamp(1.2rem, 2.4vw, 1.8rem); }
  .catline { margin-bottom: 0; }
  .catline__media img { aspect-ratio: 2 / 1; }
  .catline__body { flex-direction: column; gap: 0.3rem; }
  .container:has(> .catline) > .catline:last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 0.75rem); }
}

/* ---------- 5c. Pagine linea ---------- */
@media (max-width: 767px) {
  .line-hero { padding-bottom: 1.5rem; }
  /* banner storici molto larghi (800x156 / 800x110): box 3:1 = meno ritaglio e meno ingrandimento */
  .line-hero .container img[src$="-hero.jpg"], .line-hero .container img[src$="-hero.png"] { aspect-ratio: 3 / 1; }
  /* foto con confezioni: mai tagliate */
  .line-hero .container img[src*="le-ricorrenze-hero"] { aspect-ratio: 4 / 3; }
  .line-hero .container img[src*="i-liquorosi-hero"] { aspect-ratio: 3 / 2; }
  .line-hero + .page-hero { padding-bottom: 1.5rem; }
  .line-hero + .page-hero + .section { padding-top: 2rem; }
  .line-hero + .page-hero .page-hero__title { font-size: clamp(1.75rem, 7.7vw, 2.2rem); line-height: 1.12; }
  .line-hero + .page-hero .page-hero__sub { font-size: 1.0625rem; font-weight: 400; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .line-hero .container img[src$="-hero.jpg"], .line-hero .container img[src$="-hero.png"] { aspect-ratio: 7 / 2; }
  .line-hero + .page-hero .page-hero__title { max-width: 24ch; }
  .line-hero + .page-hero .page-hero__sub { max-width: 64ch; }
}

/* ---------- 5d. Scheda prodotto ---------- */
@media (max-width: 1279px) {
  .pdetail__note { font-size: 0.9375rem; line-height: 1.6; }
  .spec-table th, .spec-table td { font-size: 0.9375rem; padding-block: 0.7rem; }
  .spec-table .spec-sub th { font-size: 0.875rem; }
  .pdetail__formats li { font-size: 0.75rem; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  /* iPad verticale: foto di fianco alla scheda (a una colonna la foto era un quadrato di 700px e il nome
     del prodotto finiva sotto la piega) */
  .pdetail { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); gap: clamp(1.6rem, 4vw, 3rem); }
  .pdetail__media { position: sticky; top: calc(var(--header-h) + 1.25rem); padding: clamp(1.5rem, 4vw, 3rem); }
}
@media (min-width: 768px) and (max-width: 1279px) and (max-height: 640px) {
  .pdetail__media { position: static; }
}
@media (max-width: 767px) {
  .pdetail { gap: 1.5rem; }
  .pdetail__media { padding: 1.5rem; max-width: 420px; width: 100%; margin-inline: auto; }
  .pdetail__line, .pdetail__name, .pdetail__desc, .pdetail__back { text-align: center; }
  .pdetail__name { font-size: clamp(1.75rem, 7.7vw, 2.2rem); text-wrap: balance; }
  .pdetail__formats { justify-content: center; margin-bottom: 1.6rem; }
  .pdetail__back .btn { min-height: 48px; }
}

/* ---------- 5e. Nastro delle linee (home): voci toccabili ---------- */
@media (max-width: 1279px) {
  .marquee { padding-block: 0.2rem; }
  .marquee__track { gap: 1.5rem; }
  .marquee__track a { display: inline-flex; align-items: center; min-height: 48px; padding-inline: 0.4rem; }
}

/* ---------- 6. Caroselli (prodotti in evidenza, news): scorrimento col dito ---------- */
@media (max-width: 1279px) {
  .pcarousel--swipe {
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
  }
  .pcarousel--swipe::-webkit-scrollbar { display: none; }
  .pcarousel--swipe::before, .pcarousel--swipe::after { display: none; }
  .pcarousel--swipe .pcarousel__track > * { scroll-snap-align: start; }
}
@media (max-width: 767px) {
  .news-feed .news-item--media { flex-basis: 78vw; }
  .news-feed .news-item h3 { text-wrap: balance; }
  .filter-chips { justify-content: center; gap: 0.55rem; margin-bottom: 1.8rem; }
}

/* ---------- 7. Ricette ---------- */
@media (max-width: 1279px) {
  /* riga "4 persone · 20 minuti · facile": mai spezzata dentro una voce */
  .recipe__meta { flex-wrap: wrap; gap: 0.15rem 0.7rem; letter-spacing: 0.1em; }
  .recipe__meta span { white-space: nowrap; }
  .page-hero .band__eyebrow { margin-top: 1.1rem; margin-bottom: 0; }
  /* quantita' lunghe ("1 cucchiaio + 100 g per spolverare") allargavano la colonna oltre lo schermo */
  .ingredienti li strong { white-space: normal; flex: 0 0 auto; max-width: 52%; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .ricetta-note { max-width: 62ch; }
}
@media (min-width: 768px) and (max-width: 1180px) {
  /* passaggi: foto di fianco al testo (sotto i 1180 andava a tutta larghezza: 600-800px di foto per 6 volte) */
  .rstep { grid-template-columns: 48px minmax(0, 1fr) minmax(0, 40%); align-items: center; }
  .rstep__num { width: 48px; height: 48px; font-size: 1.2rem; }
  .rstep__media { grid-column: auto; }
  .rstep__body p { font-size: 1rem; }
}
@media (min-width: 768px) and (max-width: 820px) {
  .ricetta-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
}
@media (max-width: 767px) {
  .ricetta-intro { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  /* passaggio: numero e titolo sulla stessa riga, testo e foto a tutta larghezza della card */
  .rstep { grid-template-columns: 40px minmax(0, 1fr); align-items: start; column-gap: 0.85rem; row-gap: 0.9rem; padding: 1.1rem; }
  .rstep__num { width: 40px; height: 40px; font-size: 1.05rem; }
  .rstep__body { display: contents; }
  .rstep__body h3 { grid-column: 2; align-self: center; margin: 0; }
  .rstep__body p { grid-column: 1 / -1; font-size: 1rem; }
  .rstep__media { grid-column: 1 / -1; }
  .rsteps-progress { text-align: center; font-size: 0.8rem; letter-spacing: 0.12em; line-height: 1.7; }
}

/* ---------- 8. Articolo news ---------- */
@media (max-width: 1279px) {
  .single-post .line-hero { padding-bottom: 2.4rem; }
  .line-hero + .page-hero { background: var(--surface); }
  .article-body > h2:first-child { margin-top: 0; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .single-post .line-hero .container img { aspect-ratio: 16 / 9; }
  /* testi legali: allineati al titolo, riga da ~70 caratteri */
  .container.article-body { max-width: var(--max); }
  .container.article-body > * { max-width: 68ch; }
}
@media (max-width: 767px) {
  /* il 21:9 riduceva l'immagine a una striscia di 144px e tagliava le grafiche */
  .single-post .line-hero .container img { aspect-ratio: 3 / 2; }
  .single-post .page-hero__title { font-size: clamp(1.85rem, 7.6vw, 2.3rem); line-height: 1.12; }
}

/* ---------- 9. Contatti e Area riservata ---------- */
@media (max-width: 1279px) {
  .form-consent input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 1px; }
}
@media (min-width: 768px) and (max-width: 1279px) {
  .login-wrap { grid-template-columns: minmax(320px, 1fr) minmax(260px, 300px); }
}
@media (min-width: 768px) and (max-width: 1024px) {
  /* foto decorativa di fianco alle schede contatto, non a tutta larghezza tra form e indirizzi */
  .contact-side { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .contact-side__photo img { height: 100%; aspect-ratio: auto; }
  .contact-side__cards { grid-template-columns: 1fr; }
  .map-card--wide .map-card__frame { height: 360px; }
}
@media (max-width: 767px) {
  .form-actions .btn { width: 100%; justify-content: center; }
  .info-card { text-align: center; padding: 1.6rem 1.4rem; }
  .map-card--wide .map-card__frame { height: 280px; }
  .map-card--wide .map-card__body { padding-inline: 1rem; justify-content: center; text-align: center; }
  .map-card--wide .map-card__body > p { font-size: 1rem; text-wrap: balance; }
  .map-card--wide .nav-choice { justify-content: center; width: 100%; }
  .map-card--wide .nav-choice__row { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 0.6rem; }
  .map-card--wide .nav-choice__row .btn { min-height: 44px; padding-inline: 0.6rem; justify-content: center; }
  .map-card--wide .nav-choice__row .btn:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .login-aside { text-align: center; }
  .login-aside .btn { margin-inline: auto; }
}

/* ---------- 10. Spaziature di testata (telefono) ---------- */
@media (max-width: 767px) {
  /* meno vuoto fra testata e primo blocco */
  .page-hero { padding-bottom: 2rem; }
  .page-hero + .section { padding-top: 2.5rem; }
}

/* ---------- 11. Footer: rifiniture ---------- */
@media (min-width: 768px) and (max-width: 900px) {
  .footer__grid { grid-template-columns: 1.25fr 1fr 1.25fr 0.8fr; gap: 2rem 1.5rem; }
}
@media (max-width: 767px) {
  /* colonna contatti piu' larga: l'indirizzo non va a capo con una parola sola */
  .footer__grid { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
  .footer__legal ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.4rem; justify-items: center; }
}
