@font-face {
    font-family: 'Roboto Condensed';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/roboto-condensed/roboto-condensed-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Roboto Condensed';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/roboto-condensed/roboto-condensed-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/roboto/roboto-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/roboto/roboto-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
    color-scheme: light;
    --red: #990000;
    --link-hover: #FF0000;
    --link-color: var(--red);
    --title-color: var(--red);
    --section-line: var(--red);
    --separator-color: #CCCCCC;
    --box-bg: #f2f2f2;
    --box-border: #cccccc;
    --tab-border: #bbbbbb;
    --box-title: #666666;
    --box-ink: #333333;
    --metadata-color: #999999;
    --subtitle-color: #777777;
    --summary-color: #565656;
    --article-title: #333333;
    --obituary-title: #666666;
    --latest-ink: #000000;
    --ink: #252525;
    --muted: #686868;
    --line: #dedede;
    /* Separazioni editoriali, distinte dalle cornici dei box e dalle linee rosse. */
    --separator: 1px dotted var(--separator-color);
    --paper: #fff;
    --wash: #f5f5f5;
    --header-band: #f3b30f;
    --footer-ink: #000;
    --footer-hover: #660000;
    --footer-rule: #00000040;
    --sans: 'Roboto Condensed', sans-serif;
    --nav: 'Roboto', sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Georgia, 'Times New Roman', serif; letter-spacing: 0; }
