/* ===========================================================================
   TITILLIUM WEB — font brand del sito
   I file erano gia' in wwwroot/fonts/Titillium_Web/ ma nessun @font-face li
   dichiarava: tutto il sito ripiegava sul fallback Segoe UI.
   woff2 (tutti i browser supportati) + woff come fallback.
   =========================================================================== */

@font-face {
    font-family: "Titillium Web";
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-300.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-300.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: italic;
    font-weight: 300;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-300italic.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-300italic.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-regular.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-regular.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-italic.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-italic.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-600.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-600.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: italic;
    font-weight: 600;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-600italic.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-600italic.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-700.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-700.woff") format("woff");
}

@font-face {
    font-family: "Titillium Web";
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-700italic.woff2") format("woff2"),
         url("/fonts/Titillium_Web/titillium-web-v10-latin-ext_latin-700italic.woff") format("woff");
}

.cuore-banner-link__icon img {
    width: 50px;
    height: 50px;
}
.cuore-footer-cta__icon img {
    width: 56px;
    height: 56px;
}

.logoheader {
    width: 190px;
    height: 82px;
}

.logofooter {
    width: 190px;
    height: 82px;
}


.cuore-chip--InApertura {
    background: #FFC7B5;
    color: #9c4f00;
}
.loadingcontainer {
    opacity: .8;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 10000;
    width: 100%;
    height: 100%;
    background: white;
}

.loadingcontainer-item {
    height: 100%;
    margin: auto;
    width: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cuore-audio-card {
    background: #fff;
    border: 1px solid #e3e7eb;
    border-radius: 8px;
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1.25rem;
    display: grid
}
.cuore-audio-card__audio {
    width: 100%;
    min-height: 54px;
}
.cuore-audio-card__body {
    flex-direction: column;
    gap: .5rem;
    display: flex;
}
.cuore-audio-card__player {
    width: 100%;
}
.cuore-audio-card__transcript {
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #06c;
    cursor: pointer;
    background: 0 0;
    border: 0;
    align-self: flex-start;
    align-items: center;
    gap: .4rem;
    padding: .25rem 0;
    font-family: Titillium Web, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    text-decoration: none;
    display: inline-flex;
}
.cuore-audio-card__panel.is-open {
    opacity: 1;
    max-height: 1200px;
    margin-top: .25rem;
    margin-bottom: .25rem;
}
.cuore-audio-card__panel p {
    color: #17324d;
    background: #f5f7fa;
    border-left: 3px solid #06c;
    border-radius: 0 8px 8px 0;
    margin: 0;
    padding: .85rem 1rem;
    font-family: Titillium Web, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    font-size: .9rem;
    line-height: 1.55;
}
.cuore-audio-card__title {
    color: #17324d;
    margin: 0;
    font-family: Titillium Web, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.page-module-scss-module__t8cmna__paragraph p{
    color: var(--scheda-text);
    margin: 0;
    font-size: 1rem;
    line-height: 1.6;
}

.page-module-scss-module__t8cmna__bulletList ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.page-module-scss-module__t8cmna__bulletList li {
    padding-left: 1.5rem;
    color: var(--scheda-text);
    padding-block: .4rem;
    font-size: 1rem;
    line-height: 1.55;
    position: relative;
}
.page-module-scss-module__t8cmna__bulletList li:before {
        content: "";
        background: var(--scheda-primary);
        border-radius: 50%;
        width: 7px;
        height: 7px;
        position: absolute;
        top: .95rem;
        left: .2rem;
    }

.page-module-scss-module__t8cmna__defList dd {
    color: var(--scheda-text);
    margin: 0 0 .5rem;
    font-size: 1rem;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .logoheader {
        width: 190px;
        height: 82px;
    }
    .logofooter {
        width: 190px;
        height: 82px;
    }

}

/* reCAPTCHA — widget v2 (iframe Google, non ristilabile internamente).
   Allineato a sinistra come da default, senza cornice/sfondo: solo spaziatura
   coerente col form. L'eventuale messaggio d'errore sotto resta in rosso
   (riusa .idearewb-contact-form__error). */
.idearewb-contact-form__captcha {
    margin: 1.5rem 0 1.5rem;
    scroll-margin-top: 1rem;
}

/* La privacy-testo è HTML da CMS e può contenere un <p>: azzera il margine
   così resta allineato al checkbox dentro la label. */
.idearewb-contact-form__privacy label.form-check-label p {
    margin: 0;
}

/* =====================================================================
   SEARCH MODAL — layout Bootstrap Italia / design-comuni
   ---------------------------------------------------------------------
   Il componente .search-modal del tema "comuni" NON è incluso nella build
   di app.css (BS Italia ridotta): qui ne porto il layout (overlay a tutto
   schermo, titolo grande "Cerca" + chiudi, input ricerca grande con lente
   e bottone, lista "Forse stavi cercando").
   Colori/font EREDITATI dal sito: il verde #007a52 del tema comuni diventa
   il rosso brand --idearewb-primary, i grigi diventano i token idea-re.
   Blocco self-contained: non dipende da regole base assenti in app.css.
   ===================================================================== */

/* Pannello a tutto schermo */
.search-modal .modal-dialog {
    max-width: 100%;
    margin: 0;
    height: 100vh;
}
.search-modal .modal-dialog .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
}
.search-modal .modal-dialog .modal-content .modal-body {
    overflow-y: auto;
    padding: 0;
}
    .search-modal .modal-dialog .modal-content .modal-body .container {
        padding: 24px 24px 0;
    }

/* Barra titolo: "Cerca" + bottone chiudi/indietro */
.search-modal .modal-title {
    display: flex;
    align-items: center;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .06);
    padding: 1.125rem 1.5rem;
    margin-bottom: 4rem;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--idearewb-heading);
}
.search-modal .modal-title .h2,
.search-modal .modal-title h2 {
    margin-bottom: 0;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.5;
}
/* il bottone chiudi/indietro è un <button> nudo: reset a icona pulita */
.search-modal .modal-title .search-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 1.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}
.search-modal .modal-title .search-link svg {
    fill: var(--idearewb-primary);
}

