/*
Theme Name:   Newspaper Child
Theme URI:    https://thethinkingwatermill.kreita.it
Description:  Child theme of Newspaper - TTW customizations
Author:       Kreita
Template:     Newspaper
Version:      1.0.0
*/

:root {
    --tt-hover: #0E336D;
    --td_theme_color: #0E336D;
    --ttw-macro-accent: #0E336D;
    --ttw-macro-accent-strong: #0A2754;
    --ttw-macro-accent-soft: rgba(14, 51, 109, 0.08);
    --ttw-macro-accent-border: rgba(14, 51, 109, 0.2);
    --ttw-sub-accent: #fe7503;
    --ttw-sub-accent-soft: rgba(254, 117, 3, 0.12);
    --ttw-sub-accent-border: rgba(254, 117, 3, 0.34);
    --ttw-sub-accent-text: #b35300;
}

/* ── Macro e sottocategorie ── */
.ttw-category-groups {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0 0 14px;
}

.ttw-category-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.ttw-category-link {
    display: inline-flex;
    align-items: center;
    margin: 0 !important;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    white-space: nowrap;
    transition: color 0.26s ease, border-color 0.26s ease, background-color 0.26s ease, transform 0.26s ease, opacity 0.26s ease;
}

.ttw-category-link:hover,
.ttw-category-link:focus,
.ttw-category-link:visited {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* Macro: piccolo link colorato in alto (come il tema originale) */
.ttw-category-link--macro {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ttw-macro-accent) !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    position: static !important;
}

.ttw-category-link--macro:hover {
    color: var(--ttw-macro-accent-strong) !important;
    opacity: 0.78;
}

/* Separatore tra macro multipli */
.ttw-category-links--macro .ttw-category-link--macro + .ttw-category-link--macro::before {
    content: "·";
    margin-right: 6px;
    color: rgba(14, 51, 109, 0.38);
    font-weight: 400;
}

/* Sottocategoria: pill calda e piu presente */
.ttw-category-link--sub {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--ttw-sub-accent-text) !important;
    padding: 4px 12px !important;
    background: linear-gradient(180deg, rgba(255, 249, 236, 0.98) 0%, rgba(254, 117, 3, 0.18) 100%) !important;
    border: 1px solid var(--ttw-sub-accent-border) !important;
    border-radius: 20px;
    position: static !important;
    transition: color 0.26s ease, border-color 0.26s ease, background-color 0.26s ease, transform 0.26s ease;
}

.ttw-category-link--sub:hover {
    color: #1d1400 !important;
    background: var(--ttw-sub-accent) !important;
    border-color: var(--ttw-sub-accent) !important;
    transform: translateY(-1px);
}

.ttw-category-link .tdb-cat-bg {
    display: none !important;
}

.tdb_single_categories .ttw-category-groups {
    margin-bottom: 0;
}

.single-post .tdb_single_categories .ttw-category-link--macro {
    font-size: 13px !important;
}

.single-post .tdb_single_categories .ttw-category-link--sub {
    font-size: 13px !important;   /* come la macro: le etichette sono tutte uguali (3/8/2026) */
}

/* ── Categorie compatte nelle card/listing ── */
.ttw-module-categories {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    line-height: 1;
}

.ttw-module-category-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    white-space: nowrap;
    transition: color 0.26s ease, border-color 0.26s ease, background-color 0.26s ease, transform 0.26s ease, opacity 0.26s ease;
}

.ttw-module-category-link:hover,
.ttw-module-category-link:focus,
.ttw-module-category-link:visited {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-module-category-link--macro {
    min-height: auto;
    padding: 0;
    border: none !important;
    background: transparent !important;
    color: var(--ttw-macro-accent) !important;
    font-family: var(--tt-extra) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ttw-module-category-link--macro:hover {
    color: var(--ttw-macro-accent-strong) !important;
    opacity: 0.78;
}

.ttw-module-category-link--sub {
    font-family: var(--ttw-body-font);
    font-size: 9px;
    font-weight: 700;
    color: var(--ttw-sub-accent-text) !important;
    padding: 6px 11px;
    border: 1px solid var(--ttw-sub-accent-border);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 249, 236, 0.98) 0%, rgba(254, 117, 3, 0.18) 100%);
}

.ttw-module-category-link--sub:hover {
    color: #333333bd !important;
    border-color: #fe750370;
    background: #fe750370;
    transform: translateY(-1px);
}

.ttw-module-category-link:visited {
    color: inherit;
}

a.td-post-category,
a.td-post-category:visited {
    display: inline-flex;
    align-items: center;
    padding: 0 !important;
    margin: 0 10px 0 0 !important;
    border: none !important;
    background: transparent !important;
    color: var(--ttw-macro-accent) !important;
    font-family: var(--tt-extra) !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

a.td-post-category:hover,
a.td-post-category:focus {
    color: var(--ttw-macro-accent-strong) !important;
    opacity: 0.78;
}

.home .td-module-title a {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: inset 0 0 0 0 transparent !important;
    transition: color 0.24s ease, opacity 0.24s ease !important;
}

.home .td_module_wrap:hover .td-module-title a,
.home .td-module-title a:hover {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: inset 0 0 0 0 transparent !important;
}

.home .tdc-row:has(a[title="Latest Videos"]),
.home .tdc-row:has(.tds_leads),
.home .tdc-row:has(.tdm_block_popup),
.home .tdc-row:has(.td_block_social_counter) {
    display: none !important;
}

.ttw-featured-video-embed {
    position: relative;
    width: 100%;
}

.ttw-featured-video-embed iframe,
.ttw-featured-video-embed video,
.ttw-featured-video-embed .wp-video,
.ttw-featured-video-embed .wp-block-embed,
.ttw-featured-video-embed .wp-block-embed__wrapper {
    display: block;
    width: 100% !important;
    max-width: 100%;
}

.ttw-featured-video-embed iframe,
.ttw-featured-video-embed video {
    aspect-ratio: 16 / 9;
    min-height: 420px;
    border: 0;
}

/* ── Autori inline (nel meta-info) ── */
.td-post-author-name .ttw-authors {
    font-weight: 600;
    color: #333;
}

/* ── Link autore nel builder tdb_single_author ── */
a.tdb-author-name,
a.ttw-author-name {
    font-weight: 700;
    color: #000;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.15s;
}
a.tdb-author-name:hover,
a.ttw-author-name:hover {
    color: var(--ttw-macro-accent);
}
.ttw-author-sep {
    font-weight: 400;
    color: #767676;
}

/* ── Link autore nel loop-single (fallback senza builder) ── */
.td-post-author-name .ttw-authors a.ttw-author-link {
    color: #000;
    text-decoration: none;
    transition: color 0.15s;
}
.td-post-author-name .ttw-authors a.ttw-author-link:hover {
    color: var(--ttw-macro-accent);
}

/* ── Author box in fondo - versione custom (autori non-WP) ── */
.ttw-author-box {
    border-top: 2px solid #eaeaea;
    padding: 20px 0 10px;
    margin-top: 20px;
}

.ttw-author-box .ttw-author-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #999;
    margin-bottom: 6px;
}

.ttw-author-box .ttw-author-names {
    font-size: 17px;
    font-weight: 700;
    color: #111;
}

/* Cloud Template: custom author without WP profile box */
.single-post.ttw-has-custom-author .tdb-author-box .tdb-author-photo,
.single-post.ttw-has-custom-author .tdb-author-box .tdb-author-url,
.single-post.ttw-has-custom-author .tdb-author-box .tdb-author-descr,
.single-post.ttw-has-custom-author .tdb-author-box .tdb-author-social {
    display: none !important;
}

.single-post.ttw-has-custom-author .tdb-author-box .tdb-author-info {
    padding-left: 0 !important;
}

/* ── Footer personalizzato ── */
.ttw-site-footer {
    position: relative;
    left: 50%;
    right: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-right: -50vw;
    background: #070707;
    border-top: 4px solid var(--tt-accent-color, #fe7503);
    color: #fff;
}

.ttw-site-footer__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 78px 28px 0;
}

.ttw-site-footer__top {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 1fr 1fr;
    gap: 36px;
    padding-bottom: 56px;
}

.ttw-site-footer__brand,
.ttw-site-footer__column {
    min-width: 0;
}

.ttw-site-footer__eyebrow {
    margin: 0 0 14px;
    color: var(--tt-accent-color, #fe7503);
    font-family: var(--td_default_google_font_1, 'Open Sans', sans-serif);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ttw-site-footer__title {
    margin: 0 0 16px;
    font-family: var(--tt-primary-font) !important;
    font-size: 34px;
    line-height: 1.02;
    font-weight: 800;
    letter-spacing: -1px;
}

.ttw-site-footer__title a,
.ttw-site-footer__links a,
.ttw-site-footer__trend-title a,
.ttw-site-footer__categories a,
.ttw-site-footer__bottom-nav a,
.ttw-site-footer__meta a {
    color: #fff;
    text-decoration: none;
}

.ttw-site-footer__title a:hover,
.ttw-site-footer__links a:hover,
.ttw-site-footer__trend-title a:hover,
.ttw-site-footer__categories a:hover,
.ttw-site-footer__bottom-nav a:hover,
.ttw-site-footer__meta a:hover,
.ttw-site-footer__trend-cat:hover {
    color: var(--tt-accent-color, #fe7503);
}

.ttw-site-footer__summary,
.ttw-site-footer__meta,
.ttw-site-footer__empty {
    color: rgba(255, 255, 255, 0.82);
    font-family: var(--td_default_google_font_1, 'Open Sans', sans-serif);
    font-size: 15px;
    line-height: 1.85;
}

.ttw-site-footer__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 22px;
}

.ttw-site-footer__heading {
    margin: 0 0 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    color: #fff;
    font-family: var(--tt-primary-font) !important;
    font-size: 16px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase !important;
}

.ttw-site-footer__links,
.ttw-site-footer__categories {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ttw-site-footer__links li,
.ttw-site-footer__categories li {
    margin: 0 0 12px;
}

.ttw-site-footer__links a,
.ttw-site-footer__categories a,
.ttw-site-footer__trend-cat {
    font-family: var(--td_default_google_font_1, 'Open Sans', sans-serif);
    font-size: 15px;
    font-weight: 500;
}

.ttw-site-footer__trending {
    display: grid;
    gap: 18px;
}

.ttw-site-footer__trend-cat {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--tt-accent-color, #fe7503);
    text-decoration: none;
}

.ttw-site-footer__trend-title {
    margin: 0;
    font-family: var(--tt-primary-font) !important;
    font-size: 18px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.4px;
}

.ttw-site-footer__categories li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: baseline;
}

.ttw-site-footer__categories span {
    color: rgba(255, 255, 255, 0.72);
    font-family: var(--td_default_google_font_1, 'Open Sans', sans-serif);
    font-size: 15px;
    font-weight: 500;
}

.ttw-site-footer__bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 24px;
    align-items: center;
    padding: 28px 0 34px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.ttw-site-footer__bottom-nav,
.ttw-site-footer__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 22px;
}

.ttw-site-footer__bottom-nav a,
.ttw-site-footer__copyright {
    font-family: var(--td_default_google_font_1, 'Open Sans', sans-serif);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.6;
}

.ttw-site-footer__bottom-nav a {
    text-transform: uppercase;
}

.ttw-site-footer__copyright {
    color: rgba(255, 255, 255, 0.88);
    text-align: center;
}

.ttw-site-footer__socials {
    justify-content: flex-end;
}

.ttw-site-footer__socials a {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.42);
    color: #fff;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.ttw-site-footer__socials a:hover {
    border-color: var(--tt-accent-color, #fe7503);
    background: var(--tt-accent-color, #fe7503);
    color: #fff;
}

.ttw-site-footer__socials svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

@media (max-width: 1018px) {
    .ttw-site-footer__top {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 34px 24px;
    }

    .ttw-site-footer__bottom {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .ttw-site-footer__bottom-nav,
    .ttw-site-footer__socials {
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .ttw-site-footer__inner {
        padding: 54px 20px 0;
    }

    .ttw-site-footer__top {
        grid-template-columns: 1fr;
        gap: 30px;
        padding-bottom: 34px;
    }

    .ttw-site-footer__title {
        font-size: 28px;
    }

    .ttw-site-footer__trend-title {
        font-size: 16px;
    }

    .ttw-site-footer__bottom {
        gap: 18px;
        padding: 24px 0 28px;
    }

    .ttw-site-footer__bottom-nav {
        gap: 10px 16px;
    }

    .ttw-category-link--sub {
        font-size: 13px !important;
        padding: 6px 10px !important;
    }
}

/* ── Header menu personalizzato ── */
.sf-menu > li.menu-item-has-children > a[href="#"] {
    cursor: default;
}

.td-header-desktop-wrap .tdb_header_date + .tdb_header_menu_favorites {
    margin-left: 14px !important;
}

.td-header-desktop-wrap .tdb_header_date + .tdb_header_menu_favorites .tdb-block-inner {
    padding-top: 0 !important;
}

/* ── Design tokens frontend ── */
:root {
    --ttw-page-container-max: 1440px;
    --ttw-page-shell-max: 1280px;
    --ttw-page-reading-max: 1120px;
    --ttw-page-space-top: 48px;
    --ttw-page-space-bottom: 72px;
    --ttw-page-gutter-desktop: 24px;
    --ttw-heading-font: var(--tt-primary-font);
    --ttw-body-font: 'Merriweather', Georgia, serif;
}

/* ── Pagine istituzionali ── */
.ttw-page-wrap,
.ttw-author-single-wrap {
    padding-top: var(--ttw-page-space-top);
    padding-bottom: var(--ttw-page-space-bottom);
}

.ttw-author-single-wrap {
    padding-bottom: calc(var(--ttw-page-space-bottom) + 56px);
}

.ttw-page-container {
    width: auto !important;
    max-width: var(--ttw-page-container-max);
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
}

.ttw-page-shell {
    max-width: var(--ttw-page-shell-max);
    margin: 0 auto;
}

.ttw-page-header {
    margin-bottom: 34px;
    text-align: center;
}

.ttw-page-title {
    margin: 0;
}

.ttw-page-title,
.ttw-author-single__title {
    font-family: var(--ttw-heading-font) !important;
    font-size: 46px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-transform: none !important;
    letter-spacing: -1.5px;
    color: #111;
}

.ttw-page-title span {
    display: inline-block;
}

.ttw-page-content {
    font-family: var(--ttw-body-font);
    color: #4a4a4a;
    font-size: 18px;
    line-height: 1.8;
}

.ttw-page-lead,
.ttw-page-content > p,
.ttw-page-content > ul,
.ttw-page-content > ol {
    max-width: var(--ttw-page-reading-max);
    margin-left: auto;
    margin-right: auto;
}

.ttw-page-content p {
    margin-bottom: 22px;
}

.ttw-page-wrap--autori .ttw-page-content > p {
    text-align: center;
}

.ttw-page-content > *:last-child {
    margin-bottom: 0;
}

.ttw-page-content h2,
.ttw-page-content h3 {
    margin: 0 0 18px;
    color: #111;
    font-family: var(--ttw-heading-font) !important;
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.8px;
    text-transform: none !important;
}

.ttw-page-content h2 {
    font-size: 34px;
}

.ttw-page-content h3 {
    font-size: 24px;
}

.ttw-page-content a {
    color: #111;
    text-decoration-color: rgba(17, 17, 17, 0.22);
    text-underline-offset: 0.16em;
}

.ttw-page-content a:hover {
    color: var(--ttw-macro-accent);
    text-decoration-color: currentColor;
}

.ttw-page-lead {
    margin: 0 auto 42px;
    color: #1f1f1f;
    font-family: var(--ttw-body-font);
    font-size: 22px;
    line-height: 1.65;
    text-align: center;
}

.ttw-about-grid,
.ttw-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin: 44px 0;
}

.ttw-about-card,
.ttw-contact-card,
.ttw-about-structure,
.ttw-contact-map {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(14, 51, 109, 0.12);
    background: linear-gradient(180deg, #fffdf8 0%, #ffffff 100%);
    box-shadow: 0 18px 38px rgba(14, 51, 109, 0.06);
    transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.ttw-about-card::before,
.ttw-contact-card::before,
.ttw-about-structure::before,
.ttw-contact-map::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--ttw-macro-accent) 0%, var(--tt-accent-color, #fe7503) 100%);
}

.ttw-about-card:hover,
.ttw-contact-card:hover,
.ttw-about-structure:hover,
.ttw-contact-map:hover {
    transform: translateY(-3px);
    border-color: rgba(14, 51, 109, 0.18);
    box-shadow: 0 22px 46px rgba(14, 51, 109, 0.09);
}

.ttw-about-card,
.ttw-contact-card {
    padding: 30px 28px;
}

.ttw-about-card h2,
.ttw-contact-card h2,
.ttw-about-structure h2,
.ttw-contact-map h2 {
    color: var(--ttw-macro-accent);
}

.ttw-about-card p,
.ttw-contact-card p {
    margin-bottom: 0;
}

.ttw-about-card p + p,
.ttw-contact-card p + p,
.ttw-about-structure p + p,
.ttw-contact-map p + p {
    margin-top: 14px;
}

.ttw-contact-card a:not(.ttw-contact-social) {
    color: var(--ttw-macro-accent);
    font-weight: 700;
}

.ttw-contact-card a:not(.ttw-contact-social):hover,
.ttw-contact-card a:not(.ttw-contact-social):focus {
    color: var(--ttw-macro-accent-strong);
}

.ttw-about-structure,
.ttw-contact-map {
    margin-top: 44px;
    padding: 34px;
}

.ttw-contact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ttw-contact-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin-top: 18px;
}

.ttw-contact-socials a {
    font-family: var(--ttw-body-font);
    font-size: 15px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0.02em;
    text-decoration: none;
}

.ttw-contact-socials--icons {
    gap: 14px;
}

.ttw-contact-social {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(14, 51, 109, 0.14);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 249, 236, 0.98) 0%, rgba(254, 117, 3, 0.18) 100%);
    color: var(--ttw-macro-accent) !important;
    box-shadow: none !important;
    transition: transform 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}

.ttw-contact-social:hover,
.ttw-contact-social:focus {
    color: #333333bd !important;
    border-color: #fe750370;
    background: #fe750370;
    transform: translateY(-2px);
}

.ttw-contact-social svg {
    width: 21px;
    height: 21px;
    display: block;
    fill: currentColor;
}

.ttw-contact-map iframe {
    display: block;
    width: 100%;
    min-height: 420px;
    border: 0;
}

.ttw-contact-map__frame {
    margin-top: 18px;
    border-radius: 18px;
    overflow: hidden;
}

.ttw-page-shell--articoli .ttw-page-content,
.ttw-page-shell--autori .ttw-page-content {
    max-width: none;
}

.ttw-page-content h2 {
    font-size: 25px !important;
}

/* ── Archivio articoli ── */
.ttw-articles-archive {
    margin-top: 46px;
}

.ttw-articles-filters {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-bottom: 56px;
    text-align: center;
}

.ttw-articles-filters__macros,
.ttw-articles-filters__subs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    max-width: 1120px;
}

