/* ──────────────────────────────────────
   Alanews Homepage Manager — Frontend Styles v1.9.0
   Font Schema:
     Inter Bold       → Titoli (h2, h3, hero-title)
     Libre Baskerville → Body (excerpt, paragraphs)
     Source Sans 3    → UI / Meta (date, labels, links, authors)
   ────────────────────────────────────── */

/* ── Google Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Source+Sans+3:wght@400;600&display=swap');

/* ── Base wrapper ── */
.ahm-block {
    margin-bottom: 0;
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: #1e293b;
}

/* ── Inter-block divider ── */
hr.ahm-block-divider {
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: #d1d5db;
    margin: 1.5rem 0;
}

/* v1.21.6 — Top divider sits flush with the container top edge so it aligns
   with the bottom of the sidebar header separator. */
hr.ahm-block-divider.ahm-block-divider--top {
    margin-top: 0;
}

/* ── Double-line divider ── */
.ahm-divider-double {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 1.5rem 0 0.5rem;
    padding: 0;
}
.ahm-divider-double .ahm-divider-line {
    width: 100%;
    border: none !important;
    border-top: 1px solid #d1d5db !important;
    margin: 0;
}
.ahm-divider-double .ahm-divider-accent {
    width: 160px;
    height: 4px;
    border-radius: 9999px;
}

/* v1.24.0 — accent_bar: solo barretta, senza linea principale */
.ahm-divider-accent-only {
    display: flex;
    /* v1.24.46 — margin-top 1.5rem per allinearsi a .ahm-divider-double
       ed evitare che la barretta accent risulti incollata al bordo
       inferiore del blocco precedente (es. ::after delle grid card
       in modalità "Linee verticali tra colonne ON"). La regola di
       collasso fra divider consecutivi (sotto) compensa con -1.25rem. */
    margin: 1.5rem 0 1.15rem;
    padding: 0;
}
.ahm-divider-accent-only .ahm-divider-accent {
    height: 4px;
    border-radius: 9999px;
}

/* F1 (v1.21.2) — Collapse margin between CONSECUTIVE double-line dividers.
   Quando 2+ blocchi adiacenti emettono entrambi un divider, il margine
   accumulato (1.5rem × 2 = 48px) crea un vuoto verticale interpretato
   come "linee colorate fluttuanti". Soluzione: il secondo divider in poi
   ha margin-top negativo per collassare con il precedente. */
.ahm-divider-double + .ahm-divider-double {
    margin-top: -1.25rem; /* collassa con margin-bottom 1.5rem precedente → spacing netto ~4px */
}
hr.ahm-block-divider + hr.ahm-block-divider,
hr.ahm-block-divider + .ahm-divider-double,
.ahm-divider-double + hr.ahm-block-divider {
    margin-top: -1.25rem;
}
.ahm-divider-accent-only + .ahm-divider-accent-only,
.ahm-divider-accent-only + .ahm-divider-double,
.ahm-divider-double + .ahm-divider-accent-only,
hr.ahm-block-divider + .ahm-divider-accent-only,
.ahm-divider-accent-only + hr.ahm-block-divider {
    margin-top: -1.25rem;
}

/* ── Footer Comments (Commento Editoriale) ── */
.ahm-footer-comments {
    display: flex;
    gap: 1.5rem;
    padding: 1.25rem 1rem;
    margin-top: 0.75rem;
    border-radius: 4px;
}
.ahm-footer-comment {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.ahm-footer-comment__label {
    font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.ahm-footer-comment__title {
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: #1e293b;
    text-decoration: none;
}
.ahm-footer-comment__title:hover {
    text-decoration: underline;
}
.ahm-footer-comment__author {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.2rem;
}
.ahm-footer-comment__avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}
.ahm-fc-author {
    font-family: 'Source Sans 3', 'Source Sans Pro', sans-serif;
    font-size: 13px;
    color: #1e293b;
    font-weight: 600;
}
.ahm-fc-author em {
    font-size: 11px;
    font-style: italic;
    font-weight: 400;
    color: #64748b;
}
.ahm-fc-author-link {
    color: #1e293b;
    font-weight: 600;
    text-decoration: none;
}
.ahm-fc-author-link:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .ahm-footer-comments {
        flex-direction: column;
        gap: 1rem;
    }
}

/* Blocchi con sfondo colorato: padding interno per distanziare titolo e contenuto */
.ahm-block[style*="background-color"] {
    padding: 1.25rem 1.25rem 1rem;
    border-radius: 4px;
}

/* ── Block Label (green left border, no bottom line) ── */
.ahm-block__label {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: 1.15rem;
    line-height: 1.25;
    position: relative;
    margin: 0 0 15px;
    padding: 0 8px 0 12px;
    border-left: 4px solid #4a8b45;
    color: #0f172a;
    letter-spacing: -0.01em;
}

/* ════════════════════════════════════════
   SHARED HERO STYLES
   ════════════════════════════════════════ */

/* ── Hero: Title + Excerpt (above & below share these) ── */
.ahm-hero__title,
.ahm-hero__title a {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: 1.35rem;
    line-height: 1.2;
    color: #0f172a;
    text-decoration: none;
    letter-spacing: -0.02em;
    margin: 0;
}

.ahm-hero__title a:hover {
    color: #2271b1;
}

.ahm-hero__excerpt {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.65;
    color: #334155;
    margin: 8px 0 0;
}

.ahm-hero__img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
    aspect-ratio: 16/9;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.ahm-hero__img-link {
    display: block;
    overflow: hidden;
    border-radius: 6px;
}

.ahm-hero__img-link:hover .ahm-hero__img {
    transform: scale(1.03);
}

/* ── Hero Above: title → author → excerpt → image ── */
.ahm-hero--above .ahm-hero__title {
    margin-bottom: 4px;
}

.ahm-hero--above .ahm-hero__author {
    margin-bottom: 8px;
}

.ahm-hero--above .ahm-hero__excerpt {
    margin-bottom: 12px;
}

/* ── Hero Below: image → title → author → excerpt ── */
.ahm-hero--below .ahm-hero__media {
    margin-bottom: 12px;
}

.ahm-hero--below .ahm-hero__img-link {
    margin-bottom: 0;
}

.ahm-hero--below .ahm-hero__title {
    margin-top: 0;
    margin-bottom: 4px;
}

.ahm-hero--below .ahm-hero__author {
    margin-bottom: 8px;
}

/* ── Hero Overlay: image + gradient caption ── */
.ahm-hero--overlay {
    border-radius: 6px;
    margin-bottom: 4px;
}

/* Media wrapper: image + caption overlay — isolates absolute caption from timeline */
.ahm-hero--overlay__media,
.ahm-hero-overlay__media {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
}

.ahm-hero--overlay__link {
    display: block;
    position: relative;
    text-decoration: none;
    color: #fff;
}

/* Title-only link inside caption (no nested <a>) */
.ahm-hero--overlay__title-link,
.ahm-hero-overlay__title-link {
    text-decoration: none;
    color: inherit;
}
/* v1.27.2 — nessuna sottolineatura in hover sui titoli (vedi regola globale in fondo al file) */


.ahm-hero--overlay__img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 16/9;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.ahm-hero--overlay__link:hover .ahm-hero--overlay__img {
    transform: scale(1.03);
}

.ahm-hero--overlay__placeholder {
    width: 100%;
    aspect-ratio: 16/9;
    background: #cbd5e1;
}

.ahm-hero--overlay__caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 40px 20px 20px;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.82) 0%,
        rgba(0, 0, 0, 0.45) 60%,
        transparent 100%
    );
}

.ahm-hero--overlay__title {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: clamp(1.4rem, 2.2vw, 2rem);
    line-height: 1.2;
    color: #fff;
    margin: 0;
    letter-spacing: -0.02em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
    display: block;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.ahm-hero--overlay__excerpt {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    font-weight: 400;
    font-size: 0.95rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.88);
    margin: 8px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ════════════════════════════════════════
   AUTHOR BYLINE — Shared styles (Corriere-inspired)
   ════════════════════════════════════════ */
.ahm-hero__author {
    margin: 6px 0 8px;
}

.ahm-hero__author--overlay {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, 0.85) !important;
}

.ahm-author--overlay,
.ahm-author--overlay .ahm-author--overlay__link,
.ahm-author--overlay .ahm-author--overlay__name {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.85rem;
    font-weight: 700;
}

.ahm-author--overlay__link:hover {
    color: #fff !important;
    text-decoration: underline;
}

/* v1.27.7 — HP-AUTHOR-STYLE-02:
   il contenitore (che include il prefisso "di") torna grigio #4a5568;
   solo il nome/link autore resta verde #428e46. */
.ahm-author,
.ahm-secondary-author,
.ahm-side-thumb-author {
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, sans-serif !important;
    font-weight: 700;
    font-size: 0.92rem;
    line-height: 1.4;
    color: #4a5568;
}

.ahm-author__link,
.ahm-secondary-author__link,
.ahm-side-thumb-author__link {
    color: #428e46;
    text-decoration: none;
    font-weight: 700;
}

.ahm-author__link:hover,
.ahm-secondary-author__link:hover,
.ahm-side-thumb-author__link:hover {
    color: #428e46;
    text-decoration: none;
}

.ahm-author__name,
.ahm-secondary-author__name,
.ahm-side-thumb-author__name {
    color: #428e46;
    font-weight: 700;
}


/* Secondary item: author below title, same style as hero author */
.ahm-secondary__item .ahm-secondary-author {
    display: block;
    grid-column: 2;
    margin-top: 2px;
    font-size: 0.92rem;
}

/* Grid card author */
.ahm-grid-card__author {
    margin-top: 4px;
}

/* ════════════════════════════════════════
   SECONDARY: Bullet List
   ════════════════════════════════════════ */
.ahm-secondary--list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 24px;
}

.ahm-secondary__item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 8px;
    padding: 8px 0;
    align-items: start;
}

.ahm-secondary__item::before {
    --ahm-bullet-size: 10px;
    content: '';
    color: #4a8b45;
    width: var(--ahm-bullet-size);
    height: var(--ahm-bullet-size);
    background: currentColor;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    font-size: 0.93rem;
    line-height: 1.3;
    align-self: start;
    margin-top: calc((1.3em - var(--ahm-bullet-size)) / 2);
}