/* Riga di ricerca: input grande + bottone "Cerca" allineati in basso */
.search-modal .form-group {
    display: flex;
    align-items: flex-end;
    gap: 1.875rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    position: relative;
}
.search-modal .form-group input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    padding-left: 3rem; /* spazio per la lente (sostituisce .ps-5 assente) */
    background-color: #fff;
    font-size: 1rem;
}
.search-modal .form-group input::placeholder {
    font-weight: 400;
    color: var(--idearewb-text-muted);
    opacity: .55;
}
.search-modal .form-group .autocomplete-icon {
    left: 20px;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
}
.search-modal .form-group .autocomplete-icon .icon {
    fill: var(--idearewb-primary);
}
.search-modal .form-group label {
    opacity: 0;
    visibility: hidden;
}

/* Lista "Forse stavi cercando" */
.search-modal .searches-list-wrapper {
    padding: 1.125rem 1.5rem;
}
.search-modal .searches-list-wrapper .other-link-title {
    margin-bottom: 1rem;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1;
    color: var(--idearewb-text);
}
.search-modal .searches-list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.search-modal .searches-list li + li {
    margin-top: 1rem;
}
.search-modal .searches-list li a {
    font-size: 1.125rem;
    line-height: 1.5;
    color: var(--idearewb-primary);
    text-decoration: underline;
}
.search-modal .searches-list li a:hover {
    text-decoration: none;
}