.ttw-articles-filters__macros {
    gap: 10px;
}

.ttw-articles-filters__subs {
    gap: 8px;
}

.ttw-articles-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e7e7e7;
    background: #fff;
    color: #111;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    border-radius: 0;
    transition: background-color 0.24s ease, color 0.24s ease, border-color 0.24s ease, transform 0.24s ease;
}

.ttw-articles-filter:visited {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-articles-filter:hover,
.ttw-articles-filter:focus {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    transform: translateY(-1px);
}

.ttw-articles-filter--reset,
.ttw-articles-filter--macro {
    min-height: 40px;
    padding: 11px 16px;
    background: var(--ttw-macro-accent-soft);
    border-color: var(--ttw-macro-accent-border);
    color: var(--ttw-macro-accent);
    font-family: var(--tt-extra) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ttw-articles-filter--reset:hover,
.ttw-articles-filter--reset:focus,
.ttw-articles-filter--macro:hover,
.ttw-articles-filter--macro:focus {
    border-color: var(--ttw-macro-accent);
    background: rgba(14, 51, 109, 0.12);
    color: var(--ttw-macro-accent);
}

.ttw-articles-filter--all {
    margin-right: 0;
}

.ttw-articles-filter--sub,
.ttw-articles-filter--sub:link,
.ttw-articles-filter--sub:visited {
    min-height: 34px;
    padding: 8px 13px;
    font-family: var(--tt-extra) !important;
    font-size: 12px;
    line-height: 1;
    font-weight: 600;
    background: linear-gradient(180deg, rgba(255, 249, 236, 0.98) 0%, rgba(254, 117, 3, 0.18) 100%);
    color: var(--ttw-sub-accent-text) !important;
    border-color: var(--ttw-sub-accent-border) !important;
    border-radius: 999px;
}

.ttw-articles-filter--sub:hover,
.ttw-articles-filter--sub:focus {
    border-color: var(--ttw-sub-accent);
    background: var(--ttw-sub-accent-soft);
    color: var(--ttw-sub-accent-text);
}

.ttw-articles-filter.is-active {
    transform: none;
}

.ttw-articles-filter--reset.is-active,
.ttw-articles-filter--macro.is-active {
    background: var(--ttw-macro-accent);
    border-color: var(--ttw-macro-accent);
    color: #fff;
}

.ttw-articles-filter--sub.is-active,
.ttw-articles-filter--sub.is-active:hover,
.ttw-articles-filter--sub.is-active:focus {
    color: #333333bd !important;
    border-color: #fe750370 !important;
    background: #fe750370 !important;
}

.ttw-articles-filter--reset:visited,
.ttw-articles-filter--macro:visited {
    color: var(--ttw-macro-accent);
}

.ttw-articles-filter--reset.is-active:visited,
.ttw-articles-filter--macro.is-active:visited {
    color: #fff;
}

.ttw-articles-filter--sub.is-active:visited {
    color: #333333bd !important;
}

.ttw-articles-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 36px 20px;
}

.ttw-article-card__thumb,
.ttw-article-card__title a {
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-article-card__thumb {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: #f3f5f9;
    margin-bottom: 0;
}

.ttw-article-card__thumb img,
.ttw-article-card__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ttw-article-card__thumb-placeholder {
    background: linear-gradient(135deg, #eef2f7 0%, #dde4ee 100%);
}

.ttw-article-card__content {
    padding-top: 13px;
}

.ttw-articles-grid .ttw-module-categories {
    margin: 0 0 10px;
}

.ttw-articles-grid .ttw-module-category-link--macro {
    color: var(--ttw-macro-accent) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ttw-articles-grid .ttw-module-category-link--macro:hover {
    color: var(--ttw-macro-accent-strong) !important;
}

.ttw-articles-grid .ttw-module-category-link--sub {
    font-size: 11px;
    color: var(--ttw-sub-accent-text) !important;
    background: linear-gradient(180deg, rgba(255, 249, 236, 0.98) 0%, rgba(254, 117, 3, 0.18) 100%);
    border-color: var(--ttw-sub-accent-border);
}

.ttw-article-card__title {
    margin: 0 0 8px;
    font-family: var(--ttw-heading-font) !important;
    font-size: 25px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -0.7px;
}

.ttw-article-card__title a {
    color: #111;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    transition: color 0.22s ease, opacity 0.22s ease;
}

.ttw-article-card__title a:visited {
    color: #111;
}

.ttw-article-card__title a:hover {
    color: var(--tt-hover);
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-article-card__excerpt,
.ttw-articles-empty {
    margin: 0;
    font-family: var(--ttw-body-font);
    color: #6e6e6e;
    font-size: 14px;
    line-height: 1.7;
}

.ttw-articles-empty {
    text-align: center;
}

.ttw-articles-pagination {
    margin-top: 46px;
}

.ttw-articles-pagination ul {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0;
    padding: 0;
}

.ttw-articles-pagination a,
.ttw-articles-pagination span {
    display: inline-flex;
    min-width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid #ececec;
    background: #fff;
    color: #111;
    font-family: var(--ttw-body-font);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.ttw-articles-pagination .current {
    background: #111;
    border-color: #111;
    color: #fff;
}

.ttw-articles-pagination a:hover {
    border-color: #111;
    color: #111;
}

/* ── Archivio autori ── */
.ttw-authors-archive {
    margin-top: 42px;
    padding-top: 58px;
    border-top: 5px solid #111;
}

.ttw-authors-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 56px 18px;
    margin: 0;
}

.ttw-author-card {
    text-align: left;
    transition: transform 0.24s ease, opacity 0.24s ease;
    will-change: transform;
}

.ttw-author-card:hover,
.ttw-author-card:focus-within {
    transform: translateY(-4px);
}

.ttw-author-card__media,
.ttw-author-card__name a,
.ttw-author-post__title a {
    text-decoration: none;
}

.ttw-author-card__media {
    display: block;
    margin-bottom: 18px;
}

.ttw-author-visual {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 0;
    object-fit: cover;
    display: block;
    background: #f5f5f5;
}

.ttw-author-visual--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    color: #888;
    font-size: 42px;
    font-weight: 800;
    letter-spacing: 2px;
}

.ttw-author-card__copy {
    padding-top: 0;
}

.ttw-author-card__name {
    margin: 0 0 16px;
    font-family: var(--ttw-heading-font) !important;
    font-size: 25px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -1.2px;
    text-transform: none !important;
}

.ttw-author-card__name a {
    color: #111;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
    transition: color 0.28s ease, opacity 0.28s ease;
}

.ttw-author-card__name a:hover,
.ttw-author-card__name a:focus {
    color: var(--ttw-macro-accent);
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-author-card__excerpt,
.ttw-author-card__role {
    margin: 0;
    font-family: var(--ttw-body-font);
    color: #6a6a6a;
    font-size: 15px;
    line-height: 1.66;
}

/* ── Singolo autore ── */
.ttw-author-single {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 56px;
    align-items: start;
    padding: 0;
}

.ttw-author-single__links {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 18px;
}

.ttw-author-social {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1a4a8a;
    text-decoration: none;
}

.ttw-author-social:hover {
    color: #f47a20;
}

.ttw-author-social svg {
    width: 30px;
    height: 30px;
    fill: currentColor;
}

.ttw-author-single__title {
    margin: 0 0 10px;
    color: #111;
}

.ttw-author-single__role {
    margin: 0 0 26px;
    color: #7f7f7f;
    font-family: var(--ttw-body-font);
    font-size: 18px;
    font-weight: 500;
}

.ttw-author-single__bio {
    color: #4f4f4f;
    font-family: var(--ttw-body-font);
    font-size: 18px;
    line-height: 1.7;
}

.ttw-author-single__bio p {
    margin-bottom: 20px;
}

.ttw-author-posts {
    margin-top: 50px;
    padding-top: 34px;
    border-top: 1px solid #ececec;
}

.ttw-author-posts__title {
    margin: 0 0 24px;
    font-size: 28px;
    color: #111;
    font-family: var(--ttw-heading-font) !important;
    line-height: 1.02;
    letter-spacing: -0.8px;
    font-weight: 800;
}

.ttw-author-posts__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.ttw-author-post__thumb {
    display: block;
    aspect-ratio: 1.45;
    overflow: hidden;
    border-radius: 20px;
    background: #f3f5f9;
    margin-bottom: 16px;
}

.ttw-author-post__thumb img,
.ttw-author-post__thumb-placeholder {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.ttw-author-post__thumb-placeholder {
    background: linear-gradient(135deg, #eef2f7 0%, #dde4ee 100%);
}

.ttw-author-post__title {
    margin: 8px 0 0;
    font-family: var(--ttw-heading-font) !important;
    font-size: 20px;
    line-height: 1.14;
    letter-spacing: -0.4px;
    font-weight: 800;
}

.ttw-author-post__title a {
    color: #111;
}

.ttw-author-post__title a:hover {
    color: var(--ttw-macro-accent);
}

@media (max-width: 1018px) {
    .ttw-about-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ttw-contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ttw-articles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ttw-authors-grid,
    .ttw-author-posts__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ttw-article-card__title {
        font-size: 20px;
    }

    .ttw-articles-grid .ttw-module-category-link--macro {
        font-size: 11px;
    }

    .ttw-authors-archive {
        padding-top: 44px;
    }

    .ttw-author-single {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 36px;
    }

    .ttw-author-card__name {
        font-size: 28px;
        line-height: 0.98;
    }

    .ttw-author-single__title {
        font-size: 50px !important;
    }
}

@media (min-width: 1141px) {
    .ttw-page-container {
        padding-left: var(--ttw-page-gutter-desktop);
        padding-right: var(--ttw-page-gutter-desktop);
    }

    .ttw-author-single-wrap .ttw-page-container {
        margin-bottom: 50px;
    }
}

@media (min-width: 768px) and (max-width: 1018px) {
    .ttw-page-container {
        padding-left: 14px;
        padding-right: 14px;
    }
}

@media (max-width: 767px) {
    :root {
        --ttw-page-space-top: 32px;
        --ttw-page-space-bottom: 54px;
    }

    .ttw-author-single-wrap {
        padding-bottom: calc(var(--ttw-page-space-bottom) + 18px);
    }

    .ttw-authors-grid,
    .ttw-author-posts__grid,
    .ttw-author-single {
        grid-template-columns: 1fr;
    }

    .ttw-articles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 10px;
    }

    .ttw-articles-filters {
        margin-bottom: 34px;
        gap: 8px;
    }

    .ttw-articles-filter--reset,
    .ttw-articles-filter--macro {
        min-height: 34px;
        padding: 9px 12px;
        font-size: 11px;
    }

    .ttw-articles-filter--sub {
        min-height: 30px;
        padding: 7px 10px;
        font-size: 11px;
    }

    .ttw-articles-grid .ttw-module-category-link--macro {
        font-size: 10px;
    }

    .ttw-article-card__title {
        font-size: 18px;
        letter-spacing: -0.5px;
    }

    .ttw-article-card__excerpt {
        font-size: 12px;
    }

    .ttw-authors-grid {
        gap: 32px;
    }

    .ttw-authors-archive {
        margin-top: 32px;
        padding-top: 32px;
    }

    .ttw-author-card__name {
        font-size: 24px;
        line-height: 1;
        letter-spacing: -0.8px;
    }

    .ttw-author-single {
        gap: 24px;
    }

    .ttw-author-single__media {
        max-width: 360px;
        width: 100%;
        margin: 0 auto;
    }

    .ttw-author-single__title {
        font-size: 50px !important;
        letter-spacing: -1px;
    }

    .ttw-author-single__bio {
        font-size: 16px;
    }

    .ttw-page-wrap {
        padding-top: 26px;
        padding-bottom: 54px;
    }

    .ttw-page-header {
        margin-bottom: 24px;
    }

    .ttw-page-content {
        font-size: 16px;
        line-height: 1.75;
    }

    .ttw-page-content h2 {
        font-size: 28px;
    }

    .ttw-page-content h3 {
        font-size: 22px;
    }

    .ttw-page-lead {
        margin-bottom: 30px;
        font-size: 18px;
    }

    .ttw-about-grid,
    .ttw-contact-grid {
        grid-template-columns: 1fr;
        gap: 18px;
        margin: 30px 0;
    }

    .ttw-about-card,
    .ttw-contact-card,
    .ttw-about-structure,
    .ttw-contact-map {
        padding: 24px 22px;
    }

    .ttw-contact-map iframe {
        min-height: 320px;
    }
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network {
    color: #fe7503;
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network .td-social-but-icon,
.single-post .tdb_single_post_share .td-post-sharing .td-social-network .td-social-but-text {
    background-color: #0E336D !important;
    border: 1px solid #fe7503;
    color: #fe7503 !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network .td-social-but-text:before {
    background-color: #fe7503;
    opacity: 0.2;
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network:hover {
    opacity: 1 !important;
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network:hover .td-social-but-icon,
.single-post .tdb_single_post_share .td-post-sharing .td-social-network:hover .td-social-but-text,
.single-post .tdb_single_post_share .td-post-sharing .td-social-network:focus-visible .td-social-but-icon,
.single-post .tdb_single_post_share .td-post-sharing .td-social-network:focus-visible .td-social-but-text {
    background-color: #FFFFFF !important;
    border-color: #fe7503;
    color: #fe7503 !important;
}

.single-post .tdb_single_post_share .td-post-sharing .td-social-network:focus-visible .td-social-but-icon,
.single-post .tdb_single_post_share .td-post-sharing .td-social-network:focus-visible .td-social-but-text {
    box-shadow: 0 0 0 3px rgba(228, 164, 30, 0.18);
}

/* ==========================================
   HEADER TOP BAR - Follow us social icons
   ========================================== */

.ttw-header-follow {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

.ttw-header-follow__label {
    font-family: var(--tt-extra);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.65);
    margin-right: 6px;
    white-space: nowrap;
}

.ttw-header-follow a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
    transition: color 0.2s ease;
}

.ttw-header-follow a:hover {
    color: var(--tt-accent-color, #fe7503);
}

.ttw-header-follow svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

@media (max-width: 767px) {
    .ttw-header-follow {
        display: none;
    }
}

/* ==========================================
   HOME - Section title buttons hover effects
   Latest News (tdi_98), Rights (tdi_118),
   Technological Innovation (tdi_149), Culture (tdi_184)
   ========================================== */

/* Arrow: setup transition on base state */
body .tdi_98 i.tdm-btn-icon,
body .tdi_118 i.tdm-btn-icon,
body .tdi_149 i.tdm-btn-icon,
body .tdi_184 i.tdm-btn-icon {
    display: inline-block;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.25s ease;
}

/* Text: color transition on base state */
body .tdi_98 .tdm-btn-text,
body .tdi_118 .tdm-btn-text,
body .tdi_149 .tdm-btn-text,
body .tdi_184 .tdm-btn-text {
    transition: color 0.25s ease;
}

/* Arrow: keep transition active on hover (overrides inline transition:none) */
body .tdi_98:hover i.tdm-btn-icon,
body .tdi_118:hover i.tdm-btn-icon,
body .tdi_149:hover i.tdm-btn-icon,
body .tdi_184:hover i.tdm-btn-icon {
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), color 0.25s ease;
    transform: translateX(8px);
}

/* Latest News - hover color #fe7503 */
body .tdi_98:hover .tdm-btn-text,
body .tdi_98:hover i.tdm-btn-icon {
    color: #fe7503 !important;
    -webkit-text-fill-color: #fe7503 !important;
}

/* Rights - hover color #0E336D */
body .tdi_118:hover .tdm-btn-text,
body .tdi_118:hover i.tdm-btn-icon {
    color: #0E336D !important;
    -webkit-text-fill-color: #0E336D !important;
}

/* Technological Innovation - hover color #fe7503 */
body .tdi_149:hover .tdm-btn-text,
body .tdi_149:hover i.tdm-btn-icon {
    color: #fe7503 !important;
    -webkit-text-fill-color: #fe7503 !important;
}

/* Culture - hover color #fe7503 */
body .tdi_184:hover .tdm-btn-text,
body .tdi_184:hover i.tdm-btn-icon {
    color: #fe7503 !important;
    -webkit-text-fill-color: #fe7503 !important;
}

/* ═══════════════════════════════════════════════════════════
   Chi Siamo – 2-colonne Who We Are + Team Deck
   ═══════════════════════════════════════════════════════════ */

/* 2-column wrapper: Who We Are (sx) + card deck (dx, più stretto) */
.ttw-about-who-team {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 32px;
    margin-top: 44px;
    align-items: start;
}

.ttw-about-who-team .ttw-about-structure {
    margin-top: 0;
}

/* ── Deck outer: scroll container – altezza determinata dalla griglia ── */
.ttw-team-deck-outer {
    position: relative;
    min-height: 260px;      /* altezza minima se il testo sx è corto */
    overflow-y: scroll;
    scrollbar-width: none;
    -ms-overflow-style: none;
    border-radius: 14px;
}

.ttw-team-deck-outer::-webkit-scrollbar {
    display: none;
}

/* Inner tall div: height impostata via JS */
.ttw-team-deck-inner {
    position: relative;
}

/* Sticky panel: trasparente, padding per mostrare il grigio di outer */
.ttw-team-deck-sticky {
    position: sticky;
    top: 0;
    /* height impostata via JS = outer.clientHeight */
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 10px;
}

.ttw-team-deck-sticky::before {
    display: none;
}

/* Frame che contiene le card sovrapposte: riempie l'intera altezza */
.ttw-team-cards-frame {
    position: relative;
    flex: 1;
    margin: 0;
    min-height: 0;
}

/* Singola card del team */
.ttw-team-card {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border-radius: 14px;
    border: 1px solid rgba(14, 51, 109, 0.09);
    background: #ffffff;
    box-shadow: 0 8px 32px rgba(14, 51, 109, 0.10), 0 2px 8px rgba(14, 51, 109, 0.06);
    padding: 24px 18px;
    transform-origin: center bottom;
    will-change: transform, opacity;
    transition: transform 0.06s linear, opacity 0.06s linear;
    user-select: none;
    -webkit-user-select: none;
    -webkit-tap-highlight-color: transparent;
}

/* Foto circolare */
.ttw-team-card-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid rgba(14, 51, 109, 0.10);
    flex-shrink: 0;
    background: #f0f0f0;
}

.ttw-team-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    pointer-events: none;
}

/* Corpo testo della card */
.ttw-team-card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    text-align: center;
}

.ttw-team-card-name {
    font-family: var(--ttw-heading-font, var(--ttw-body-font));
    font-size: 19px;
    font-weight: 700;
    color: #111;
    line-height: 1.25;
    margin: 0;
    display: block;
}

.ttw-team-card-role {
    font-family: var(--ttw-body-font);
    font-size: 14px;
    color: #888;
    line-height: 1.3;
    display: block;
}

/* ── Responsive ── */
@media (max-width: 900px) {
    .ttw-about-who-team {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    /* Su mobile la colonna è unica → serve un'altezza esplicita per lo scroll */
    .ttw-team-deck-outer {
        height: 360px !important; /* JS non imposta l'altezza su mobile */
    }
}

@media (max-width: 767px) {
    .ttw-about-who-team {
        margin-top: 30px;
    }

    .ttw-team-card-name {
        font-size: 15px;
    }
}

.ttw-articles-current {
    max-width: 1280px;
    margin: 44px auto 28px;
    padding: 0 42px;
}

.ttw-articles-back {
    display: none !important;
}

.ttw-articles-current__title {
    position: relative;
    margin: 0;
    padding-left: 18px;
    color: #111111;
    font-size: clamp(34px, 4vw, 58px);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.045em;
}

.ttw-articles-current__title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 5px;
    height: calc(100% - 6px);
    background: #fe7503;
    border-radius: 999px;
}

.ttw-articles-current__title::after {
    content: "";
    display: block;
    width: 72px;
    height: 3px;
    margin-top: 18px;
    background: #002861;
    border-radius: 999px;
}

.ttw-articles-current {
    display: none !important;
}

.ttw-load-more-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 42px 0 56px;
}

.ttw-load-more-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    height: 48px;
    padding: 0 24px;
    border: 1px solid #fe7503;
    border-radius: 0;
    background: #fe7503;
    color: #ffffff;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ttw-load-more-button:hover,
.ttw-load-more-button:focus {
    border-color: #002861;
    background: #002861;
    color: #ffffff;
}

/*PAGINA TEAM*/
/* Single Team Member */

.ttw-team-single {
    background: #ffffff;
}

.ttw-team-profile {
    padding: 76px 24px 96px;
    background: #ffffff;
}

.ttw-team-profile__inner {
    max-width: var(--ttw-page-shell-max, 1280px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    gap: 76px;
    align-items: start;
}

.ttw-team-profile__media {
    position: relative;
}

/* Il riquadro prende le proporzioni delle foto del team (tutte 300×438), così la foto
   ci entra intera: prima l'altezza era fissa (520px, 430px su telefono) e con
   background-size:cover la faccia veniva tagliata sopra e sotto (3/8/2026). */
.ttw-team-profile__photo,
.ttw-team-profile__placeholder {
    position: relative;
    width: 100%;
    aspect-ratio: 300 / 438;
    border-radius: 28px;
    overflow: hidden;
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    box-shadow: 0 18px 42px rgba(0, 40, 97, 0.12);
    border: 1px solid rgba(0, 40, 97, 0.08);
}

.ttw-team-profile__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #002861;
    color: #ffffff;
    font-size: 82px;
    font-weight: 900;
}

.ttw-team-profile__content {
    max-width: 700px;
    padding-top: 8px;
}

.ttw-team-profile__heading {
    margin-bottom: 34px;
}

.ttw-team-profile__kicker {
    margin-bottom: 16px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

/* Allineato allo standard titoli del sito (.ttw-page-title: 46px / 800 / -1.5px) */
.ttw-team-profile__title {
    margin: 0;
    color: #111;
    font-family: var(--ttw-heading-font);
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -1.5px;
}

.ttw-team-profile__role {
    max-width: 760px;
    margin: 20px 0 0;
    color: #4f5b6d;
    font-family: var(--ttw-body-font);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0.02em;
}

.ttw-team-profile__bio {
    color: #4f5b6d;
    font-family: var(--ttw-body-font);
    font-size: 17px;
    line-height: 1.8;
    margin-top: 0;
}

.ttw-team-profile__bio p {
    margin: 0 0 24px;
}

.ttw-team-profile__bio p:first-child {
    margin-top: 0;
}

.ttw-team-profile__bio p:last-child {
    margin-bottom: 0;
}

.ttw-team-profile__bio h2,
.ttw-team-profile__bio h3 {
    margin: 36px 0 16px;
    color: #002861;
    font-weight: 800;
    letter-spacing: -0.035em;
}

.ttw-team-profile__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 38px;
}

.ttw-team-profile__back,
.ttw-team-profile__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    text-decoration: none !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: all 0.2s ease;
}

.ttw-team-profile__back {
    background: #002861;
    color: #ffffff !important;
    border: 1px solid #002861;
}

.ttw-team-profile__back:hover {
    background: #fe7503;
    border-color: #fe7503;
    color: #ffffff !important;
}

.ttw-team-profile__social {
    background: #ffffff;
    color: #002861 !important;
    border: 1px solid rgba(0, 40, 97, 0.18);
}

.ttw-team-profile__social:hover {
    background: #002861;
    border-color: #002861;
    color: #ffffff !important;
}

/* Nasconde eventuale vecchio heading se rimasto */
.ttw-team-single-heading {
    display: none !important;
}

@media (max-width: 991px) {
    .ttw-team-profile {
        padding: 62px 24px 76px;
    }

    .ttw-team-profile__inner {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    /* tutto incolonnato a sinistra: prima foto e intestazione erano centrate mentre la
       biografia partiva da sinistra, e la scheda sembrava sbilenca (3/8/2026) */
    .ttw-team-profile__media {
        max-width: 430px;
        margin: 0;
    }

    .ttw-team-profile__content {
        max-width: none;
        padding-top: 0;
    }

    .ttw-team-profile__heading {
        text-align: left;
    }
}

@media (max-width: 600px) {
    .ttw-team-profile {
        padding: 48px 18px 64px;
    }

    .ttw-team-profile__photo,
    .ttw-team-profile__placeholder {
        border-radius: 22px;
    }

    .ttw-team-profile__role {
        font-size: 16px;
        line-height: 1.65;
    }

    .ttw-team-profile__bio {
        font-size: 16px;
        line-height: 1.75;
    }

    .ttw-team-profile__actions {
        margin-top: 30px;
    }

    .ttw-team-profile__back,
    .ttw-team-profile__social {
        width: 100%;
    }
}

.ttw-team-profile__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 34px;
}

.ttw-team-profile__icon-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #cfd7e3;
    color: #0b2f6b;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    transition:
        transform 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease;
}

.ttw-team-profile__icon-link svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: currentColor;
}

.ttw-team-profile__icon-link:hover,
.ttw-team-profile__icon-link:focus {
    background: #0b2f6b;
    border-color: #0b2f6b;
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 16px 30px rgba(11, 47, 107, 0.22);
    outline: none;
}

/* Tooltip */
.ttw-team-profile__icon-link::before,
.ttw-team-profile__icon-link::after {
    position: absolute;
    left: 50%;
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 0.18s ease,
        transform 0.18s ease;
    z-index: 20;
}

.ttw-team-profile__icon-link::before {
    content: attr(data-tooltip);
    bottom: calc(100% + 12px);
    transform: translateX(-50%) translateY(6px);
    background: #0f172a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    padding: 10px 12px;
    border-radius: 10px;
    white-space: nowrap;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}

.ttw-team-profile__icon-link::after {
    content: "";
    bottom: calc(100% + 6px);
    transform: translateX(-50%) translateY(6px);
    width: 10px;
    height: 10px;
    background: #0f172a;
    border-radius: 2px;
    rotate: 45deg;
}

.ttw-team-profile__icon-link:hover::before,
.ttw-team-profile__icon-link:hover::after,
.ttw-team-profile__icon-link:focus::before,
.ttw-team-profile__icon-link:focus::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

@media (max-width: 767px) {
    .ttw-team-profile__actions {
        gap: 12px;
    }

    .ttw-team-profile__icon-link {
        width: 50px;
        height: 50px;
    }

    .ttw-team-profile__icon-link svg {
        width: 20px;
        height: 20px;
    }

    .ttw-team-profile__icon-link::before {
        font-size: 11px;
        padding: 8px 10px;
    }
}

/* AUTHOR TEMPLATE RESET */

.ttw-author-page {
    width: 100%;
    background: #ffffff;
    overflow: hidden;
}

/* Hero autore */

.ttw-author-hero {
    width: 100%;
    padding: 76px 24px 78px;
    background: #ffffff;
}

.ttw-author-hero__inner {
    width: 100%;
    max-width: var(--ttw-page-shell-max, 1280px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 420px minmax(0, 1fr);
    gap: 76px;
    align-items: start;
}

.ttw-author-hero__photo-wrap {
    width: 100%;
}

.ttw-author-hero__photo,
.ttw-author-hero__placeholder {
    width: 100%;
    height: 520px;
    border-radius: 28px;
    overflow: hidden;
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    box-shadow: 0 18px 42px rgba(0, 40, 97, 0.12);
    border: 1px solid rgba(0, 40, 97, 0.08);
}

.ttw-author-hero__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #002861;
    color: #ffffff;
    font-size: 82px;
    font-weight: 900;
}

.ttw-author-hero__content {
    max-width: 720px;
    padding-top: 10px;
}

.ttw-author-hero__kicker,
.ttw-author-articles__heading span {
    display: block;
    margin-bottom: 16px;
    color: #fe7503;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

.ttw-author-hero__title {
    margin: 0;
    color: #111827;
    font-size: clamp(46px, 5.4vw, 76px);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.06em;
}

.ttw-author-hero__role {
    margin: 20px 0 0;
    color: #4f5b6d;
    font-size: 19px;
    font-weight: 400;
    line-height: 1.65;
}

.ttw-author-hero__bio {
    margin-top: 34px;
    color: #4f5b6d;
    font-size: 18px;
    line-height: 1.85;
}

.ttw-author-hero__bio p {
    margin: 0 0 24px;
}

.ttw-author-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 38px;
}

.ttw-author-hero__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: 999px;
    text-decoration: none !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    transition: all 0.2s ease;
    background: #ffffff;
    color: #002861 !important;
    border: 1px solid rgba(0, 40, 97, 0.18);
}

.ttw-author-hero__button:hover {
    background: #002861;
    border-color: #002861;
    color: #ffffff !important;
}

.ttw-author-hero__button--primary {
    background: #002861;
    color: #ffffff !important;
    border-color: #002861;
}

.ttw-author-hero__button--primary:hover {
    background: #fe7503;
    border-color: #fe7503;
}

/* Sezione articoli, sempre sotto */

.ttw-author-articles {
    width: 100%;
    padding: 0 24px 96px;
    background: #ffffff;
    display: block;
    clear: both;
}

.ttw-author-articles__inner {
    width: 100%;
    max-width: var(--ttw-page-shell-max, 1280px);
    margin: 0 auto;
    padding-top: 54px;
    border-top: 1px solid rgba(0, 40, 97, 0.10);
}

.ttw-author-articles__heading {
    margin-bottom: 34px;
}

.ttw-author-articles__heading h2 {
    margin: 0;
    color: #111827;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.05em;
}

.ttw-author-articles__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

.ttw-author-article-card {
    background: #ffffff;
}

.ttw-author-article-card__thumb {
    display: block;
    width: 100%;
    aspect-ratio: 1.35 / 1;
    overflow: hidden;
    border-radius: 18px;
    background: #f4f4f4;
}

.ttw-author-article-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.ttw-author-article-card:hover .ttw-author-article-card__thumb img {
    transform: scale(1.04);
}

.ttw-author-article-card__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: #f4f4f4;
}