/* ── Icon variants (data-icon attribute) ── */
.ahm-secondary__item[data-icon="arrow"]::before {
    content: '';
    color: #4a8b45;
}
.ahm-secondary__item[data-icon="pen"]::before {
    width: auto;
    height: auto;
    background: none;
    clip-path: none;
    content: '✎';
    color: #339966;
    font-size: 1.1rem;
    margin-top: 0;
}
.ahm-secondary__item[data-icon="red_dot"]::before {
    width: auto;
    height: auto;
    background: none;
    clip-path: none;
    content: '●';
    color: #dc2626;
    font-size: 0.7rem;
    margin-top: 0;
}
.ahm-secondary__item[data-icon="speciale"]::before {
    width: auto;
    height: auto;
    background: none;
    clip-path: none;
    content: '▸⁺';
    color: #dc2626;
    font-size: 1.5rem;
    margin-top: 0;
}

/* Desktop: rimuovi linee tra articoli */
@media (min-width: 769px) {
    .ahm-secondary__item {
        border-bottom: none;
    }
    .ahm-secondary__item:first-child {
        border-top: none;
    }
    .ahm-secondary--list {
        border-bottom: none;
        padding-bottom: 8px;
        margin-bottom: 8px;
    }
}

.ahm-secondary__item > a {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.93rem;
    line-height: 1.3;
    color: #0f172a;
    text-decoration: none;
}

.ahm-secondary__item > a:hover {
    color: #2271b1;
}

/* ════════════════════════════════════════
   SECONDARY: Image Grid (3 cards) — Corriere-style borders
   ════════════════════════════════════════ */
.ahm-secondary--grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: 20px;
    border-top: 1px solid #d1d5db;
    padding-top: 16px;
}

.ahm-grid-card {
    display: block;
    padding: 0 16px;
    border-left: 1px solid #d1d5db;
}

.ahm-grid-card:first-child {
    /* v1.24.49: padding simmetrico per centratura uniforme delle foto in tutte le colonne. */
    border-left: none;
}

/* ── Toggle OFF = default grid, Toggle ON = Corriere segmented rules ── */
.ahm-secondary--ruled {
    border-top: none;
    padding-top: 0;
}

.ahm-secondary--ruled .ahm-grid-card {
    padding-top: 16px;
    padding-bottom: 16px;
    border-top: none;
    border-bottom: none;
    position: relative;
}

/* Horizontal rules drawn as pseudo-elements so they don't touch the vertical separators. */
.ahm-secondary--ruled .ahm-grid-card::before,
.ahm-secondary--ruled .ahm-grid-card::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    height: var(--ahm-col-sep-thickness, 1px);
    background: var(--ahm-col-sep-color, #d1d5db);
    pointer-events: none;
}
.ahm-secondary--ruled .ahm-grid-card::before {
    top: 0;
}
.ahm-secondary--ruled .ahm-grid-card::after {
    bottom: 0;
}
/* First card has no left padding, so its horizontal rules start at 0. */
.ahm-secondary--ruled .ahm-grid-card:first-child::before,
.ahm-secondary--ruled .ahm-grid-card:first-child::after {
    left: 0;
}