/* ≥576px: titolo e input "grandi" come nel riferimento */
@media (min-width: 576px) {
    .search-modal .modal-title {
        margin-bottom: 3.5rem;
        padding: 1rem 1.25rem;
        font-size: 3rem;
    }
    .search-modal .modal-title .h2,
    .search-modal .modal-title h2 {
        font-size: 3rem;
    }
    .search-modal .modal-title .search-link {
        margin-right: 1.25rem;
    }
    .search-modal .form-group {
        gap: 1.67rem;
        padding-left: 1.33rem;
        padding-right: 1.33rem;
    }
    .search-modal .form-group input {
        height: auto;
        font-size: 2.5rem;
    }
    .search-modal .searches-list-wrapper {
        padding: 1rem 1.25rem;
    }
}

/* ≥768px: titolo su una riga con la "X" spinta a destra */
@media (min-width: 768px) {
    .search-modal .modal-title {
        box-shadow: none;
        justify-content: space-between;
    }
    .search-modal .modal-title .h2,
    .search-modal .modal-title h2 {
        line-height: 1.25;
    }
}

/* <768px: body senza padding, container a tutta larghezza */
@media (max-width: 767.8px) {
    .search-modal .modal-dialog .modal-content .modal-body {
        padding: 24px 24px 0;
    }
    .search-modal .modal-dialog .modal-content .modal-body .container {
        padding: 0;
    }
}
/* ===========================================================================
   HERO SLIDER HOME — immagine di sfondo per-slide (non background CSS)
   Binding CMS: gruppo "slider" > contenuto "immagine", slot IMG (desktop) e
   IMG_M (mobile). Il gradiente su .idearewb-hero-dark resta solo da fallback
   quando la slide non ha immagine.
   =========================================================================== */

/* la .container non deve fare da contenitore di posizionamento, altrimenti
   l'immagine resterebbe confinata alla larghezza del container */
.idearewb-hero-slider > .container {
    position: static;
}

/* l'immagine copre tutta la sezione, sotto al contenuto della slide */
.idearewb-hero__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    margin: 0;
}

.idearewb-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* velatura per garantire il contrasto del testo bianco sulla foto */
.idearewb-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(31, 31, 31, .88) 0%, rgba(31, 31, 31, .62) 45%, rgba(31, 31, 31, .30) 100%);
}

/* contenuto testuale e nav sopra l'immagine (la container ora e' static) */
.idearewb-hero__inner {
    position: relative;
    z-index: 1;
}

.idearewb-hero-slider .idearewb-hero-slider__nav {
    position: relative;
    z-index: 2;
}

/* senza traslazione: con l'immagine a tutta sezione lo slide-in verticale
   farebbe "sfarfallare" lo sfondo */
.idearewb-hero-slider .idearewb-hero-slider__slide {
    transform: none;
}

@media (max-width: 767.98px) {
    .idearewb-hero__media::after {
        background: linear-gradient(180deg, rgba(31, 31, 31, .76) 0%, rgba(31, 31, 31, .88) 100%);
    }
}


.card_eyebrow_progetto_anno {
    display: flex;
    justify-content: space-between;
}
    .card_eyebrow_progetto_anno .anno {
        background-color: #9a0d17;
        color: #fff;
        font-size: .75rem;
        padding: 0px 8px;
        text-align: center;
        border-radius: 13px;
    }
/* ===========================================================================
   FIX HOME / AREE / MENU MOBILE
   =========================================================================== */

/* --- Menu mobile: logo reale al posto del segnaposto a cuore ---------------
   Il logo dal CMS e' la versione bianca (ideare-white.png), la stessa
   dell'header desktop che sta su fondo rosso: quindi la testata del pannello
   prende il rosso brand, altrimenti il logo bianco su bianco non si vede. */
.idearewb-menu-mobile__head {
    background: #c80418;
    border-bottom-color: #9a0d17;
    align-items: center;
}

.idearewb-menu-mobile__brand-logo {
    display: block;
    width: auto;
    max-width: 150px;
    height: auto;
    max-height: 52px;
    object-fit: contain;
}