.ttw-author-article-card__content {
    padding: 16px 2px 0;
}

.ttw-author-article-card__content h3 {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.15;
}

.ttw-author-article-card__content h3 a {
    color: #111827;
    text-decoration: none;
}

.ttw-author-article-card__content h3 a:hover {
    color: #002861;
}

.ttw-author-article-card__content p {
    margin: 0;
    color: #4f5b6d;
    font-size: 14px;
    line-height: 1.6;
}

/* Evita che vecchie classi influenzino il nuovo template */
.ttw-author-profile,
.ttw-author-posts {
    display: none !important;
}

/* Responsive */

@media (max-width: 991px) {
    .ttw-author-hero {
        padding: 62px 24px 64px;
    }

    .ttw-author-hero__inner {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .ttw-author-hero__photo-wrap {
        max-width: 430px;
        margin: 0 auto;
    }

    .ttw-author-hero__content {
        max-width: none;
        padding-top: 0;
    }

    .ttw-author-hero__kicker,
    .ttw-author-hero__title,
    .ttw-author-hero__role {
        text-align: center;
    }

    .ttw-author-articles__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .ttw-author-hero {
        padding: 48px 18px 54px;
    }

    .ttw-author-hero__photo,
    .ttw-author-hero__placeholder {
        height: 430px;
        border-radius: 22px;
    }

    .ttw-author-hero__title {
        font-size: 44px;
    }

    .ttw-author-hero__role,
    .ttw-author-hero__bio {
        font-size: 16px;
        line-height: 1.65;
    }

    .ttw-author-hero__actions {
        margin-top: 30px;
    }

    .ttw-author-hero__button {
        width: 100%;
    }

    .ttw-author-articles {
        padding: 0 18px 64px;
    }

    .ttw-author-articles__inner {
        padding-top: 40px;
    }

    .ttw-author-articles__grid {
        grid-template-columns: 1fr;
    }
}

/* Author icon actions + tooltip */

.ttw-author-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 34px;
}