/* When ruled, vertical separators keep inheriting the configured vars. */
.ahm-secondary--ruled .ahm-grid-card {
    border-left-color: var(--ahm-col-sep-color, #d1d5db);
    border-left-style: var(--ahm-col-sep-style, solid);
    border-left-width: var(--ahm-col-sep-thickness, 1px);
}
.ahm-secondary--ruled .ahm-grid-card:first-child {
    border-left: none;
}

/* Explicit OFF = keep the default current look. */
.ahm-secondary--no-rules {
    border-top: 1px solid #d1d5db;
    padding-top: 16px;
}

.ahm-secondary--no-rules .ahm-grid-card {
    padding-top: 0;
    padding-bottom: 0;
    border-top: none !important;
    border-bottom: none !important;
    border-left: 1px solid #d1d5db;
}

.ahm-secondary--no-rules .ahm-grid-card:first-child {
    border-left: none;
}

/* Same opt-in for the simple grid layout (block-grid.php) which has no borders by default. */
.ahm-block__grid--ruled {
    border-top: var(--ahm-col-sep-thickness, 1px) var(--ahm-col-sep-style, solid) var(--ahm-col-sep-color, #d1d5db);
    padding-top: 16px;
    gap: 0;
}
.ahm-block__grid--ruled .ahm-block__grid-item {
    padding: 0 16px;
    border-left: var(--ahm-col-sep-thickness, 1px) var(--ahm-col-sep-style, solid) var(--ahm-col-sep-color, #d1d5db);
}
.ahm-block__grid--ruled .ahm-block__grid-item:first-child {
    border-left: none;
}

.ahm-grid-card__img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 6px;
    display: block;
}

.ahm-grid-card__img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 16/9;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.ahm-grid-card__img-wrap:hover .ahm-grid-card__img {
    transform: scale(1.03);
}

.ahm-grid-card__placeholder {
    width: 100%;
    aspect-ratio: 16/9;
    background: #cbd5e1;
    border-radius: 6px;
}

.ahm-grid-card__title {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.93rem;
    line-height: 1.25;
    margin: 8px 0 0;
}

.ahm-grid-card__title a {
    color: #0f172a;
    text-decoration: none;
}

.ahm-grid-card__title a:hover {
    color: #2271b1;
}

/* ════════════════════════════════════════
   LEGACY LAYOUTS (grid, list, compact)
   Keep for backward compat
   ════════════════════════════════════════ */
.ahm-block--hero-list .ahm-block__content { display: block; }
.ahm-block__hero { margin-bottom: 20px; }
.ahm-block__hero img { width: 100%; height: auto; border-radius: 6px; display: block; margin-bottom: 12px; }

.ahm-block__hero-title,
.ahm-block__hero-title a {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: 1.68rem; line-height: 1.2; color: #0f172a;
    text-decoration: none; letter-spacing: -0.02em;
}
.ahm-block__hero-title a:hover { color: #2271b1; }

.ahm-block__hero-excerpt {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    font-weight: 400; font-size: 1rem; line-height: 1.65;
    color: #334155; margin: 8px 0 0;
}

.ahm-block__list {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px;
}

.ahm-block__list-item {
    display: flex; align-items: baseline; gap: 8px;
    padding: 8px 0;
}
.ahm-block__list-item::before { content: ''; color: #4a8b45; width: 10px; height: 10px; background: currentColor; clip-path: polygon(0 0, 100% 50%, 0 100%); line-height: 1.3; flex-shrink: 0; margin-top: calc((1.3em - 10px) / 2); }

.ahm-block__list-item a {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important; font-size: 0.95rem; line-height: 1.3;
    color: #0f172a; text-decoration: none;
}
.ahm-block__list-item a:hover { color: #2271b1; }

.ahm-block__grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px;
}
.ahm-block__grid-item img {
    width: 100%; height: auto; border-radius: 6px; display: block;
    aspect-ratio: 16/9; object-fit: cover;
}
.ahm-block__grid-item h3, .ahm-block__grid-item h3 a {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important; font-size: 1.05rem; line-height: 1.25;
    color: #0f172a; text-decoration: none; margin: 8px 0 0;
}
.ahm-block__grid-item h3 a:hover { color: #2271b1; }

.ahm-block__compact { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.ahm-block__compact-item {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important; font-size: 0.9rem; line-height: 1.3;
    color: #0f172a; text-decoration: none !important;
}
.ahm-block__compact-item:hover { color: #2271b1; }

/* Legacy hero overlay */
.ahm-hero-overlay { border-radius: 6px; margin-bottom: 16px; }
.ahm-hero-overlay__link { display: block; position: relative; text-decoration: none; color: #fff; }
.ahm-hero-overlay__img { width: 100%; height: auto; display: block; aspect-ratio: 16/9; object-fit: cover; transition: transform 0.35s ease; }
.ahm-hero-overlay__link:hover .ahm-hero-overlay__img { transform: scale(1.03); }
.ahm-hero-overlay__placeholder { width: 100%; aspect-ratio: 16/9; background: #cbd5e1; }
.ahm-hero-overlay__caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 40px 20px 20px; background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.45) 60%, transparent 100%); }
.ahm-hero-overlay__title { font-family: 'Inter', -apple-system, sans-serif !important; font-weight: 700 !important; font-size: 1.65rem; line-height: 1.2; color: #fff; margin: 0; letter-spacing: -0.02em; text-shadow: 0 1px 4px rgba(0,0,0,0.3); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ahm-hero-overlay__excerpt { font-family: 'Libre Baskerville', Georgia, serif !important; font-weight: 400; font-size: 0.95rem; line-height: 1.5; color: rgba(255,255,255,0.88); margin: 8px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.ahm-block__list-date {
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, sans-serif !important;
    font-weight: 400; font-size: 0.82rem; color: #64748b; white-space: nowrap;
}

/* ════════════════════════════════════════
   RESPONSIVE — Mobile (Corriere-style compact margins)
   v1.21.0 — Mobile polish release
   ════════════════════════════════════════ */
@media (max-width: 768px) {
    /* ── Secondary lists: single column on mobile ── */
    .ahm-secondary--list,
    .ahm-block__list {
        grid-template-columns: 1fr;
    }

    /* ── Grid: single column on mobile, Corriere-style spacing ── */
    .ahm-secondary--grid {
        grid-template-columns: 1fr !important; /* override inline style template */
        gap: 0;
        border-top: none;
        padding-top: 0;
        margin-top: 0;
    }

    /* B5 — Spacing card grid secondaria mobile più compatto */
    .ahm-grid-card {
        padding: 14px 0;
        border-left: none;
        border-bottom: 1px solid #e5e7eb;
    }

    .ahm-grid-card:first-child {
        padding-left: 0;
        padding-right: 0;
        padding-top: 14px;
    }

    .ahm-grid-card:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    /* B2 — Hero title: allineato ai font scoped (28px = 1.75rem default) */
    .ahm-hero__title,
    .ahm-hero__title a {
        font-size: 1.75rem;
        line-height: 1.18;
    }

    .ahm-block__hero-title,
    .ahm-block__hero-title a {
        font-size: 1.75rem;
    }

    /* B9 — Hero image: aspect-ratio 3/2 più "presente" su mobile */
    .ahm-hero__img {
        aspect-ratio: 3/2;
    }

    .ahm-hero--overlay__title,
    .ahm-hero-overlay__title {
        font-size: 1.25rem;
    }

    .ahm-hero--overlay__excerpt,
    .ahm-hero-overlay__excerpt {
        font-size: 0.85rem;
        -webkit-line-clamp: 2;
    }

    .ahm-hero--overlay__caption,
    .ahm-hero-overlay__caption {
        padding: 30px 14px 14px;
    }

    /* ── Corriere-style: compact hero spacing ── */
    .ahm-hero--above .ahm-hero__title { margin-bottom: 4px; }
    .ahm-hero--above .ahm-hero__author { margin-bottom: 8px; }
    .ahm-hero--above .ahm-hero__excerpt { margin-bottom: 10px; }
    .ahm-hero--below .ahm-hero__media { margin-bottom: 10px; }
    .ahm-hero--below .ahm-hero__img-link { margin-bottom: 0; }
    .ahm-hero--below .ahm-hero__title { margin-bottom: 4px; }
    .ahm-hero--below .ahm-hero__author { margin-bottom: 8px; }
    .ahm-hero--overlay { margin-bottom: 4px; }

    /* B3 — Block label: riduco padding-left da 12px a 8px su mobile */
    .ahm-block__label {
        margin-bottom: 8px;
        font-size: 1.05rem;
        padding-left: 8px;
    }


    /* B10 + B18 — Secondary items: align icon to title center, area tap 44px */
    .ahm-secondary__item {
        padding: 16px 0;
        min-height: 44px;
        align-items: start;
        border-bottom: 1px solid #d1d5db;
    }

    .ahm-secondary__item::before {
        --ahm-bullet-size: 10px;
        font-size: 0.95rem;
        align-self: start;
        margin-top: calc((1.3em - var(--ahm-bullet-size)) / 2);
    }

    .ahm-secondary__item:last-child {
        border-bottom: none;
    }

    /* ── Secondary author on mobile: below title in grid col 2 ── */
    .ahm-secondary__item .ahm-secondary-author {
        display: block;
        grid-column: 2;
        margin-top: 4px;
    }

    /* B16 — Grid card author & title: spacing più compatto */
    .ahm-grid-card__author { margin-top: 4px; }

    .ahm-grid-card__title {
        font-size: 1rem;
        line-height: 1.3;
        margin-top: 8px;
    }

    /* B14 — Inter-block divider: spacing più compatto su mobile */
    hr.ahm-block-divider {
        margin: 0.75rem 0;
    }

    .ahm-divider-double {
        margin: 1rem 0;
    }

    /* B15 — Double divider accent: 50% del viewport su mobile (più armonioso) */
    .ahm-divider-double .ahm-divider-accent {
        width: 50%;
        max-width: 160px;
    }

    .ahm-divider-accent-only {
        /* v1.24.x — mobile fix: ripristino margin-top per evitare che la
           accent bar (e le linee inter-blocco) risultino schiacciate sul
           blocco superiore. Allineato a .ahm-divider-double mobile (1rem). */
        margin: 1rem 0 0.85rem;
    }
    .ahm-divider-accent-only .ahm-divider-accent {
        width: 50%;
        max-width: 160px;
    }

    /* F1 (v1.21.2) — Mobile collapse: divider consecutivi più aggressivi
       perché su mobile il vuoto verticale percepito è proporzionalmente maggiore. */
    .ahm-divider-double + .ahm-divider-double,
    hr.ahm-block-divider + hr.ahm-block-divider,
    hr.ahm-block-divider + .ahm-divider-double,
    .ahm-divider-double + hr.ahm-block-divider {
        margin-top: -0.85rem; /* collassa con margin 1rem precedente → ~2-3px netti */
    }
    .ahm-divider-accent-only + .ahm-divider-accent-only,
    .ahm-divider-accent-only + .ahm-divider-double,
    .ahm-divider-double + .ahm-divider-accent-only,
    hr.ahm-block-divider + .ahm-divider-accent-only,
    .ahm-divider-accent-only + hr.ahm-block-divider {
        margin-top: -0.85rem;
    }

    /* ── Tighter block wrapper margin ── */
    .ahm-block { margin-bottom: 0; }

    /* ── Opinion grid: single column on mobile ── */
    .ahm-opinion-grid__list {
        grid-template-columns: 1fr !important;
    }

    .ahm-opinion-grid__avatar {
        width: 48px;
        height: 48px;
    }

    .ahm-opinion-grid__item {
        gap: 10px;
        padding: 12px;
    }

    .ahm-opinion-grid__headline {
        font-size: 0.95rem;
        line-height: 1.3;
    }

    .ahm-opinion-grid {
        padding: 16px 12px;
    }

    /* ── Responsive layout toggle: show mobile version ── */
    .ahm-desktop-only { display: none !important; }
    .ahm-mobile-only { display: block !important; }
}

/* B12 — Breakpoint extra-small: phone <= 480px (iPhone SE 375, Galaxy 360) */
@media (max-width: 480px) {
    .ahm-block__label {
        font-size: 1rem;
        margin-bottom: 6px;
    }

    .ahm-hero__title,
    .ahm-hero__title a,
    .ahm-block__hero-title,
    .ahm-block__hero-title a {
        font-size: 1.5rem;
    }

    .ahm-secondary__item > a {
        font-size: 0.95rem;
    }

    .ahm-grid-card__title {
        font-size: 0.95rem;
    }

    .ahm-opinion-grid {
        padding: 20px 12px;
    }

    .ahm-footer-comments {
        padding: 1rem 0.75rem;
    }
}

/* B4 — Breakpoint micro: phone <= 360px — overlay title clamp 2 righe */
@media (max-width: 360px) {
    .ahm-hero--overlay__title,
    .ahm-hero-overlay__title {
        font-size: 1.1rem;
        -webkit-line-clamp: 2;
        line-clamp: 2;
    }

    .ahm-hero--overlay__caption,
    .ahm-hero-overlay__caption {
        padding: 24px 12px 12px;
    }

    .ahm-hero--overlay__excerpt,
    .ahm-hero-overlay__excerpt {
        display: none; /* su 320px lo spazio è troppo poco */
    }
}

/* ════════════════════════════════════════
   OPINION GRID — Avatar + headline (Opinioni & Commenti)
   ════════════════════════════════════════ */

/* ── Tablet breakpoint (641-768px): keep 2 cols with tighter spacing ── */
@media (min-width: 641px) and (max-width: 768px) {
    .ahm-opinion-grid__list {
        grid-template-columns: repeat(2, 1fr);
        gap: 0;
    }

    .ahm-opinion-grid__avatar {
        width: 52px;
        height: 52px;
    }

    .ahm-opinion-grid__headline {
        font-size: 0.95rem;
    }
}

/* ════════════════════════════════════════
   OPINION GRID — Base styles
   ════════════════════════════════════════ */
.ahm-opinion-grid {
    padding: 24px 16px;
    border-radius: 4px;
    background-color: #ecfeec;
}

.ahm-opinion-grid .ahm-block__label {
    text-align: center;
    border-left: none;
    padding-left: 0;
    margin: 0 0 10px;
    position: relative;
    z-index: 2;
    background-color: transparent;
    font-family: 'Fraunces' !important;
    font-weight: 400 !important;
    font-style: normal !important;
    font-synthesis: none;
    font-optical-sizing: auto;
    font-variant: normal !important;
    text-transform: none !important;
    letter-spacing: -0.01em;
}

/* Wrapper della griglia: contiene il pattern diagonale così il titolo resta pulito */
.ahm-opinion-grid__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    position: relative;
}

/* Sfondo a righe diagonali bianche — applicato a tutto il container (titolo incluso) */
.ahm-opinion-grid--striped {
    background-image: repeating-linear-gradient(
        135deg,
        transparent,
        transparent 5px,
        rgba(255, 255, 255, 0.95) 5px,
        rgba(255, 255, 255, 0.95) 6px
    );
}

.ahm-opinion-grid__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    position: relative;
    padding: 16px;
    z-index: 1;
}

.ahm-opinion-grid__item::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 0;
    height: 1px;
    background: #d1d5db;
    z-index: 2;
}

@media (min-width: 769px) {
    /* Linea verticale continua tra le 2 colonne */
    .ahm-opinion-grid__list > .ahm-opinion-grid__item:nth-child(odd)::before {
        content: "";
        position: absolute;
        top: 16px;
        bottom: 16px;
        right: 0;
        width: 1px;
        background: #d1d5db;
        z-index: 2;
    }
    /* Niente linea orizzontale sull'ultima riga (ultimi 2 item) */
    .ahm-opinion-grid__list > .ahm-opinion-grid__item:nth-last-child(-n+2)::after {
        display: none;
    }
}

@media (max-width: 768px) {
    .ahm-opinion-grid__list > .ahm-opinion-grid__item:last-child::after {
        display: none;
    }
}

.ahm-opinion-grid__avatar {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
}

.ahm-opinion-grid__avatar-img,
.ahm-opinion-grid__avatar-placeholder {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.ahm-opinion-grid__content {
    flex: 1;
    min-width: 0;
}

.ahm-opinion-grid__headline {
    font-family: 'Inter', -apple-system, sans-serif !important;
    font-weight: 700 !important;
    font-size: var(--ahm-secondary-title-font-size, 1rem);
    line-height: 1.25;
    margin: 0 0 4px;
}

.ahm-opinion-grid__headline a {
    color: inherit;
    text-decoration: none;
}

.ahm-opinion-grid__headline a:hover {
    color: #2271b1;
}

.ahm-opinion-grid__author {
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, sans-serif !important;
    font-size: 0.8rem;
    color: #666;
    margin: 0;
}

.ahm-opinion-grid__excerpt {
    font-family: 'Libre Baskerville', Georgia, serif !important;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.5;
    margin: 4px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Opinion author link styles */
.ahm-opinion-author__link {
    color: #2271b1;
    text-decoration: none;
}
.ahm-opinion-author__link:hover {
    text-decoration: underline;
}
.ahm-opinion-author__name {
    color: #2271b1;
}

/* ════════════════════════════════════════
   RESPONSIVE LAYOUT TOGGLE (desktop/mobile dual rendering)
   ════════════════════════════════════════ */
.ahm-desktop-only {
    display: block;
}
.ahm-mobile-only {
    display: none;
}

/* ════════════════════════════════════════════════════════
   Template: side_thumb — hero foto-destra + lista secondaria (v1.26.0)
   Scoped su .ahm-block--side-thumb, nessuna regola globale.
   Ridisegno v1.26.0: le regole per-item della v1.25.0 sono state rimosse
   (codice morto: ogni articolo aveva la miniatura). Ora solo l'hero ha
   la foto, i secondari ereditano .ahm-secondary--list.
   ════════════════════════════════════════════════════════ */

.ahm-block--side-thumb .ahm-side-thumb__hero {
    /* v1.28.2 — HP-SIDETHUMB-ADAPTIVE-01: `stretch` (non più flex-start) così
       la colonna media eredita l'altezza reale del testo. */
    display: flex;
    align-items: stretch;
    gap: 20px;
    margin-bottom: 12px;
}

.ahm-block--side-thumb .ahm-side-thumb__content {
    /* v1.27.0 — la foto hero cresce del 50% (42% → 63%), il testo si adatta.
       v1.28.6 — HP-HERO-COLUMN-WIDEN-01: colonna testo 37% → 56% (misura da
       rendering reale: è la proporzione minima che porta i titoli reali
       testati, incluso il caso Cassino 89 char, entro le 4 righe). */
    flex: 1 1 56%;
    min-width: 0;
}

/* ── Badge editoriale (HP-BADGE-REDESIGN-01 → BADGE-BRAND-01 → v1.34.6).
   ATTENZIONE: l'intero blocco `.ahm-badge*` (regola base, ::before animato,
   __text, le quattro varianti, i @keyframes e il reduced-motion) NON vive
   più qui: è stato spostato DENTRO i marcatori !AHM-CRITICAL-CSS in fondo
   al file, così viaggia sempre col mirror inline anche quando FastWCV purga
   questo bundle. Fonte di verità UNICA: non ri-dichiarare nulla qui. ── */




.ahm-block--side-thumb .ahm-side-thumb__badge {
    display: inline-flex;
}

/* v1.28.2 — HP-BADGE-POSITION-02: il badge vive nella riga del label di blocco
   (sostituisce `.ahm-block__label`), non più dentro la colonna di testo.
   Margin-bottom allineato al label (15px). */
.ahm-block__badge {
    display: inline-flex;
    margin: 0 0 15px;
}

.ahm-block--side-thumb .ahm-side-thumb__title {
    font-family: 'Inter', -apple-system, sans-serif;
    font-weight: 700;
    margin: 0 0 4px;
    font-size: 1.35rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #0f172a;
    /* v1.28.6 — HP-HERO-COLUMN-WIDEN-01: rimosso il line-clamp della v1.28.5.
       Il titolo è sempre integrale: il rientro in 4 righe è ottenuto
       allargando la colonna di testo (56%), non troncando. */
}



.ahm-block--side-thumb .ahm-side-thumb__title a {
    color: inherit;
    text-decoration: none;
}

/* v1.27.2 — hover senza sottolineatura (regola globale in fondo al file) */


.ahm-block--side-thumb .ahm-side-thumb__author {
    font-size: 0.8rem;
    color: #6b7280;
    margin-bottom: 4px;
}

.ahm-block--side-thumb .ahm-side-thumb__subtitle,
.ahm-block .ahm-hero__subtitle {
    /* v1.27.0 — sottotitolo editoriale (post_subtitle), sotto la riga autore.
       v1.27.3 — classe generalizzata anche agli hero above/below.
       v1.27.6 — sottotitolo sempre in grassetto.
       v1.27.8 — HP-SUBTITLE-WEIGHT-02: Libre Baskerville espone solo 400 e 700
       (500 collassa su 400, 600 su 700): non esiste un peso ~490 reale.
       Peso base 400 + text-stroke 0.35px = grassetto intermedio ≈ 490,
       cioè ~30% più leggero del 700 precedente. Word-spacing ridotto di 0.5px.
       v1.28.1 — HP-SUBTITLE-TRACKING-01: letter-spacing -0.3px (tracking più
       compatto, leggibilità invariata) e font-size 0.98rem -> 0.94rem
       (mezzo punto tipografico ≈ 0.64px su base 16px). Word-spacing invariato. */
    font-family: 'Libre Baskerville', Georgia, serif;
    font-weight: 400;
    -webkit-text-stroke: 0.35px currentColor;
    word-spacing: -0.5px;
    letter-spacing: -0.3px;
    margin: 0 0 4px;
    font-size: 0.94rem;
    line-height: 1.55;
    color: #475569;
}


.ahm-block--side-thumb .ahm-side-thumb__excerpt {
    font-family: 'Libre Baskerville', Georgia, serif;
    margin: 0;
    font-size: 1rem;
    line-height: 1.65;
    color: #334155;
}

.ahm-block--side-thumb .ahm-side-thumb__media {
    /* v1.27.0 — +50% rispetto al 42% della v1.26.x.
       v1.28.2 — HP-SIDETHUMB-ADAPTIVE-01: la media segue l'altezza del testo
       (min 180px, max 420px) invece di un aspect-ratio fisso. L'immagine è in
       posizione assoluta così NON contribuisce all'altezza della riga flex:
       è il testo a decidere, la foto riempie in cover. */
    position: relative;
    /* v1.28.6 — HP-HERO-COLUMN-WIDEN-01: 63% → 44%. Cambia solo la LARGHEZZA:
       min/max-height, stretch e object-fit restano invariati. */
    flex: 0 0 44%;
    max-width: 44%;
    min-height: 180px;
    max-height: 420px;
    overflow: hidden;
    border-radius: 6px;
}

.ahm-block--side-thumb .ahm-side-thumb__media > a {
    position: absolute;
    inset: 0;
    display: block;
}

.ahm-block--side-thumb .ahm-side-thumb__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
}

/* Mobile: rete di sicurezza minima (fuori scope un design dedicato —
   usare layout_type_mobile per un'esperienza curata). */
@media (max-width: 768px) {
    .ahm-block--side-thumb .ahm-side-thumb__hero {
        flex-direction: column;
    }
    .ahm-block--side-thumb .ahm-side-thumb__media {
        flex: 1 1 auto;
        max-width: 100%;
        width: 100%;
        /* v1.28.2 — in colonna singola l'adattamento all'altezza del testo non
           ha senso: si torna al 16/9 classico, immagine in flusso normale. */
        position: static;
        min-height: 0;
        max-height: none;
        overflow: visible;
    }
    .ahm-block--side-thumb .ahm-side-thumb__media > a {
        position: static;
        inset: auto;
    }
    .ahm-block--side-thumb .ahm-side-thumb__img {
        height: auto;
        aspect-ratio: 16 / 9;
    }
    .ahm-block--side-thumb .ahm-side-thumb__title {
        font-size: 1.15rem;
    }

    /* v1.27.0 — variante griglia: card su singola colonna sotto i 768px. */
    .ahm-block--side-thumb-grid .ahm-secondary--grid {
        grid-template-columns: 1fr !important;
    }
}

/* ──────────────────────────────────────────────────────────────
   v1.27.2 — HP-TITLE-HOVER-01
   Nessuna sottolineatura in hover/focus sui titoli articolo, su
   TUTTI i layout AHM (anche quando è il tema a imporla).
   Non tocca colori, peso, o hover dei link autore/commento.
   ────────────────────────────────────────────────────────────── */
.ahm-block h2 a,
.ahm-block h3 a,
.ahm-block h4 a,
.ahm-block .ahm-block__compact-item,
.ahm-block .ahm-block__list-item > a,
.ahm-block .ahm-grid-card__title a,
.ahm-block .ahm-side-thumb__title a,
.ahm-block .ahm-hero-overlay__title-link,
.ahm-block .ahm-hero--overlay__title-link,
.ahm-block h2 a:hover,
.ahm-block h3 a:hover,
.ahm-block h4 a:hover,
.ahm-block h2 a:focus,
.ahm-block h3 a:focus,
.ahm-block h4 a:focus,
.ahm-block .ahm-block__compact-item:hover,
.ahm-block .ahm-block__compact-item:focus,
.ahm-block .ahm-block__list-item > a:hover,
.ahm-block .ahm-block__list-item > a:focus,
.ahm-block .ahm-grid-card__title a:hover,
.ahm-block .ahm-grid-card__title a:focus,
.ahm-block .ahm-side-thumb__title a:hover,
.ahm-block .ahm-side-thumb__title a:focus,
.ahm-block .ahm-hero-overlay__title-link:hover,
.ahm-block .ahm-hero-overlay__title-link:focus,
.ahm-block .ahm-hero--overlay__title-link:hover,
.ahm-block .ahm-hero--overlay__title-link:focus,
.ahm-block .ahm-hero-overlay__title-link:hover .ahm-hero-overlay__title,
.ahm-block .ahm-hero--overlay__title-link:hover .ahm-hero--overlay__title {
    text-decoration: none !important;
}

/* ──────────────────────────────────────────────────────────────
   v1.27.4 — HP-AUTHOR-SPACING-01
   Respiro verticale attorno alla riga autore (riferimento Corriere.it):
   spazio raddoppiato tra titolo↔autore e autore↔sottotitolo negli hero,
   e tra titolo↔autore nelle card/voci secondarie. Nessun cambio di
   colore, peso o dimensione: solo margini.
   Blocco in coda al file per vincere sulle regole locali e sulle
   media query mobile dichiarate più sopra (stessa specificità, ordine).
   ────────────────────────────────────────────────────────────── */

/* v1.27.8 — HP-AUTHOR-SPACING-02: +50% sui valori v1.27.4 (già raddoppiati). */

/* Hero — titolo ↔ autore ↔ sottotitolo */
.ahm-block .ahm-hero__title { margin-bottom: 12px; }
.ahm-block .ahm-hero__author { margin: 18px 0 24px; }
.ahm-block .ahm-hero--above .ahm-hero__title,
.ahm-block .ahm-hero--below .ahm-hero__title { margin-bottom: 12px; }
.ahm-block .ahm-hero--above .ahm-hero__author,
.ahm-block .ahm-hero--below .ahm-hero__author { margin-bottom: 24px; }
.ahm-block .ahm-hero__author--overlay { margin: 18px 0 0; }

/* Hero destra (side_thumb / side_thumb_grid) */
.ahm-block--side-thumb .ahm-side-thumb__title { margin-bottom: 12px; }
.ahm-block--side-thumb .ahm-side-thumb__author { margin: 0 0 12px; }

/* Card e voci secondarie — titolo ↔ autore */
.ahm-block .ahm-secondary__item .ahm-secondary-author { margin-top: 6px; }
.ahm-block .ahm-grid-card__author { margin-top: 12px; }
.ahm-block .ahm-opinion-grid__headline { margin-bottom: 12px; }

@media (max-width: 768px) {
    .ahm-block .ahm-hero--above .ahm-hero__title,
    .ahm-block .ahm-hero--below .ahm-hero__title { margin-bottom: 12px; }
    .ahm-block .ahm-hero--above .ahm-hero__author,
    .ahm-block .ahm-hero--below .ahm-hero__author { margin-bottom: 24px; }
    .ahm-block .ahm-secondary__item .ahm-secondary-author { margin-top: 12px; }
    .ahm-block .ahm-grid-card__author { margin-top: 12px; }

}

/* ==========================================================
   HERO HEADLINE (v1.29.0) — LIVEBLOG-HEADLINE-TIMELINE-BUILD-01
   Foto grande a sinistra (~66%) + colonna mini-timeline LBS a destra (~34%).
   Il titolo NON è emesso da AHM quando l'hero è un liveblog: vive come prima
   voce della mini-timeline (LBS stile `headline`).
   ========================================================== */
.ahm-block--hero-headline .ahm-hero-headline { display: block; }

.ahm-block--hero-headline .ahm-hero-headline__wrap {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* v1.31.4 punto 5 — spazio foto ↔ card ridotto del 90% (20px → 2px). */
  gap: 2px;
  width: 100%;
}
.ahm-block--hero-headline .ahm-hero-headline__photo {
  flex: 0 1 66%;
  max-width: 66%;
  min-width: 0;
  position: relative;
  overflow: hidden;
  /* v1.31.5 punto 1 — stesso raggio 6px degli altri blocchi AHM
     (.ahm-block__hero img, .ahm-hero-overlay): coerenza con "Primo Piano". */
  border-radius: 6px;
}
.ahm-block--hero-headline .ahm-hero-headline__link { display: block; line-height: 0; }
.ahm-block--hero-headline .ahm-hero-headline__img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  display: block;
}
.ahm-block--hero-headline .ahm-hero-headline__placeholder {
  width: 100%;
  min-height: 260px;
  background: #f1f1f1;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline {
  flex: 1 1 34%;
  max-width: 34%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-timeline-anchor {
  flex: 1 1 auto;
  min-height: 0;
}

/* Fallback non-liveblog: foto a piena larghezza + titolo classico sotto */
.ahm-block--hero-headline-fallback .ahm-hero-headline__wrap { display: block; }
.ahm-block--hero-headline-fallback .ahm-hero-headline__photo {
  flex: none;
  max-width: 100%;
}
.ahm-block--hero-headline .ahm-hero-headline__fallback-content { padding-top: 12px; }
.ahm-block--hero-headline .ahm-hero-headline__title {
  margin: 0 0 6px;
  font-size: 1.7rem;
  line-height: 1.2;
  font-weight: 800;
}
.ahm-block--hero-headline .ahm-hero-headline__title a { color: inherit; text-decoration: none; }
.ahm-block--hero-headline .ahm-hero-headline__title a:hover { text-decoration: none; opacity: .85; }
.ahm-block--hero-headline .ahm-hero-headline__excerpt { margin: 6px 0 0; }

@media (max-width: 768px) {
  .ahm-block--hero-headline .ahm-hero-headline__wrap {
    flex-direction: column;
    gap: 0;
  }
  .ahm-block--hero-headline .ahm-hero-headline__photo,
  .ahm-block--hero-headline .ahm-hero-headline__timeline {
    flex: none;
    max-width: 100%;
    width: 100%;
  }
  .ahm-block--hero-headline .ahm-hero-headline__img { min-height: 200px; }
  .ahm-block--hero-headline .ahm-hero-headline__title { font-size: 1.35rem; }
}

/* ==========================================================
   HERO HEADLINE — PIANO B (v1.30.0)
   LIVEBLOG-HERO-PIANO-B-IMPLEMENT-01 + ...-COLOR-CUSTOM-01
   Foto 66% con titolo + badge in overlay; pannello aggiornamenti 34%
   con font ridotti ~30%, riempimento dinamico (max 5 voci) e sfondo
   personalizzabile (accenti derivati in PHP, WCAG AA >= 4.5:1).
   ========================================================== */

/* Il titolo ora vive in overlay sulla foto: nel pannello non va duplicato. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates__headline {
  display: none !important;
}

/* ── Overlay sulla foto ── */
.ahm-block--hero-headline .ahm-hero-headline__link { position: relative; }
.ahm-block--hero-headline .ahm-hero-headline__overlay {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 44px 20px 18px;
  line-height: normal;
  background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,0) 100%);
  pointer-events: none;
}
.ahm-block--hero-headline .ahm-hero-headline__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ahm-block--hero-headline .ahm-hero-headline__badge {
  /* -30% rispetto al badge standard del blocco */
  font-size: 0.55rem;
  padding: 3px 8px;
}
.ahm-block--hero-headline .ahm-hero-headline__overlay-title {
  display: block;
  color: #fff;
  font-size: 1.6rem;
  line-height: 1.18;
  font-weight: 800;
  text-shadow: 0 1px 12px rgba(0,0,0,.45);
}

/* ── Pannello aggiornamenti: font ridotti ~30% ──
   LBS emette le sue dimensioni inline sul contenitore, quindi qui serve
   una specificità maggiore (selettori annidati) e non delle CSS variables. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__header {
  font-size: 0.79rem;
  letter-spacing: .05em;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__dot {
  width: 13px; height: 13px;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__time {
  font-size: 0.75rem;
  min-width: 4.6em;
  width: 4.6em;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__title {
  font-size: 0.78rem;
  line-height: 1.4;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__more {
  font-size: 0.72rem;
}

/* ── Variante E (caso minimo): min-height coerente con ~3 voci +
   centratura verticale, così con 1-2 voci il riquadro non collassa
   e non lascia un blocco bianco in fondo alla colonna. ── */
.ahm-block--hero-headline .ahm-hero-headline__timeline {
  justify-content: center;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-timeline-anchor {
  flex: 0 1 auto;
  align-self: stretch;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
  --lbs-hl-min-height: 190px;
}

@media (max-width: 768px) {
  .ahm-block--hero-headline .ahm-hero-headline__overlay {
    padding: 32px 14px 14px;
    gap: 6px;
  }
  .ahm-block--hero-headline .ahm-hero-headline__overlay-title { font-size: 1.15rem; }
  .ahm-block--hero-headline .ahm-hero-headline__timeline { justify-content: flex-start; }
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
    --lbs-hl-min-height: 0px;
  }
}

/* ==========================================================
   HERO HEADLINE — v1.30.2 (HERO-HEADLINE-VISUAL-FIX-02)
   Punti 3/4/5: le regole di layout dello stile LBS `headline` vivono in
   `live-blog-schema/assets/css/style.css`, ma la mini-timeline è generata
   in JS: gli ottimizzatori CSS ("used CSS"/purge, es. fastwcv) non la
   vedono nell'HTML e ne rimuovono le regole dal bundle, lasciando il
   pannello senza layout (orario e testo sulla stessa riga, "Più
   aggiornamenti" a piena larghezza, altezze incoerenti).
   Qui le regole essenziali sono ri-dichiarate SCOPATE sul template
   (`.ahm-block--hero-headline` è presente nell'HTML server-side): il
   purger le conserva. Nessun altro layout è toccato.
   ========================================================== */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
  --lbs-hl-bg: var(--lbs-host-hl-bg, #ffffff);
  --lbs-hl-accent: var(--lbs-host-hl-accent, #dc2626);
  --lbs-hl-line: var(--lbs-host-hl-line, #e5e7eb);
  --lbs-hl-title: var(--lbs-host-hl-title, #111111);
  --lbs-hl-time: var(--lbs-host-hl-time, #9a9a9a);
  --lbs-hl-divider: var(--lbs-host-hl-divider, #e5e7eb);
  --lbs-hl-more: var(--lbs-host-hl-more, var(--lbs-hl-accent));
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 !important;
  padding: 14px 18px 16px !important;
  background: var(--lbs-hl-bg) !important;
  /* v1.31.4 punto 4 — angoli arrotondati SEMPRE, anche con sfondo
     personalizzato da Mirror+ (prima era 0: invisibile su bianco,
     evidente a 90° su un colore pieno). 8px = stesso raggio delle
     altre card AHM (.lbs-anchor-host .lbs-mini-updates--listcard). */
  border-radius: 8px;
  overflow: hidden;
  box-shadow: none !important;
  position: relative;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__header {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--lbs-hl-accent);
  font-weight: 800;
  text-transform: uppercase;
  padding: 0 0 10px 0 !important;
  margin: 0 !important;
  border-bottom: none;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__dot {
  color: var(--lbs-hl-accent);
  overflow: visible;
  flex-shrink: 0;
}
/* Il titolo del liveblog è già in overlay sulla foto: mai nel pannello. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__headline {
  display: none !important;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__list {
  display: flex !important;
  flex-direction: column !important;
  list-style: none !important;
  overflow: visible !important;
  position: relative;
  margin: 0 0 0 6px !important;
  padding-left: 20px !important;
  flex: 1 1 auto;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__list::before {
  content: "";
  position: absolute;
  left: 4px; top: 6px; bottom: 6px;
  width: 1px;
  background: var(--lbs-hl-line);
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item {
  display: block;
  position: relative;
  margin: 0 !important;
  padding: 0 0 12px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-width: 0;
}
/* v1.30.3 — HERO-HEADLINE-VISUAL-FIX-03 (punto 3): tetto 5 voci (la 5ª è attenuata). */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item:nth-child(n+6) {
  display: none !important;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item:last-child {
  padding-bottom: 0 !important;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item-dot {
  position: absolute;
  left: -20px;
  top: 4px;
  width: 9px; height: 9px; min-width: 9px;
  border-radius: 50%;
  background: var(--lbs-hl-accent);
  border: 2px solid var(--lbs-hl-bg);
  box-shadow: 0 0 0 1px var(--lbs-hl-accent);
  z-index: 2;
}
/* Punto 5 — formato listcard: ORARIO sopra (bold), TESTO sotto. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 2px;
  min-width: 0;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__time {
  display: block;
  width: auto;
  min-width: 0;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--lbs-hl-time);
  white-space: nowrap;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__title {
  display: block;
  width: 100%;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--lbs-hl-title);
  text-decoration: none;
  white-space: normal;
  word-break: break-word;
}
/* Punto 4 — "Più aggiornamenti" resta dentro la colonna, ancorato in fondo. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__more {
  display: flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  float: none;
  clear: both;
  margin: 12px 0 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--lbs-hl-divider);
  color: var(--lbs-hl-more);
  font-size: 0.72rem;
  font-weight: 700;
  text-decoration: none;
}
/* Punto 3 — fondo colonna allineato al fondo della foto. */
.ahm-block--hero-headline .ahm-hero-headline__photo {
  display: flex;
}
.ahm-block--hero-headline .ahm-hero-headline__link {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
}
.ahm-block--hero-headline .ahm-hero-headline__img {
  height: 100%;
  align-self: stretch;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline {
  justify-content: stretch;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-timeline-anchor {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: auto;
  align-self: stretch;
}
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-timeline-anchor > * {
  width: 100%;
}
@media (max-width: 768px) {
  .ahm-block--hero-headline .ahm-hero-headline__photo,
  .ahm-block--hero-headline .ahm-hero-headline__link { display: block; }
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline { flex: none; }
}

/* ==========================================================
   v1.30.3 — HERO-HEADLINE-VISUAL-FIX-03
   Punto 1: "IN DIRETTA" allineato alla linea SUPERIORE della foto.
   Punto 2: "Più aggiornamenti" allineato al bordo INFERIORE della foto,
            mantenendo min-height (variante E) come floor per 1 voce.
   Punto 3: 5ª voce attenuata (opacity .45), link "Più aggiornamenti"
            sempre a piena leggibilità.
   Scope: esclusivamente il layout hero_headline.
   ========================================================== */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
  /* Punto 1 — nessun padding superiore: l'header parte dal bordo alto.
     Punto 2 — nessun padding inferiore: il "more" chiude sul bordo basso. */
  padding: 0 18px 0 !important;
  justify-content: space-between;
  min-height: var(--lbs-hl-min-height, 190px);
}
/* v1.31.4 punto 6 — "IN DIRETTA" centrato verticalmente nello spazio fra il
   bordo superiore della card e la prima voce: padding sopra e sotto uguali
   (prima 0 sopra / 10px sotto ⇒ incollato al bordo). */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__header {
  padding: 12px 0 12px 0 !important;
  margin: 0 !important;
}
/* Punto 1 — l'anchor LBS porta un margin-top di default: azzerato qui
   così l'header "IN DIRETTA" combacia col bordo alto della foto. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-timeline-anchor {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
/* Punto 3 — 5ª voce attenuata, senza gradiente. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__item--faded {
  opacity: .45;
}
/* Vincolo — il link resta pienamente leggibile e non compresso.
   v1.31.4 punto 6 — "Più aggiornamenti" centrato fra la linea di separazione
   (border-top) e il bordo inferiore della card: padding-top = padding-bottom. */
.ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__more {
  opacity: 1 !important;
  flex: 0 0 auto;
  margin-top: 12px;
  padding-top: 12px;
  padding-bottom: 12px;
}
@media (max-width: 768px) {
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
    padding: 4px 14px 14px !important;
    min-height: 0;
  }
}

/* !AHM-CRITICAL-CSS:START — v1.31.0 AHM-CRITICAL-CSS-INLINE-HARDENING-01.
   Tutto ciò che sta fra questo marcatore e il marcatore di chiusura è la
   SINGOLA fonte di verità del CSS critico LBS-in-AHM: viene letto da
   AHM_Critical_CSS ed emesso anche inline nel markup, così resta valido
   anche quando il bundle esterno (FastWCV) è malformato. Non spostare i
   marcatori senza aggiornare includes/render/class-critical-css.php. */
/* ==========================================================
   v1.30.4 — HERO-HEADLINE-MOBILE-FIX-URGENT-01 (Opzione A)
   Estensione della resilienza alla purga CSS a TUTTI gli host AHM
   con anchor LBS, non solo hero_headline (FIX-02, v1.30.2).

   Causa: FIX-02 aveva scopato le regole "resilienti" solo su
   `.ahm-block--hero-headline`, che su mobile è display:none. Il
   fallback mobile reale (below_grid + stile LBS `listcard`) restava
   esposto alla purga dell'ottimizzatore (fastwcv), che rimuove le
   regole `.lbs-mini-updates*` di live-blog-schema/style.css perché
   la mini-timeline è montata via JS e non vista nel markup iniziale.
   Sintomi su mobile: testo aggiornamenti rosso/non stilato e
   sovrapposto alla foto, badge "DIRETTA" duplicato, voci affiancate
   orizzontalmente invece che impilate.

   Correzione: la base STRUTTURALE della mini-timeline listcard e il
   posizionamento del dual-badge sono ri-dichiarati qui, scopati su
   `.ahm-block .lbs-anchor-host` — entrambe le classi sono presenti
   nell'HTML server-side di ogni template hero AHM (above/below grid
   e list, hero_list, hero_overlay, overlay_grid, overlay_list,
   hero_headline), quindi il purger le conserva. Valori copiati
   verbatim da live-blog-schema/style.css: lo stato purgato deve
   essere identico a quello non purgato.

   Perimetro: SOLO la base strutturale anti-rottura (stesso contenuto
   di FIX-02, perimetro più ampio). Le regole specifiche hero_headline
   (allineamenti, opacità 5ª voce — FIX-03) restano scopate a quel
   layout e non sono toccate. I contesti non-AHM (single post JNews,
   widget) restano affidati a live-blog-schema/style.css.

   DEBITO TECNICO (Opzione B, mandato futuro): la dipendenza dalla
   purga CSS di terze parti resta un rischio strutturale. La soluzione
   robusta è inlinare le regole critiche LBS server-side ovunque sia
   presente un anchor, indipendente dall'ottimizzatore. NON
   implementata qui per ragioni di tempo.
   ========================================================== */
/* v1.30.5 — HERO-HEADLINE-DESKTOP-LAYOUT-FIX-01: rimosso `display: block`.
   Il valore (copiato verbatim da LBS style.css in v1.30.4) vinceva per ordine
   sorgente su `.ahm-block--hero-headline .ahm-hero-headline__wrap { display:flex }`
   (stessa specificità 0-2-0, questa regola più in basso nel file), rompendo
   il layout desktop 66/34: la timeline cadeva sotto la foto invece che a
   fianco. Verificato che `display:block` NON serve alla resilienza anti-purga:
   tutti gli host AHM sono <div> (display:block da default UA) e l'unico
   template che dichiara un display proprio è hero_headline (flex voluto).
   Restano position:relative + overflow:visible, che bastano al dual-badge
   overlay e al contenimento della listcard — lo scopo dichiarato della regola. */
.ahm-block .lbs-anchor-host {
  --lbs-listcard-dot-color: #dc2626;
  --lbs-live-dot-color: #dc2626;
  --lbs-live-badge-bg: #dc2626;
  position: relative;
  overflow: visible;
}
.ahm-block .lbs-anchor-host .lbs-mini-timeline-anchor {
  position: static;
  display: block;
  margin-top: 12px;
  z-index: auto;
  pointer-events: auto;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  padding: 14px 18px 10px !important;
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 8px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.18), 0 1px 3px rgba(0,0,0,0.08);
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__header {
  color: var(--lbs-listcard-dot-color, #dc2626);
  font-size: 1.13em;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0 0 8px 0 !important;
  margin: -11px -5px 0 -18px !important;
  border-bottom: none;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__dot {
  width: 18px; height: 18px;
  color: var(--lbs-listcard-dot-color, #dc2626);
  overflow: visible;
  flex-shrink: 0;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__list {
  display: flex !important;
  flex-direction: column !important;
  list-style: none !important;
  overflow: visible !important;
  position: relative;
  padding-left: 22px !important;
  margin-left: 6px !important;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__list::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 6px;
  bottom: 0;
  width: 1px;
  background: color-mix(in srgb, var(--lbs-listcard-dot-color, #dc2626) 20%, #e5e7eb);
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 0 0 10px 0;
  font-size: 1.13em;
  line-height: 1.4;
  flex: none !important;
  scroll-snap-align: unset !important;
  background: transparent !important;
  border-radius: 0 !important;
  min-width: 0;
  position: relative;
}
/* Tetto 5 voci nel contesto anchor-host (come LBS v5.19.2). */
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item:nth-child(n+6) {
  display: none;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item:last-child {
  padding-bottom: 0;
}
/* Maschera la linea sotto l'ultimo pallino. */
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item:last-child::after {
  content: "";
  position: absolute;
  left: -22px;
  top: 9px;
  bottom: 0;
  width: 10px;
  background: #ffffff;
  z-index: 1;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item-dot {
  position: absolute;
  left: -22px;
  top: 4px;
  width: 10px; height: 10px; min-width: 10px;
  background: #dc2626 !important; /* regression guard, allineato badge LIVE */
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--lbs-listcard-dot-color, #dc2626);
  margin-top: 0;
  z-index: 2;
}
/* v6.5.2: orario sopra, testo sotto (formato listcard). */
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 2px;
  min-width: 0;
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__time {
  color: #ababab;
  font-size: 0.95em;
  font-weight: 100;
  min-width: 5.5em;
  width: 5.5em;
  flex-shrink: 0;
  white-space: nowrap;
  text-align: left;
  font-family: var(--lbs-font-ui, inherit);
}
.ahm-block .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__title {
  color: #111111;
  font-weight: 700;
  font-size: 0.85em;
  line-height: 1.45;
  text-decoration: none;
  white-space: normal;
  word-break: break-word;
  overflow: visible;
  min-width: 0;
  font-family: var(--lbs-font-title, inherit);
}
/* Dual badge: containing block + posizionamento assoluto. Senza queste
   regole il badge montato da JS fluisce nel DOM e appare "duplicato"
   sotto quello SSR. */
.ahm-block .lbs-anchor-host .lbs-dual-badge {
  pointer-events: none;
  position: absolute;
  z-index: 9;
  display: inline-flex;
  align-items: stretch;
  font-family: inherit;
}
.ahm-block .lbs-anchor-host .live-badge-overlay {
  position: absolute !important;
  top: var(--lbs-badge-top, auto) !important;
  bottom: var(--lbs-badge-bottom, 10px) !important;
  left: var(--lbs-badge-left, 10px) !important;
  right: var(--lbs-badge-right, auto) !important;
  z-index: 9 !important;
  pointer-events: none;
}
.ahm-block .lbs-anchor-host .lbs-dual-badge__right,
.ahm-block .lbs-anchor-host .lbs-dual-badge__left {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-family: inherit;
}
/* Mobile — stesse riduzioni di LBS (≤640px). */
@media (max-width: 640px) {
  .ahm-block .lbs-anchor-host .lbs-mini-timeline-anchor {
    margin-top: 8px;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard {
    padding: 12px 14px 8px !important;
  }
}

/* ─────────────────────────────────────────────────────────────
   v1.31.1 — HERO-HEADLINE-BADGE-OVERLAP (punti A + B + C)
   A) Nuovo wrapper foto `.ahm-hero__img-wrap`: è l'host LBS nei
      template `below` (foto + anchor timeline, MAI il testo).
   B) Badge ancorato alla foto: nel ramo `below` l'host può crescere
      quando la timeline è in flusso (listcard non-classic), quindi il
      badge viene ancorato in ALTO invece che al bordo inferiore, così
      non finisce mai sopra le voci della timeline.
   C) Nessun cap CSS sulle voci in contesto `below`: il tetto è già
      applicato lato PHP dal renderer LBS.
   ───────────────────────────────────────────────────────────── */
.ahm-block .ahm-hero__img-wrap {
  position: relative;
  display: block;
  width: 100%;
  overflow: visible;
}
.ahm-block .ahm-hero--below .lbs-anchor-host .lbs-dual-badge,
.ahm-block .ahm-hero--below .lbs-anchor-host .live-badge-overlay {
  top: var(--lbs-badge-top, 10px) !important;
  bottom: auto !important;
}
.ahm-block .ahm-hero--below .lbs-anchor-host .lbs-mini-updates--listcard .lbs-mini-updates__item:nth-child(n+6),
.ahm-block .ahm-hero--below .lbs-anchor-host .lbs-mini-updates--overlay .lbs-mini-updates__item:nth-child(n+6) {
  display: flex;
}

/* ─────────────────────────────────────────────────────────────
   v1.31.1 — Mobile "classicizzato" resiliente alla purga FastWCV.
   Quando Mirror+ imposta lo stile mobile su `classic`, LBS rende un
   listcard/overlay in posizione ASSOLUTA dentro la foto hero. L'aspetto
   scuro (gradient + testo bianco + strip orizzontale) vive però in
   `style.css` di LBS, che sul bundle concatenato può essere purgato:
   risultato osservato = card BIANCA opaca a tutta foto ("foto sparita")
   con il badge sovrapposto al testo. Qui replichiamo il minimo
   indispensabile, inline e indipendente dal bundle.
   ───────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .ahm-block .lbs-anchor-host > .lbs-mini-timeline-anchor:has(> .lbs-mini-updates--classic),
  .ahm-block .lbs-anchor-host > .lbs-mini-timeline-anchor:has(> .lbs-mini-updates--listcard[data-mobile-style="classic"]),
  .ahm-block .lbs-anchor-host > .lbs-mini-timeline-anchor:has(> .lbs-mini-updates--overlay[data-mobile-style="classic"]) {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    margin: 0 !important;
    z-index: 5 !important;
    pointer-events: none !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"],
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] {
    background: linear-gradient(to top,
      var(--lbs-mt-card-bg-top, rgba(0,0,0,0.88)) 0%,
      var(--lbs-mt-card-bg-mid, rgba(0,0,0,0.62)) 55%,
      var(--lbs-mt-card-bg-bot, rgba(0,0,0,0)) 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 26px 12px 10px !important;
    pointer-events: auto !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__list,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__list,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__list::-webkit-scrollbar,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__list::-webkit-scrollbar,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__list::-webkit-scrollbar {
    display: none;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__item,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__item,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__item {
    flex: 0 0 70% !important;
    min-width: 70% !important;
    max-width: 70% !important;
    display: flex !important;
    padding: 6px 8px !important;
    margin: 0 !important;
    background: rgba(255,255,255,0.08) !important;
    border-radius: 6px !important;
    opacity: 1 !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__item-content,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__item-content,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__item-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    min-width: 0;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__time,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__time,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__time,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__title,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__title,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__title {
    color: #fff !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__time,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__time,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__time {
    font-size: 0.68rem !important;
    opacity: 0.85 !important;
  }
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__title,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__title,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__title {
    font-size: 0.76rem !important;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
  }
  /* Il "Più aggiornamenti →" non entra nell'overlay foto: nascosto solo qui. */
  .ahm-block .lbs-anchor-host .lbs-mini-updates--classic .lbs-mini-updates__more,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--listcard[data-mobile-style="classic"] .lbs-mini-updates__more,
  .ahm-block .lbs-anchor-host .lbs-mini-updates--overlay[data-mobile-style="classic"] .lbs-mini-updates__more {
    display: none !important;
  }
  /* L'host che ospita l'overlay assoluto deve fare da containing block. */
  .ahm-block .lbs-anchor-host:has(> .lbs-mini-timeline-anchor > .lbs-mini-updates--classic),
  .ahm-block .lbs-anchor-host:has(> .lbs-mini-timeline-anchor > .lbs-mini-updates--listcard[data-mobile-style="classic"]),
  .ahm-block .lbs-anchor-host:has(> .lbs-mini-timeline-anchor > .lbs-mini-updates--overlay[data-mobile-style="classic"]) {
    position: relative !important;
    overflow: hidden !important;
  }
}




/* v1.31.4 — mirror inline dei ritocchi mobile (LBS 6.5.10) + deltas desktop.
   NOTA (lezione 2026-08-26, docs/notes/AHM-HERO-HEADLINE-DESKTOP-LESSONS):
   qui NON si copia verbatim il CSS di LBS — si mirrorano SOLO i valori
   effettivamente decisi per il layout hero_headline, così il mirror non
   sovrascrive mai le misure compatte di Piano B.

   Selettore mobile allargato a `[data-mobile-style="headline"]`: nel ramo
   below_grid l'anchor non dichiara `data-lbs-supports-headline`, quindi LBS
   monta la classe `--listcard` pur avendo lo stile mobile `headline`. Senza
   questo secondo selettore il mirror non agganciava il caso reale. */
@media (max-width: 768px){
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) {
    position: relative !important;
    overflow: hidden !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-timeline-anchor {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    margin: 0 !important;
    z-index: 5 !important;
    pointer-events: none !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates {
    background: linear-gradient(to top,
      var(--lbs-mt-card-bg-top, rgba(0,0,0,0.88)) 0%,
      var(--lbs-mt-card-bg-mid, rgba(0,0,0,0.62)) 55%,
      var(--lbs-mt-card-bg-bot, rgba(0,0,0,0)) 100%) !important;
    color: #fff !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 26px 12px 10px !important;
    margin: 0 !important;
    min-height: 0 !important;
    pointer-events: auto !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__header,
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__headline {
    display: none !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__list {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__list::before {
    display: none !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__item {
    display: flex !important;
    padding: 6px 8px !important;
    margin: 0 !important;
    background: rgba(255,255,255,0.08) !important;
    border: 0 !important;
    border-radius: 6px !important;
    opacity: 1 !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__item::after,
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__item-dot {
    display: none !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__item-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    min-width: 0;
  }
  /* v1.31.5 punto 2 — orario BIANCO non-grassetto (era rosso: illeggibile
     sul gradiente scuro). Stesso bianco del titolo, peso 400. */
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__time {
    color: #fff !important;
    font-size: 0.68rem !important;
    font-weight: 400 !important;
    opacity: 1 !important;
  }
  /* Punto 2 — grassetto esplicito + font-synthesis: su WebKit/Safari il peso
     non veniva ereditato/sintetizzato e il titolo restava regular. */
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__title {
    color: #fff !important;
    font-size: 0.76rem !important;
    font-weight: 800 !important;
    -webkit-font-synthesis: weight style;
    font-synthesis: weight style;
    line-height: 1.25 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
  }
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__more {
    display: none !important;
  }
  /* Punto 1 — overlay mobile: una sola voce (la piu' recente). */
  .ahm-hero__img-wrap.lbs-anchor-host:has(.lbs-mini-updates--headline, .lbs-mini-updates[data-mobile-style="headline"]) .lbs-mini-updates__item:nth-child(n+2) {
    display: none !important;
  }
}

/* v1.31.4 — deltas DESKTOP hero_headline (punti 4/5/6), inline-hardened.
   Solo le proprieta' toccate dal mandato: nessun mirror del layout LBS. */
@media (min-width: 769px){
  .ahm-block--hero-headline .ahm-hero-headline__wrap { gap: 2px; }
  /* v1.31.5 punto 1 — foto hero arrotondata (6px, come gli altri blocchi). */
  .ahm-block--hero-headline .ahm-hero-headline__photo {
    border-radius: 6px;
    overflow: hidden;
  }
  .ahm-block--hero-headline .ahm-hero-headline__img { border-radius: 6px; }
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline {
    border-radius: 8px;
    overflow: hidden;
  }
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__header {
    padding: 12px 0 12px 0 !important;
    margin: 0 !important;
  }
  .ahm-block--hero-headline .ahm-hero-headline__timeline .lbs-mini-updates--headline .lbs-mini-updates__more {
    padding-top: 12px;
    padding-bottom: 12px;
  }
}

/* v1.31.8 — HP-HERO-HEADLINE-NOLABEL-PADDING-01.
   Quando il label è soppresso (classe di stato ahm-block--no-label emessa
   da block-hero-headline.php), azzera il padding-top strutturale di
   `.ahm-block[style*="background-color"]` (1.25rem) così la foto torna a
   ridosso del bordo superiore. Scopato SOLO a hero-headline: side_thumb,
   overlay_grid e gli altri blocchi con background non sono toccati.
   Dentro i marcatori critical → mirrorata automaticamente inline. */
.ahm-block--hero-headline.ahm-block--no-label {
    padding-top: 0;
}

/* ══════════════════════════════════════════════════════════════════
   v1.34.6 — BADGE-CRITICAL-MIRROR-02 (causa STRUTTURALE).
   La v1.34.4 aveva specchiato dentro i marcatori critical SOLO i
   @keyframes, non le regole che l'animazione deve muovere: quando
   FastWCV purga frontend.css, `.ahm-badge`, `.ahm-badge::before` e le
   quattro varianti arrivavano dal critical generato da FastWCV — una
   fotografia scattata in passato (stop 30/45/55/70, mask-size:contain,
   font-size 15.6px, line-height 1.5). Badge di geometria e
   comportamento diversi da pagina a pagina secondo lo stato della
   cache. CORREZIONE: l'INTERO blocco badge vive qui dentro, in UN SOLO
   punto del file (nessuna copia fuori dai marcatori: due copie
   divergono alla prima modifica, ed è esattamente come è nato il bug).
   ══════════════════════════════════════════════════════════════════ */
.ahm-badge {
    /* Maschera SVG del "segno" a triangoli (--ala-sign): valore ESATTO da
       badge-ala-v10.html — due triangoli grandi sovrapposti a opacità 50%
       + uno piccolo pieno interno, viewBox 16x12 (rapporto 4:3). */
    --ala-sign: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12' preserveAspectRatio='none'%3E%3Cpath d='M0 0L10 6L0 12Z M6 0L16 6L6 12Z' fill='%23000' fill-opacity='.5'/%3E%3Cpath d='M6 3L11 6L6 9Z' fill='%23000'/%3E%3C/svg%3E");
    /* v1.34.9 — BADGE-EDITORIAL-STYLE-01: geometria parametrica.
       --f-h  = altezza totale del badge (bordi inclusi, box-sizing:border-box)
       --f-scale = quota dell'altezza occupata dal segno
       --f-gap = spazio segno/testo (margin-right dello ::before)
       Le dimensioni del segno NON sono hardcodate: derivano da --f-h. */
    --f-h: 32px;
    --f-scale: .44;
    --f-gap: 5px;
    --ala-sign-height: calc(var(--f-h) * var(--f-scale));
    --ala-sign-width: calc(var(--f-h) * var(--f-scale) * 1.3333);
    --ala-wave-duration: 2.6s;
    display: inline-flex;
    align-items: center;
    box-sizing: border-box;
    height: var(--f-h);
    margin-bottom: 8px;
    padding: 0 16px 0 11px;
    /* v1.34.9 — bordo pieno al posto dell'anello box-shadow: sopra una foto
       l'ombra a sfocatura zero si perde, il border disegna un contorno netto. */
    border: 2px solid #fff;
    border-radius: 22px;
    background: #d62d2d;
    box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .25);
    color: #fff;
    font-size: 15px;
    line-height: 1;
    font-weight: 700;
    /* v1.32.1 — oblique 14deg esplicito al posto di italic (il font non ha
       un taglio corsivo reale: italic veniva sintetizzato in modo incoerente
       fra motori). */
    font-style: oblique 14deg;
    letter-spacing: .5px;
    text-transform: none;
    vertical-align: middle;
    /* v1.34.5 — opacity .9999 forza un layer di composizione proprio ed
       elimina la frangia da antialiasing subpixel sul testo obliquo. */
    opacity: .9999;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* v1.34.9 — taglie: cambia solo --f-h (segno ricalcolato), font-size,
   --f-gap, padding e raggio. Il bordo resta 2px a tutte le taglie. */
.ahm-badge--sm {
    --f-h: 26px;
    --f-gap: 4px;
    font-size: 12px;
    padding: 0 13px 0 9px;
    border-radius: 18px;
}
.ahm-badge--lg {
    --f-h: 38px;
    --f-gap: 6px;
    font-size: 18px;
    padding: 0 20px 0 14px;
    border-radius: 26px;
}

/* v1.34.0 — icona animata: il segno è una maschera, il background è un
   gradiente in movimento (onda di luce che attraversa il segno). */
.ahm-badge::before {
    content: "";
    flex: 0 0 auto;
    width: var(--ala-sign-width);
    height: var(--ala-sign-height);
    margin-right: var(--f-gap);

    /* v1.34.8 — BADGE-SIGN-BASELINE-01. Fino alla v1.34.7 il segno ERA
       fatto dalla luce che passa: il gradiente andava da bianco al floor a
       bianco pieno, quindi con una fascia stretta il segno restava al floor
       per gran parte del ciclo (sui triangoli grandi, che la maschera pesa
       al 50%, il floor si traduceva in pochi punti di luminanza sopra il
       fondo: segno spento con un guizzo al passaggio dell'onda).
       Correzione strutturale: la base è un `background-color` fisso e
       l'onda è un `background-image` da trasparente a bianco che si compone
       SOPRA la base invece di sostituirla. Beneficio collaterale: se i
       @keyframes non arrivano (critical purgato, animazione orfana) si
       perde il movimento, non l'icona.
       `background-size` resta 180% (v1.34.7, misurato): a 300% la corsa è
       64px per una finestra di 20px e la cresta sta dentro il segno solo
       ~31% del ciclo. */
    background-color: rgba(255, 255, 255, .72);
    background-image: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0)    0%,
        rgba(255, 255, 255, 0)   44%,
        rgba(255, 255, 255, .85) 50%,
        rgba(255, 255, 255, 0)   56%,
        rgba(255, 255, 255, 0)  100%
    );
    background-size: 180% 100%;
    background-position: 130% 0; /* allineato al keyframe `from` */
    background-repeat: no-repeat;
    -webkit-mask-image: var(--ala-sign);
            mask-image: var(--ala-sign);
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    /* v1.34.6 — mask-position: center rimosso: superfluo con mask-size
       100% 100% (il segno riempie esattamente la box). */
    -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
    animation: ahm-badge-wave var(--ala-wave-duration) linear infinite;
}

@keyframes ahm-badge-wave {
    /* v1.34.2 — escursione ESATTA dell'originale (130% → -30%). */
    from { background-position: 130% 0; }
    to   { background-position: -30% 0; }
}

.ahm-badge__text {
    color: #fff;
    font-style: oblique 14deg;
    font-weight: 700;
}

/* Mappatura grafica .ala-flag (v1.33.0, BADGE-BRAND-01 / FASE 1):
     badge_mode='breaking'  → .ahm-badge--breaking  → .ala-flag--ultimora
     badge_mode='live'      → .ahm-badge--live      → .ala-flag--aggiornamento
     badge_mode='exclusive' → .ahm-badge--exclusive → .ala-flag--esclusiva
     badge_mode='streaming' → .ahm-badge--streaming → .ala-flag--live
     LBS pillola destra DIRETTA                     → sistema separato, invariata */

/* v1.34.9 — BADGE-EDITORIAL-STYLE-01: fondo UNICO ereditato da .ahm-badge
   (#d62d2d). breaking / live / streaming differiscono SOLO per la durata
   dell'onda: nessun `background` proprio. */

/* --ultimora — onda 2.6s */
.ahm-badge--breaking {
    --ala-wave-duration: 2.6s;
}
.ahm-badge--breaking,
.ahm-badge--breaking .ahm-badge__text {
    font-style: oblique 14deg;
}

/* --aggiornamento — onda lenta 4.4s */
.ahm-badge--live {
    --ala-wave-duration: 4.4s;
}
.ahm-badge--live,
.ahm-badge--live .ahm-badge__text {
    font-style: oblique 14deg;
}

/* --esclusiva — verde #407a3c (5,16:1 su bianco), segno FERMO
   (unica variante con fondo proprio) */
.ahm-badge--exclusive {
    background: #407a3c;
}

.ahm-badge--exclusive,
.ahm-badge--exclusive .ahm-badge__text {
    font-style: oblique 14deg;
}
/* v1.34.6 — BADGE-STATIC-FIX-01. `background-position: 50% 0` funzionava
   quando la fascia luminosa era larga il 120% del segno (segno tutto
   illuminato). Con la fascia stretta (~24%) lasciava accesa una lama
   sottile al centro e il resto al 38%: badge "spento". Un badge fermo non
   usa il gradiente, usa un colore pieno — la maschera contiene già la
   gerarchia (triangoli grandi 50%, interno 100%).
   NB: background-color, NON background (azzererebbe anche la mask). */
.ahm-badge--exclusive::before {
    animation: none;
    background-image: none;
    background-color: #fff;
}

/* --live (diretta VIDEO, badge_mode='streaming') — onda 1.7s.
   NON collegato allo stato dei liveblog né al dual-badge LBS. */
.ahm-badge--streaming {
    --ala-wave-duration: 1.7s;
}

.ahm-badge--streaming,
.ahm-badge--streaming .ahm-badge__text {
    font-style: oblique 14deg;
}

@media (prefers-reduced-motion: reduce) {
    /* v1.34.6 — stessa correzione del badge Esclusiva: fermo = pieno. */
    .ahm-badge::before {
        animation: none;
        background-image: none;
        background-color: #fff;
    }
}

/* !AHM-CRITICAL-CSS:END */


/* ==========================================================
   v1.36.0 — HP-HERO-HEADLINE-FALLBACK-PARITY-01
   Ramo FALLBACK di hero_headline (liveblog chiuso o post non
   liveblog): il blocco deve risultare VISIVAMENTE IDENTICO a un
   blocco standard (above_list / below_list) — foto 16/9 con
   hover-zoom, titolo e estratto con la stessa tipografia di
   .ahm-hero__title / .ahm-hero__excerpt, sottotitolo editoriale.
   Scope rigorosamente limitato a .ahm-block--hero-headline-fallback:
   il ramo live (foto 66% + timeline 34%) resta invariato.
   ========================================================== */
.ahm-block--hero-headline-fallback .ahm-hero-headline__photo {
  display: block;
  flex: none;
  max-width: 100%;
  overflow: hidden;
  border-radius: 6px;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__link {
  display: block;
  flex: none;
  overflow: hidden;
  border-radius: 6px;
  line-height: 0;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__img {
  width: 100%;
  height: auto;
  min-height: 0;
  align-self: auto;
  border-radius: 6px;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__link:hover .ahm-hero-headline__img {
  transform: scale(1.03);
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__placeholder {
  width: 100%;
  min-height: 0;
  aspect-ratio: 16/9;
  background: #f1f1f1;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__fallback-content {
  padding-top: 12px;
}
/* Tipografia titolo: valori identici a .ahm-hero__title (non "simili"). */
.ahm-block--hero-headline-fallback .ahm-hero-headline__title,
.ahm-block--hero-headline-fallback .ahm-hero-headline__title a {
  font-family: 'Inter', -apple-system, sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.35rem;
  line-height: 1.2;
  color: #0f172a;
  text-decoration: none;
  letter-spacing: -0.02em;
  margin: 0;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__title {
  /* Stesso ritmo verticale di .ahm-block .ahm-hero__title (v1.27.8). */
  margin-bottom: 12px;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__title a:hover {
  color: #2271b1;
  text-decoration: none;
  opacity: 1;
}
.ahm-block--hero-headline-fallback .ahm-hero-headline__author {
  /* Stesso ritmo verticale di .ahm-block .ahm-hero__author (v1.27.8). */
  margin: 18px 0 24px;
}
/* Tipografia estratto: valori identici a .ahm-hero__excerpt. */
.ahm-block--hero-headline-fallback .ahm-hero-headline__excerpt {
  font-family: 'Libre Baskerville', Georgia, serif !important;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.65;
  color: #334155;
  margin: 8px 0 0;
}
@media (max-width: 768px) {
  .ahm-block--hero-headline-fallback .ahm-hero-headline__photo,
  .ahm-block--hero-headline-fallback .ahm-hero-headline__link { display: block; }
  .ahm-block--hero-headline-fallback .ahm-hero-headline__img { min-height: 0; }
  .ahm-block--hero-headline-fallback .ahm-hero-headline__title,
  .ahm-block--hero-headline-fallback .ahm-hero-headline__title a { font-size: 1.35rem; }
}