/* --- Home / Progetti finanziati: loghi piu' piccoli e mai ritagliati ------- */
.idearewb-home-webinar__logo {
    display: block;
    width: 78%;
    max-width: 240px;
    height: auto;
    max-height: 140px;
    margin: 0 auto;
    /* contain: il logo non viene mai tagliato (prima era object-fit:cover) */
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .idearewb-home-webinar__logo {
        width: 62%;
        max-height: 120px;
    }
}

/* --- Home / sezione NEWS --------------------------------------------------- */
.idearewb-home-news {
    background: #fff;
    padding: clamp(3rem, 2rem + 2vw, 4.5rem) 0;
}

.idearewb-home-news__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

@media (min-width: 768px) {
    .idearewb-home-news__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.idearewb-home-news__cta-row {
    display: flex;
    justify-content: center;
    margin-top: 2.5rem;
}

/* --- Aree di competenza: immagine del focus nell'hero ---------------------- */
.idearewb-page-hero__focus-img {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    max-height: 340px;
    margin-left: auto;
    object-fit: contain;
}
.search-modal .autocomplete-items {
    list-style: none;
    position: absolute;
    top: 100%;
    left: 1.5rem;
    width: calc(100% - 1.5rem - 1.5rem);
    z-index: 1000;
    background-color: #FFF;
    border: solid 1px black;
}

.autocomplete-items {
    list-style: none;
    position: absolute;
    top: 100%;
    /* left: 1.5rem; */
    width: calc(100%);
    z-index: 1000;
    background-color: #FFF;
    border: solid 1px black;
}
/* ===========================================================================
   FIX TOOLBAR FILTRI / TIPOGRAFIA CARD
   =========================================================================== */

/* Pannello filtri aperto: staccato dalla barra di ricerca (prima erano attaccati) */
.idearewb-toolbar__filters-panel.is-open {
    margin-top: 20px;
}

/* Titolo delle ambito-card allineato al titolo delle project-card (1.375rem = 22px) */
.idearewb-ambito-card__title {
    font-size: 1.375rem;
}

/* ===========================================================================
   STAMPA — foglio di stile per la voce "Stampa la pagina" del menu "Vedi azioni"
   (newsdettaglio / progetto / pubblicazione / videodettaglio e, in generale,
   qualsiasi pagina del sito). Toglie la navigazione e i controlli interattivi,
   porta il contenuto su una colonna e ottimizza la resa sulla carta.
   =========================================================================== */

@page {
    size: A4 portrait;
    margin: 15mm 12mm;
}

@media print {

    /* --- Base ------------------------------------------------------------ */
    html,
    body {
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
        color: #000 !important;
        font-size: 10.5pt;
        line-height: 1.45;
    }

    * {
        box-shadow: none !important;
        text-shadow: none !important;
        animation: none !important;
        transition: none !important;
    }

    /* --- Chrome di navigazione: non si stampa ---------------------------- */
    .idearewb-header,
    .idearewb-header__slim,
    .idearewb-menu-mobile,
    .idearewb-menu-mobile__overlay,
    .idearewb-footer,
    .idearewb-footer-cta,
    .idearewb-back-to-top,
    .search-modal,
    .modal,
    .modal-backdrop,
    .skiplinks,
    .it-header-wrapper,
    .cookiebar {
        display: none !important;
    }

    /* --- Controlli interattivi: non si stampano -------------------------- */
    .idearewb-project-hero__top-actions,
    .idearewb-project-hero__aside-actions,
    .idearewb-project-hero__actions,
    .idearewb-project-hero__dropdown,
    .idearewb-project-hero__cta,
    .idearewb-progetto__indice,
    .idearewb-breadcrumb--back,
    .idearewb-toolbar,
    .idearewb-pagination,
    .lg-container,
    .lg-backdrop,
    .lg-outer,
    button {
        display: none !important;
    }

    /* Il breadcrumb completo è nascosto sotto 992px: in stampa lo mostriamo,
       perché è l'unico riferimento al percorso della pagina. */
    .idearewb-breadcrumb--desktop-only {
        display: block !important;
        font-size: 9pt;
        color: #444 !important;
    }

    /* --- Larghezza piena, una sola colonna ------------------------------- */
    main,
    .idearewb-project-hero,
    .idearewb-project-cover,
    .idearewb-progetto,
    .idearewb-progetto__layout,
    .idearewb-project-hero__container,
    .idearewb-project-cover__container,
    .idearewb-progetto__content,
    .container,
    .container-fluid {
        max-width: none !important;
        width: auto !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        background: #fff !important;
    }

    .idearewb-progetto__layout > .row {
        display: block !important;
        margin: 0 !important;
    }

    .idearewb-progetto__layout > .row > [class*="col-"] {
        width: 100% !important;
        max-width: none !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .idearewb-project-hero__body {
        display: block !important;
    }

    .idearewb-project-hero__aside {
        display: block !important;
        text-align: left !important;
    }

    .idearewb-project-hero {
        padding-block: 0 0.5rem !important;
    }

    /* --- Tipografia ------------------------------------------------------ */
    .idearewb-project-hero__title {
        font-size: 20pt;
        line-height: 1.2;
        margin: 0 0 .35rem;
    }

    .idearewb-project-hero__lead {
        font-size: 12pt;
        color: #222 !important;
    }

    h1, h2, h3, h4 {
        color: #000 !important;
        break-after: avoid-page;
        page-break-after: avoid;
    }

    p, li, blockquote, figure, table {
        break-inside: avoid-page;
        page-break-inside: avoid;
        orphans: 3;
        widows: 3;
    }

    .idearewb-progetto__section {
        margin-bottom: 1.2rem !important;
        break-inside: auto;
    }

    /* --- Argomenti / chip ------------------------------------------------ */
    .idearewb-project-hero__argomenti {
        display: block !important;
        text-align: left !important;
        margin-top: .75rem;
    }

    .idearewb-project-hero__chips {
        display: block !important;
        padding: 0 !important;
        list-style: none !important;
    }

    .idearewb-project-hero__chips li {
        display: inline !important;
    }

    .idearewb-project-hero__chips li:not(:last-child):after {
        content: " · ";
    }

    .idearewb-project-hero__chips a {
        border: 0 !important;
        background: none !important;
        padding: 0 !important;
        color: #000 !important;
        text-decoration: none !important;
    }

    /* --- Immagini e media ------------------------------------------------ */
    img {
        max-width: 100% !important;
        height: auto !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .idearewb-project-cover__media {
        aspect-ratio: auto !important;
        background: none !important;
        max-height: 90mm;
    }

    .idearewb-project-cover__media img {
        max-height: 90mm;
        object-fit: contain !important;
    }

    /* Video: l'iframe è inutile su carta, resta la trascrizione (che a video
       sta in un pannello [hidden] aperto da JS: in stampa va sempre espanso). */
    .idearewb-video-card__player,
    .idearewb-video-card__transcript-row,
    iframe,
    video {
        display: none !important;
    }

    .idearewb-video-card__panel,
    .idearewb-video-card__panel[hidden] {
        display: block !important;
        opacity: 1 !important;
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
        margin: 0 0 .5rem !important;
    }

    /* Galleria: griglia compatta, nessun overlay lightbox. */
    .idearewb-gallery {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 4mm !important;
    }

    .idearewb-gallery__img {
        max-height: 45mm;
        object-fit: cover;
    }

    /* --- Link ------------------------------------------------------------ */
    a,
    a * {
        color: #000 !important;
        text-decoration: underline;
    }

    /* Nei contenuti e negli allegati l'URL va esplicitato: su carta il link
       non è cliccabile. Esclusi ancore interne e link già testuali. */
    .idearewb-progetto__content a[href^="http"]:after,
    .idearewb-doc-list a[href^="http"]:after,
    .idearewb-doc-list a[href^="/"]:after {
        content: " (" attr(href) ")";
        font-size: 8.5pt;
        word-break: break-all;
        color: #444;
    }

    .idearewb-doc-card {
        border: 1px solid #999 !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }
}