.ttw-author-hero__icon-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #cfd7e3;
    color: #002861;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
    transition:
        transform 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease;
}

.ttw-author-hero__icon-link svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: currentColor;
}

.ttw-author-hero__icon-link:hover,
.ttw-author-hero__icon-link:focus {
    background: #002861;
    border-color: #002861;
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 16px 30px rgba(0, 40, 97, 0.22);
    outline: none;
}

.ttw-author-hero__icon-link::before,
.ttw-author-hero__icon-link::after {
    position: absolute;
    left: 50%;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease, transform 0.18s ease;
    z-index: 20;
}

.ttw-author-hero__icon-link::before {
    content: attr(data-tooltip);
    bottom: calc(100% + 12px);
    transform: translateX(-50%) translateY(6px);
    background: #0f172a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    padding: 10px 12px;
    border-radius: 10px;
    white-space: nowrap;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}

.ttw-author-hero__icon-link::after {
    content: "";
    bottom: calc(100% + 6px);
    transform: translateX(-50%) translateY(6px);
    width: 10px;
    height: 10px;
    background: #0f172a;
    border-radius: 2px;
    rotate: 45deg;
}

.ttw-author-hero__icon-link:hover::before,
.ttw-author-hero__icon-link:hover::after,
.ttw-author-hero__icon-link:focus::before,
.ttw-author-hero__icon-link:focus::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

@media (max-width: 767px) {
    .ttw-author-hero__actions {
        justify-content: center;
        gap: 12px;
    }

    .ttw-author-hero__icon-link {
        width: 50px;
        height: 50px;
    }

    .ttw-author-hero__icon-link svg {
        width: 20px;
        height: 20px;
    }

    .ttw-author-hero__icon-link::before {
        font-size: 11px;
        padding: 8px 10px;
    }
}
/* ===== TTW custom: uniform section titles & paragraphs (2026-06-19) ===== */
.ttw-page-title.ttw-page-title--section {
    font-size: 46px !important;
}
.ttw-page-lead,
.ttw-page-lead p {
    font-size: 16px !important;
    line-height: 1.6;
}
.ttw-article-card__excerpt {
    font-size: 16px;
}

/* People archive (Chi siamo + Autori uniti): card senza pagina dedicata = non cliccabile */
.ttw-author-card--nolink .ttw-author-card__media { cursor: default; }
.ttw-author-card--nolink .ttw-author-card__name span { color: inherit; cursor: default; }

/* Card persone (Chi siamo + Autori): ruolo in blu brand (vince su .ttw-page-content p) */
.ttw-people-archive .ttw-author-card__role {
    color: #0e336d !important;
    font-weight: 600;
    font-size: 14px;
    margin: 0 0 8px;
    line-height: 1.4;
}
/* Riserva 2 righe al nome cosi ruolo e descrizione restano allineati tra le card */
.ttw-people-archive .ttw-author-card__name {
    min-height: 1.92em; /* 2 righe a line-height 0.96 */
}

/* Articoli sulla pagina profilo Team (/team/<slug>) */
.ttw-team-articles {
    /* +48 = i due padding laterali: così il CONTENUTO cade sulla stessa riga
       verticale del profilo sopra (che ha padding 24 e guscio 1280) */
    max-width: calc(var(--ttw-page-shell-max, 1280px) + 48px);
    margin: 0 auto;
    padding: 10px 24px 70px;
}
.ttw-team-articles__title {
    font-family: var(--ttw-heading-font);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    margin: 0 0 26px;
    color: #111;
}

/* === Uniformità tipografica ===
   Paragrafi/testi in Merriweather (serif) su tutto il sito; titoli in Epilogue.
   --tt-secondary alimenta corpo articoli, box autore, descrizioni, estratti podcast/video. */
:root { --tt-secondary: 'Merriweather', Georgia, serif !important; }

/* Corpo articoli -> Open Sans 17px (specificità alta per battere il blocco tagDiv .tdi_NN) */
.single-post .td-post-content > p,
.single-post .td-post-content .tdb-block-inner > p,
.single-post .tdb_single_content > p,
.single-post .tdb_single_content .tdb-block-inner > p,
.single-post .td-post-content li,
.single-post .tdb_single_content li {
    font-family: var(--ttw-body-font) !important;
    font-size: 17px !important;
    line-height: 1.75 !important;
}
/* Titoli interni agli articoli -> Epilogue */
.single-post .td-post-content h2, .single-post .td-post-content h3, .single-post .td-post-content h4,
.single-post .tdb_single_content h2, .single-post .tdb_single_content h3, .single-post .tdb_single_content h4 {
    font-family: var(--ttw-heading-font) !important;
}

/* allinea descrizione card persone alla scala testi (16px) */
.ttw-author-card__excerpt { font-size: 16px; }

/* About Us (ka-about-page): titoli in Epilogue, testi in Merriweather (la sezione custom non aveva font) */
.ka-about-page h1, .ka-about-page h2, .ka-about-page h3, .ka-about-page h4 {
    font-family: var(--ttw-heading-font) !important;
}
.ka-about-page p, .ka-about-intro-text, .ka-about-label, .ka-about-card-number {
    font-family: var(--ttw-body-font) !important;
}
/* excerpt post -> Merriweather (rinforzo) */
.td-excerpt, .ttw-article-card__excerpt { font-family: var(--ttw-body-font) !important; }

/* GTranslate nell'header: bandierine centrate (orizzontale + verticale) */
.gtranslate_wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    text-align: center !important;
}
.gtranslate_wrapper a,
.gtranslate_wrapper img { float: none !important; vertical-align: middle !important; }

/* GTranslate header: il blocco del widget ha un margine inferiore (default tagDiv) che,
   nel flex della riga, lo fa salire sopra il menu. Azzerando il margine si centra in linea col menu. */
.td_block_wrap:has(.gtranslate_wrapper) {
    margin-bottom: 0 !important;
    margin-left: 26px !important; /* stacca le bandiere dall'ultima voce di menu (Contact Us) */
}

/* GTranslate: dropdown SOLO BANDIERA (nascondo i nomi lingua, resta la bandiera) */
.gtranslate_wrapper .gt_switcher .gt_selected a,
.gtranslate_wrapper .gt_switcher .gt_option a {
    font-size: 0 !important;
}
.gtranslate_wrapper .gt_switcher .gt_selected a img,
.gtranslate_wrapper .gt_switcher .gt_option a img {
    margin: 0 !important;
    vertical-align: middle !important;
}
.gtranslate_wrapper .gt_switcher .gt_option a { padding: 6px 10px !important; }

/* GTranslate dropdown solo-bandiera: switcher compatto (bandiera + freccia) */
.gtranslate_wrapper .gt_switcher { width: auto !important; display: inline-block !important; }
.gtranslate_wrapper .gt_switcher .gt_selected { width: auto !important; }
.gtranslate_wrapper .gt_switcher .gt_selected a { width: auto !important; padding: 4px 22px 4px 6px !important; white-space: nowrap !important; }

/* GTranslate: lista a tendina compatta (colonna di bandiere) */
.gtranslate_wrapper .gt_switcher .gt_option { width: 54px !important; min-width: 54px !important; }
.gtranslate_wrapper .gt_switcher .gt_option a { padding: 6px 0 !important; text-align: center !important; }
.gtranslate_wrapper .gt_switcher .gt_option a img { margin: 0 auto !important; }

/* GTranslate: niente riquadro + tendina overlay verso il basso (stile voce di menu/WPML) */
.gtranslate_wrapper .gt_switcher { position: relative !important; overflow: visible !important; width: auto !important; line-height: 1 !important; }
.gtranslate_wrapper .gt_switcher .gt_selected { width: auto !important; }
.gtranslate_wrapper .gt_switcher .gt_selected a {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 2px 20px 2px 0 !important;
    width: auto !important;
}
.gtranslate_wrapper .gt_switcher .gt_option {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    width: auto !important;
    min-width: 46px !important;
    margin-top: 6px !important;
    background: #ffffff !important;
    border: 1px solid #e5e9f0 !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 22px rgba(16,24,40,.14) !important;
    max-height: none !important;
    height: auto !important;      /* mostra tutte le bandiere: GTranslate impone height inline, qui lo annulliamo */
    overflow: visible !important; /* niente scrollbar grigia (GTranslate usa overflow-y:auto) */
    z-index: 99999 !important;
}
/* doppia sicurezza: azzero la scrollbar webkit del dropdown, se mai riapparisse */
.gtranslate_wrapper .gt_switcher .gt_option::-webkit-scrollbar { width: 0 !important; height: 0 !important; }
.gtranslate_wrapper .gt_switcher .gt_option a { padding: 7px 12px !important; }
.gtranslate_wrapper .gt_switcher .gt_option a:hover { background: #f4f6fa !important; }

/* GTranslate: rimuovo anche il box di sfondo sullo switcher chiuso (resta solo bandiera+freccia) */
.gtranslate_wrapper .gt_switcher .gt_selected,
.gtranslate_wrapper .gt_switcher .gt_selected:hover {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* GTranslate: freccia NERA distanziata dalla bandiera (sostituisce la freccia grigia SVG) */
.gtranslate_wrapper .gt_switcher .gt_selected a { padding: 2px 2px 2px 0 !important; }
.gtranslate_wrapper .gt_switcher .gt_selected a::after {
    content: "" !important;
    position: static !important;
    display: inline-block !important;
    width: 0 !important; height: 0 !important;
    margin-left: 11px !important;
    border-left: 4px solid transparent !important;
    border-right: 4px solid transparent !important;
    border-top: 5px solid #111111 !important;
    border-bottom: 0 !important;
    background: none !important;
    vertical-align: middle !important;
    transition: none !important;
}
/* niente reflow/salto pagina dal banner nativo di Google Translate */
.goog-te-banner-frame, .goog-te-banner, .skiptranslate.goog-te-banner-frame { display: none !important; }
body { top: 0 !important; }
html.translated-ltr, html.translated-rtl { margin-top: 0 !important; }

/* GTranslate: apertura immediata (niente animazione di "crescita" che sembra un cambio dimensione) */
.gtranslate_wrapper .gt_switcher .gt_option,
.gtranslate_wrapper .gt_switcher .gt_selected a,
.gtranslate_wrapper .gt_switcher img { transition: none !important; }
.gtranslate_wrapper .gt_switcher .gt_selected a img,
.gtranslate_wrapper .gt_switcher .gt_option a img { opacity: 1 !important; }

/* === GTranslate: bandiere IDENTICHE in ogni stato ===
   BUG STORICO: la selezionata era 15px e quelle del dropdown 18px, per questo
   "si rimpicciolivano / cambiavano forma" all'apertura. Ora 16px in entrambi gli
   stati, width:auto per mantenere il rapporto 4:3 delle SVG (nessuna distorsione). */
.gtranslate_wrapper .gt_switcher .gt_selected a img,
.gtranslate_wrapper .gt_switcher .gt_option a img {
    width: auto !important;
    height: 13px !important;
    max-height: 13px !important;
    min-height: 0 !important;
    max-width: none !important;
    display: inline-block !important;
    vertical-align: middle !important;
    border-radius: 2px !important;
    box-shadow: 0 0 1px rgba(0,0,0,.25) !important;
    opacity: 1 !important;
    transform: none !important;
}
/* gadget interno di Google nascosto (resta nel DOM per la traduzione) */
.gtranslate_wrapper #google_translate_element2 { display: none !important; }

/* === Fix overflow header (18px): il pannello a tendina della ricerca (tdb-drop-down-search-inner)
   ha left:18px che lo fa sporgere oltre il content-box del menu. Lo riporto a filo. Non c'entra GTranslate. === */
.tdb_header_search .tdb-drop-down-search-inner { left: 0 !important; right: auto !important; }

/* ═══════════════════════════════════════════════════════════
   Allineamento titoli (2026-07-13)
   ═══════════════════════════════════════════════════════════ */

/* H1 articolo singolo: il template tagDiv lo imposta a 900/45px/+0.5px.
   Allineato al tier H1 del sito (800, tracking negativo); le dimensioni
   responsive tagDiv (42/30/36) restano valide sotto i 1019px. */
.single-post .tdb_title h1.tdb-title-text,
.single-post h1.entry-title {
    font-family: var(--ttw-heading-font) !important;
    font-weight: 800 !important;
    letter-spacing: -0.03em !important;
    color: #111;
}
@media (min-width: 1019px) {
    .single-post .tdb_title h1.tdb-title-text,
    .single-post h1.entry-title {
        font-size: 46px !important;
        line-height: 1.15 !important;
    }
}

/* ═══════════════════════════════════════════════════════════
   Gallery mensili (pagina /gallery/ + CPT ttw_gallery) — 2026-07-13
   ═══════════════════════════════════════════════════════════ */

/* Kicker mese (stessa grammatica del kicker profilo team) */
.ttw-gallery-kicker {
    margin-bottom: 14px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

/* Gallery del mese corrente in cima a /gallery/ */
.ttw-gallery-current {
    max-width: var(--ttw-page-reading-max);
    margin: 6px auto 0;
}

.ttw-gallery-current__head {
    text-align: center;
    margin-bottom: 30px;
}

.ttw-gallery-current__title {
    margin: 0;
    font-family: var(--ttw-heading-font);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    line-height: 1.15;
    color: #111;
}

/* Griglia foto: 2 colonne masonry, ogni immagine con breve descrizione sotto */
.ttw-gallery-grid {
    columns: 2;
    column-gap: 28px;
}

.ttw-gallery-figure {
    break-inside: avoid;
    margin: 0 0 34px;
}

.ttw-gallery-figure__media {
    display: block;
    border-radius: 14px;
    overflow: hidden;
    background: #eef1f5;
    cursor: zoom-in;
}

.ttw-gallery-figure__media img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.35s ease;
}

.ttw-gallery-figure__media:hover img {
    transform: scale(1.035);
}

.ttw-gallery-figure__caption {
    margin: 0;
    padding: 12px 2px 0;
    font-family: var(--ttw-body-font);
    font-size: 15px;
    line-height: 1.65;
    color: #4a4a4a;
}

/* Archivio mesi precedenti */
.ttw-gallery-archive {
    max-width: var(--ttw-page-reading-max);
    margin: 64px auto 0;
    padding-top: 44px;
    border-top: 1px solid rgba(14, 51, 109, 0.12);
}

.ttw-gallery-archive__title {
    margin: 0 0 26px;
    font-family: var(--ttw-heading-font);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #111;
}

.ttw-gallery-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px 24px;
}

.ttw-gallery-card {
    display: block;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-gallery-card__thumb {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(135deg, #eef2f6 0%, #dfe6ee 100%);
    margin-bottom: 14px;
}

.ttw-gallery-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.ttw-gallery-card:hover .ttw-gallery-card__thumb img {
    transform: scale(1.04);
}

.ttw-gallery-card__count {
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.82);
    color: #fff;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1;
}

.ttw-gallery-card__month {
    margin: 0 0 6px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1;
}

.ttw-gallery-card__title {
    margin: 0;
    font-family: var(--ttw-heading-font);
    font-size: 25px;
    font-weight: 800;
    letter-spacing: -0.7px;
    line-height: 1.1;
    color: #111;
    transition: color 0.22s ease;
}

.ttw-gallery-card:hover .ttw-gallery-card__title {
    color: var(--tt-hover);
}

/* Singola galleria */
.ttw-gallery-single-grid {
    max-width: var(--ttw-page-reading-max);
    margin: 0 auto;
}

.ttw-gallery-back {
    max-width: var(--ttw-page-reading-max);
    margin: 42px auto 0;
    text-align: center;
}

.ttw-gallery-back a {
    font-family: var(--ttw-heading-font);
    font-size: 14px;
    font-weight: 600;
    color: #0e336d;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-gallery-back a:hover {
    color: #fe7503;
}

.ttw-gallery-empty {
    text-align: center;
    font-family: var(--ttw-body-font);
    font-size: 16px;
    color: #4a4a4a;
}

/* Lightbox */
body.ttw-lightbox-lock {
    overflow: hidden;
}

.ttw-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(8, 11, 18, 0.94);
}

.ttw-lightbox.is-open {
    display: flex;
}

.ttw-lightbox__img {
    max-width: min(1400px, 92vw);
    max-height: 82vh;
    border-radius: 8px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
    user-select: none;
}

.ttw-lightbox__caption {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    max-width: 80vw;
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--ttw-body-font);
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.ttw-lightbox__counter {
    position: absolute;
    top: 22px;
    left: 26px;
    color: rgba(255, 255, 255, 0.75);
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
}

.ttw-lightbox__btn {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease;
}

.ttw-lightbox__btn:hover {
    background: rgba(255, 255, 255, 0.22);
}

.ttw-lightbox__btn svg {
    width: 20px;
    height: 20px;
    display: block;
}

.ttw-lightbox__close { top: 18px; right: 20px; }
.ttw-lightbox__prev  { left: 20px; top: 50%; transform: translateY(-50%); }
.ttw-lightbox__next  { right: 20px; top: 50%; transform: translateY(-50%); }

@media (max-width: 991px) {
    .ttw-gallery-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .ttw-gallery-grid { columns: 1; }
    .ttw-gallery-cards { grid-template-columns: 1fr; }
    .ttw-lightbox__img { max-width: 96vw; max-height: 74vh; }
    .ttw-lightbox__prev { left: 8px; }
    .ttw-lightbox__next { right: 8px; }
    .ttw-lightbox__caption { max-width: 92vw; }
}

/* ── Gallery: blocco feature (testo di presentazione + slideshow) ── */
.ttw-gallery-feature {
    max-width: var(--ttw-page-reading-max);
    margin: 6px auto 0;
}

.ttw-gallery-feature--slider {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 46px;
    align-items: start;
}

.ttw-gallery-feature__title {
    margin: 0 0 18px;
    font-family: var(--ttw-heading-font);
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -1px;
    line-height: 1.1;
    color: #111;
}

h1.ttw-gallery-feature__title {
    font-size: 46px;
    letter-spacing: -1.5px;
    line-height: 1;
}

h1.ttw-gallery-current__title {
    font-size: 46px;
    letter-spacing: -1.5px;
    line-height: 1;
}

.ttw-gallery-feature__desc {
    font-family: var(--ttw-body-font);
    font-size: 16px;
    line-height: 1.75;
    color: #4a4a4a;
}

.ttw-gallery-feature__desc p { margin: 0 0 18px; }
.ttw-gallery-feature__desc p:last-child { margin-bottom: 0; }

.ttw-gallery-feature__desc--center {
    max-width: 720px;
    margin: -4px auto 28px;
    text-align: center;
}

/* Slideshow */
.ttw-gallery-slider {
    position: relative;
}

.ttw-gallery-slider__frame {
    position: relative;
    aspect-ratio: 3 / 2;
    border-radius: 14px;
    overflow: hidden;
    background: #eef1f5;
}

.ttw-gallery-slider__slide {
    display: none;
    position: absolute;
    inset: 0;
    cursor: zoom-in;
}

.ttw-gallery-slider__slide.is-active {
    display: block;
}

.ttw-gallery-slider__slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.ttw-gallery-slider__btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(17, 24, 39, 0.12);
    background: rgba(255, 255, 255, 0.92);
    color: #111;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.16);
    transition: background 0.2s ease;
    z-index: 2;
}

