/* RC88 · livello mobile unificato
   Ultimo foglio della Home: compatta i moduli senza cambiare il desktop. */

@media (max-width: 760px) {
  :root {
    --mobile-gutter: 12px;
    --mobile-radius: 16px;
    --mobile-control: 46px;
  }

  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  body {
    padding-bottom: calc(70px + env(safe-area-inset-bottom));
    font-size: 15px;
  }

  .app-shell {
    width: 100%;
    max-width: 100%;
    overflow: clip;
  }

  main#top {
    width: 100%;
    overflow: clip;
  }

  button,
  a.button,
  input,
  select,
  textarea {
    font-size: 16px;
  }

  button,
  a,
  select,
  input[type="checkbox"],
  input[type="radio"] {
    touch-action: manipulation;
  }

  button,
  .button,
  .fr-action,
  .fr-close,
  .fr-surprise,
  .section-home-button,
  .travel-home-banner-hit {
    min-height: var(--mobile-control);
  }

  /* Home: una colonna leggibile, senza margini laterali incoerenti. */
  main#top > .video-hero-header,
  main#top > .home-player-embed,
  main#top > .today-destination,
  main#top > .treasures-showcase,
  main#top > .archive-banner-new,
  main#top > .culture-compass,
  main#top > .kids-home,
  main#top > .routes-atlas-home-banner,
  main#top > .fuori-rotta-home-banner,
  main#top > .narrative-atlas-home-banner,
  main#top > .travel-home-banner,
  main#top > .feed-banner-bare,
  main#top > .search-panel,
  main#top > .topics-section,
  main#top > .collections-panel,
  main#top > .routes-panel,
  main#top > .results-toolbar,
  main#top > .content-section,
  main#top > .editorial-section,
  main#top > .lia-launch-card {
    width: calc(100% - (var(--mobile-gutter) * 2));
    max-width: none;
    margin-left: var(--mobile-gutter) !important;
    margin-right: var(--mobile-gutter) !important;
  }

  main#top > .video-hero-header {
    width: 100%;
    margin-inline: 0 !important;
    padding: 12px 12px 18px;
  }

  .video-home-heading,
  .home-heading-proposal {
    padding: 0 !important;
  }

  .hero-brand-row,
  .home-cinema-banner,
  .home-cinema-banner .hero-logo-svg {
    width: 100%;
    max-width: 100%;
  }

  .home-cinema-banner .hero-logo-svg {
    height: auto;
    max-height: 154px;
  }

  .home-heading-positioning {
    max-width: 38ch;
    margin: 12px auto 0;
    font-size: .89rem;
    line-height: 1.45;
    text-align: center;
  }

  main#top > .home-player-embed {
    margin-top: 12px;
    border-radius: var(--mobile-radius);
  }

  .home-channel-bar {
    display: grid;
    gap: 10px;
    padding: 12px;
  }

  .home-channel-now {
    justify-content: center;
    min-height: 30px;
    margin: 0;
    font-size: .72rem;
    text-align: center;
  }

  .home-channel-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .home-channel-tab {
    min-height: 44px;
    padding-inline: 8px;
    font-size: .72rem;
  }

  .home-player-stage,
  .home-player-pane,
  .home-player-frame {
    width: 100%;
  }

  .home-player-frame {
    display: block;
    aspect-ratio: 16 / 9;
    min-height: 0;
    border: 0;
  }

  .today-destination {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    margin-top: 16px !important;
    border-radius: var(--mobile-radius);
  }

  .today-destination-copy {
    order: 1;
    padding: 22px 18px !important;
  }

  .today-destination-side {
    order: 0;
    min-height: 190px;
    max-height: 230px;
  }

  .today-destination-button,
  .treasures-cta,
  .home-slide-open {
    width: 100%;
    justify-content: center;
  }

  .treasures-showcase {
    margin-top: 18px !important;
    padding: 20px 16px 22px !important;
    border-radius: var(--mobile-radius);
  }

  .treasures-showcase-head h2 {
    font-size: clamp(1.65rem, 9vw, 2.35rem);
    line-height: .98;
  }

  .treasures-lead {
    font-size: .9rem;
    line-height: 1.5;
  }

  .treasures-cta {
    width: 100%;
    margin: 0;
  }

  .routes-atlas-home-banner,
  .fuori-rotta-home-banner,
  .narrative-atlas-home-banner,
  .travel-home-banner,
  .feed-banner-bare,
  .editorial-section {
    border-radius: var(--mobile-radius) !important;
  }

  /* Ricerca e risultati: controlli grandi, niente griglie troppo dense. */
  .search-panel,
  .results-toolbar,
  .topics-section,
  .collections-panel,
  .routes-panel {
    padding: 16px !important;
    border-radius: var(--mobile-radius);
  }

  .search-row,
  .search-fields,
  .filter-row,
  .toolbar-row {
    grid-template-columns: 1fr !important;
    width: 100%;
  }

  .search-field,
  .select-field,
  .search-panel input,
  .search-panel select,
  .results-toolbar select,
  .results-toolbar input {
    width: 100%;
    min-height: 48px;
  }

  .cards-grid,
  .overview-grid,
  .quick-facts,
  .practical-links,
  .editorial-mini .story-grid,
  .google-service-links {
    grid-template-columns: 1fr !important;
  }

  .cards-grid { gap: 12px; }
  .place-card { border-radius: var(--mobile-radius); }
  .card-image { aspect-ratio: 16 / 9; height: auto !important; }
  .card-body { padding: 16px; }
  .card-body h3 { font-size: 1.45rem; }
  .card-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .card-actions .button,
  .card-actions .card-route { width: 100%; justify-content: center; }

  /* Pagine interne: titolo, intro, filtri, contenuti. */
  .travel-page,
  .monuments-page,
  .traditions-page,
  .fuori-rotta-page,
  .narrative-atlas-page,
  .video-page,
  .cinema-page,
  .feed-page,
  .tv-page,
  .rassegna-page,
  .discovery2-page {
    min-height: calc(100dvh - 4px);
    padding-bottom: 84px;
  }

  .travel-page-shell,
  .narrative-atlas-shell,
  .fuori-rotta-shell {
    width: 100%;
    max-width: none;
  }

  .travel-page-intro,
  .monuments-hero,
  .traditions-hero,
  .fr-page-head,
  .narrative-atlas-head {
    padding: 22px 16px 20px !important;
  }

  .travel-page-intro h1,
  .monuments-hero h1,
  .traditions-hero h1,
  .fr-page-head h1,
  .narrative-atlas-head h1 {
    max-width: none;
    font-size: clamp(2rem, 11vw, 3.5rem);
    line-height: .95;
  }

  .travel-page-intro p,
  .fr-page-lead,
  .narrative-atlas-lead,
  .traditions-hero-lead {
    margin-top: 12px;
    font-size: .93rem;
    line-height: 1.5;
  }

  .fr-page-head,
  .narrative-atlas-head {
    display: grid;
    gap: 16px;
    align-items: start;
    margin-bottom: 0;
  }

  .fr-close,
  .narrative-atlas-close,
  .monuments-back,
  .traditions-back,
  .section-home-button {
    width: 100%;
    justify-content: center;
  }

  .routes-atlas-switcher,
  .narrative-atlas-toolbar,
  .fr-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin: 0 16px 16px;
    padding: 12px;
    border-radius: var(--mobile-radius);
  }

  .routes-atlas-switcher {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 16px;
  }

  .routes-atlas-switch,
  .narrative-atlas-toolbar button,
  .narrative-atlas-toolbar select,
  .narrative-atlas-search,
  .fr-filter select,
  .fr-surprise {
    width: 100%;
    min-height: 46px;
  }

  .fr-grid,
  .narrative-atlas-grid,
  .narrative-atlas-results,
  .atlas-story-grid {
    grid-template-columns: 1fr !important;
  }

  .fr-grid,
  .narrative-atlas-results,
  .narrative-atlas-stage,
  .narrative-atlas-content {
    margin-inline: 16px;
  }

  .fr-card,
  .narrative-atlas-card,
  .atlas-story,
  .narrative-atlas-story {
    padding: 16px;
    border-radius: var(--mobile-radius);
  }

  .fr-card-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fr-card-actions,
  .fr-pdf-dialog-actions,
  .narrative-atlas-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .fr-card-actions > *,
  .fr-pdf-dialog-actions > *,
  .narrative-atlas-actions > * { width: 100%; }

  /* Modali e schede: leggibili con una mano, senza dialoghi più larghi del vetro. */
  dialog,
  #detailDialog,
  .fr-pdf-dialog,
  .share-sheet-dialog,
  .admin-access-dialog,
  .admin-export-dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 24px) !important;
    border-radius: 18px;
  }

  dialog::backdrop { background: rgba(20, 15, 11, .56); }

  #detailDialog .dialog-content,
  #detailDialog .detail-content,
  .fr-pdf-preview {
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  #detailDialog .detail-actions,
  .dialog-actions,
  .share-sheet-actions,
  .admin-access-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  #detailDialog .detail-actions > *,
  .dialog-actions > *,
  .share-sheet-actions > *,
  .admin-access-actions > * { width: 100%; }

  .dialog-close,
  .fr-pdf-dialog-close {
    width: 44px;
    height: 44px;
    min-height: 44px;
  }

  /* Footer e accessi persistenti: niente sovrapposizioni alla barra inferiore. */
  footer,
  .site-footer,
  .public-footer {
    padding: 24px 16px 98px !important;
  }

  .admin-access-trigger {
    bottom: calc(70px + env(safe-area-inset-bottom));
  }

  .public-export-quick-actions { margin-bottom: 18px; }
  .public-export-box { width: 100%; }

  img,
  video,
  iframe,
  svg {
    max-width: 100%;
  }

  p,
  h1,
  h2,
  h3,
  h4,
  a,
  button,
  label {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 430px) {
  .mobile-bottom-nav {
    bottom: max(5px, env(safe-area-inset-bottom));
    left: 5px;
    right: 5px;
  }

  .mobile-bottom-nav button { font-size: .5rem; }
  .mobile-bottom-nav svg { width: 17px; height: 17px; }

  .home-heading-positioning { font-size: .82rem; }
  .home-channel-tab { font-size: .67rem; }
  .fr-card-facts { gap: 6px; }
  .fr-card-facts strong { font-size: .7rem; }
  .section-heading h2,
  .results-toolbar h2 { font-size: 1.45rem; }
}

/* La Home deve dichiarare subito la propria natura culturale. Questi moduli
   erano già presenti ma nascosti: su telefono diventano una sequenza breve,
   riconoscibile e leggibile, senza spostare gli eventi in alto. */
@media (max-width: 760px) {
  main#top > .video-hero-header .home-heading-kicker-culture {
    display: block;
    margin: 0 auto 10px;
    color: #ffd27a;
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .16em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
  }

  main#top > .video-hero-header .home-heading-positioning {
    max-width: 36ch;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 210, 122, .32);
    color: #fff8ed;
    font-size: .98rem;
    font-weight: 750;
    line-height: 1.48;
  }

  main#top > .archive-banner-new,
  main#top > .culture-compass {
    width: calc(100% - 24px) !important;
    margin-left: 12px !important;
    margin-right: 12px !important;
  }

  main#top > .archive-banner-new {
    margin-top: 8px;
    margin-bottom: 12px;
  }

  main#top > .culture-compass {
    margin-top: 18px;
    margin-bottom: 22px;
    border-top-width: 5px;
  }

  main#top > .culture-compass .culture-compass-copy {
    padding-bottom: 2px;
  }

  main#top > .culture-compass .culture-compass-kicker {
    margin-bottom: 9px;
    font-size: .62rem;
    letter-spacing: .14em;
  }

  main#top > .culture-compass .culture-compass-copy h2 {
    font-size: clamp(2rem, 10vw, 2.65rem);
    line-height: .98;
  }

  main#top > .culture-compass .culture-compass-lead {
    max-width: 31ch;
    margin-top: 12px;
    margin-bottom: 0;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.48;
  }

  main#top > .culture-compass .culture-compass-feature-banners {
    gap: 10px;
  }

  main#top > .culture-compass .culture-compass-feature-banners > * {
    min-height: 126px;
  }

  main#top > .culture-compass .culture-card {
    min-height: 136px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .treasures-rail { scroll-behavior: auto; }
}