a { color: var(--link-color); text-decoration: none; }
/* Prevale sui colori specifici dei componenti, senza cambiare lo stato normale. */
:root .adaptive-shell a:hover { color: var(--link-hover); text-decoration: none; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
[hidden] { display: none !important; }
/* Tutta la pagina, menu incluso, resta sul foglio centrale della skin. */
div.container.adaptive-shell { position: relative; z-index: 2; width: 100%; max-width: var(--adaptive-shell-width, 1220px); margin-inline: auto; background: var(--paper); }
.page-width { width: calc(100% - 40px); max-width: var(--adaptive-content-width, 1180px); margin-inline: auto; }
.advertising-skin-link { display: none; }
@media screen and (min-width: 1100px) {
    body.has-advertising-skin { margin-top: var(--adaptive-skin-top, 120px); background-size: var(--adaptive-skin-canvas, 1920px) auto; }
    .advertising-skin-link { display: block; position: fixed; inset: 0 0 auto; height: var(--adaptive-skin-top, 120px); z-index: 0; }
    /* Sui portatili si vende la sola fascia alta: i lati sarebbero troppo stretti.
       La copertura e' fuori dal foglio e non intercetta i click sul contenuto. */
    body.has-advertising-skin::before { content: ''; position: fixed; inset: var(--adaptive-skin-top, 120px) 0 0; background: var(--paper); pointer-events: none; z-index: 0; }
}
@media screen and (min-width: 1536px) {
    body.has-advertising-skin::before { display: none; }
    .advertising-skin-link { bottom: 0; height: auto; }
}
.sr-only, .skip-link:not(:focus-visible) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* Il focus da tastiera mostra un link compatto, fuori dal flusso: non deve
   creare una fascia o spostare la pagina quando cambia la larghezza. */
.skip-link:focus-visible { position: fixed; top: 12px; left: 12px; z-index: 10; display: block; width: max-content; max-width: calc(100% - 24px); padding: 12px; background: white; }
.masthead { display: grid; grid-template-columns: 234px minmax(180px, 1fr) 468px; align-items: center; gap: 24px; min-height: 112px; padding-block: 14px; }
.masthead-brand { min-width: 0; }
.masthead-weather { min-width: 0; }
.header-weather { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; align-items: center; font: 12px/1.25 var(--nav); min-height: 80px; }
.weather-location { grid-column: 1 / -1; }
.weather-forecast { grid-column: 1; grid-row: 2 / span 2; }
.weather-today { grid-column: 2; grid-row: 2; }
.weather-tomorrow { grid-column: 2; grid-row: 3; }
.weather-source { grid-column: 1 / -1; }
.weather-location { color: var(--ink); font-weight: 700; overflow-wrap: anywhere; }
.weather-location > span { font-weight: 400; color: var(--muted); }
.weather-location a { color: inherit; }
.weather-location a > span { font-weight: 400; color: var(--muted); }
.weather-page { padding-bottom: 24px; font-family: var(--nav); }
.weather-updated, .weather-note { color: var(--muted); font: 13px/1.5 var(--nav); }
.weather-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 24px 0; }
.weather-day { min-width: 0; padding: 0 18px; border-right: var(--separator); overflow-wrap: anywhere; }
.weather-day:first-child { padding-left: 0; }
.weather-day:last-child { padding-right: 0; border-right: 0; }
.weather-day h2 { display: flex; flex-wrap: wrap; gap: 5px 10px; align-items: baseline; font: 500 18px/1.3 var(--nav); margin: 0 0 16px; }
.weather-day h2 time { color: var(--muted); font-size: 13px; font-weight: 400; }
.weather-day-condition { display: flex; align-items: center; gap: 8px; min-height: 60px; font-size: 14px; }
.weather-day-condition img { flex: 0 0 48px; }
.weather-extremes { display: flex; gap: 22px; margin: 14px 0; }
.weather-extremes dt { color: var(--muted); font-size: 12px; }
.weather-extremes dd { margin: 0; font: 500 28px/1.3 var(--nav); }
.weather-extremes div:last-child dd { color: var(--red); }
.weather-day-wind { font-size: 13px; margin: 8px 0; }
.weather-day-coverage { color: var(--muted); font-size: 11px; line-height: 1.4; }
.weather-note { max-width: 900px; margin: 22px 0; }
.weather-detail { border-bottom: var(--separator); }
.weather-detail > summary { cursor: pointer; padding: 16px 0; font: 500 16px/1.4 var(--nav); }
.weather-table-scroll { overflow-x: auto; overscroll-behavior-x: contain; margin-bottom: 20px; }
.weather-table { width: 100%; border-collapse: collapse; min-width: 590px; font: 13px/1.4 var(--nav); }
.weather-table th, .weather-table td { text-align: left; padding: 10px 12px; border-bottom: var(--separator); }
.weather-table thead { background: var(--wash); }
.weather-table th { font-weight: 500; }
.weather-table small { display: block; color: var(--muted); font-size: 11px; }
.weather-table-condition { display: flex; align-items: center; gap: 8px; }
.weather-table-condition img { flex: 0 0 24px; }
@media (min-width: 768px) and (max-width: 1099px) {
    .weather-days { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
    .weather-day { padding: 0 20px 16px; border-bottom: var(--separator); }
    .weather-day:nth-child(odd) { padding-left: 0; }
    .weather-day:nth-child(even) { border-right: 0; }
    .weather-day:last-child { border-bottom: 0; }
}
@media (max-width: 767px) {
    .weather-days { grid-template-columns: minmax(0, 1fr); margin-block: 12px; }
    .weather-day, .weather-day:first-child, .weather-day:last-child { padding: 16px 0; border-right: 0; border-bottom: var(--separator); }
    .weather-day h2 { margin-bottom: 8px; }
    .weather-extremes { margin: 8px 0; }
}
.weather-forecast { display: flex; align-items: center; gap: 7px; min-height: 40px; }
.weather-forecast img { flex: 0 0 36px; }
.weather-forecast strong { font-size: 25px; font-weight: 500; }
.weather-forecast > span { min-width: 0; overflow-wrap: anywhere; }
.weather-source { font-size: 10px; color: var(--muted); overflow-wrap: anywhere; }
.weather-source a { color: inherit; }
.weather-today, .weather-tomorrow { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 6px; min-height: 26px; font-size: 11px; color: var(--muted); }
.weather-today img, .weather-tomorrow img { flex: 0 0 22px; }
.weather-today > time, .weather-tomorrow > time { min-width: 42px; }
.weather-today > span, .weather-tomorrow > span { color: var(--ink); }
.header-weather.header-weather--compact { display: flex; align-items: center; gap: 6px; min-height: 32px; white-space: nowrap; }
.weather-compact-location, .header-weather--compact > strong { flex: 0 0 auto; }
.header-weather--compact > img { flex: 0 0 24px; width: 24px; height: 24px; }
.header-weather--compact > strong { font-size: 16px; font-weight: 500; }
.weather-compact-condition { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.brand { display: block; }
.brand img { width: 234px; height: 60px; object-fit: contain; }
.masthead-description { margin: 5px 43px 0; font: 11px/1.3 var(--sans); color: var(--muted); }
.header-search { display: flex; width: 100%; max-width: 350px; justify-self: center; font-family: var(--nav); font-size: 13px; }
.header-search input { min-width: 0; width: 100%; border: 1px solid var(--line); padding: 10px; border-radius: 0; background: white; }
.header-search button { padding: 10px 14px; border: 1px solid var(--red); background: var(--red); color: white; }
.header-band { background: var(--header-band); padding-top: 6px; }
.header-band .ad { color: #584100; }
.header-leaderboard { padding-block: 2px 18px; }
.header-links { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: end; gap: 12px; padding-block: 4px 0; }
.header-links--no-affiliates { grid-template-columns: minmax(0, 1fr); }
.main-nav { display: flex; gap: 3px; min-width: 0; font: 400 13px var(--nav); text-transform: uppercase; }
/* Tab di navigazione grafici, senza una fascia estesa sopra le aree skin. */
.main-nav a { display: flex; align-items: center; justify-content: center; min-width: 84px; height: 38px; padding: 9px 10px; border: 1px solid var(--tab-border); border-radius: 8px 8px 0 0; background: #efefef; color: var(--header-band); text-align: center; white-space: nowrap; }
.main-nav a:hover { background: white; }
.main-nav a[aria-current] { background: var(--paper); border-bottom: 0; color: var(--header-band); }
.header-affiliates, .header-partners, .header-social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.header-affiliates { justify-content: end; padding-bottom: 3px; }
.header-partners a, .header-social a { display: block; flex: 0 0 auto; }
.header-partners img { width: 110px; height: 32px; object-fit: contain; }
.header-partners .header-tourism-logo { width: auto; height: 35px; margin-right: 8px; }
.header-social .social-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 4px; }
.header-social .social-icon:hover { background: #ffffff66; }
.header-social .social-icon img { width: 32px; height: 32px; object-fit: contain; }
.category-nav { display: flex; flex-wrap: wrap; column-gap: 22px; border-bottom: var(--separator); font: 13px var(--nav); }
.category-nav a { color: var(--ink); padding: 13px 0; white-space: nowrap; }
.category-nav a[aria-current] { color: var(--red); font-weight: bold; box-shadow: inset 0 -2px var(--red); }
.top-ad { margin-block: 0 22px; }
/* Senza markup pubblicitario non devono restare margini o padding riservati. */
.top-ad:empty, .header-leaderboard:empty { display: none; }
.ad { font: 11px var(--sans); text-align: center; color: #757575; margin: 0; max-width: 100%; }
.ad-space { display: grid; place-items: center; background: var(--wash); border: 1px solid #e9e9e9; margin-inline: auto; max-width: 100%; }
.ad-size::after { content: '300 \00d7 250'; }
.ad--leaderboard .ad-space { width: 990px; height: 250px; }
.ad--leaderboard .ad-size::after { content: '990 \00d7 250'; }
.ad--header-leaderboard .ad-space { width: 728px; height: 90px; }
.ad--header-leaderboard .ad-size::after { content: '728 \00d7 90'; }
.ad--manchette .ad-space { width: 234px; height: 60px; }
.ad--manchette .ad-size::after { content: '234 \00d7 60'; }
.ad--rectangle .ad-space, .ad--inline .ad-space { width: 300px; height: 250px; }
.ad--inline { margin-block: 28px; }
.ad--rail { margin-top: 32px; }
.ad--rail .ad-space { width: 160px; height: 600px; }
.ad--rail .ad-size::after { content: '160 \00d7 600'; }
.ad--tower { margin-top: 30px; }
.ad--tower .ad-space { width: 300px; height: 600px; }
.ad--tower .ad-size::after { content: '300 \00d7 600'; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; font: 12px/1.6 var(--nav); padding-block: 16px 24px; color: var(--muted); }
.breadcrumbs a { color: var(--muted); }
.index-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "main sidebar"; gap: 28px; align-items: start; }
.index-layout > .news-main { grid-area: main; }
.index-layout > .news-sidebar { grid-area: sidebar; }
.news-index-content, .news-main { min-width: 0; }
.news-detail-content { min-width: 0; }
.article-after-adverts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 28px; min-width: 0; }
.article-after-adverts:empty { display: none; }
.article-after-adverts > .advert-slot { margin: 0; }
.news-grid-section { margin-top: 28px; }
.news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 28px; align-items: start; }
.news-grid > .story { margin: 0; min-width: 0; }
.news-grid > .story--row { grid-template-columns: 154px minmax(0, 1fr); }
.news-grid > .story--text { grid-template-columns: minmax(0, 1fr); }
.news-grid > .advert-slot { grid-column: 1 / -1; margin: 0; }
@media (min-width: 768px) and (max-width: 1099px) {
    .news-grid > .story--row { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; }
    .news-grid > .story--text { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .news-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .article-after-adverts { grid-template-columns: minmax(0, 1fr); }
    .article-after-adverts > .advert-slot { margin-inline: -16px; }
    /* Esclusione anche prima di JS: niente ingombro o seconda richiesta mobile. */
    .article-after-adverts > [data-advert-position="after-article-2"] { display: none; }
    /* I 300px ADV usano i margini della pagina, non aggiungono 32px di overflow. */
    .news-grid > .advert-slot { margin-inline: -16px; }
    .news-grid > .story--row { grid-template-columns: minmax(85px, 30%) minmax(0, 1fr); gap: 13px; }
    .news-grid > .story--text { grid-template-columns: minmax(0, 1fr); }
}
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.news-main, .article-main, .news-sidebar { min-width: 0; }
.local-sidebar { font: 14px var(--nav); }
.section-title { font: bold 17px/1.4 var(--sans); color: var(--ink); border-top: 2px solid var(--section-line); padding-top: 12px; margin: 0 0 16px; overflow-wrap: anywhere; }
.local-sidebar .section-title, .territory-links .section-title { font-family: var(--nav); }
.local-sidebar > a { display: block; padding: 12px 0; border-bottom: var(--separator); color: var(--ink); }
.local-sidebar > a[aria-current] { color: var(--red); font-weight: bold; }
.section-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; padding-bottom: 12px; border-bottom: 2px solid var(--section-line); margin-bottom: 22px; }
.section-heading h1 { font: bold 21px/1.35 var(--sans); margin: 0; overflow-wrap: anywhere; }
.section-heading > a { margin-left: auto; font: 12px var(--sans); }
.story { border-bottom: var(--separator); padding-bottom: 22px; margin-bottom: 22px; }
.story-image { display: block; background: var(--wash); overflow: hidden; }
/* L'apertura conserva il rapporto reale: 16:9 nuovi upload, 2:1 pregresso. */
.story-image img { display: block; width: 100%; height: auto; }
.story-meta { display: flex; flex-wrap: wrap; gap: 12px; font: 11px/1.5 var(--sans); color: var(--muted); margin-bottom: 7px; text-transform: uppercase; }
.story-meta .story-author { text-transform: none; }
.story-meta > span:first-child { color: var(--red); }
.story h2 { font-size: 22px; font-weight: normal; line-height: 1.1; margin: 0 0 9px; overflow-wrap: anywhere; }
.story h2 a { color: var(--title-color); }
.story-summary { font-size: 16px; line-height: 1.35; color: var(--summary-color); margin: 0; }
.story--lead .story-image { margin-bottom: 16px; }
.story--lead h2 { font-size: 32px; line-height: 1.08; }
.story--lead .story-summary { font-size: 18px; }
/* Stessa misura per le liste interne e Altre notizie in home. Il riquadro
   quadrato non deve estendersi quando il testo rende la riga piu' alta. */
.story--row, .home-story--other { display: grid; grid-template-columns: 154px minmax(0, 1fr); gap: 18px; }
.story--row .story-image, .home-story--other .story-image { aspect-ratio: 1 / 1; align-self: start; }
.story--row .story-image img, .home-story--other .story-image img { height: 100%; object-fit: contain; }
.story--text { display: block; }
.story--row .story-summary { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.archive-title { margin-top: 32px; }
.updates { margin-bottom: 26px; font-family: var(--sans); }
.updates-tabs { display: flex; border-top: 2px solid var(--section-line); border-bottom: var(--separator); }
.updates-tabs button { flex: 1; border: 0; padding: 13px 8px; background: white; color: var(--muted); font-size: 14px; }
.updates-tabs button[aria-selected=true] { color: var(--red); font-weight: bold; box-shadow: inset 0 -2px var(--red); }
.updates-list { list-style: none; margin: 0; padding: 0; }
.updates-list li { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; padding: 14px 0; border-bottom: var(--separator); }
.updates-list time { color: var(--muted); font-size: 11px; padding-top: 2px; }
.updates-list a { font-size: 14px; line-height: 1.4; color: var(--ink); overflow-wrap: anywhere; }
.updates--latest { padding: 0; background: var(--paper); }
/* Solo l'elenco ha una cornice: nessun bordo esterno intorno alla linguetta. */
.updates--latest .updates-heading { display: flex; align-items: end; padding: 4px 0 0; }
.updates--latest .updates-list { border: 1px solid var(--box-border); padding: 6px; }
.updates--latest .section-title { position: relative; margin: 0 0 -1px; padding: 4px 7px; border: 1px solid var(--tab-border); border-top: 2px solid var(--header-band); border-bottom: 0; border-radius: 4px 4px 0 0; background: var(--paper); color: var(--latest-ink); font: 400 12px/16px var(--nav); }
.updates--latest .updates-list li { grid-template-columns: 42px minmax(0, 1fr); padding-block: 4px; gap: 6px; border-bottom: 0; }
.updates--latest .updates-list time { font: bold 11px/13px Georgia, serif; color: var(--metadata-color); text-align: left; }
.updates--latest .updates-list a { font-size: 13px; line-height: 15px; color: var(--latest-ink); text-transform: uppercase; }
.top-news { margin-top: 28px; }
.top-news-item { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 10px; margin-top: 10px; padding: 10px; border: 1px solid var(--box-border); background: var(--box-bg); }
.top-news-item--text { grid-template-columns: minmax(0, 1fr); }
.top-news-image { display: block; width: 60px; height: 60px; }
.top-news-image img { width: 60px; height: 60px; object-fit: cover; }
.top-news-item time { font: bold 11px/13px Georgia, serif; color: var(--metadata-color); }
.top-news-item h3 { margin: 4px 0 0; font-size: 17px; line-height: 17px; font-weight: normal; overflow-wrap: anywhere; }
.top-news-item h3 a { color: var(--box-title); }
.territory-links { margin-top: 28px; font-family: var(--nav); }
.territory-links > a { display: flex; justify-content: space-between; border-bottom: var(--separator); padding: 12px 0; font-size: 14px; color: var(--ink); }
/* Come box_testate nello storico: unico fondo grigio, titolo piccolo e
   collegamenti Georgia compatti, senza frecce o separatori fra le edizioni. */
.local-editions { margin-top: 10px; padding: 10px; border: 1px solid var(--box-border); background: var(--box-bg); min-width: 0; }
.local-editions-heading { margin: 0; font: bold 11px/13px Georgia, serif; color: var(--metadata-color); }
.local-editions > a { display: block; font: 400 17px/17px Georgia, serif; color: var(--box-title); overflow-wrap: anywhere; }
/* Disegni completi, mai object-fit: cover: le scritte fanno parte del contenuto. */
.cartoon-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.cartoon-tile--lead { grid-column: 1 / -1; }
.cartoon-figure { margin: 0; min-width: 0; }
.cartoon-image-link { display: block; }
.cartoon-image { display: block; width: 100%; height: auto; object-fit: contain; }
.cartoon-image[hidden], .cartoon-unavailable[hidden] { display: none; }
.cartoon-unavailable { display: grid; place-items: center; min-height: 150px; background: var(--wash); color: var(--box-title); font: 14px var(--sans); }
.cartoon-figure figcaption { padding-top: 10px; border-bottom: var(--separator); padding-bottom: 14px; }
.cartoon-figure time { font: 12px var(--sans); color: var(--muted); }
.cartoon-figure h2 { font: bold 19px/1.15 Georgia, serif; margin: 5px 0 0; overflow-wrap: anywhere; }
.cartoon-figure h2 a { color: var(--title-color); }
.cartoon-caption { font: 17px/1.35 Georgia, serif; }
@media (max-width: 767px) { .cartoon-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
/* Il dettaglio apre a tutta larghezza; solo la fascia inferiore ha la sidebar. */
.cartoon-related-layout .cartoon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cartoon-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cartoon-opening-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 24px; }
@media (max-width: 767px) {
    .cartoon-archive-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Il contenitore non deve riservare spazio prima che il client scelga il layout. */
.media-tablet-top-adverts { display: none; }
@media (min-width: 768px) {
    .article-layout:is(.cartoon-sidebar-layout, .media-sidebar-layout) { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
    :is(.cartoon-sidebar-layout, .media-sidebar-layout) > .news-sidebar { display: block; border-top: 0; padding-top: 0; }
}
@media (max-width: 767px) {
    .cartoon-related-layout .cartoon-grid { gap: 20px 12px; }
    .cartoon-related-layout .cartoon-figure h2 { font-size: 16px; }
}
.pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; padding: 12px 0 28px; font: 13px var(--nav); }
.pagination a { padding-block: 10px; }
.pagination span { color: var(--muted); }
.article-kicker { font: bold 13px var(--sans); text-transform: uppercase; }
.article-header h1, .article-main > h1 { font-size: 40px; font-weight: normal; line-height: 1.08; margin: 12px 0 18px; color: var(--article-title); overflow-wrap: anywhere; }
.article-deck { font-size: 21px; line-height: 1.35; color: var(--subtitle-color); margin-bottom: 20px; overflow-wrap: anywhere; }
.full-article .article-deck { color: var(--subtitle-color); }
.article-deck p { margin-block: 0 12px; }
.article-deck ul { padding-left: 24px; }
.article-deck a { color: var(--link-color); text-decoration: underline; }
.article-byline { display: flex; flex-wrap: wrap; gap: 8px 18px; font: 12px/1.6 var(--sans); color: var(--muted); border-top: var(--separator); padding-block: 13px 20px; }
.article-byline > span { font-weight: bold; color: var(--ink); }
.article-byline .article-modified { margin-left: auto; text-align: right; max-width: 100%; }
.article-photo { margin: 0 0 24px; }
.article-photo img { width: 100%; height: auto; max-height: 750px; object-fit: contain; }
.article-video { aspect-ratio: 16 / 9; margin-bottom: 24px; }
.article-video iframe { width: 100%; height: 100%; border: 0; }
/* Necrologie: ritratti integri e annuncio distinto dalle partecipazioni. */
.obituary-filters { display: flex; flex-wrap: wrap; gap: 10px 20px; padding-bottom: 18px; border-bottom: var(--separator); font: 14px/1.4 var(--nav); }
.obituary-main > .section-heading h1 { font-family: var(--nav); }
.obituary-filters [aria-current] { color: var(--red); font-weight: bold; text-decoration: underline; text-underline-offset: 4px; }
.obituary-row { display: flex; gap: 18px; border-bottom: var(--separator); padding-block: 20px; }
.obituary-portrait { display: block; flex: 0 0 90px; width: 90px; height: 120px; }
.obituary-portrait img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: top; }
.obituary-row-copy { min-width: 0; flex: 1; }
.obituary-row h2 { font: bold 24px/1.15 Georgia, serif; margin: 5px 0 7px; overflow-wrap: anywhere; }
.obituary-row p { margin: 0 0 6px; font: 700 16px/1.3 var(--nav); overflow-wrap: anywhere; }
.obituary-row .story-meta { font-family: var(--nav); font-weight: 700; }
.obituary-type, .obituary-participation-link { font: 13px/1.5 var(--sans); }
.obituary-labels { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 5px; color: var(--muted); font: 13px/1.5 var(--sans); }
.obituary-type { color: var(--muted); }
.obituary-participation-link { display: inline-block; }
.obituary-announcement { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; }
.obituary-announcement--text { grid-template-columns: minmax(0, 1fr); }
.obituary-detail-photo { margin: 0; }
.obituary-detail-photo img { display: block; width: 100%; height: auto; }
.obituary-copy { min-width: 0; font: 400 18px/1.4 var(--nav); overflow-wrap: anywhere; }
.obituary-header h1 { font: bold 28px/1.2 Georgia, serif; color: var(--obituary-title); margin: 20px 0 12px; overflow-wrap: anywhere; }
.obituary-header p { margin: 0 0 20px; font-family: var(--nav); font-weight: 700; }
.obituary-opening, .obituary-body { margin-bottom: 22px; }
.obituary-copy p { margin-block: 0 20px; }
.obituary-event { font-family: var(--nav); font-size: 17px; font-weight: 700; }
.obituary-event strong { font-weight: inherit; }
.obituary-agency { margin: 24px 0; }
.obituary-agency img { display: block; max-width: min(100%, 280px); height: auto; }
.obituary-participation { border-top: var(--separator); padding-block: 22px; }
/* Riprende .btn-partecipa del sito corrente senza importare il CSS legacy. */
.obituary-participate { display: inline-block; background: ButtonFace; color: var(--red); border: 1px solid var(--red); padding: 10px; border-radius: 5px; font: 400 13.3333px var(--nav); }
.obituary-actions { margin-top: 22px; }
.obituary-related { margin-top: 36px; }
.obituary-related .obituary-portrait { flex-basis: 60px; width: 60px; height: 80px; }
@media (max-width: 767px) {
    .obituary-announcement { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .obituary-detail-photo { width: 150px; }
    .obituary-header h1 { font-size: 28px; }
    .obituary-portrait { flex-basis: 75px; width: 75px; height: 100px; }
    .obituary-row { gap: 14px; }
    .obituary-row h2 { font-size: 21px; }
}
/* Miniature YouTube native 16:9, distinte dai tagli fotografici delle notizie. */
.video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.video-card { min-width: 0; }
.video-card--lead { grid-column: 1 / -1; }
.video-archive-title { border-top: 0; padding-top: 0; }
.video-thumbnail { display: block; position: relative; aspect-ratio: 16 / 9; background: #111; margin-bottom: 12px; }
.video-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.video-play-mark { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 52px; height: 40px; background: var(--red); color: white; border-radius: 4px; font: 22px var(--sans); }
.video-card h2 { font: bold 22px/1.12 Georgia, serif; margin: 7px 0 0; overflow-wrap: anywhere; }
.video-card--lead h2 { font-size: 30px; }
.video-player { background: #111; }
.video-player iframe { display: block; }
.video-load { display: block; position: relative; width: 100%; height: 100%; padding: 0; border: 0; background: #111; cursor: pointer; }
.video-load img { display: block; width: 100%; height: 100%; object-fit: contain; }
.video-load-label { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); padding: 6px 12px; background: #111; color: white; white-space: nowrap; font: 14px var(--sans); }
.video-external { font: 13px var(--nav); margin: -10px 0 24px; }
@media (max-width: 767px) { .video-grid { grid-template-columns: minmax(0, 1fr); } .video-card--lead h2 { font-size: 26px; } }
.video-opening-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 24px; }
.video-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.video-related-layout .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) {
    .video-archive-grid { grid-template-columns: minmax(0, 1fr); }
    .video-opening-grid, .video-related-layout .video-grid { gap: 20px 12px; }
    .video-opening-grid .video-card h2, .video-related-layout .video-card h2 { font-size: 16px; }
}
.information-body { font: 18px/1.5 Georgia, serif; overflow-wrap: anywhere; }
.information-body h2 { font: 700 20px/1.3 var(--nav); margin: 28px 0 14px; }
.information-body p { margin-block: 0 20px; }
.information-body img { max-width: 100%; height: auto; }
.information-body iframe { display: block; width: 100%; height: 420px; border: 1px solid var(--line); margin-bottom: 12px; }
.information-body hr { border: 0; border-top: var(--separator); margin-block: 24px; }
.information-body a { text-decoration: underline; }
.information-body button { background: var(--paper); border: 1px solid var(--red); border-radius: 4px; color: var(--red); padding: 10px 12px; font: 14px/1.4 var(--nav); max-width: 100%; }
.cookie-preferences-status { display: block; margin-top: 8px; font: 14px/1.4 var(--nav); }
.article-body { font-size: 19px; line-height: 1.5; overflow-wrap: anywhere; }
.article-body p { margin-block: 0 20px; }
.article-body a { text-decoration: underline; }
.article-body img { max-width: 100% !important; height: auto !important; }
.article-body iframe { display: block; max-width: 100% !important; width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
.article-body table { display: block; max-width: 100%; overflow-x: auto; }
.article-body video { width: 100%; }
.article-body pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
.article-copyright { margin: 20px 0 0; color: var(--subtitle-color); font: 11px/1.4 var(--nav); }
.article-copyright small { font: inherit; }
.article-translation { font-size: 17px; }
.article-bottom-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-block: 30px; font: 14px var(--nav); }
.article-links { margin-top: 24px; }
.article-links ul { list-style: none; padding: 0; margin: 0; }
.article-links li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 6px; padding-block: 2px; align-items: baseline; }
.article-links time { font: bold 11px/13px Georgia, serif; color: var(--separator-color); text-align: right; white-space: nowrap; }
.article-links a { font: bold 12px/14px Georgia, serif; color: var(--metadata-color); overflow-wrap: anywhere; }
/* Le due aree superiori hanno righe indipendenti: una sidebar alta non crea
   vuoti tra apertura e primo piano. La fascia inferiore copre entrambe. */
.home-page > .top-ad { margin-top: 18px; }
/* Sospensione temporanea dei segnaposto nel corpo della homepage:
   non devono riservare altezza finche' si collauda il layout editoriale. */
.home-page .ad, .home-page > .top-ad { display: none; }
.home-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.home-primary { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; align-items: start; min-width: 0; }
.home-right { grid-column: 2; grid-row: 1; }
.home-primary > *, .home-right, .home-right > * { min-width: 0; }
.home-opening { grid-column: 1 / -1; }
.home-opening:empty { display: none; }
.home-editorials { grid-column: 1; grid-row: 2 / span 3; }
.home-front, .home-regional-band, .home-local { grid-column: 2; }
.home-front { grid-row: 2; }
.home-regional-band { grid-row: 3; }
.home-local { grid-row: 4; }
/* Due articoli affiancati sull'intera larghezza delle tre colonne superiori. */
.home-other { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.home-other > .section-title, .home-other > .ad { grid-column: 1 / -1; }
.home-notebook { grid-column: 1 / -1; grid-row: 3; }
/* Home, archivio e annunci correlati condividono griglia e tipografia:
   filtri e paginazione restano esterni alla superficie grigia dell'elenco. */
.home-obituaries { grid-column: 1 / -1; grid-row: 4; }
.home-obituaries, .obituary-related, .obituary-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; padding: 16px 20px; background: var(--wash); font-family: var(--nav); }
/* Home e archivio condividono due colonne di annunci e una di partner.
   Il dettaglio singolo conserva il proprio elenco correlato senza loghi extra. */
.home-obituaries { display: block; }
.obituary-directory { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 28px; padding: 16px 20px; background: var(--wash); }
.home-obituaries .obituary-directory { padding: 0; }
.obituary-directory > .obituary-list { padding: 0; min-width: 0; align-content: start; }
.obituary-agencies { display: flex; flex-direction: column; align-items: center; gap: 0; padding-block: 14px; min-width: 0; }
/* Il riquadro resta quadrato; contain conserva il marchio intero senza tagli.
   Il separatore e' interno al riquadro e non ne altera le dimensioni. */
.obituary-agencies a { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; max-width: 200px; aspect-ratio: 1; padding: 16px; min-width: 0; }
.obituary-agencies a:not(:last-child) { border-bottom: 1px solid var(--box-border); }
.obituary-agencies img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; filter: grayscale(100%); transition: filter .2s; }
.obituary-agencies a:hover img, .obituary-agencies a:focus-visible img { filter: grayscale(0%); }
@media (min-width: 768px) and (max-width: 1099px) {
    .obituary-directory { grid-template-columns: minmax(0, 1fr); }
    .obituary-agencies { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; justify-items: center; gap: 0; }
    .obituary-agencies a:not(:last-child) { border-bottom: 0; border-inline-end: 1px solid var(--box-border); }
}
@media (max-width: 767px) {
    .obituary-directory { grid-template-columns: minmax(0, 1fr); padding-inline: 14px; }
    /* Quattro partner in una griglia 2x2, con divisori solo all'interno. */
    .obituary-agencies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; width: 100%; max-width: 400px; margin-inline: auto; }
    .obituary-agencies a:not(:last-child) { border-bottom: 0; }
    .obituary-agencies a:nth-child(-n+2) { border-bottom: 1px solid var(--box-border); }
    .obituary-agencies a:nth-child(odd) { border-inline-end: 1px solid var(--box-border); }
}
:is(.home-obituaries, .obituary-related) > .section-title { grid-column: 1 / -1; font-family: var(--nav); margin-bottom: 0; }
.home-right > * { margin-bottom: 28px; }
.home-right .top-news { margin-top: 0; }
/* Compatta le righe senza eliminare la separazione laterale delle colonne. */
.home-front, .home-local-grid, .home-regional-band { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); row-gap: 0; column-gap: 22px; }
.home-regional-band > * { min-width: 0; }
.home-regional-band--no-cartoons { grid-template-columns: minmax(0, 1fr); }
.home-story { border-bottom: var(--separator); padding-bottom: 0px; margin-bottom: 6px; min-width: 0; overflow-wrap: anywhere; }
.home-story[data-home-slot="terzopiano"] { border-bottom: 0; }
.home-opinions-title a { color: inherit; }
/* Gerarchia della home: il taglio alto prevale; gli altri titoli restano leggeri. */
.home-story h2 { font: 400 20px/1.1 Georgia, serif; margin: 7px 0 10px; }
.home-story h2 a { color: var(--title-color); }
.home-story p { font: 16px/1.35 Georgia, serif; margin: 0 0 10px; color: var(--subtitle-color); }
.home-story-image { display: block; margin-bottom: 12px; }
.home-story-image img { width: 100%; height: auto; }
/* Taglio alto come .caption nello storico: titolo sul fondo della foto,
   sottotitolo e collegamenti editoriali sotto, senza ritagliare l'immagine.
   La griglia sovrapposta lascia crescere la didascalia senza testo fuori dal box. */
.home-opening-media { display: grid; min-width: 0; }
.home-opening-image { display: block; grid-area: 1 / 1; min-width: 0; }
.home-opening-image img { display: block; width: 100%; height: auto; }
.home-opening-media h2 { grid-area: 1 / 1; align-self: end; z-index: 1; margin: 0; padding: 10px; background: rgba(255, 255, 255, .7); font: 400 36px/1.1 Georgia, serif; overflow-wrap: anywhere; }
/* Il rientro del contenitore copre anche i sommari salvati come testo senza <p>. */
.home-opening-summary { padding: 8px 16px 8px 18px; background: linear-gradient(to bottom, #ffffff, var(--wash)); font: 18px/1.35 Georgia, serif; color: var(--metadata-color); overflow-wrap: anywhere; }
.home-opening-media h2 a { color: var(--title-color); }
.home-opening-summary p { font: inherit; color: inherit; margin: 0 0 8px; }
/* Il fondo sfuma dal bordo della foto su sommario e collegati, senza ripartire sull'elenco. */
.home-opening-summary ul, .home-opening-summary ol { list-style: none; padding: 12px 16px 12px 18px; margin: 0; }
/* Riporta l'elenco alla larghezza del fondo, conservando bullet e testo allineati. */
.home-opening-summary > ul, .home-opening-summary > ol { margin-inline: -18px -16px; }
.home-opening-summary li { padding-left: 26px; margin-bottom: 8px; background: url('../assets/icons/social/alguer.it-bullet.svg') no-repeat left .3em; background-size: 14px auto; }
.home-opening-summary li:last-child { margin-bottom: 0; }
.home-story--lead h2 { font-size: 26px; }
.home-story--lead p { font-size: 18px; }
.home-lead-related { font: 400 15px/1.1 Georgia, serif; }
.home-lead-related ul, .home-lead-related ol { margin: 6px 0 0; padding-left: 18px; }
.home-lead-related li { margin-bottom: 6px; }
.home-story--secondary h2 { font-size: 20px; }
.home-story--secondary p { font-size: 16px; }
.home-story--link h2 { font: 400 15px/1.1 Georgia, serif; margin: 0; }
.home-story--link { padding-bottom: 6px; margin-bottom: 6px; }
.home-story--highlight { display: grid; gap: 14px; align-items: center; }
.home-story--highlight { grid-template-columns: minmax(0, 1fr) 180px; background: transparent; padding: 0; border: 0; }
.home-story--highlight .home-story-image { grid-column: 2; grid-row: 1; align-self: center; }
.home-story--highlight .home-story-copy { grid-column: 1; grid-row: 1; min-width: 0; }
.home-story--highlight h2 { font-size: 22px; }
.home-story--highlight p, .home-story--highlight .story-meta { display: none; }
/* Richiami locali: rettangolo editoriale integro, con il titolo sotto. */
.home-local .home-story--compact { display: block; padding-bottom: 6px; }
.home-local .home-story--compact .home-story-image { width: 100%; margin: 0 0 7px; }
.home-local .home-story--compact .home-story-image img { width: 100%; height: auto; }
.home-local .home-story--compact .home-story-copy { min-width: 0; }
.home-local .home-story--compact h2 { font-size: 18px; }
.home-local .home-story { border-bottom: 0; }
/* Desktop: separa i due richiami della colonna laterale locale. */
.home-local [data-home-slot="secalghero"] { border-bottom: var(--separator); }
.home-story--other h2 { font-size: 20px; }
.home-story--other { padding-bottom: 10px; margin-bottom: 12px; }
.home-story--other h2 { margin: 5px 0 6px; }
.home-story--other .home-story-image, .home-story--highlight .home-story-image { margin-bottom: 0; }
.home-story--catalan h2 { font-size: 18px; }
/* Editoriale riprende box_testate/titolo_topnews/txt_altre del sito storico.
   La foto resta orizzontale e integra, con il trattamento B/N originale. */
.home-story--editorial { margin: 0; padding: 10px; border: 1px solid var(--box-border); background: var(--box-bg); }
.home-story--editorial .home-editorial-heading { margin: 0; font: bold 11px/13px Georgia, serif; color: var(--metadata-color); }
.home-editorial-title { margin: 0; font: 400 17px/17px Georgia, serif; }
.home-editorial-title a { color: var(--box-title); }
.home-editorial-photo { width: 100%; max-width: 160px; margin-top: 4px; }
.home-editorial-photo img { width: 100%; height: auto; filter: grayscale(100%); }
.home-editorial-photo picture { display: block; }
@media (max-width: 1099px) {
    .home-editorials .home-editorial-photo { width: 100%; max-width: none; }
}
.home-editorial-summary { margin-top: 4px; font: 400 12px/normal Georgia, serif; color: var(--box-ink); }
.home-editorial-summary p { margin: 0; font: inherit; color: inherit; }
.home-catalan .home-story { background: var(--box-bg); border: 1px solid var(--box-border); padding: 10px; }
/* Un solo riquadro, come box_opinioni nel legacy; le righe possono crescere
   oltre 60px per evitare che titoli lunghi si sovrappongano al ritratto seguente. */
.home-opinions-box { border: 1px solid var(--box-border); background: var(--box-bg); padding: 10px; margin-bottom: 10px; }
.home-opinions-title, .home-opinion-author { margin: 0; color: var(--metadata-color); font: bold 11px/13px Georgia, serif; }
.home-story--opinion { display: flow-root; min-height: 68px; margin: 7px 0 0; padding: 7px 0 0; border: 0; border-top: var(--separator); }
.home-opinion-photo { display: block; float: left; width: 60px; height: 60px; margin: 0 10px 4px 0; }
.home-opinion-photo img { width: 60px; height: 60px; object-fit: contain; filter: grayscale(100%); }
.home-story--opinion h3 { margin: 0; font: 400 17px/17px Georgia, serif; overflow-wrap: anywhere; }
.home-story--opinion h3 a { color: var(--box-title); }
.home-opinion-video { font: 11px/13px var(--sans); margin-left: 5px; }
.home-author, .home-video-link { display: block; font: 13px/1.4 var(--sans); margin-top: 6px; }
.home-author { color: var(--muted); }
.home-cartoon-thumbnails { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; align-items: start; }
.home-cartoon-thumbnails .cartoon-unavailable { min-height: 72px; font-size: 11px; }
:is(.home-obituaries, .obituary-related, .obituary-list) .obituary-row { min-width: 0; padding-block: 14px; gap: 14px; }
:is(.home-obituaries, .obituary-related, .obituary-list) .obituary-row h2 { font: 500 18px/1.2 var(--nav); }
:is(.home-obituaries, .obituary-related, .obituary-list) .obituary-row p { font: 400 14px/1.3 var(--nav); }
:is(.home-obituaries, .obituary-related, .obituary-list) .story-meta { font-weight: 400; }
:is(.home-obituaries, .obituary-related, .obituary-list) :is(.obituary-labels, .obituary-type, .obituary-participation-link) { font-family: var(--nav); }
:is(.home-obituaries, .obituary-related, .obituary-list) .obituary-portrait { flex-basis: 60px; width: 60px; height: 80px; }
@media (max-width: 1099px) {
    /* Sotto il desktop topprimo chiude la prima fascia, prima dei due richiami. */
    .home-story[data-home-slot="topprimo"] { border-bottom: var(--separator); padding-bottom: 10px; margin-bottom: 12px; }
    .home-local [data-home-slot="primalghero"] { border-bottom: var(--separator); }
}
@media (min-width: 768px) and (max-width: 1099px) {
    /* Sul tablet la fascia inferiore torna a tutta larghezza, sotto la sidebar. */
    .home-primary { grid-template-columns: minmax(0, 1fr); }
    .home-primary > * { grid-column: 1; }
    .home-primary > .home-opening { grid-row: 1; }
    .home-editorials { grid-row: 5; }
    .home-other { grid-template-columns: minmax(0, 1fr); }
    .home-front, .home-local-grid { grid-template-columns: minmax(0, 1fr); }
    .home-front-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
    .home-front-secondary > [data-home-slot="secpiano"] { border-bottom: 0; }
    .home-front-secondary > [data-home-slot="terzopiano"] { position: relative; }
    /* Separatore al centro del gap: non riduce le colonne e compare solo
       se terzopiano e' preceduto dall'altro articolo. Nessuna linea sul mobile. */
    .home-front-secondary > [data-home-slot="terzopiano"]:not(:first-child)::before { content: ''; position: absolute; top: 0; bottom: 0; left: -9px; border-left: var(--separator); pointer-events: none; }
    .home-editorials .home-story-image { max-width: 180px; }
    .home-opening-media h2 { font-size: 30px; }
}
@media (min-width: 768px) and (max-width: 1099px) and (orientation: portrait) {
    /* Espone i blocchi alla griglia esterna senza duplicare l'apertura:
       prima riga a tutta larghezza, corpo e sidebar dalla seconda riga. */
    .home-primary { display: contents; }
    .home-primary .home-opening { grid-column: 1 / -1; grid-row: 1; }
    .home-right { grid-column: 2; grid-row: 2 / span 4; }
    .home-other { grid-row: 6; }
    .home-notebook { grid-row: 7; }
    .home-obituaries { grid-row: 8; }
}
@media (max-width: 767px) {
    /* L'ordine mobile e' esplicito: i contenuti laterali non finiscono tutti in coda. */
    .home-grid { display: flex; flex-direction: column; gap: 24px; }
    .home-primary, .home-right, .home-regional-band { display: contents; }
    .home-grid section, .home-grid aside { max-width: 100%; width: 100%; }
    .home-opening { order: 1; }
    .home-front { order: 2; }
    .home-live { order: 3; }
    .home-regional { order: 4; }
    .home-cartoon { order: 4; }
    .home-local { order: 5; }
    .home-editorials { order: 6; }
    .home-opinions { order: 7; }
    .home-other { order: 8; grid-template-columns: minmax(0, 1fr); }
    .home-catalan { order: 9; }
    .home-top { order: 10; }
    .home-notebook { order: 11; }
    .home-obituaries { order: 12; }
    .home-obituaries, .obituary-related, .obituary-list { grid-template-columns: minmax(0, 1fr); padding-inline: 14px; }
    .home-front, .home-local-grid { grid-template-columns: minmax(0, 1fr); }
    .home-cartoon { max-width: 280px; }
    .home-opening-media h2 { font-size: 26px; }
    .home-story--lead h2 { font-size: 24px; }
    .home-story--highlight { grid-template-columns: minmax(0, 1fr) 160px; }
    .home-editorials .home-story-image { max-width: 180px; }
    .home-story--other h2 { font-size: 18px; }
}
/* Moduli pubblici senza larghezze fisse; i dati di fatturazione passano
   da due colonne a una sul mobile senza duplicare i campi. */
.participation-page { max-width: 800px; margin-inline: auto; padding-bottom: 24px; overflow-wrap: anywhere; }
.participation-page > p, .participation-steps { font: 18px/1.45 Georgia, serif; }
.participation-status { border-left: 3px solid var(--red); padding: 12px 16px; background: var(--wash); }
.participation-form { font: 16px/1.4 var(--nav); }
.participation-form fieldset { border: 0; border-top: var(--separator); padding: 20px 0 0; margin: 24px 0; min-width: 0; }
.participation-form legend { font-weight: 700; padding-right: 12px; }
.participation-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.participation-field { min-width: 0; }
.participation-field label { display: block; margin-bottom: 6px; }
.participation-field input, .participation-field textarea { display: block; box-sizing: border-box; width: 100%; max-width: 100%; border: 1px solid #999; border-radius: 0; padding: 10px; background: #fff; color: #333; font: inherit; }
.participation-field textarea { resize: vertical; min-height: 180px; }
.participation-customer { display: flex; flex-wrap: wrap; gap: 24px; margin: 8px 0 20px; }
.participation-consent { display: flex; align-items: start; gap: 10px; }
.participation-consent input { flex: 0 0 auto; margin-top: 4px; }
.participation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 24px; font: 16px/1.4 var(--nav); }
.participation-actions button { border: 1px solid var(--red); border-radius: 0; background: #fff; color: var(--red); font: inherit; padding: 10px 16px; cursor: pointer; }
.participation-actions button:hover { color: var(--link-hover); border-color: var(--link-hover); }
@media (max-width: 767px) {
    .participation-fields { grid-template-columns: minmax(0, 1fr); }
}
.notice { padding: 20px; background: #fff4f4; border-left: 3px solid var(--red); line-height: 1.6; }
.empty { padding-block: 20px; line-height: 1.6; }
/* Fascia esterna al foglio della skin; solo i contenuti interni hanno larghezza
   vincolata. Il livello copre la pubblicita' senza estendere il link della skin. */
.site-footer { position: relative; z-index: 2; margin-top: 50px; border-top: 1px solid var(--footer-rule); background: var(--footer-background, var(--header-band)); color: var(--footer-ink); font-family: var(--sans); text-align: center; }
.footer-inner { padding-block: 30px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 28px 40px; }
.footer-inner--single { grid-template-columns: minmax(0, 1fr); }
.footer-column { display: grid; justify-items: start; align-content: start; gap: 18px; min-width: 0; overflow-wrap: anywhere; text-align: left; }
.footer-bottom { grid-column: 1 / -1; display: grid; gap: 14px; padding-top: 22px; border-top: 1px dotted var(--footer-rule); min-width: 0; overflow-wrap: anywhere; }
.site-footer a { color: var(--footer-link, var(--footer-ink)); }
:root .site-footer a:hover { color: var(--footer-hover); text-decoration: none; }
.site-footer a:focus-visible { outline-color: var(--footer-ink); }
.footer-brand { display: grid; place-items: center; min-height: 100px; max-width: 100%; }
.footer-brand img { display: block; width: 160px; height: auto; max-width: 100%; filter: var(--footer-edition-logo-filter, none); }
.footer-brand--custom img { filter: none; }
.footer-network-brand { display: grid; place-items: center; min-height: 100px; max-width: 100%; font: bold 22px var(--nav); }
.footer-network-brand img { display: block; width: 160px; max-width: 100%; height: auto; filter: var(--footer-network-logo-filter, brightness(0)); }
.footer-inner nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; font-family: var(--nav); font-size: 13px; }
.footer-column nav { justify-content: flex-start; }
.footer-inner .footer-editions { width: 100%; column-gap: 22px; row-gap: 10px; }
/* Interruzione editoriale dopo Olbia, senza impedire i ritorni naturali su mobile. */
.footer-editions-break { flex-basis: 100%; height: 0; }
.footer-editions-break:last-child { display: none; }
.footer-information { width: 100%; }
.footer-inner p { width: 100%; font-size: 11px; line-height: 1.5; color: inherit; margin: 0; }
/* Quando i loghi richiedono una riga propria, precedono sempre le linguette:
   nessun contenuto deve interrompere il raccordo fra tab attiva e pagina. */
@media (max-width: 1099px) {
    /* Nelle viste ridotte logo e meteo restano affiancati, ricerca sotto. */
    .masthead { grid-template-columns: 234px minmax(0, 1fr); }
    .masthead-brand { grid-column: 1; grid-row: 1; }
    .masthead-weather { grid-column: 2; grid-row: 1; width: 100%; max-width: 468px; justify-self: end; }
    .masthead .header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; max-width: none; }
    /* Ordine di lettura e visuale coerente: prima i contenuti, poi le edizioni.
       Sul desktop le aree nominate conservano invece la colonna sinistra. */
    .index-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "sidebar"; }
    .index-layout > .news-sidebar { margin-top: 0; }
    .header-links { grid-template-columns: minmax(0, 1fr); }
    .header-links .main-nav { grid-row: 2; }
    .header-links--no-affiliates .main-nav { grid-row: 1; }
    .header-links .header-affiliates { grid-row: 1; justify-content: center; padding-bottom: 8px; }
    /* Tablet e mobile condividono una sola riga di categorie, scorrevole. */
    .category-nav { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
    .category-nav a { flex: 0 0 auto; }
}
@media (min-width: 768px) and (max-width: 1099px) {
    .page-width { width: calc(100% - 48px); max-width: 960px; }
    .masthead { gap: 16px; }
    .header-links { gap: 10px; }
    .category-nav { column-gap: 20px; }
    .local-sidebar { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: baseline; border-bottom: var(--separator); padding-bottom: 10px; }
    .local-sidebar .section-title { border: 0; font-size: 14px; margin: 0; padding: 0; }
    .local-sidebar > a { border: 0; padding: 8px 0; }
    .ad--rail { display: none; }
    .article-layout { grid-template-columns: minmax(0, 1fr); }
    .article-main { width: min(100%, 760px); margin-inline: auto; }
    .news-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; border-top: var(--separator); padding-top: 24px; }
    .news-sidebar .territory-links { margin: 0; }
    .news-sidebar .top-news { margin: 0; }
    /* Video e Vignette condividono la fascia tablet per notizie/ADV. */
    .article-main:is(.cartoon-main, .video-main) { width: 100%; }
    .article-layout:is(.cartoon-sidebar-layout, .media-sidebar-layout) { grid-template-columns: minmax(0, 1fr); }
    .news-sidebar.news-sidebar--media-tablet { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px; border-top: var(--separator); padding-top: 24px; }
    .news-sidebar--media-tablet > .updates--latest { grid-column: 1; grid-row: 1; margin: 0; }
    /* Non dipendere dal wrapper di vi.php; prevalere sullo span generico ADV. */
    .news-sidebar.news-sidebar--media-tablet > [data-advert-position="after-latest"] { grid-column: 2; grid-row: 1; margin: 0; }
    .news-sidebar--media-tablet > .top-news { grid-column: 1; grid-row: 2; }
    .news-sidebar--media-tablet > .media-tablet-top-adverts { display: grid; grid-column: 2; grid-row: 2; gap: 24px; align-content: start; min-width: 0; }
    .media-tablet-top-adverts > .advert-slot { margin: 0; }
    .news-sidebar--media-tablet > .territory-links,
    .news-sidebar--media-tablet > .advert-stack,
    .news-sidebar--media-tablet > [data-advert-position="after-top-news"] { display: none; }
    .news-sidebar--media-tablet:not(:has(.advert-slot)) { display: block; }
    .news-sidebar--media-tablet > .media-tablet-top-adverts:empty { display: none; }
    .ad--tower { display: none; }
    .ad--leaderboard .ad-space { width: 728px; height: 90px; }
    .ad--leaderboard .ad-size::after { content: '728 \00d7 90'; }
    .ad--inline .ad-space { width: 468px; height: 60px; }
    .ad--inline .ad-size::after { content: '468 \00d7 60'; }
    .story--lead h2 { font-size: 36px; }
    .story--row, .home-story--other { grid-template-columns: 210px minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .page-width { width: calc(100% - 32px); }
    .masthead { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 12px; padding-block: 14px; }
    /* Anche i loghi con margini trasparenti mantengono un ancoraggio prevedibile. */
    .masthead--compact-weather .masthead-brand { width: min(195px, 100%); justify-self: start; }
    .brand img { width: 195px; height: auto; }
    .masthead-description { margin: 4px 0 0; font-size: 10px; line-height: 1.2; text-align: right; }
    /* Il PNG storico Alguer ha 92px trasparenti a destra (234px totali).
       Allineare il testo al marchio visibile, senza ritagliare altri loghi. */
    .masthead-brand:has(.brand img[src*="p=alguer_it_logo.png"]) .masthead-description { width: calc(100% * 142 / 234); }
    .masthead-manchette { display: none; }
    /* Un unico blocco marca a sinistra; meteo e ricerca condividono la destra. */
    .masthead--compact-weather { grid-template-columns: minmax(100px, 1.05fr) minmax(140px, 1.15fr); gap: 8px 12px; }
    .masthead--compact-weather .masthead-brand { grid-column: 1; grid-row: 1 / span 2; align-self: center; }
    .masthead--compact-weather .masthead-weather { grid-column: 2; grid-row: 1; max-width: none; }
    .masthead--compact-weather .header-search { grid-column: 2; grid-row: 2; min-width: 0; }
    .masthead--compact-weather .header-search input { padding: 7px 6px; font-size: 12px; }
    .masthead--compact-weather .header-search button { padding: 7px 8px; font-size: 12px; }
    .masthead--compact-weather .header-weather--compact { flex-wrap: wrap; gap: 3px 5px; font-size: 11px; }
    .masthead--compact-weather .weather-compact-location { flex: 0 0 100%; white-space: normal; }
    .masthead--compact-weather .header-weather--compact > img { flex-basis: 20px; width: 20px; height: 20px; }
    .masthead--compact-weather .header-weather--compact > strong { font-size: 14px; }
    .masthead--compact-weather .weather-compact-condition { flex: 1 1 0; }
    .header-weather { display: block; min-height: 0; }
    .weather-forecast { gap: 5px; min-height: 34px; }
    .weather-forecast img { width: 28px; height: 28px; flex-basis: 28px; }
    .weather-forecast strong { font-size: 22px; }
    .weather-forecast > span { font-size: 11px; }
    .weather-today, .weather-tomorrow { font-size: 10px; gap: 2px 5px; }
    .weather-source { font-size: 9px; }
    .header-search { width: 100%; max-width: none; }
    .header-links { gap: 10px; }
    .main-nav { width: 100%; gap: 2px; }
    .main-nav a { flex: 1 1 auto; min-width: 0; padding: 9px 5px; font-size: 12px; }
    .header-affiliates { justify-content: center; width: 100%; padding-bottom: 10px; gap: 8px 14px; }
    .header-leaderboard { padding-bottom: 14px; }
    .ad--header-leaderboard .ad-space { width: 320px; height: 100px; }
    .ad--header-leaderboard .ad-size::after { content: '320 \00d7 100'; }
    .category-nav { flex-wrap: nowrap; overflow-x: auto; gap: 22px; scrollbar-width: thin; }
    .category-nav a { padding-block: 14px; }
    .top-ad { margin-block: 0 20px; }
    .ad--leaderboard .ad-space { width: min(320px, 100%); height: 100px; }
    .ad--leaderboard .ad-size::after { content: '320 \00d7 100'; }
    .breadcrumbs { padding-block: 15px 20px; font-size: 11px; }
    .article-layout { display: block; }
    .local-sidebar { display: flex; flex-wrap: wrap; gap: 0 18px; margin-bottom: 20px; border-bottom: var(--separator); }
    .local-sidebar .section-title, .ad--rail { display: none; }
    .local-sidebar > a { border: 0; padding-block: 10px; font-size: 13px; }
    .section-heading h1 { font-size: 20px; }
    .story--lead h2 { font-size: 29px; }
    .story--lead .story-summary { font-size: 17px; }
    .story--row, .home-story--other { grid-template-columns: minmax(85px, 30%) minmax(0, 1fr); gap: 13px; }
    .story--row h2 { font-size: 20px; }
    .story--row .story-summary { display: none; }
    .story-meta { gap: 7px; font-size: 10px; }
    .news-sidebar { margin-top: 32px; border-top: var(--separator); padding-top: 24px; }
    .ad--tower { display: none; }
    .article-header h1, .article-main > h1 { font-size: 32px; }
    .article-deck { font-size: 19px; }
    .article-body { font-size: 18px; line-height: 1.5; }
    .article-byline { font-size: 11px; }
    .article-photo img { max-height: 560px; }
    .footer-inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .footer-inner nav { line-height: 1.7; }
}
/* Select an actual fitting ad format at the narrow edges of each layout. */
@media (min-width: 768px) and (max-width: 799px) {
    .ad--leaderboard .ad-space { width: 468px; height: 60px; }
    .ad--leaderboard .ad-size::after { content: '468 \00d7 60'; }
    .ad--header-leaderboard .ad-space { width: 468px; height: 60px; }
    .ad--header-leaderboard .ad-size::after { content: '468 \00d7 60'; }
}
@media (min-width: 332px) and (max-width: 351px) {
    .ad--leaderboard .ad-space { width: 300px; height: 100px; }
    .ad--leaderboard .ad-size::after { content: '300 \00d7 100'; }
    .ad--header-leaderboard .ad-space { width: 300px; height: 100px; }
    .ad--header-leaderboard .ad-size::after { content: '300 \00d7 100'; }
}
@media (max-width: 331px) {
    .ad--leaderboard .ad-space, .ad--rectangle .ad-space, .ad--inline .ad-space { width: 250px; height: 250px; }
    .ad--leaderboard .ad-size::after, .ad--rectangle .ad-size::after, .ad--inline .ad-size::after { content: '250 \00d7 250'; }
    .ad--header-leaderboard .ad-space { width: 250px; height: 250px; }
    .ad--header-leaderboard .ad-size::after { content: '250 \00d7 250'; }
}
@media print {
    .site-header, .ad, .breadcrumbs, .news-sidebar, .related, .article-bottom-nav, .site-footer, .advertising-skin-link { display: none; }
    .page-width, .article-main { width: 100%; }
    .article-layout { display: block; }
    .article-header h1 { font-size: 26pt; }
    .article-body { font-size: 12pt; }
}
.footer-privacy-button { appearance: none; border: 0; background: none; color: inherit; font: inherit; padding: 0; cursor: pointer; }
.footer-privacy-button:hover { color: var(--link-hover, red); }