.ttw-gallery-slider__btn:hover {
    background: #fff;
}

.ttw-gallery-slider__btn svg {
    width: 18px;
    height: 18px;
    display: block;
}

.ttw-gallery-slider__btn--prev { left: 14px; }
.ttw-gallery-slider__btn--next { right: 14px; }

.ttw-gallery-slider__meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 2px 0;
    min-height: 34px;
}

.ttw-gallery-slider__caption {
    font-family: var(--ttw-body-font);
    font-size: 15px;
    line-height: 1.65;
    color: #4a4a4a;
}

.ttw-gallery-slider__counter {
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: #9aa3b2;
    white-space: nowrap;
}

@media (max-width: 991px) {
    .ttw-gallery-feature--slider {
        grid-template-columns: 1fr;
        gap: 26px;
    }
}

/* Profilo team/autore: articoli oltre i primi 12 nascosti dietro "Load more" (2026-07-16) */
.ttw-team-articles .ttw-article-card.ttw-team-articles__extra {
    display: none;
}

/* ══════════════════════════════════════════════════════════
   Photo of the Week (2026-07-16, redesign "gallery wall")
   Fascia con la stampa incorniciata + cartellino; settimane
   precedenti come parete di stampe (masonry). Lightbox condiviso.
   ══════════════════════════════════════════════════════════ */

/* Respiro prima del footer: sul guscio interno, così il CSS compilato
   di tagDiv (che azzera i padding dei wrap esterni) non può toccarlo */
.ttw-page-shell--photo-week {
    padding-bottom: 130px;
}

.ttw-pw-current {
    max-width: var(--ttw-page-shell-max, 1280px); /* uniformata al resto del sito */
    margin: 14px auto 0;
}

/* Palcoscenico della settimana corrente: fondo caldo tipo parete di galleria */
.ttw-pw-stage {
    background: #f6f4ef;
    padding: 56px 56px 60px;
}

.ttw-pw-entry {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 56px;
    align-items: center;
}

.ttw-pw-entry__copy {
    min-width: 0;
}

.ttw-pw-entry__kicker {
    margin: 0 0 16px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

.ttw-pw-entry__title {
    margin: 0 0 20px;
    font-family: var(--ttw-heading-font);
    font-size: 38px;
    font-weight: 800;
    letter-spacing: -1px;
    line-height: 1.08;
    color: #111;
}

.ttw-pw-entry__rule {
    display: block;
    width: 46px;
    height: 3px;
    margin: 0 0 24px;
    background: #fe7503;
}

.ttw-pw-entry__desc {
    font-family: var(--ttw-body-font);
    font-size: 16px;
    line-height: 1.8;
    color: #2b2b2b;
}

.ttw-pw-entry__desc p { margin: 0 0 18px; }
.ttw-pw-entry__desc p:last-child { margin-bottom: 0; }

.ttw-pw-entry__media {
    margin: 0; /* reset del margine nativo di figure */
    min-width: 0;
}

/* Foto nuda e cliccabile: nessuna cornice, zoom morbido all'hover */
.ttw-pw-frame {
    display: block;
    position: relative;
    overflow: hidden;
    text-decoration: none !important;
    background-image: none !important;
}

.ttw-pw-frame img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.5s ease;
}

.ttw-pw-frame:hover img,
.ttw-pw-frame:focus img {
    transform: scale(1.04);
}

/* Credito fotografo "by Horace": pillola discreta sovrapposta in basso a destra della foto.
   pointer-events:none così il click apre comunque il lightbox della foto. */
.ttw-pw-credit {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 2;
    padding: 3px 10px;
    font-family: var(--ttw-body-font);
    font-size: 11px;
    font-style: italic;
    letter-spacing: .02em;
    line-height: 1.4;
    white-space: nowrap;
    color: #fff;
    background: rgba(20, 20, 20, .42);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    border-radius: 999px;
    pointer-events: none;
}
.ttw-pw-print .ttw-pw-credit {
    right: 8px;
    bottom: 8px;
    font-size: 10px;
    padding: 2px 8px;
}
@media (max-width: 600px) {
    .ttw-pw-credit { right: 8px; bottom: 8px; font-size: 10px; padding: 2px 8px; }
}

/* ── Feature "copertina": foto contenuta con data + titolo sovrapposti in basso ── */
/* cornice calda sottile attorno alla copertina (lo stage contiene solo la feature) */
.ttw-pw-stage { padding: 16px; }

.ttw-pw-cover { display: block; }

.ttw-pw-cover__media {
    position: relative;
    display: block;
    overflow: hidden;
}

/* Foto ORIZZONTALI: copertina panoramica con taglio 16/9 */
.ttw-pw-cover--wide .ttw-pw-cover__media {
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: 520px;
}
.ttw-pw-cover--wide .ttw-pw-cover__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Foto VERTICALI (o quasi quadrate): MAI ritagliate in panoramica — si perderebbe il 70%
   dell'immagine. Si mostrano INTERE, ad altezza contenuta, centrate su fondo caldo. */
.ttw-pw-cover--tall {
    background: #f6f4ef;
    padding: 30px 20px;
}
.ttw-pw-cover--tall .ttw-pw-cover__media {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    aspect-ratio: auto;
    max-height: none;
}
.ttw-pw-cover--tall .ttw-pw-cover__media img {
    width: auto;
    height: auto;
    max-width: 100%;
    /* stessa altezza massima della copertina orizzontale: la fascia non "cresce"
       quando la foto della settimana è verticale */
    max-height: 520px;
    object-fit: contain;
}
.ttw-pw-cover--tall .ttw-pw-cover__title { font-size: 23px; max-width: 100%; }
/* velatura più decisa: su una foto stretta il blocco data+titolo pesa di più e la foto
   può essere chiara proprio lì sotto (la data arancio altrimenti si legge male) */
.ttw-pw-cover--tall .ttw-pw-cover__overlay {
    padding: 72px 22px 20px;
    background: linear-gradient(to top, rgba(0, 0, 0, .86) 0%, rgba(0, 0, 0, .54) 45%, rgba(0, 0, 0, 0) 100%);
}

