/* OroseiMeteo: revisione desktop 09/11/2026.
   Attivo solo sopra il breakpoint originale del menu (1040px).
   Nessuna regola per iframe pubblicitari, mappe, canvas o dati meteo. */
@media screen and (min-width: 1041px) {
  /* Logo e menu hanno ciascuno tutta la larghezza disponibile. */
  .site-header .header-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    gap: 8px;
    padding-block: 14px 8px;
  }
  .site-header .brand { align-self: flex-start; min-width: 0; }
  .site-header .brand-crest { width: 44px; height: 54px; flex-basis: 44px; }
  .site-header .brand-copy strong { font-size: 32px; }
  .site-header .brand-copy small { display: block; font-size: 13px; margin-top: 5px; }
  .site-header #mainNav {
    width: 100%; min-width: 0; margin-left: 0;
    display: flex; flex-wrap: wrap;
    align-items: center; justify-content: flex-start;
    column-gap: 20px; row-gap: 0;
    font-size: 16px; white-space: normal;
    border-top: 1px solid var(--om-line);
  }
  .site-header #mainNav > a,
  .site-header #mainNav > details { flex: 0 0 auto; max-width: 100%; }
  .site-header #mainNav > a,
  .site-header #mainNav .nav-dropdown-summary {
    min-height: 42px; gap: 7px; white-space: nowrap;
  }
  .site-header #mainNav .nav-dropdown-menu {
    top: 100%; max-width: min(360px, calc(100vw - 56px));
  }
  .site-header #mainNav .nav-dropdown-menu a { white-space: normal; }
  .site-header #mainNav > details:first-of-type .nav-dropdown-menu {
    left: 0; right: auto; transform: none;
  }
  .site-header #mainNav .nav-discover-group .nav-dropdown-menu {
    left: auto; right: 0; transform: none;
  }
  .site-header #mainNav a:focus-visible,
  .site-header #mainNav summary:focus-visible {
    outline: 2px solid var(--om-blue); outline-offset: 3px;
  }

  /* Allineamento con header, home e footer; i testi conservano i loro limiti. */
  main .container,
  main .maps-shell, main .pollen-shell, main .aqg-shell,
  main .bio-shell, main .wind-shell, main .quake-shell,
  main .credits-shell, main .reviews-container,
  main .area-access-inner, main .om-trend-page .om-wrap {
    width: min(var(--om-container, 1320px), calc(100% - 56px));
    max-width: none; margin-inline: auto;
  }
  main .community-page-hero .container,
  main .contact-container,
  main .scenario-europa__container { max-width: none; }

  /* Evita lo sforamento causato da 100vw e dalla barra di scorrimento. */
  main .vmodel-hero, main .vmarine-hero {
    margin-inline: 0; padding: 38px 0;
  }
  main .webcam-page-head-inner, main .radar-page-head-inner {
    min-height: 0; padding-block: 38px; gap: 28px;
  }
  main .forecast-page-hero, main .page-hero { padding-block: 38px; }
  main .webcam-page-head-copy { flex: 1 1 0; }
  main .webcam-section-nav { flex-wrap: wrap; justify-content: flex-end; }
  main .webcam-section-nav a { white-space: nowrap; }

  /* Gerarchia dei titoli delle sezioni pubbliche, senza toccare la home. */
  main .page-hero h1, main .forecast-page-hero h1,
  main .webcam-page-head h1, main .radar-page-head h1,
  main .vmodel-hero h1, main .vmarine-hero h1,
  main .maps-hero h1, main .pollen-hero h1,
  main .contact-heading h1, main .reviews-heading h1 {
    font-size: clamp(40px, 3.5vw, 52px); line-height: 1.12;
  }

  /* Campi brevi affiancati; messaggio, consenso e CAPTCHA a tutta larghezza. */
  main .contact-layout { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  main .contact-info-card { position: static; }
  main .contact-form, main .reviews-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  main .contact-form > *, main .reviews-form > * { grid-column: 1 / -1; min-width: 0; }
  main .contact-form > .contact-field:has(#contactName),
  main .contact-form > .contact-field:has(#contactEmail),
  main .reviews-form > .reviews-field:has(#reviewName),
  main .reviews-form > .reviews-field:has(#reviewLocation) { grid-column: auto; }
  main .reviews-layout:has(.reviews-empty) {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  }
  main .contact-info-card, main .contact-form-card { border-radius: 12px; }
  /* La tabella mensile sfrutta lo spazio disponibile, con scroll nel suo wrapper. */
  main .report-section .report-table { width: 100%; font-size: 13px; }
  main .report-section .report-table th { font-size: 11px; }
}