.ttw-pw-cover__overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 100px 44px 30px;
    background: linear-gradient(to top, rgba(0, 0, 0, .76) 0%, rgba(0, 0, 0, .32) 46%, rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
}
.ttw-pw-cover__date {
    margin: 0 0 12px;
    color: #ff9a4d;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}
.ttw-pw-cover__title {
    margin: 0;
    max-width: 76%;
    color: #fff;
    font-family: var(--ttw-heading-font);
    font-size: 40px;
    font-weight: 800;
    letter-spacing: -0.5px;
    line-height: 1.06;
    text-shadow: 0 2px 20px rgba(0, 0, 0, .45);
}
.ttw-pw-cover__desc {
    margin: 26px auto 0;
    max-width: var(--ttw-page-reading-max, 1120px);
}

@media (max-width: 991px) {
    .ttw-pw-cover--wide .ttw-pw-cover__media { aspect-ratio: 3 / 2; max-height: 460px; }
    .ttw-pw-cover--tall .ttw-pw-cover__media img { max-height: 460px; }
    .ttw-pw-cover--tall { padding: 20px 14px; }
    .ttw-pw-cover__title { font-size: 30px; max-width: 100%; }
    .ttw-pw-cover--tall .ttw-pw-cover__title { font-size: 22px; }
    .ttw-pw-cover__overlay { padding: 74px 24px 24px; }
}
@media (max-width: 600px) {
    .ttw-pw-cover--wide .ttw-pw-cover__media { aspect-ratio: 4 / 3; max-height: 380px; }
    .ttw-pw-cover--tall .ttw-pw-cover__media img { max-height: 380px; }
    .ttw-pw-cover--tall { padding: 14px 10px; }
    .ttw-pw-cover__title { font-size: 23px; }
    .ttw-pw-cover--tall .ttw-pw-cover__title { font-size: 19px; }
    .ttw-pw-cover__date { font-size: 11px; margin-bottom: 8px; }
    .ttw-pw-cover__overlay { padding: 60px 18px 18px; }
}

.ttw-pw-entry__caption {
    margin-top: 12px;
    font-family: var(--ttw-body-font);
    font-size: 13px;
    line-height: 1.5;
    color: #85807a;
}

/* Parete delle settimane precedenti (masonry a colonne) */
.ttw-pw-archive {
    max-width: 1200px;
    margin: 84px auto 0;
}

.ttw-pw-archive__title {
    margin: 0 0 34px;
    padding-bottom: 14px;
    border-bottom: 2px solid #e8e8e8;
    font-family: var(--ttw-heading-font);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -0.5px;
    line-height: 1.1;
    color: #111;
}

.ttw-pw-wall {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px 32px;
    align-items: start;
}

.ttw-pw-print {
    min-width: 0;
}

/* Foto della parete tutte della stessa altezza (taglio fotografico 3:2) */
.ttw-pw-print .ttw-pw-frame {
    aspect-ratio: 3 / 2;
}

.ttw-pw-print .ttw-pw-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ttw-pw-print__date {
    margin: 16px 0 6px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
}

.ttw-pw-print__title {
    margin: 0 0 8px;
    font-family: var(--ttw-heading-font);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.3px;
    line-height: 1.25;
    color: #111;
}

.ttw-pw-print__excerpt {
    margin: 0;
    font-family: var(--ttw-body-font);
    font-size: 14px;
    line-height: 1.65;
    color: #555;
}

.ttw-pw-empty {
    max-width: var(--ttw-page-reading-max);
    margin: 20px auto 0;
    font-family: var(--ttw-body-font);
    font-size: 16px;
    color: #555;
}

@media (max-width: 1019px) {
    .ttw-pw-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    .ttw-pw-stage {
        padding: 26px 20px 32px;
    }

    .ttw-pw-entry {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    /* Su mobile la foto passa sopra il cartellino */
    .ttw-pw-entry__media { order: -1; }

    .ttw-pw-entry__title { font-size: 28px; }

    .ttw-pw-archive { margin-top: 56px; }
}

@media (max-width: 600px) {
    .ttw-pw-wall { grid-template-columns: 1fr; gap: 36px; }
}

/* ══════════════════════════════════════════════════════════
   Pagina Contatti (2026-07-16, v2 "pulita") — markup in pagina 1264.
   Canali = lista senza scatole, solo divisori sottili; form su fondo
   carta. NB: wpautop avvolge i link in <p> -> display:contents.
   ══════════════════════════════════════════════════════════ */

.ttw-page-shell--contatti {
    padding-top: 42px;    /* aria sotto l'header (tagDiv azzera i padding dei wrap) */
    padding-bottom: 120px;
}

.ttw-ct-lead {
    max-width: 640px;
    margin: 0 auto 64px;
    text-align: center;
    font-family: var(--ttw-body-font);
    font-size: 17px;
    line-height: 1.75;
    color: #444;
}

.ttw-ct-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 56px;
    align-items: start;
}

.ttw-page-content .ttw-ct-kicker {
    margin: 0 0 14px;
    color: #fe7503;
    font-family: var(--ttw-heading-font);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
}

.ttw-page-shell--contatti .ttw-ct-title {
    margin: 0 0 14px;
    font-family: var(--ttw-heading-font) !important;
    font-size: 30px !important;
    font-weight: 800 !important;
    letter-spacing: -0.8px;
    line-height: 1.1;
    color: #111;
}

.ttw-page-shell--contatti .ttw-ct-text {
    margin: 0 0 18px;
    font-family: var(--ttw-body-font);
    font-size: 16px;
    line-height: 1.75;
    color: #555;
}

/* wpautop sporca il markup: <p> trasparenti e <br> spenti nella lista canali */
.ttw-page-content .ttw-ct-socials p {
    margin: 0;
    display: contents;
}

.ttw-ct-socials br,
.ttw-ct-info br {
    display: none;
}

/* Canali: lista pulita, niente scatole — solo divisori sottili */
.ttw-ct-socials {
    display: block;
}

.ttw-ct-social,
.ttw-ct-location {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px 2px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #ececec;
    text-decoration: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

.ttw-ct-location {
    margin-top: 0;
    border-bottom: 0;
}

.ttw-ct-social__icon,
.ttw-ct-location__icon {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eaf0f8;
    color: #002861;
    transition: background 0.2s ease, color 0.2s ease;
}

.ttw-ct-social__icon svg,
.ttw-ct-location__icon svg {
    width: 22px;
    height: 22px;
}

.ttw-ct-social__copy {
    flex: 1;
    min-width: 0;
    display: block;
}

.ttw-ct-social__copy strong {
    display: block;
    font-family: var(--ttw-heading-font);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    color: #111;
    transition: color 0.2s ease;
}

.ttw-ct-social__copy small {
    display: block;
    margin-top: 3px;
    font-family: var(--ttw-body-font);
    font-size: 13px;
    line-height: 1.4;
    color: #777;
}

.ttw-ct-social__arrow {
    flex: 0 0 auto;
    color: #c9c9c9;
    transition: color 0.2s ease, transform 0.2s ease;
}

.ttw-ct-social__arrow svg {
    display: block;
    width: 18px;
    height: 18px;
}

.ttw-ct-social:hover .ttw-ct-social__copy strong,
.ttw-ct-social:focus .ttw-ct-social__copy strong {
    color: #fe7503;
}

.ttw-ct-social:hover .ttw-ct-social__icon {
    background: #fe7503;
    color: #fff;
}

.ttw-ct-social:hover .ttw-ct-social__arrow {
    color: #fe7503;
    transform: translateX(5px);
}

/* Box form su fondo carta */
.ttw-ct-formbox {
    background: #f6f4ef;
    padding: 40px 44px 44px;
}

.ttw-ct-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
}

.ttw-ct-formbox .wpcf7-form label {
    display: block;
    margin: 0 0 16px;
    font-family: var(--ttw-heading-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #333;
}

.ttw-ct-formbox .wpcf7-form-control-wrap {
    display: block;
    margin-top: 7px;
}

.ttw-ct-formbox input[type="text"],
.ttw-ct-formbox input[type="email"],
.ttw-ct-formbox textarea {
    width: 100%;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #ddd6c8;
    border-radius: 0;
    font-family: var(--ttw-body-font);
    font-size: 15px;
    color: #111;
    -webkit-appearance: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ttw-ct-formbox input[type="text"]:focus,
.ttw-ct-formbox input[type="email"]:focus,
.ttw-ct-formbox textarea:focus {
    outline: none;
    border-color: #fe7503;
    box-shadow: 0 0 0 3px rgba(254, 117, 3, 0.14);
}

.ttw-ct-formbox textarea {
    height: 150px;
    resize: vertical;
}

.ttw-ct-form-accept {
    margin: 2px 0 20px;
}

.ttw-ct-formbox .wpcf7-acceptance label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    font-family: var(--ttw-body-font);
    font-size: 13.5px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.55;
    color: #555;
}

.ttw-ct-formbox .wpcf7-acceptance input[type="checkbox"] {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    accent-color: #fe7503;
}

.ttw-ct-formbox .wpcf7-acceptance a {
    color: #111;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.ttw-ct-formbox .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 190px;
    height: 48px;
    padding: 0 26px;
    border: 1px solid #fe7503;
    border-radius: 0;
    background: #fe7503;
    color: #fff;
    font-family: var(--ttw-heading-font);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ttw-ct-formbox .wpcf7-submit:hover,
.ttw-ct-formbox .wpcf7-submit:focus {
    border-color: #002861;
    background: #002861;
}

.ttw-ct-formbox .wpcf7-not-valid-tip {
    margin-top: 6px;
    font-family: var(--ttw-body-font);
    font-size: 12.5px;
    color: #b32d2e;
}

.ttw-ct-formbox .wpcf7 form .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 12px 16px;
    border: 1px solid #ddd6c8;
    font-family: var(--ttw-body-font);
    font-size: 14px;
    color: #333;
}

.ttw-ct-formbox .wpcf7 form.sent .wpcf7-response-output {
    border-color: #15a46b;
    background: #eaf7f1;
    color: #0f6e56;
}

.ttw-ct-formbox .wpcf7 form.invalid .wpcf7-response-output,
.ttw-ct-formbox .wpcf7 form.failed .wpcf7-response-output {
    border-color: #e24b4a;
    background: #fdeeee;
    color: #a32d2d;
}

@media (max-width: 991px) {
    .ttw-page-shell--contatti { padding-top: 16px; }

    .ttw-ct-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .ttw-ct-formbox {
        padding: 28px 20px 32px;
    }

    .ttw-ct-lead {
        margin-bottom: 40px;
    }
}

@media (max-width: 600px) {
    .ttw-ct-form-row {
        grid-template-columns: 1fr;
    }
}


/* TTW-FOOTER navy #002861 */
/* Footer: site navy instead of black (footer rows use var(--tt-primary-color)). */
.td-footer-template-wrap .td-footer-wrap,
.td-footer-wrap .tdc-zone,
.td-footer-wrap .tdc-row,
.td-footer-wrap .wpb_row,
.td-footer-wrap .vc_row,
.td-footer-wrap .td-pb-row {
    background-color: #002861 !important;
}


/* TTW-TOPBAR navy #002861 */
/* Top header bar (date + social) -> site navy instead of black. */
.td-header-desktop-wrap .tdc-row:has(.tdb_header_date) .td-element-style {
    background-color: #002861 !important;
    background-image: none !important;
}


/* TTW-CAPTIONS only on Keep the Beauty */
/* Didascalie immagini nascoste ovunque... */
figcaption,
.wp-caption-text,
.wp-caption .wp-caption-dd,
.td-single-image-info,
.tdb-single-image-info { display: none !important; }

/* ...tranne sulla pagina "Keep the Beauty" (page 2734). */
body.page-id-2734 figcaption,
body.page-id-2734 .wp-caption-text,
body.page-id-2734 .td-single-image-info,
body.page-id-2734 .tdb-single-image-info { display: block !important; }

/* TTW-SECTION-INTRO curato */
/* Intro rubrica di sezione (es. Podcast "Grist for the Mill") - stile editoriale */
.ttw-page-content--intro { margin-top: 2px; }
.ttw-page-content--intro .ttw-page-lead { max-width: 700px; margin: 8px auto 0; text-align: center; }
.ttw-page-content--intro .ttw-page-lead p { font-family: var(--tt-secondary, Georgia), serif; font-size: 17px; line-height: 1.85; color: #555555; margin: 0 auto 14px; max-width: 590px; }
/* nome rubrica = primo paragrafo (grande, grassetto, non corsivo) */
.ttw-page-content--intro .ttw-page-lead p:first-child:not(:last-child) { font-family: var(--tt-secondary, Georgia), serif; font-style: normal; font-weight: 700; font-size: 40px; line-height: 1.2; letter-spacing: -0.3px; color: #10376e; max-width: 660px; margin: 2px auto 22px; }
/* citazione/definizione = ultimo paragrafo (pull-quote, virgoletta arancione) */
.ttw-page-content--intro .ttw-page-lead p:last-child:not(:first-child) { position: relative; font-family: var(--tt-secondary, Georgia), serif; font-style: italic; font-size: 21px; line-height: 1.55; color: #2a2a2a; max-width: 610px; margin: 30px auto 0; padding: 16px 24px 0; }
.ttw-page-content--intro .ttw-page-lead p:last-child:not(:first-child)::before { content: "\201C"; font-family: Georgia, serif; font-size: 88px; color: #fe7503; opacity: 0.55; position: absolute; left: 50%; top: -30px; transform: translateX(-50%); line-height: 1; }
@media (max-width: 767px) {
    .ttw-page-content--intro .ttw-page-lead p:first-child:not(:last-child) { font-size: 30px; }
    .ttw-page-content--intro .ttw-page-lead p:last-child:not(:first-child) { font-size: 19px; }
}

/* TTW-SECTION-INTRO-FIX: la regola globale ".ttw-page-lead p{font-size:16px!important}" schiacciava
   l'intro (nome/rubrica e citazione). Qui ripristino le dimensioni volute, sopra quell'!important. */
.ttw-page-content--intro .ttw-page-lead p { font-size: 17px !important; }
.ttw-page-content--intro .ttw-page-lead p:first-child:not(:last-child) { font-size: 40px !important; color: #10376e !important; }
.ttw-page-content--intro .ttw-page-lead p:last-child:not(:first-child) { font-size: 21px !important; }
@media (max-width: 767px) {
    .ttw-page-content--intro .ttw-page-lead p:first-child:not(:last-child) { font-size: 30px !important; }
    .ttw-page-content--intro .ttw-page-lead p:last-child:not(:first-child) { font-size: 19px !important; }
}


/* TTW-FEATURED-HEIGHT: altezza uniforme delle immagini in evidenza nell'articolo singolo
   (alcune foto verticali diventavano altissime). Rapporto 16:10, ritaglio per le foto,
   "contain" per i loghi iniettati (podcast) così non si tagliano. */
.tdb_single_featured_image img,
.ttw-featured-fallback img {
    width: 100% !important;
    aspect-ratio: 16 / 10;
    height: auto !important;
    max-height: 460px;
    object-fit: cover;
    display: block;
}
.ttw-featured-fallback img {
    object-fit: contain;
    background: #ffffff;
}

/* TTW-DEVELOPING-VISION: pagina rubrica dedicata (titolo + sottotitolo + preambolo giornalistico) */
/* larghezza uniformata al resto del sito (1280, vedi --ttw-page-shell-max) */
.ttw-page-shell--dv { max-width: var(--ttw-page-shell-max, 1280px); margin: 0 auto; }
.ttw-dv-header { text-align: center; padding: 6px 0 0; }
.ttw-dv-subtitle {
    font-family: var(--tt-primary-font, 'Epilogue'), sans-serif;
    font-size: 20px; font-weight: 600; letter-spacing: -0.2px; line-height: 1.35;
    color: #10376e; margin: 12px auto 0; max-width: 780px;
}
.ttw-dv-preamble {
    max-width: 760px; margin: 24px auto 46px;
    font-family: var(--tt-secondary, 'Merriweather'), Georgia, serif;
    font-size: 18px; line-height: 1.9; color: #2a2a2a; text-align: left;
}
.ttw-dv-preamble p { margin: 0 0 20px; }
.ttw-dv-preamble p:last-child { margin-bottom: 0; }
.ttw-dv-preamble p:first-child { font-size: 21px; line-height: 1.75; color: #1a1a1a; }
.ttw-page-shell--dv .ttw-articles-empty { text-align: center; color: #8a8f98; font-size: 17px; padding: 20px 0 40px; }

/* linea accento sotto il sottotitolo */
.ttw-dv-rule { display: block; width: 64px; height: 3px; background: #fe7503; margin: 18px auto 0; border-radius: 2px; }

/* copertina sobria */
.ttw-dv-cover { margin: 30px auto 6px; max-width: 940px; padding: 0; }
.ttw-dv-cover__img { display: block; width: 100%; height: 380px; object-fit: cover; object-position: center; border-radius: 6px; }

/* capolettera sul primo paragrafo del preambolo */
.ttw-dv-preamble p:first-child::first-letter {
    float: left; font-family: var(--tt-primary-font, 'Epilogue'), serif; font-weight: 700;
    font-size: 62px; line-height: 50px; padding: 4px 12px 0 0; color: #10376e;
}

/* citazione (pull-quote) misurata */
.ttw-dv-quote { max-width: 780px; margin: 8px auto 44px; padding: 0; border: 0; text-align: center; }
.ttw-dv-quote p {
    font-family: var(--tt-secondary, 'Merriweather'), Georgia, serif; font-style: italic;
    font-size: 23px; line-height: 1.5; color: #10376e; margin: 0; padding-top: 22px; position: relative;
}
.ttw-dv-quote p::before { content: ""; display: block; width: 40px; height: 3px; background: #fe7503; margin: 0 auto 20px; }

/* [NON PIÙ IN USO dal 3/8/2026: il blocco dei 3 pilastri è stato tolto dalla pagina.
   Le regole restano qui solo per poterlo ripristinare in fretta.]
   3 pilastri: Law / Economics / Geopolitics.
   Senza le icone il blocco sembrava un elenco: ora è una fascia su fondo caldo,
   con numerazione arancione, testi allineati a sinistra e divisori fra le colonne. */
.ttw-dv-pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    max-width: var(--ttw-page-reading-max, 1120px);
    margin: 40px auto 56px;
    padding: 38px 0 34px;
    background: #f6f4ef;
    border-top: 2px solid #10376e;
}
.ttw-dv-pillar {
    text-align: left;
    padding: 4px 34px;
    border-left: 1px solid rgba(16, 55, 110, .14);
}
.ttw-dv-pillar:first-child { border-left: 0; }
.ttw-dv-pillar__num {
    display: block;
    font-family: var(--tt-primary-font, 'Epilogue'), sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: #fe7503;
    margin-bottom: 10px;
}
.ttw-dv-pillar__title {
    font-family: var(--tt-primary-font, 'Epilogue'), sans-serif;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: #10376e;
    margin: 0 0 8px;
}
.ttw-dv-pillar__text {
    font-family: var(--tt-secondary, 'Merriweather'), Georgia, serif;
    font-size: 15px;
    line-height: 1.7;
    color: #4a4a4a;
    margin: 0;
    /* le tre colonne sono identiche (373px l'una): a sembrare diverse erano le righe,
       che andavano a capo in punti molto lontani fra loro. Così il testo si distribuisce
       in righe di lunghezza simile e i tre blocchi appaiono allineati. */
    text-wrap: balance;
}

@media (max-width: 767px) {
    .ttw-dv-subtitle { font-size: 17px; }
    .ttw-dv-preamble { font-size: 17px; }
    .ttw-dv-preamble p:first-child { font-size: 19px; }
    .ttw-dv-cover__img { height: 230px; }
    .ttw-dv-quote p { font-size: 20px; }
    .ttw-dv-pillars { grid-template-columns: 1fr; gap: 0; padding: 26px 0 22px; margin: 30px auto 40px; }
    .ttw-dv-pillar { padding: 18px 22px; border-left: 0; border-top: 1px solid rgba(16, 55, 110, .14); }
    .ttw-dv-pillar:first-child { border-top: 0; padding-top: 4px; }
    .ttw-dv-pillar__title { font-size: 20px; }
}

/* TTW-HEADER-RESPONSIVE-FIX
   #1: sulla HOME l'header mobile era azzerato — il suo .tdc-row veniva reso display:none
       (le pagine interne no). Lo forziamo visibile così a telefono la Home ha logo + hamburger.
   #2: "anticipa l'hamburger": fino a 1200px il menu a 7 voci va a capo su 2 righe (in inglese
       già a ~1024, e tradotto FR/ES ancora prima); qui nascondiamo l'header desktop e mostriamo
       l'header mobile (hamburger, che non va mai a capo). Sopra i 1200 resta il menu orizzontale
       (inglese nativo; tradotto compattato dal blocco TTW-MENU-TRADOTTO). Lo switcher lingua è
       aggiunto anche all'header mobile via JS (ttw-mobile-lang) così nell'hamburger si cambia lingua. */
body.home .td-header-mobile-wrap .tdc-row { display: block !important; }
@media (min-width: 768px) and (max-width: 1200px) {
    .td-header-desktop-wrap { display: none !important; }
    .td-header-mobile-wrap { display: block !important; }
    body.home .td-header-mobile-wrap .tdc-row { display: block !important; }
    /* logo a sinistra + icone (menu/hamburger) a destra sulla stessa riga (a tablet si impilavano) */
    .td-header-mobile-wrap .vc_column > .wpb_wrapper { display: flex !important; flex-flow: row nowrap !important; align-items: center !important; width: 100% !important; }
    .td-header-mobile-wrap .vc_column > .wpb_wrapper > * { width: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; }
    .td-header-mobile-wrap .tdb_header_logo { margin-right: auto !important; }
}

/* TTW-ARTICOLI-1COL: sotto i 480px la griglia articoli passa a 1 colonna
   (a 2 colonne strette i titoli e i testi si schiacciavano su telefono).
   ⚠️ minmax(0, 1fr) e non 1fr: "1fr" da solo vale minmax(auto, 1fr) e la colonna si
   allarga fino al contenuto più largo della scheda — su telefono la colonna veniva
   374px dentro un contenitore da 350px, e foto e titoli sbordavano a destra oltre il
   margine (3/8/2026). Le altre soglie usavano già minmax(0, 1fr): solo questa no. */
@media (max-width: 480px) {
    .ttw-articles-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px 0;
    }
    /* cintura di sicurezza: niente che stia dentro la scheda può superarne la larghezza */
    .ttw-article-card,
    .ttw-article-card__thumb,
    .ttw-article-card__thumb img {
        max-width: 100%;
    }
    .ttw-article-card__title { overflow-wrap: anywhere; }
}

/* TTW-TEAM-MEDIA-FIX: su mobile il box media del profilo membro collassava in LARGHEZZA
   (foto membro larga 2px = invisibile; iniziale in un box stretto con la lettera sproporzionata).
   Gli diamo larghezza piena e riduciamo un po' altezza + iniziale su telefono. */
@media (max-width: 991px) {
    .ttw-team-profile__media { width: 100%; }
}
@media (max-width: 600px) {
    /* niente altezza fissa: il riquadro segue le proporzioni della foto (300×438),
       se no su telefono la faccia veniva tagliata sopra e sotto (3/8/2026) */
    .ttw-team-profile__placeholder { font-size: 64px; }
    /* la sezione "Articles by…" era a tutta larghezza (padding 0) mentre il profilo è
       rientrato di 18px: le card/immagini "uscivano" rispetto al testo. Le allineo. */
    .ttw-team-single .ttw-team-articles { padding-left: 18px !important; padding-right: 18px !important; }
}

/* TTW-KTB-TEXT come il resto del sito */
/* Keep the Beauty: intro = corpo testo del sito (Merriweather 17px, colonna leggibile). */
.ttw-page-shell--photo-week .ttw-page-content { font-size: 17px; line-height: 1.75; }
.ttw-page-shell--photo-week .ttw-page-content > p { max-width: 760px; }

/* ═══ CORREZIONI DAL COLLAUDO RESPONSIVE (2026-07-31) ═══ */

/* TTW-MENU-MOBILE-FONT — le voci del menu hamburger uscivano in "Red Hat Display"
   (un font della libreria tagDiv) invece dell'Epilogue usato in tutto il sito:
   aperto il menu, sembrava un altro sito. Conta di più da quando l'hamburger
   scatta fino a 1200px. */
#td-mobile-nav .td-blm-menu-item-txt,
#td-mobile-nav .td-mobile-main-menu a,
#td-mobile-nav .td-menu-item > a,
#td-mobile-nav input,
.td-mobile-container .td-blm-menu-item-txt,
.td-blm-menu-item-txt {
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif !important;
}

/* TTW-BYLINE-MOBILE — su telefono data e autore stavano affiancati in una riga da
   350px (171px + 164px): andavano a capo entrambi a metà valore
   ("12 Febbraio 2026," / "14:45" e "Andrea" / "Baglioni"). Su telefono li impilo. */
@media (max-width: 600px) {
    /* data e autore su UNA riga: larghezza automatica (non due colonne da metà schermo,
       che spezzavano "12 Febbraio 2026," / "14:45" e "Andrea" / "Baglioni") */
    .wpb_wrapper:has(> .tdb_single_date) {
        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .wpb_wrapper:has(> .tdb_single_date) > .td_block_wrap {
        width: auto !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
    }
}

/* TTW-PW-FIRMA — nota in fondo a Keep the Beauty: spiega che "Horace" non è una
   persona ma la firma collettiva dei collaboratori. */
.ttw-pw-firma {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 30px;
    align-items: start;
    margin: 70px auto 0;
    max-width: var(--ttw-page-reading-max, 1120px);
    padding: 40px 44px;
    background: #f6f4ef;
    border-top: 3px solid #10376e;
}
/* monogramma: stessa idea dell'iniziale nelle schede dei membri */
.ttw-pw-firma__monogramma {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    background: #002861;
    color: #ffffff;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 52px;
    font-weight: 800;
    line-height: 1;
}
.ttw-pw-firma__kicker {
    margin: 0 0 8px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #fe7503;
}
.ttw-pw-firma__titolo {
    margin: 0 0 16px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.4px;
    color: #10376e;
}
.ttw-pw-firma__testo {
    margin: 0 0 14px;
    max-width: 720px;
    font-family: var(--ttw-body-font);
    font-size: 16px;
    line-height: 1.8;
    color: #2b2b2b;
}
.ttw-pw-firma__testo:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
    .ttw-pw-firma {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-top: 46px;
        padding: 26px 22px;
    }
    .ttw-pw-firma__monogramma { width: 68px; height: 68px; font-size: 36px; }
    .ttw-pw-firma__titolo { font-size: 21px; }
    .ttw-pw-firma__testo { font-size: 15px; line-height: 1.75; }
}

/* TTW-RIMANDO-ORIGINALE — negli articoli che sul sito hanno solo l'estratto:
   il link "Leggi l'articolo completo su …" e, sotto, la nota della fonte. */
.tdb_single_content .ttw-leggi-originale {
    margin: 26px 0 10px !important;
}
.tdb_single_content .ttw-leggi-originale a {
    display: inline-block;
    padding: 12px 22px;
    background: #fe7503;
    color: #ffffff !important;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none !important;
}
.tdb_single_content .ttw-leggi-originale a:hover { background: #10376e; }
.tdb_single_content .ttw-fonte-originale {
    margin-top: 8px !important;
    font-size: 13px !important;
    line-height: 1.6;
    color: #8a8f98 !important;
}

/* TTW-PUBBLICAZIONE — blocco "uscito su rivista" in fondo agli articoli accademici:
   effetto carta/estratto di rivista, con la testata, il fascicolo e il rimando al PDF. */
/* sobrio: niente riquadro pieno né ombra, solo un filetto sottile che apre il blocco */
.tdb_single_content .ttw-pubblicazione {
    margin: 46px 0 10px;
    padding: 26px 0 0;
    background: none;
    border-top: 1px solid #d9d5cc;
    border-bottom: 0;
    box-shadow: none;
}
.tdb_single_content .ttw-pubblicazione__kicker {
    margin: 0 0 10px !important;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #fe7503;
}
.tdb_single_content .ttw-pubblicazione__testata {
    margin: 0 0 6px !important;
    font-family: var(--ttw-body-font);
    font-size: 21px;
    font-style: italic;
    line-height: 1.35;
    color: #10376e;
}
.tdb_single_content .ttw-pubblicazione__dettagli {
    margin: 0 0 16px !important;
    font-family: var(--ttw-body-font);
    font-size: 14px;
    color: #7d7566;
}
/* il rimando al PDF è un link di testo, non un bottone */
.tdb_single_content .ttw-pubblicazione__btn {
    display: inline-flex;
    align-items: baseline;
    gap: 9px;
    padding: 0;
    background: none;
    color: #10376e !important;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(16, 55, 110, .28);
    padding-bottom: 2px;
    transition: color .2s ease, border-color .2s ease;
}
.tdb_single_content .ttw-pubblicazione__btn:hover {
    color: #fe7503 !important;
    border-bottom-color: #fe7503;
}
.tdb_single_content .ttw-pubblicazione__tag {
    padding: 0;
    background: none;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #fe7503;
}
@media (max-width: 767px) {
    .tdb_single_content .ttw-pubblicazione { margin-top: 36px; padding-top: 22px; }
    .tdb_single_content .ttw-pubblicazione__testata { font-size: 18px; }
}

/* sottotitolo quando sta SOTTO la copertina (non più dentro l'intestazione) */
.ttw-dv-subtitle--sotto { text-align: center; margin: 26px auto 0; }
.ttw-dv-subtitle--sotto + .ttw-dv-rule { margin-left: auto; margin-right: auto; }

/* TTW-MODULO-MESSAGGI — i riquadri di risposta di Contact Form 7 avevano lo stile
   predefinito (bordi rossi/verdi da avviso di sistema): qui prendono i colori del sito. */
.wpcf7 form .wpcf7-response-output {
    margin: 22px 0 0 !important;
    padding: 15px 18px !important;
    border: 0 !important;
    border-left: 3px solid #10376e !important;
    background: #f6f4ef;
    font-family: var(--ttw-body-font);
    font-size: 15px;
    line-height: 1.6;
    color: #2b2b2b;
}
/* inviato */
.wpcf7 form.sent .wpcf7-response-output {
    border-left-color: #2e7d52 !important;
    background: #eef6f1;
}
/* errori di compilazione */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    border-left-color: #fe7503 !important;
    background: #fff6ec;
}
/* problemi di invio */
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
    border-left-color: #b3261e !important;
    background: #fdefee;
}
/* avvisi sotto i singoli campi */
.wpcf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    color: #b3261e;
}
.wpcf7 .wpcf7-not-valid {
    border-color: #e0a58f !important;
    background: #fffaf8;
}

/* TTW-CONTATTI-COPERTINA — copertina della pagina Contatti, costruita come quella di
   About Us: immagine a tutta larghezza, alta 380px, con il titolo grande sopra. */
/* la copertina deve toccare il menu, come su About Us: azzero i due padding
   (contenitore 48px + guscio 42px) solo sulla pagina che ha questa copertina */
.ttw-page-wrap:has(.ttw-ct-hero) { padding-top: 0 !important; }
.ttw-page-shell--contatti,
.ttw-page-shell--dv:has(.ttw-ct-hero) { padding-top: 0 !important; }

/* stessa geometria della copertina di About Us: quasi a tutta pagina ma con 10px di
   margine e angoli stondati 24px, e la stessa velatura */
.ttw-ct-hero {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - 20px);
    max-width: 1880px;
    margin-bottom: 46px;
    height: 380px;
    border-radius: 24px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* velatura: il titolo chiaro deve restare leggibile su qualsiasi foto */
.ttw-ct-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(4, 42, 58, .55);
}
.ttw-ct-hero__frame {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
}
/* pulsante nell'angolo, come il "Learn more" di About Us: incastonato nella foto e
   staccato da un filo di bianco a destra e sopra. Il bianco è il riquadro ::before. */
/* il contenitore bianco si adatta da solo al pulsante: 8px di bianco a destra e sopra */
.ttw-ct-hero__cta-wrap {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 5;
    padding: 8px 8px 0 0;
    background: #ffffff;
    border-top-right-radius: 22px;
    border-bottom-left-radius: 24px;
    max-width: calc(100% - 40px);
}
.ttw-ct-hero__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 50px;
    padding: 0 24px;
    background: #fe7503;
    color: #ffffff !important;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none !important;
    border-radius: 0 18px 0 24px;
    transition: background .2s ease, transform .2s ease;
}
.ttw-ct-hero__cta:hover { background: #d85b1d; transform: translateY(-1px); }
/* stesso titolo della copertina di About Us (regola .ka-about-hero-photo h1, nel CSS
   della pagina 2464): stesso corpo elastico, stesso peso 500, stessa crenatura.
   Prima era 800/-2px e si vedeva la differenza fra le due copertine. */
.ttw-ct-hero__title {
    margin: 0;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: clamp(58px, 7vw, 98px);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1;
    color: #dff7fb;
    text-align: center;
}
@media (max-width: 1018px) {
    .ttw-ct-hero { height: 290px; margin-bottom: 34px; width: calc(100vw - 16px); border-radius: 16px; }
    .ttw-ct-hero__cta-wrap { border-bottom-left-radius: 16px; border-top-right-radius: 18px; }
    .ttw-ct-hero__cta { border-radius: 0 15px 0 16px; }
}
@media (max-width: 767px) {
    .ttw-ct-hero { height: 230px; margin-bottom: 26px; }
    .ttw-ct-hero__title { font-size: 46px; }   /* come About Us da telefono */
    /* su telefono il titolo non deve finire sotto al pulsante */
    .ttw-ct-hero__frame { align-items: flex-start; padding-top: 42px; }
    .ttw-ct-hero__cta { height: 44px; padding: 0 16px; font-size: 13px; gap: 8px; }
    .ttw-ct-hero__cta-wrap { padding: 7px 7px 0 0; }
}
@media (max-width: 420px) {
    .ttw-ct-hero__cta { font-size: 12px; padding: 0 13px; }
}

/* TTW-CARD-ESTERNA — gli articoli usciti su altre testate stanno nella stessa griglia
   degli altri, ma si capisce a colpo d'occhio che portano fuori dal sito: al posto della
   categoria c'è il nome della testata, e sotto il rimando all'originale. */
.ttw-articles-grid .ttw-article-card--esterno .ttw-article-card__thumb,
.ttw-articles-grid .ttw-article-card--esterno .ttw-article-card__thumb-placeholder {
    background: linear-gradient(135deg, #10376e 0%, #002861 100%) !important;
}
.ttw-articles-grid .ttw-article-card--esterno .ttw-article-card__thumb-placeholder {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}
/* segno discreto che porta fuori dal sito, in mezzo al riquadro */
.ttw-articles-grid .ttw-article-card--esterno .ttw-article-card__thumb::after {
    content: "↗";
    position: absolute;
    right: 14px;
    bottom: 10px;
    font-size: 22px;
    line-height: 1;
    color: rgba(255, 255, 255, .55);
}
.ttw-articles-grid .ttw-article-card--esterno .ttw-article-card__thumb { position: relative; }
.ttw-article-card__fuori {
    display: inline-block;
    padding: 3px 9px;
    background: #10376e;
    color: #ffffff;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.ttw-article-card__fuori-link {
    display: inline-block;
    margin-top: 10px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fe7503;
    text-decoration: none;
}
.ttw-article-card__fuori-link:hover { text-decoration: underline; }

/* TTW-DV-ALTROVE — "Selected writing elsewhere": gli articoli dell'autore usciti su
   altre testate. Solo titolo + testata + data, con link all'originale. */
.ttw-dv-altrove {
    margin: 56px auto 0;
    max-width: var(--ttw-page-reading-max, 1120px);
    padding-top: 34px;
    border-top: 2px solid #10376e;
}
.ttw-dv-altrove__titolo {
    margin: 0 0 22px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: #111;
}
.ttw-dv-altrove__lista {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ttw-dv-altrove__voce {
    padding: 16px 0;
    border-bottom: 1px solid #e8e8e8;
}
.ttw-dv-altrove__voce:last-child { border-bottom: 0; }
.ttw-dv-altrove__link {
    display: inline-block;
    text-decoration: none;
    color: #10376e;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
}
.ttw-dv-altrove__link:hover .ttw-dv-altrove__testo { text-decoration: underline; }
/* freccetta "porta fuori dal sito" */
.ttw-dv-altrove__link::after {
    content: "↗";
    margin-left: 7px;
    font-size: 14px;
    color: #fe7503;
}
.ttw-dv-altrove__meta {
    display: block;
    margin-top: 5px;
    font-family: var(--ttw-body-font);
    font-size: 13px;
    color: #8a8f98;
}
/* estratto: presentazione del pezzo, poi il rimando all'originale */
.ttw-dv-altrove__estratto {
    margin: 10px 0 8px;
    max-width: 780px;
    font-family: var(--ttw-body-font);
    font-size: 15px;
    line-height: 1.72;
    color: #2b2b2b;
}
.ttw-dv-altrove__continua {
    display: inline-block;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #fe7503;
    text-decoration: none;
}
.ttw-dv-altrove__continua:hover { text-decoration: underline; }
/* la voce con estratto respira di più */
.ttw-dv-altrove__voce:has(.ttw-dv-altrove__estratto) { padding: 22px 0; }
@media (max-width: 767px) {
    .ttw-dv-altrove { margin-top: 40px; padding-top: 26px; }
    .ttw-dv-altrove__titolo { font-size: 21px; }
    .ttw-dv-altrove__link { font-size: 16px; }
}

/* TTW-SPAZIO-PREFOOTER — su The Developing Vision e /articoli/ il contenuto finiva
   incollato al footer (padding 0), mentre Contatti e Keep the Beauty hanno 120-130px.
   NB: il padding va sul GUSCIO interno: su .ttw-page-wrap il CSS compilato di tagDiv
   lo azzera. */
.ttw-page-shell--dv,
.ttw-page-shell--articoli {
    padding-bottom: 120px;
}
@media (max-width: 767px) {
    .ttw-page-shell--dv,
    .ttw-page-shell--articoli {
        padding-bottom: 70px;
    }
}

/* data di pubblicazione nelle schede articolo */
.ttw-article-card__date {
    margin: 6px 0 10px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #8a8f98;
}

/* TTW-READMORE-ARIA — nella colonna a destra il titolo "Read more" e il filetto stavano
   troppo attaccati al primo articolo dell'elenco (24px). Più respiro. */
.vc_column.tdi_99 .tdm_block_inline_text + .td_block_wrap,
.vc_column.tdi_99 .tdm_block_inline_text + .ttw-cat-posts {
    margin-top: 44px !important;
}

/* TTW-AUTORE-SOTTO — il riquadro con il nome dell'autore in fondo all'articolo
   non si mostra più (in nessuna pagina). */
.tdb_single_author_box {
    display: none !important;
}

/* TTW-FIRMA-FONDO (3/8/2026) — chiusura degli articoli della firma collettiva.
   È lo STESSO riquadro della pagina Keep the Beauty ("The signature / Who is Horace?"),
   in versione ridotta: fondo carta, filetto blu in alto, monogramma quadrato blu,
   occhiello arancione e nome grande. Il riquadro autore di tagDiv resta spento per
   tutti (regola TTW-AUTORE-SOTTO qui sopra): questa è la chiusura di questi articoli. */
.ttw-firma-fondo {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 22px;
    align-items: start;
    margin: 46px 0 0;
    padding: 28px 30px;
    background: #f6f4ef;
    border-top: 3px solid #10376e;
}
.ttw-firma-fondo__mono {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background: #002861;
    color: #ffffff;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 34px;
    font-weight: 800;
    /* la maiuscola va centrata OTTICAMENTE: con line-height:1 il riquadro della riga
       comprende lo spazio delle lettere discendenti e la H resta alta. Valore misurato
       sui pixel del sito (il padding sposta di metà del suo valore). */
    line-height: 1;
    padding-top: 0.27em;
}
.ttw-firma-fondo__corpo { min-width: 0; }
.ttw-firma-fondo__kicker {
    margin: 0 0 6px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #fe7503;
}
.ttw-firma-fondo__nome {
    margin: 0 0 12px;
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif;
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.3px;
    line-height: 1.1;
    color: #10376e;
}
.ttw-firma-fondo__testo {
    margin: 0 0 12px;
    max-width: 68ch;
    font-family: var(--ttw-body-font);
    font-size: 15px;
    line-height: 1.75;
    color: #2b2b2b;
}
.ttw-firma-fondo__testo:last-child { margin-bottom: 0; }
/* il filetto nero del tema, subito sotto al riquadro, faceva doppia riga: su questi
   articoli la chiusura è il riquadro stesso. Sugli altri articoli il filetto resta. */
body.ttw-firma-collettiva .td_block_separator { display: none !important; }
@media (max-width: 767px) {
    .ttw-firma-fondo {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 36px;
        padding: 22px 20px;
    }
    .ttw-firma-fondo__mono { width: 52px; height: 52px; font-size: 28px; }
    .ttw-firma-fondo__nome { font-size: 20px; }
    .ttw-firma-fondo__testo { font-size: 14.5px; }
}

/* stessa correzione ottica sul monogramma grande di Keep the Beauty (qui la lettera è
   molto più grande e basta un filo meno: anche questo misurato sui pixel) */
.ttw-pw-firma__monogramma { padding-top: 0.21em; }

/* TTW-SHARE-MOBILE — su telefono i tasti di condivisione stavano fra la foto e il testo.
   Ora vanno SUBITO DOPO il testo dell'articolo (non in fondo dopo i correlati) e stanno
   su UNA riga: etichetta "Share" + icone affiancate. Su desktop resta la colonna a sinistra. */
@media (max-width: 767px) {
    .vc_row.tdi_84 {
        display: flex !important;
        flex-direction: column !important;
    }
    .vc_row.tdi_84 > .vc_column.tdi_91 { order: 1 !important; } /* testo articolo */
    .vc_row.tdi_84 > .vc_column.tdi_86 { order: 2 !important; } /* share subito sotto */
    .vc_row.tdi_84 > .vc_column.tdi_99 { order: 3 !important; } /* correlati / Read more */

    /* etichetta e icone sulla stessa riga */
    .vc_column.tdi_86 .wpb_wrapper {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
        gap: 10px 14px !important;
        padding: 4px 0 18px !important;
    }
    .vc_column.tdi_86 .tdm_block_inline_text,
    .vc_column.tdi_86 .tdb_single_post_share {
        margin: 0 !important;
        width: auto !important;
        flex: 0 0 auto !important;
    }
    /* le icone stesse su una riga, allineate a sinistra */
    .vc_column.tdi_86 .tdb_single_post_share .tdb-block-inner {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }
    .vc_column.tdi_86 .tdm-descr { text-align: left !important; }
}

/* la parola "Share" non si mostra più: restano solo le icone */
.vc_column.tdi_86 .tdm_block_inline_text {
    display: none !important;
}

/* Su telefono le icone stanno SOPRA la riga di separazione: la riga originale sta
   dentro la colonna del testo (quindi non si può riordinare) → la nascondo lì e la
   ridisegno identica (2px nera) sotto le icone. */
@media (max-width: 767px) {
    .vc_column.tdi_91 .td_block_separator { display: none !important; }
    .vc_column.tdi_86 {
        border-bottom: 2px solid #000 !important;
        padding-bottom: 12px !important;
        margin-bottom: 10px !important;
    }
    /* le icone partono a filo del testo dell'articolo (erano rientrate di 14px) */
    .vc_column.tdi_86 .tdb_single_post_share { margin-left: -14px !important; }
}

/* TTW-ABOUT-ILLUSTRAZIONE — in fascia tablet il riquadro dell'illustrazione
   "We Share Ideas" veniva schiacciato a 780×220 (rapporto 3.55) e tagliava teste
   e corpi. Le restituisco le proporzioni naturali sotto i 1019px. */
/* TTW-ARTICOLO-ALLINEAMENTO — nell'articolo la testata (categoria, titolo, data/autore
   a sinistra e foto grande a destra) partiva da x=24, quasi a filo pagina, mentre tutte
   le altre pagine del sito iniziano a x=60. Porto le due colonne della riga a 60 così
   l'articolo cade sulla stessa riga verticale del resto: la foto resta grande, cambia
   solo il margine. Solo da desktop: su telefono il rientro resta quello piccolo.
   NB: tdi_68 è l'id della riga nel template articolo; se il template viene risalvato
   in tagDiv Composer va riallineato. */
@media (min-width: 1019px) {
    .vc_row.tdi_68 > .vc_column:first-child,
    .vc_column.tdi_70 { padding-left: 60px !important; }
    .vc_row.tdi_68 > .vc_column:last-child,
    .vc_column.tdi_81 { padding-right: 60px !important; }
}

/* TTW-MENU-MOBILE-DEMO — nel pannello dell'hamburger erano rimasti avanzi del demo
   tagDiv: le intestazioni "News" e "Company:" (blocchi icon box), un secondo menu
   "Company:" con solo Articles + Contact Us, e il bottone arancione "SEE PRICING".
   Il pannello è la zona tdi_12; il menu vero è tdi_22 (l'unico che resta).
   NB: se un giorno il template header viene risalvato in tagDiv Composer gli id
   tdi_… possono cambiare: in quel caso vanno riallineati qui. */
.tdi_12 .tdm_block_icon_box,
.tdi_12 .tdm_block_button,
.tdi_12 .td_block_list_menu:not(.tdi_22) {
    display: none !important;
}

/* TTW-TEAM-INIZIALE — per i membri senza foto il riquadro blu con l'iniziale era alto
   come una foto (520px): accanto a una biografia breve restava un vuoto evidente.
   Più basso e proporzionato (la foto vera resta invariata). */
.ttw-team-profile__placeholder {
    height: 380px !important;
}
@media (max-width: 1018px) {
    .ttw-team-profile__placeholder { height: 330px !important; }
}
@media (max-width: 600px) {
    .ttw-team-profile__placeholder { height: 300px !important; }
}

/* TTW-MOBILE-BARRA-PULITA — nella barra mobile restano solo logo e hamburger:
   via l'icona dei preferiti (segnalibro col contatore). Lo switcher lingua è stato
   disattivato lato PHP (vedi functions.php, ttw-mobile-lang.php). */
.td-header-mobile-wrap .tdb_header_menu_favorites,
.td-header-mobile-wrap .tdw-wmf-wrap {
    display: none !important;
}
/* anche nell'header "appiccicato" che compare scorrendo (è un blocco diverso):
   sotto i 1200 c'è solo l'header mobile, quindi qui vale ovunque */
@media (max-width: 1200px) {
    .tdb_header_menu_favorites,
    .tdw-wmf-wrap {
        display: none !important;
    }
}

/* TTW-MENU-MOBILE-LIVELLI — il menu hamburger (blocco "List Menu" di tagDiv) stampava
   tutta la gerarchia aperta: un elenco lunghissimo con le sottocategorie ripetute sotto
   Articles, Publications, Events e Media. Ora si vede il primo livello e le voci con
   sottovoci si aprono con la freccetta (vedi ttw-mobile-menu-accordion.php). */
.ttw-mm .list-sub-menu,
.ttw-mm ul.sub-menu {
    display: none !important;
}
.ttw-mm li.ttw-mm-open > .list-sub-menu,
.ttw-mm li.ttw-mm-open > ul.sub-menu {
    display: block !important;
}
.ttw-mm li.ttw-mm-parent {
    position: relative;
}
/* spazio a destra per la freccetta, così non finisce sopra il testo della voce */
.ttw-mm li.ttw-mm-parent > a {
    padding-right: 52px !important;
}
.ttw-mm-toggle {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.ttw-mm-toggle svg {
    width: 15px;
    height: 15px;
    transition: transform 0.22s ease;
}
.ttw-mm li.ttw-mm-open > .ttw-mm-toggle svg {
    transform: rotate(90deg);
}

/* TTW-ABOUT-BOTTONE — il bottone "Learn more" usava un arancione diverso (#f26722)
   da quello del sito (#fe7503) ed era l'unico con gli angoli arrotondati. Allineato. */
/* Il bottone "Learn more" è incastonato NELL'ANGOLO dell'immagine, non appoggiato sopra:
   niente più taglio bianco intorno, il bottone occupa l'angolo in basso a sinistra e ne
   ripete la stessa stondatura (24px come la foto), con un raccordo in alto a destra.
   Il colore resta l'arancione del sito. */
/* Il riquadro bianco resta, ma appena più grande del bottone: così il bottone è
   incastonato nell'angolo e allo stesso tempo separato dalla foto da un filo di bianco
   (8px) sul lato destro e sopra. Sotto e a sinistra combacia con la foto. */
.ka-about-hero-frame::after {
    display: block !important;
    width: 180px !important;   /* 172 del bottone + 8 */
    height: 58px !important;   /* 50 del bottone + 8 */
    background: #ffffff !important;
    border-top-right-radius: 22px !important;
    border-bottom-left-radius: 24px !important;
}
@media (max-width: 1018px) {
    .ka-about-hero-frame::after {
        border-bottom-left-radius: 16px !important;
        border-top-right-radius: 18px !important;
    }
}
.ka-about-hero-button,
.ka-about-hero-button:hover,
.ka-about-hero-button:focus {
    background-color: #fe7503 !important;
    left: 0 !important;
    bottom: 0 !important;
    /* alto-sx, alto-dx, basso-dx, basso-sx: l'angolo basso-sx combacia con la foto */
    border-radius: 0 18px 0 24px !important;
}
@media (max-width: 1018px) {
    /* alle larghezze minori la foto ha angoli da 16px: il bottone li segue */
    .ka-about-hero-button,
    .ka-about-hero-button:hover,
    .ka-about-hero-button:focus {
        border-radius: 0 15px 0 16px !important;
    }
}

/* NB: l'illustrazione è uno SFONDO (nessun <img>): togliere l'altezza la fa sparire.
   Le do il rapporto naturale del file (1024×390 = 2.63) così riempie il riquadro
   senza tagliare né schiacciare. */
@media (max-width: 1018px) {
    .ka-about-intro-media {
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 2.63 !important;
    }
}

/* === TTW-MENU-TRADOTTO ===
   GTranslate allunga i testi del menu (FR/ES/IT più lunghi dell'inglese) → il menu
   desktop andava a capo su 2 righe. Quando la pagina è tradotta Google aggiunge la
   classe html.translated-ltr/-rtl: in quello stato stringo font/padding delle voci
   così restano su UNA riga. Lo switcher lingua resta visibile (non nascondo l'header).
   L'inglese (non tradotto) è invariato. */
html.translated-ltr .td-header-desktop-wrap .tdb-menu > li > a,
html.translated-rtl .td-header-desktop-wrap .tdb-menu > li > a {
    font-size: 12px !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
}
/* ECCEZIONE ITALIANO (3/8/2026): le voci italiane sono le più corte fra le lingue
   tradotte e a 14px occupano 786px, contro i 907px liberi alla larghezza minima in cui
   il menu desktop compare (1201px: sotto scatta l'hamburger). Quindi in italiano le voci
   restano grandi come in inglese, senza andare a capo. Google Translate mette lang="it"
   sull'<html>, ed è così che le riconosco.
   Le altre lingue restano a 12px perché sono più lunghe: francese, spagnolo, tedesco,
   olandese e portoghese vanno a capo già a 13px anche su schermi da 1440px. */
html.translated-ltr[lang="it"] .td-header-desktop-wrap .tdb-menu > li > a {
    font-size: 14px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}
/* i sottomenù (tendine) restano leggibili: solo la barra principale è compattata */
html.translated-ltr .td-header-desktop-wrap .tdb-menu .sub-menu a,
html.translated-rtl .td-header-desktop-wrap .tdb-menu .sub-menu a {
    font-size: 13px !important;
}

/* === TTW-MOBILE-LANG ===
   Switcher lingua iniettato nell'header mobile (vedi ttw-mobile-lang.php). Sta dentro
   .td-header-mobile-wrap, quindi è visibile SOLO quando l'hamburger è mostrato (≤1200px). */
/* dentro il pannello dell'hamburger, sotto le voci di menu */
.ttw-mlang {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0 6px;
    padding: 16px 0 0 24px;
    border-top: 1px solid rgba(0, 0, 0, .09);
}
.ttw-mlang__flag {
    display: inline-flex;
    line-height: 0;
    opacity: .5;
    border-radius: 2px;
    transition: opacity .15s ease;
}
.ttw-mlang__flag img {
    width: 22px;
    height: 16px;
    display: block;
    border-radius: 2px;
    box-shadow: 0 0 1px rgba(0, 0, 0, .35);
}
.ttw-mlang__flag:hover { opacity: 1; }
.ttw-mlang__flag.is-current {
    opacity: 1;
    outline: 2px solid #10376e;
    outline-offset: 1px;
}
@media (max-width: 480px) {
    .ttw-mlang { gap: 5px; margin: 0 8px; }
    .ttw-mlang__flag img { width: 20px; height: 15px; }
}

/* === TTW-HEADER-MOBILE-APPICCICATO (3/8/2026) ===
   Su telefono la barra con logo e hamburger scorreva via: per tornare al menu bisognava
   risalire tutta la pagina. Ora resta in cima. Sotto i 1200px c'è solo l'header mobile,
   quindi la regola vale esattamente dove serve. */
@media (max-width: 1200px) {
    /* Appiccico il CONTENITORE del template header, non la barra: un elemento sticky
       si muove solo dentro il proprio genitore, e il genitore della barra è alto
       quanto la barra (115px) — sarebbe scivolato via subito. */
    .td-header-template-wrap {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000;
        background: #ffffff;
        box-shadow: 0 1px 0 rgba(0, 40, 97, .08);
    }
    /* sticky non funziona se un antenato ritaglia il contenuto: .td-theme-wrap ha
       overflow:hidden (serve a tagDiv per non far comparire la barra orizzontale).
       "clip" taglia lo stesso ma NON crea un contenitore di scorrimento, quindi la
       barra resta appiccicata e niente scorrimento laterale. */
    .td-theme-wrap {
        overflow-x: clip !important;
        overflow-y: visible !important;
    }
    .td-header-wrap,
    .td-header-template-wrap,
    .td-outer-wrap {
        overflow: visible !important;
    }
}

/* === TTW-CATEGORIE-UNIFORMI (3/8/2026) ===
   Le etichette di categoria uscivano con tre caratteri diversi e due colori: la macro
   in Red Hat Display blu (un font della libreria tagDiv), la sotto-categoria in
   Merriweather arancione nelle liste e in Open Sans arancione dentro l'articolo.
   Qui sono tutte uguali: Epilogue, 700, maiuscolo, arancione #fe7503.
   Il corpo resta legato al contesto (11px nelle liste, 13px sopra il titolo
   dell'articolo, dove tutto è più grande).
   Serve !important perché sia il CSS del tema sia quello dell'Aspetto → CSS aggiuntivo
   impongono colore e famiglia con !important. */
.ttw-module-categories .ttw-module-category-link,
.tdb_single_categories .ttw-category-link {
    font-family: var(--ttw-heading-font), 'Epilogue', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: #fe7503 !important;
    background: transparent !important;
    border: none !important;
}
.ttw-module-categories .ttw-module-category-link { font-size: 11px !important; }
.tdb_single_categories .ttw-category-link { font-size: 13px !important; }
.ttw-module-categories .ttw-module-category-link:hover,
.tdb_single_categories .ttw-category-link:hover {
    color: #10376e !important;
}

/* L'etichetta stava incollata alla foto e staccata dal titolo: la sposto di un filo
   più giù e la riavvicino al titolo, che è la coppia che deve leggersi insieme. */
.td-module-meta-info .ttw-module-categories {
    margin-top: 7px !important;
    margin-bottom: 2px !important;
}
.ttw-module-categories + .entry-title,
.ttw-module-categories + .td-module-title {
    margin-top: 0 !important;
}

/* === TTW-HOME-TESTATE-SEZIONE (3/8/2026) ===
   Nelle sezioni della home (Videogallery, Rights, Podcast, Technological Innovation,
   Culture) il titolo e il pulsante "View more" stanno sulla stessa riga — titolo a
   sinistra, pulsante a destra — da 768px in su. Sotto i 768px tagDiv incolonna il
   contenitore e il pulsante finiva sotto al titolo, disallineato: qui lo rimetto in riga.
   Il selettore prende i contenitori con DUE pulsanti di fila (è la forma delle testate di
   sezione: titolo-pulsante + View more) e non tocca nient'altro: verificato, sono 5 in
   home e zero sulle altre pagine. Così vale anche per le sezioni che verranno aggiunte poi.
   Il corpo del titolo scende a 30px perché a 40px, accanto al pulsante, "Technological
   Innovation" andava su tre righe. */
@media (max-width: 767px) {
    .wpb_wrapper:has(> .tdm_block_button + .tdm_block_button) {
        flex-direction: row !important;
        flex-wrap: nowrap;
        /* !important perché tagDiv impone flex-start sul contenitore: senza, con il
           titolo su due righe (in italiano capita spesso) il pulsante restava in alto */
        align-items: center !important;
        justify-content: space-between;
        gap: 14px;
    }
    /* il titolo si prende lo spazio che avanza, il pulsante resta della sua misura */
    .wpb_wrapper:has(> .tdm_block_button + .tdm_block_button) > .tdm_block_button:first-child {
        flex: 1 1 auto;
        min-width: 0;
        margin-bottom: 0 !important;
    }
    .wpb_wrapper:has(> .tdm_block_button + .tdm_block_button) > .tdm_block_button:last-child {
        flex: 0 0 auto;
        margin-bottom: 0 !important;
    }
    .wpb_wrapper:has(> .tdm_block_button + .tdm_block_button) > .tdm_block_button:first-child .tdm-btn {
        font-size: 30px !important;
        line-height: 1.15 !important;
    }
    /* la freccia del titolo va a capo da sola (è un elemento a sé dentro il pulsante):
       su telefono la tolgo, tanto il titolo è già cliccabile e accanto c'è il pulsante */
    .wpb_wrapper:has(> .tdm_block_button + .tdm_block_button) > .tdm_block_button:first-child .tdm-btn i {
        display: none !important;
    }

    /* Su telefono ogni sezione (le fasce blu della home) aveva 80px di aria sopra e
       sotto più 60px di margine sulla colonna del titolo: dal telefono sembrava un
       vuoto. Qui li accorcio; su desktop restano come sono. Aggancio la riga che
       CONTIENE una testata di sezione, non gli id tdi_ del builder che cambiano. */
    .vc_row:not(.vc_inner):has(.wpb_wrapper > .tdm_block_button + .tdm_block_button) {
        padding-top: 36px !important;
        padding-bottom: 36px !important;
    }
    .vc_column_inner:has(.wpb_wrapper > .tdm_block_button + .tdm_block_button) {
        margin-top: 0 !important;
    }
    .vc_row_inner:has(.wpb_wrapper > .tdm_block_button + .tdm_block_button) {
        margin-bottom: 16px !important;
        padding-bottom: 0 !important;
    }
}
