/*==================================================
DONNA IMMAGINE CITTA'
Versione 2.0
Refactoring completo
==================================================*/

/*==========================
RESET
==========================*/

*,
*::before,
*::after{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

html{
    scroll-behavior:smooth;
}

body{

    min-height:100vh;

    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    font-size:16px;

    line-height:1.6;

    color:#333;

    background:#ffffff;

    overflow-x:hidden;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

}

/*==========================
VARIABILI
==========================*/

:root{

	--primary:#5a1a55;

    --secondary:#c57ea6;

    --accent:#f5d7e7;

    --light:#fafafa;

    --gray:#ececec;

    --dark:#2d2d2d;

    --white:#ffffff;

    --shadow:

        0 10px 25px rgba(0,0,0,.08);

    --radius:14px;

    --transition:.30s ease;

    --container:1200px;

}

/*==========================
LINK
==========================*/

a{

    color:var(--primary);

    text-decoration:none;

    transition:var(--transition);

}

a:hover{

    color:var(--secondary);

}

/*==========================
IMMAGINI
==========================*/

img{

    display:block;

    max-width:100%;

    height:auto;

}

/*==========================
LISTE
==========================*/

ul{

    list-style:none;

}

/*==========================
CONTAINER
==========================*/

.site{

    width:100%;

}

.container{

    width:min(100% - 2rem,var(--container));

    margin-inline:auto;

}

/*==================================================
HEADER
==================================================*/

.hero{

    width:100%;

    max-width:var(--container);

    margin:0 auto;

    padding:2rem 1rem;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:2rem;

}

/*==================================================
LOGO
==================================================*/

.hero__image{

    width:100%;

    display:flex;

    justify-content:center;

}

.hero__image img{

    width:min(100%,900px);

    height:auto;

}

/* HERO QUOTE: tipografia uguale al blockquote della featured-quote */
.hero__quote > p {
    font-size: 1.25rem;
    font-style: italic;
    line-height: 1.8;
    color: #444;
}

/* HERO QUOTE CITE: stile del link delle card, mantenuto in corsivo */
.hero__quote cite {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--primary);
    font-style: italic;
    text-decoration: none;
}

/*==================================================
TOP BAR
==================================================*/

.topbar{

    width:100%;

    background:var(--primary);

    border-radius:var(--radius);

    padding:.75rem 1rem;

}

.social-links{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:1rem;

    flex-wrap:wrap;

}

.social-link{

    width:46px;

    height:46px;

    display:flex;

    justify-content:center;

    align-items:center;

    color:var(--white);

    background:rgba(255,255,255,.12);

    border-radius:50%;

    transition:var(--transition);

}

.social-link:hover{

    background:var(--secondary);

    transform:translateY(-3px);

}

.social-link i{

    font-size:1.25rem;

}

.clubhouse-link{
    display:flex;
    justify-content:center;
    align-items:center;
    width:46px;
    height:46px;
    color:var(--white);
    background:rgba(255,255,255,.12);
    border-radius:50%;
    overflow:hidden;
    transition:var(--transition);
}

.clubhouse-link img{
    width:26px;
    height:26px;
}

.clubhouse-link:hover{
    background:var(--secondary);
    transform:translateY(-3px);
}

/*==================================================
ACCESSIBILITA'
==================================================*/

.sr-only,
.visually-hidden{

    position:absolute;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

    white-space:nowrap;

    border:0;

}

/*==================================================
MENU HAMBURGER
==================================================*/

.menu-toggle{

    position:fixed;

    top:1.25rem;

    right:1.25rem;

    width:52px;

    height:52px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    gap:6px;

    border:none;

    border-radius:50%;

    background:var(--primary);

    color:var(--white);

    cursor:pointer;

    box-shadow:var(--shadow);

    z-index:1001;

    transition:var(--transition);

}

.menu-toggle:hover{

    background:var(--secondary);

    transform:scale(1.05);

}

.menu-toggle span{

    width:24px;

    height:3px;

    background:#fff;

    border-radius:2px;

    transition:var(--transition);

}

/*==================================================
ANIMAZIONE HAMBURGER
==================================================*/

.menu-toggle.active span:nth-child(1){

    transform:
        rotate(45deg)
        translate(6px,6px);

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

}

.menu-toggle.active span:nth-child(3){

    transform:
        rotate(-45deg)
        translate(6px,-6px);

}

/*==================================================
SIDEBAR
==================================================*/

.sidebar{

    position:fixed;

    top:0;

    right:0;

    width:320px;

    max-width:90vw;

    height:100vh;

    background:#fff;

    box-shadow:
        -8px 0 25px rgba(0,0,0,.15);

    padding:6rem 2rem 2rem;

    overflow-y:auto;

    transform:translateX(100%);

    transition:transform .35s ease;

    z-index:1000;

}

.sidebar.open{

    transform:translateX(0);

}

/*==================================================
MENU
==================================================*/

.menu-list{

    display:flex;

    flex-direction:column;

    gap:.5rem;

}

.menu-list li{

    width:100%;

}

.menu-list a{

    display:block;

    padding:1rem 1.2rem;

    border-radius:10px;

    font-weight:600;

    color:var(--dark);

    transition:var(--transition);

}

.menu-list a:hover{

    background:var(--accent);

    color:var(--primary);

    transform:translateX(6px);

}

/*==================================================
OVERLAY
==================================================*/

.menu-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.45);

    opacity:0;

    visibility:hidden;

    transition:opacity .3s ease;

    z-index:900;

}

.menu-overlay.show{

    opacity:1;

    visibility:visible;

}

/*==================================================
MAIN
==================================================*/

.main-content{

    width:min(100% - 2rem,var(--container));

    margin:2rem auto;

}

/*==================================================
EVENTI
==================================================*/

.events{

    margin-bottom:4rem;

}

.section-title{

    text-align:center;

    font-size:2rem;

    color:var(--primary);

    margin-bottom:2rem;

}

.events-list{

    display:flex;

    flex-direction:column;

    gap:1.5rem;

}

.event-highlight{

    display:block;

    padding:1.5rem;

    border-left:6px solid var(--primary);

    background:var(--light);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    font-size:1.2rem;

    font-weight:700;

}

.event-dates{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:.75rem;

}

.event-dates span{

    width:100%;

    text-align:center;

    font-weight:700;

    color:var(--primary);

}

.event-dates a{

    padding:.6rem 1rem;

    border-radius:999px;

    background:var(--gray);

    transition:var(--transition);

}

.event-dates a:hover{

    background:var(--secondary);

    color:#fff;

}

/*==================================================
SEZIONE PERCORSI
==================================================*/

.highlights{

    margin:4rem auto;

}

/*==================================================
GRID
==================================================*/

.card-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(280px,1fr));

    gap:2rem;

    align-items:stretch;

}

/*==================================================
CARD
==================================================*/

.card{

    display:flex;

    flex-direction:column;

    justify-content:flex-start;

    padding:2rem;

    background:var(--white);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    transition:
        transform .30s ease,
        box-shadow .30s ease;

    min-height:280px;

}

.card:hover{

    transform:translateY(-8px);

    box-shadow:
        0 20px 40px rgba(0,0,0,.15);

}

/*==================================================
VARIANTI
==================================================*/

.card--primary{

    border-top:6px solid var(--primary);

}

.card--light{

    background:var(--light);

}

.card--gray{

    background:#f2f2f2;

}

.card--accent{

    background:#fdf7fb;

    border-top:6px solid var(--secondary);

}

/*==================================================
TITOLI
==================================================*/

.card h3{

    margin-bottom:1rem;

    font-size:1.35rem;

    color:var(--primary);

}

.card h3 a{

    display:flex;

    align-items:center;

    gap:.6rem;

}

.card h3 i{

    color:var(--secondary);

    font-size:1rem;

}

/*==================================================
TESTO
==================================================*/

.card p{

    flex:1;

    color:#444;

    line-height:1.8;

}

/*==================================================
LINK
==================================================*/

.card a{

    font-weight:700;

}

.card a:hover{

    color:var(--secondary);

}

/*==================================================
ANIMAZIONE ENTRATA
==================================================*/
/* ============ ORIGINALE PRIMA CHAT Sostituita
.card{

    opacity:0;

    transform:translateY(20px);

    animation:cardFade .6s ease forwards;

}
==========*/

/*======== RIGHE SOSITUITE INIZIO */

.card{

    opacity:0;

    transform:translateY(40px);

    transition:
        opacity .5s ease,
        transform .5s ease;

}

.card.visible{

    opacity:1;

    transform:translateY(0);

}


/* === RIGHE SOSTITUITE FINE */

.card:nth-child(2){

    animation-delay:.10s;

}

.card:nth-child(3){

    animation-delay:.20s;

}

.card:nth-child(4){

    animation-delay:.30s;

}

/* ------ TOLTA SEGUENDO CONSIGLI DI CHAT
@keyframes cardFade{

    from{

        opacity:0;

        transform:translateY(25px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}
*/


/*==================================================
FOCUS ACCESSIBILITA'
==================================================*/

.card a:focus-visible{

    outline:3px solid var(--secondary);

    outline-offset:4px;

    border-radius:6px;

}

/*==================================================
VIRGINIA WOOLF
==================================================*/

.featured-quote{

    display:grid;

    grid-template-columns:320px 1fr;

    gap:3rem;

    align-items:center;

    margin:5rem auto;

    padding:2rem;

    background:var(--light);

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

.featured-quote__image{

    display:flex;

    justify-content:center;

}

.featured-quote__image img{

    width:100%;

    max-width:280px;

    border-radius:50%;

    box-shadow:var(--shadow);

}

.featured-quote__content h2{

    color:var(--primary);

    margin-bottom:1rem;

    font-size:2rem;

}

.featured-quote blockquote{

    font-size:1.25rem;

    font-style:italic;

    line-height:1.8;

    color:#444;

    border-left:5px solid var(--secondary);

    padding-left:1.5rem;

}

/*==================================================
COMMUNITY
==================================================*/

.community{

    margin:5rem auto;

    text-align:center;

}

.community__content{

    max-width:900px;

    margin:auto;

}

.community h2{

    color:var(--primary);

    margin-bottom:1rem;

    font-size:2rem;

}

.community p{

    margin-bottom:1.5rem;

    line-height:1.9;

}

/*==================================================
FOOTER
==================================================*/

.site-footer{

    margin-top:5rem;

    background:var(--primary);

    color:#fff;

}

.footer__top{

    text-align:center;

    padding:2rem;

}

.back-to-top{

    display:inline-flex;

    align-items:center;

    gap:.6rem;

    padding:.8rem 1.4rem;

    border-radius:999px;

    background:#fff;

    color:var(--primary);

    font-weight:700;

    transition:var(--transition);

}

.back-to-top:hover{

    background:var(--secondary);

    color:#fff;

}

.footer__content{

    padding:3rem 1rem;

    text-align:center;

}

.footer-nav{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:2rem;

    margin-bottom:2rem;

}

.footer-nav a{

    color:#fff;

}

.footer-nav a:hover{

    color:var(--accent);

}

.copyright{

    opacity:.85;

    font-size:.95rem;

}

/*==================================================
UTILITY
==================================================*/

.text-center{

    text-align:center;

}

.mt-1{margin-top:1rem;}
.mt-2{margin-top:2rem;}
.mt-3{margin-top:3rem;}

.mb-1{margin-bottom:1rem;}
.mb-2{margin-bottom:2rem;}
.mb-3{margin-bottom:3rem;}

/*==================================================
RESPONSIVE
==================================================*/

@media (max-width:992px){

.hero{

    padding:1.5rem;

}

.featured-quote{

    grid-template-columns:1fr;

    text-align:center;

}

.featured-quote blockquote{

    border-left:none;

    border-top:4px solid var(--secondary);

    padding:1.5rem 0 0;

}

}

@media (max-width:768px){

.section-title{

    font-size:1.7rem;

}

.card{

    min-height:auto;

}

.menu-toggle{

    top:1rem;

    right:1rem;

}

.sidebar{

    width:100%;

}

.footer-nav{

    flex-direction:column;

    gap:1rem;

}

}

@media (max-width:576px){

body{

    font-size:15px;

}

.hero{

    gap:1rem;

}

.social-links{

    gap:.6rem;

}

.social-link{

    width:40px;

    height:40px;

}

.event-highlight{

    font-size:1rem;

}

.card{

    padding:1.5rem;

}

.community h2{

    font-size:1.6rem;

}

.featured-quote h2{

    font-size:1.6rem;

}

}

/*==================================================
PREFERENZE UTENTE
==================================================*/

@media (prefers-reduced-motion:reduce){

*{

    animation:none !important;

    transition:none !important;

    scroll-behavior:auto !important;

}

}

/*==================================================
GRANDIDONNE 2025/2026 — integrazione su base index
Queste regole integrano la grafica storica della pagina evento
senza modificare la home: sono limitate a .room-page.
==================================================*/

.room-page{
    width:min(100% - 2rem,var(--container));
    margin:.75rem auto 0;
}

.room-content{
    width:100%;
    max-width:var(--container);
    margin-inline:auto;
    padding:2rem;
    background:var(--white);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

/* Avvicina il testo introduttivo al bordo superiore della pagina programma. */
.room-program-page .room-content{
    padding-top:.55rem;
}

.room-program-page .room-content > .room-content-intro:first-child{
    margin-top:0;
    margin-bottom:.8rem;
}

/* Titoli della pagina programma: gerarchia più compatta e leggibile. */
.room-program-page .program-title{
    margin:0 0 1rem;
    font-size:clamp(1.85rem, 4.2vw, 2.35rem);
    line-height:1.18;
    text-align:center;
}

.room-program-page .program-subtitle{
    margin:0 0 .75rem;
    font-size:clamp(1.02rem, 2.25vw, 1.18rem);
    line-height:1.38;
}

.room-program-page .program-dates{
    margin:0 0 .65rem;
    font-size:clamp(.84rem, 1.8vw, .94rem);
    line-height:1.5;
}

.room-page .quadrati_content{
    width:96%;
    margin:0 auto 1rem;
    padding:.5rem .2rem .5rem 0;
    font-family:Verdana, Geneva, sans-serif;
    font-weight:normal;
    line-height:1.65;
    font-size:1.3em;
    text-align:left;
    letter-spacing:.03em;
}

.room-page .quadrato{
    position:relative;
    width:98%;
    left:1%;
    padding:1rem;
    background:#F5F2E0;
    text-align:center;
    line-height:1.65;
    font-size:90%;
    border-radius:var(--radius);
}

.room-page h1{
    font-family:Geneva, Verdana, sans-serif;
    font-weight:normal;
    color:#4F0256;
    line-height:1.4;
    padding-top:.5rem;
    padding-bottom:0;
}

.room-page h2{
    font-family:"Lucida Grande", Geneva, sans-serif;
    font-weight:normal;
    color:#4F0256;
    text-align:center;
    line-height:1.6;
}

.room-page h3{
    width:100%;
    margin:0;
    font-family:Arial, sans-serif;
    font-weight:normal;
    color:#4F0256;
    text-align:center;
    line-height:1.8;
    letter-spacing:.05em;
}

.room-page p.testo{
    margin:.1rem 0 1.1rem;
    padding-inline:2rem;
    font-family:Avenir, "Segoe UI", Arial, sans-serif;
    font-weight:normal;
    line-height:1.7;
    font-size:1.1em;
    text-align:left;
    letter-spacing:.03em;
    color:#000;
}

.room-page p.foot,
.room-page .foot p,
.room-page .legacy-foot-content{
    font-family:Avenir, "Segoe UI", Arial, sans-serif;
    line-height:1.85;
}

.room-page .bold{ font-weight:700; }
.room-page .italic{ font-style:italic; }

.room-page a.vai,
.room-page a.vai:visited{
    color:#4F0256;
    font-weight:700;
    text-decoration:none;
}

.room-page a.vai:hover,
.room-page a.vai:focus{
    color:var(--secondary);
    text-decoration:underline;
}

.room-page img.clubhouse{
    display:inline-block;
    width:auto;
    max-width:2.5rem;
    height:auto;
    vertical-align:middle;
}

.room-page .anchor-target,
.room-page [id]{
    scroll-margin-top:2rem;
}

.room-page .footer,
.room-page .foot,
.room-page .site-footer{
    overflow-wrap:anywhere;
}

/* Mantiene il look della index ma lascia compatto il footer storico. */
.site-footer.legacy-foot-footer{
    margin-top:0;
    padding:0;
}

.legacy-foot-content{
    margin:0;
    padding:0;
}

/* Compatibilità mobile pagina GrandiDonne */
@media screen and (max-width: 48em){
    .room-page{
        width:min(100% - 1rem,var(--container));
        margin-top:.45rem;
    }

    .room-content{
        padding:1rem .75rem;
        border-radius:calc(var(--radius) * .75);
    }

    .room-program-page .room-content{
        padding-top:.4rem;
    }

    .room-program-page .room-content > .room-content-intro:first-child{
        margin-bottom:.65rem;
    }

    .room-page .quadrati_content{
        width:100%;
        font-size:1em;
        letter-spacing:.015em;
    }

    .room-page p.testo{
        padding-inline:.25rem;
        font-size:1rem;
        line-height:1.65;
        overflow-wrap:anywhere;
    }

    .room-page h1{
        font-size:clamp(1.9rem, 9vw, 2.9em) !important;
        line-height:1.2;
    }

    .room-page h2{
        font-size:clamp(1.1rem, 5vw, 1.42em) !important;
        line-height:1.35;
    }

    .room-page h3{
        font-size:1rem !important;
    }

    .room-program-page .program-title{
        margin-bottom:.8rem;
        font-size:clamp(1.65rem, 7.5vw, 2.05rem) !important;
        line-height:1.18;
    }

    .room-program-page .program-subtitle{
        margin-bottom:.6rem;
        font-size:clamp(.98rem, 4.3vw, 1.1rem) !important;
        line-height:1.35;
    }

    .room-program-page .program-dates{
        margin-bottom:.5rem;
        font-size:.86rem !important;
        line-height:1.45;
    }

    .room-page img.clubhouse{
        max-width:2.25rem;
    }

    .topbar .social-links{
        gap:.6rem;
    }

    .social-link,
    .clubhouse-link{
        width:42px;
        height:42px;
    }
}

@media (prefers-reduced-motion: reduce){
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }
}

/*==================================================
ALLINEAMENTO FOTO PAGINA GRANDIDONNE
Le ancore invisibili non occupano celle della griglia.
==================================================*/

.room-page .room-photo-grid{
    width:100%;
    max-width:980px;
    margin:1rem auto 2rem !important;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(150px, 180px));
    gap:1.25rem;
    align-items:start;
    justify-content:center;
    justify-items:center;
}

/* Gli span usati come destinazioni dei link non devono creare colonne vuote. */
.room-page .room-photo-grid > .anchor-target{
    display:none !important;
}

.room-page .room-photo-grid > a{
    display:block;
    width:100%;
    max-width:180px;
    margin:0 auto;
    justify-self:center;
    text-decoration:none;
}

.room-page .image-container{
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    margin:0 auto;
    overflow:hidden;
    border-radius:var(--radius);
    background:var(--light);
    box-shadow:var(--shadow);
}

.room-page .image-container .image,
.room-page .image-container img.image{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.room-page .image-caption{
    position:absolute;
    inset:auto 0 0 0;
    min-height:42%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.75rem .5rem;
    text-align:center;
    background:rgba(79, 2, 86, .82);
    color:#fff;
    transform:translateY(0);
}

.room-page .image-caption h2{
    margin:0 !important;
    padding:0 !important;
    color:#fff;
    font-size:clamp(.9rem, 1.8vw, 1.05rem) !important;
    line-height:1.2;
}

@media (hover:hover){
    .room-page .image-caption{
        transform:translateY(100%);
        transition:transform var(--transition);
    }

    .room-page .image-container:hover .image-caption,
    .room-page .image-container:focus-within .image-caption{
        transform:translateY(0);
    }
}

/* Da tablet in giù: esattamente due colonne, entrambe centrate. */
@media screen and (max-width:64em){
    .room-page .room-photo-grid{
        max-width:400px;
        grid-template-columns:repeat(2, minmax(0, 180px));
        gap:1rem;
        padding-inline:.5rem;
    }
}

@media screen and (max-width:48em){
    .room-page .room-photo-grid{
        max-width:350px;
        grid-template-columns:repeat(2, minmax(0, 160px));
        gap:.8rem;
    }

    .room-page .room-photo-grid > a{
        max-width:160px;
    }

    .room-page .image-caption{
        min-height:38%;
        padding:.55rem .35rem;
    }

    .room-page .image-caption h2{
        font-size:clamp(.76rem, 3.4vw, .94rem) !important;
        line-height:1.15;
    }
}

@media screen and (max-width:28em){
    .room-page .room-photo-grid{
        max-width:310px;
        grid-template-columns:repeat(2, minmax(0, 145px));
        gap:.55rem;
        padding-inline:0;
    }

    .room-page .room-photo-grid > a{
        max-width:145px;
    }
}

/* Solo su schermi estremamente stretti passa a una colonna, sempre centrata. */
@media screen and (max-width:19em){
    .room-page .room-photo-grid{
        max-width:145px;
        grid-template-columns:minmax(0, 145px);
        justify-content:center;
    }

    .room-page .room-photo-grid > a{
        width:145px;
        max-width:100%;
        justify-self:center;
    }
}

/*==================================================
SOCIAL NEL FOOTER PAGINA GRANDIDONNE
Regole limitate alla pagina GrandiDonne.
==================================================*/

.room-page + .site-footer.foot .footer-social,
.site-footer.foot .footer-social{
    width:100%;
    margin:0 auto 1rem;
    padding:1rem;
    background:var(--primary);
    border-radius:var(--radius);
}

.site-footer.foot .footer-social-links{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:.75rem;
    margin:0;
    padding:0;
    list-style:none;
}

.site-footer.foot .footer-social-links a{
    width:44px;
    height:44px;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:50%;
    color:var(--white);
    background:rgba(255,255,255,.12);
    text-decoration:none;
}

.site-footer.foot .footer-social-links a:hover,
.site-footer.foot .footer-social-links a:focus{
    background:var(--secondary);
    color:var(--white);
    transform:translateY(-2px);
}

.site-footer.foot .footer-social-links .clubhouse-link{
    background:#fff;
    overflow:hidden;
}

.site-footer.foot .footer-social-links .clubhouse-link img{
    width:26px;
    height:26px;
    object-fit:contain;
}

.site-footer.foot .footer-social-links .sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

@media screen and (max-width:48em){
    .site-footer.foot .footer-social{
        padding:.75rem;
        border-radius:calc(var(--radius) * .75);
    }

    .site-footer.foot .footer-social-links{
        gap:.55rem;
    }

    .site-footer.foot .footer-social-links a{
        width:40px;
        height:40px;
    }
}

/*==================================================
ELEMENTI I-SOCIAL-DONNA E COPY NEL FOOTER
Regole limitate agli elementi spostati nel footer.
==================================================*/

.site-footer.foot .footer-social-copy{
    width:100%;
    margin:0 auto 1rem;
    padding:1rem 0;
    text-align:center;
}

.site-footer.foot .footer-i-social-donna-links{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:.35rem;
    margin:0 0 .75rem;
}

.site-footer.foot .i-social-donna{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.5rem;
    height:2.5rem;
    border-radius:50%;
    color:var(--primary);
    background:rgba(90,26,85,.08);
    text-decoration:none;
    transition:var(--transition);
}

.site-footer.foot .i-social-donna:hover,
.site-footer.foot .i-social-donna:focus{
    color:var(--white);
    background:var(--primary);
    transform:translateY(-2px);
}

.site-footer.foot .copy{
    margin:.5rem auto 0;
    padding:0;
    text-align:center;
    line-height:1.7;
}

.site-footer.foot .copy a{
    font-weight:700;
}

@media screen and (max-width:48em){
    .site-footer.foot .footer-social-copy{
        padding:.75rem .25rem;
    }

    .site-footer.foot .i-social-donna{
        width:2.25rem;
        height:2.25rem;
    }
}

/*==================================================
SOLO I-SOCIAL-DONNA E COPY NEL FOOTER
.room-foot-content resta sotto .room-content.
==================================================*/

.room-content .room-foot-content{
    width:100%;
    margin:1.5rem auto 0;
    padding-top:1rem;
    text-align:center;
}

.room-content .room-foot-content .foot{
    width:100%;
    margin:0 auto;
    text-align:center;
}

.room-content .room-foot-content p.foot{
    padding:.5rem 1rem 0;
    line-height:1.75;
}

.site-footer{
    width:min(100% - 2rem,var(--container));
    margin:1.5rem auto 2rem;
}

.site-footer .footer-social-copy{
    width:100%;
    margin:0 auto;
    padding:1rem;
    text-align:center;
    background:var(--white);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

.site-footer .footer-i-social-donna-links{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:.35rem;
    margin:0 0 .75rem;
}

.site-footer .i-social-donna{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.5rem;
    height:2.5rem;
    border-radius:50%;
    color:var(--primary);
    background:rgba(90,26,85,.08);
    text-decoration:none;
    transition:var(--transition);
}

.site-footer .i-social-donna:hover,
.site-footer .i-social-donna:focus{
    color:var(--white);
    background:var(--primary);
    transform:translateY(-2px);
}

.site-footer .copy{
    margin:.5rem auto 0;
    padding:0;
    line-height:1.7;
    text-align:center;
}

@media screen and (max-width:48em){
    .room-content .room-foot-content{
        margin-top:1rem;
        padding-top:.75rem;
    }

    .room-content .room-foot-content p.foot{
        padding-inline:.25rem;
        overflow-wrap:anywhere;
    }

    .site-footer{
        width:min(100% - 1rem,var(--container));
        margin-top:1rem;
    }

    .site-footer .footer-social-copy{
        padding:.75rem .25rem;
    }

    .site-footer .i-social-donna{
        width:2.25rem;
        height:2.25rem;
    }
}

/*==================================================
FOOTER BIANCO E TORNA ALL'INIZIO CENTRATO
Regole limitate alla pagina GrandiDonne.
==================================================*/

.room-program-page .site-footer,
.room-program-page footer.footer-white{
    background:#fff;
}

.room-program-page .site-footer.footer-white{
    width:min(100% - 2rem,var(--container));
    margin:1.5rem auto 2rem;
    padding:1rem;
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}

.room-program-page .legacy-foot-top,
.room-program-page .legacy-foot-top-centered{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    margin:0 auto;
}

.room-program-page .legacy-foot-top .back-to-top{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    margin:0 auto;
    text-align:center;
}



@media screen and (max-width:48em){
    .room-program-page .site-footer.footer-white{
        width:min(100% - 1rem,var(--container));
        margin-top:1rem;
        padding:.75rem;
    }
}

/*==================================================
HERO IMAGE GRANDIDONNE REMOTA
==================================================*/

.room-program-page .hero__image img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
}

/*==================================================
INDEX ROOM-FOOT-CONTENT COME GRANDIDONNE
La home usa lo stesso stile di .room-content .room-foot-content
già applicato in gd_room_2025_2026.
==================================================*/

/* Host neutro nella index: non aggiunge card, ombra o fondo diverso. */
.index-room-foot-source.room-foot-index-host,
.atlante-room-foot-source.room-foot-index-host{
    width:min(100% - 2rem,var(--container));
    margin:1.5rem auto 0;
    padding:0;
    background:transparent;
    border-radius:0;
    box-shadow:none;
    text-align:center;
}

/* Stile condiviso con la pagina GrandiDonne. */
.room-content .room-foot-content,
.index-room-foot-source .room-foot-content,
.atlante-room-foot-source .room-foot-content{
    width:100%;
    margin:1.5rem auto 0;
    padding-top:1rem;
    text-align:center;
}

.room-content .room-foot-content .foot,
.index-room-foot-source .room-foot-content .foot,
.atlante-room-foot-source .room-foot-content .foot{
    width:100%;
    margin:0 auto;
    text-align:center;
}

.room-content .room-foot-content p.foot,
.index-room-foot-source .room-foot-content p.foot,
.atlante-room-foot-source .room-foot-content p.foot{
    padding:.5rem 1rem 0;
    line-height:1.75;
}

.room-content .room-foot-content .social,
.index-room-foot-source .room-foot-content .social,
.atlante-room-foot-source .room-foot-content .social{
    margin:.75rem auto 0;
    text-align:center;
}

.room-content .room-foot-content .i-social-donna,
.index-room-foot-source .room-foot-content .i-social-donna,
.atlante-room-foot-source .room-foot-content .i-social-donna{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.5rem;
    height:2.5rem;
    margin:.2rem;
    border-radius:50%;
    color:var(--primary);
    background:rgba(90,26,85,.08);
    text-decoration:none;
    transition:var(--transition);
}

.room-content .room-foot-content .i-social-donna:hover,
.room-content .room-foot-content .i-social-donna:focus,
.index-room-foot-source .room-foot-content .i-social-donna:hover,
.index-room-foot-source .room-foot-content .i-social-donna:focus,
.atlante-room-foot-source .room-foot-content .i-social-donna:hover,
.atlante-room-foot-source .room-foot-content .i-social-donna:focus{
    color:var(--white);
    background:var(--primary);
    transform:translateY(-2px);
}

.room-content .room-foot-content .copy,
.index-room-foot-source .room-foot-content .copy,
.atlante-room-foot-source .room-foot-content .copy{
    margin:.75rem auto 0;
    padding:0;
    line-height:1.7;
    text-align:center;
}

/* Mantiene il footer copiato bianco e il torna-su centrato. */
.site-footer.footer-white,
.site-footer.legacy-foot-footer,
footer.footer-white.legacy-foot-footer.site-footer{
    background:#fff;
}

.site-footer.footer-white .legacy-foot-top,
.site-footer.legacy-foot-footer .legacy-foot-top,
.site-footer .legacy-foot-top-centered{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    margin:0 auto;
}

.site-footer.footer-white .legacy-foot-top .back-to-top,
.site-footer.legacy-foot-footer .legacy-foot-top .back-to-top{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    margin:0 auto;
    text-align:center;
}

@media screen and (max-width:48em){
    .index-room-foot-source.room-foot-index-host,
.atlante-room-foot-source.room-foot-index-host{
        width:min(100% - 1rem,var(--container));
    }

    .room-content .room-foot-content,
    .index-room-foot-source .room-foot-content,
.atlante-room-foot-source .room-foot-content{
        margin-top:1rem;
        padding-top:.75rem;
    }

    .room-content .room-foot-content p.foot,
    .index-room-foot-source .room-foot-content p.foot,
.atlante-room-foot-source .room-foot-content p.foot{
        padding-inline:.25rem;
        overflow-wrap:anywhere;
    }

    .room-content .room-foot-content .i-social-donna,
    .index-room-foot-source .room-foot-content .i-social-donna,
.atlante-room-foot-source .room-foot-content .i-social-donna{
        width:2.25rem;
        height:2.25rem;
    }
}

/*==================================================
TOPBAR INDEX SU GRANDIDONNE
Compatibilità minima: gd_room_2025_2026 usa la stessa topbar della index.
==================================================*/

.room-program-page .topbar .social-links{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
}

/*==================================================
HOME LINK DA SOCIALSU NELLA TOPBAR GD
==================================================*/

.room-program-page .topbar .home-link{
    display:flex;
    align-items:center;
    justify-content:center;
}

/*==================================================
CINESCIENZA CSS JS CORREZIONE FINALE
gd_room_2026_04_22_cinescienza_donne.html
==================================================*/

.room-event-page .hero__image img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
}

.room-event-page .event-room-content{
    width:100%;
    max-width:var(--container);
    margin-inline:auto;
}

/* .room-photo-grid deve stare solo sul gruppo reale delle foto, non su .corpo. */
.room-event-page .corpo{
    display:block;
}

.room-event-page .corpo.room-photo-grid{
    display:block;
}

.room-event-page .event-room-content .room-photo-grid:not(.corpo){
    width:100%;
    max-width:980px;
    margin:1rem auto 2rem !important;
    padding:0;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(150px, 180px));
    gap:1.25rem;
    align-items:start;
    justify-content:center;
    justify-items:center;
}

/* Le ancore invisibili non devono occupare celle della griglia. */
.room-event-page .event-room-content .room-photo-grid:not(.corpo) > .anchor-target{
    display:none !important;
}

.room-event-page .event-room-content .room-photo-grid:not(.corpo) > a{
    display:block;
    width:100%;
    max-width:180px;
    margin:0 auto;
    justify-self:center;
    text-decoration:none;
}

.room-event-page .image-container{
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    margin:0 auto;
    overflow:hidden;
    border-radius:var(--radius);
    background:var(--light);
    box-shadow:var(--shadow);
}

.room-event-page .image-container .image,
.room-event-page .image-container img.image{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center;
}

.room-event-page .image-caption{
    position:absolute;
    inset:auto 0 0 0;
    min-height:42%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.75rem .5rem;
    text-align:center;
    background:rgba(79, 2, 86, .82);
    color:#fff;
    transform:translateY(0);
}

.room-event-page .image-caption h2{
    margin:0 !important;
    padding:0 !important;
    color:#fff;
    font-size:clamp(.9rem, 1.8vw, 1.05rem) !important;
    line-height:1.2;
}

.room-event-page .room-foot-content{
    width:100%;
    margin:1.5rem auto 0;
    padding-top:1rem;
    text-align:center;
}

.room-event-page .room-foot-content .foot{
    width:100%;
    margin:0 auto;
    text-align:center;
}

.room-event-page .room-foot-content p.foot{
    padding:.5rem 1rem 0;
    line-height:1.75;
}

@media (hover:hover){
    .room-event-page .image-caption{
        transform:translateY(100%);
        transition:transform var(--transition);
    }

    .room-event-page .image-container:hover .image-caption,
    .room-event-page .image-container:focus-within .image-caption{
        transform:translateY(0);
    }
}

/* Da tablet in giù: due colonne centrate, come nella pagina programma. */
@media screen and (max-width:64em){
    .room-event-page .event-room-content .room-photo-grid:not(.corpo){
        max-width:400px;
        grid-template-columns:repeat(2, minmax(0, 180px));
        gap:1rem;
        padding-inline:.5rem;
    }
}

@media screen and (max-width:48em){
    .room-event-page .event-room-content .room-photo-grid:not(.corpo){
        max-width:350px;
        grid-template-columns:repeat(2, minmax(0, 160px));
        gap:.8rem;
    }

    .room-event-page .event-room-content .room-photo-grid:not(.corpo) > a{
        max-width:160px;
    }

    .room-event-page .image-caption{
        min-height:38%;
        padding:.55rem .35rem;
    }

    .room-event-page .image-caption h2{
        font-size:clamp(.76rem, 3.4vw, .94rem) !important;
        line-height:1.15;
    }

    .room-event-page .room-foot-content p.foot{
        padding-inline:.25rem;
        overflow-wrap:anywhere;
    }
}

@media screen and (max-width:28em){
    .room-event-page .event-room-content .room-photo-grid:not(.corpo){
        max-width:310px;
        grid-template-columns:repeat(2, minmax(0, 145px));
        gap:.55rem;
        padding-inline:0;
    }

    .room-event-page .event-room-content .room-photo-grid:not(.corpo) > a{
        max-width:145px;
    }
}

/* Solo su schermi estremamente stretti: una colonna, sempre centrata. */
@media screen and (max-width:19em){
    .room-event-page .event-room-content .room-photo-grid:not(.corpo){
        max-width:145px;
        grid-template-columns:minmax(0, 145px);
        justify-content:center;
    }

    .room-event-page .event-room-content .room-photo-grid:not(.corpo) > a{
        width:145px;
        max-width:100%;
        justify-self:center;
    }
}

/*==================================================
CINESCIENZA TITOLI H1 H2
Evita la sovrapposizione tra "Cinegender" e "donne e scienza".
==================================================*/

.room-event-page .event-room-content .quadrati_content > h1{
    margin:0 0 .55rem !important;
    padding:0;
    line-height:1.15;
    font-size:clamp(2rem, 5vw, 2.9rem);
    text-align:center;
}

.room-event-page .event-room-content .quadrati_content > h1 + h2{
    margin:0 0 .6rem !important;
    padding:0;
    line-height:1.25;
    font-size:clamp(1.25rem, 3vw, 1.55rem);
    text-align:center;
}

.room-event-page .event-room-content .quadrati_content > h2 + h3{
    margin:.25rem 0 1rem !important;
    line-height:1.35;
    text-align:center;
}

@media screen and (max-width:48em){
    .room-event-page .event-room-content .quadrati_content > h1{
        margin-bottom:.5rem !important;
        line-height:1.18;
    }

    .room-event-page .event-room-content .quadrati_content > h1 + h2{
        margin-bottom:.55rem !important;
        line-height:1.3;
    }
}

/* Viaggianti: usa lo stesso room-foot-content della home/index. */
.viaggianti-page .room-foot-content{
    width:100%;
    margin:1.5rem auto 0;
    padding-top:1rem;
    text-align:center;
}

.viaggianti-page .room-foot-content .foot{
    width:100%;
    margin:0 auto;
    text-align:center;
    background:none;
}

.viaggianti-page .room-foot-content p.foot{
    margin:0;
    padding:.5rem 1rem 0;
    font-family:Avenir, "Segoe UI", Arial, sans-serif;
    line-height:1.75;
    text-align:center;
    color:inherit;
}

.viaggianti-page .room-foot-content .social{
    margin:.75rem auto 0;
    padding:0;
    text-align:center;
}

.viaggianti-page .room-foot-content .i-social-donna{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:2.5rem;
    height:2.5rem;
    margin:.2rem;
    border-radius:50%;
    color:var(--primary);
    background:rgba(90,26,85,.08);
    text-decoration:none;
    transition:var(--transition);
}

.viaggianti-page .room-foot-content .i-social-donna:hover,
.viaggianti-page .room-foot-content .i-social-donna:focus{
    color:var(--white);
    background:var(--primary);
    transform:translateY(-2px);
}

.viaggianti-page .room-foot-content .copy{
    margin:.75rem auto 0;
    padding:0;
    line-height:1.7;
    text-align:center;
    color:inherit;
}

.viaggianti-page .room-foot-content .copy a{
    color:var(--primary);
    text-decoration:none;
}

.viaggianti-page .room-foot-content .copy a:hover,
.viaggianti-page .room-foot-content .copy a:focus{
    text-decoration:underline;
}

/* PROGRAMMA 2026-2027: biografie in card, coerenti con viaggianti_bio */
.room-program-page .program-bio-grid {
    margin: 2rem 0 2.5rem;
}
.room-program-page .program-bio-entry {
    scroll-margin-top: 6rem;
    min-height: 0;
}
.room-program-page .program-bio-entry h3 a {
    text-decoration: none;
}
.room-program-page .program-bio-entry > p {
    margin: 0;
}
.room-program-page .program-bio-entry .vai,
.room-program-page .program-bio-entry .vaisu {
    margin-left: .25rem;
}
.room-program-page .program-bio-entry.bio-entry-active {
    outline: 3px solid rgba(79, 2, 86, .28);
    outline-offset: .35rem;
}

/* PROGRAMMA 2026-2027: testo card ridotto */
.room-program-page .program-bio-entry > p {
    font-size: 0.9rem;
    line-height: 1.55;
}
.room-program-page .program-bio-entry h3 {
    font-size: 1.05rem;
    line-height: 1.3;
}
@media (max-width: 640px) {
    .room-program-page .program-bio-entry > p {
        font-size: 0.88rem;
    }
    .room-program-page .program-bio-entry h3 {
        font-size: 1rem;
    }
}

/* TOPBAR: durante hover le icone dei social-link restano bianche.
   Clubhouse escluso: mantiene il proprio comportamento grafico. */
.topbar .social-link:hover,
.topbar .social-link:focus-visible {
    color: var(--white);
}

.topbar .social-link:hover i,
.topbar .social-link:focus-visible i {
    color: var(--white);
}

/* ==================================================
   FEATURED QUOTE: autore a sinistra, separatore grafico,
   larghezza massima sincronizzata con la topbar.
   ================================================== */
.featured-quote {
    display: block;
    width: min(100%, var(--featured-quote-max-width, var(--container)));
    max-width: var(--featured-quote-max-width, var(--container));
    margin: 5rem auto;
    padding: 2rem;
    text-align: left;
}

.featured-quote__content {
    display: grid;
    grid-template-columns:
        minmax(150px, 0.30fr)
        6px
        minmax(0, 1fr);
    column-gap: 2rem;
    align-items: center;
    width: 100%;
}

.featured-quote__content::before {
    content: "";
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
    width: 6px;
    min-height: 100%;
    border-radius: 999px;
    background: var(--secondary);
    box-shadow: 0 4px 12px rgba(90, 26, 85, .12);
}

.featured-quote__author {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    text-align: right;
    color: var(--primary);
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.35;
}

.featured-quote__author cite {
    font-style: italic;
}

.featured-quote blockquote {
    grid-column: 3;
    grid-row: 1;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 1.25rem;
    font-style: italic;
    line-height: 1.8;
    color: #444;
}

@media (max-width: 720px) {
    .featured-quote {
        padding: 1.5rem;
    }

    .featured-quote__content {
        grid-template-columns: 1fr;
        grid-template-rows: auto 5px auto;
        row-gap: 1.25rem;
    }

    .featured-quote__content::before {
        grid-column: 1;
        grid-row: 2;
        width: 100%;
        min-height: 5px;
        height: 5px;
    }

    .featured-quote__author {
        grid-column: 1;
        grid-row: 1;
        text-align: left;
    }

    .featured-quote blockquote {
        grid-column: 1;
        grid-row: 3;
    }
}

/* ==================================================
   INDEX FOOTER = PROGRAMMA2627
   Stessa gerarchia: .room-page > .room-content > .room-foot-content.
   Regole limitate esclusivamente al nuovo host del footer della index.
   ================================================== */
.room-foot-program-host {
    margin-top: 1.5rem;
    margin-bottom: 0;
}

.room-foot-program-host .room-content {
    width: 100%;
    max-width: var(--container);
    margin-inline: auto;
}

.room-foot-program-host .room-foot-content {
    width: 100%;
}

/* ==================================================
   PROGRAMMA2627 - ENTI FONDATORI COME LEGACY FOOT TOP
   Modifica limitata al solo richiamo #entiemedia.
   ================================================== */
.room-program-page .room-content > .program-entiemedia-top {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin: 0 auto .8rem;
}

.room-program-page .program-entiemedia-top .program-entiemedia-label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: .45rem;
    width: auto;
    max-width: 100%;
    margin: 0;
    padding: .8rem 1.4rem;
    border-radius: 999px;
    background: #fff;
    color: var(--primary);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    box-shadow: var(--shadow);
}

.room-program-page .program-entiemedia-top .program-entiemedia-label > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    font-size: 1em !important;
}

.room-program-page .program-entiemedia-top a[href="#entiemedia"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .4rem .65rem;
    border-radius: 999px;
    color: var(--primary);
    transition: var(--transition);
}

.room-program-page .program-entiemedia-top a[href="#entiemedia"]:hover,
.room-program-page .program-entiemedia-top a[href="#entiemedia"]:focus-visible {
    background: var(--secondary);
    color: #fff;
}

@media screen and (max-width: 48em) {
    .room-program-page .program-entiemedia-top .program-entiemedia-label {
        padding: .7rem 1rem;
        font-size: .95rem;
        flex-wrap: wrap;
    }
}

/* ==================================================
   PROGRAMMA2627 - HOVER ENTI/MEDIA SU TUTTO IL TESTO
   Passando sul testo del richiamo si attiva lo stesso
   effetto visivo del link #entiemedia.
   ================================================== */
.room-program-page .program-entiemedia-top .program-entiemedia-label:hover a[href="#entiemedia"],
.room-program-page .program-entiemedia-top .program-entiemedia-label.entiemedia-hover a[href="#entiemedia"],
.room-program-page .program-entiemedia-top .program-entiemedia-label:focus-within a[href="#entiemedia"] {
    background: var(--secondary);
    color: #fff;
}

/* ==================================================
   PROGRAMMA2627 - SOCIAL BIO CENTRATE E COMPATTE
   Neutralizza gli NBSP tra i link e mantiene tutte
   le icone centrate e visibili anche nelle 3 colonne.
   ================================================== */
.room-program-page .program-bio-entry .social_bio {
    --social-bio-size: 2rem;
    --social-bio-gap: .22rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: var(--social-bio-gap);
    width: 100%;
    max-width: 100%;
    margin: .75rem auto 0;
    padding: 0;
    overflow: visible;

    /* Gli &nbsp; presenti nell'HTML non devono creare
       elementi anonimi flex e distanziare il mailto. */
    font-size: 0;
    line-height: 0;
    white-space: nowrap;
}

.room-program-page .program-bio-entry .social_bio .i-social-donna-bio {
    flex: 0 0 var(--social-bio-size);
    width: var(--social-bio-size);
    height: var(--social-bio-size);
    min-width: 0;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: calc(var(--social-bio-size) * .5);
    line-height: 1;
}

.room-program-page .program-bio-entry .social_bio .i-social-donna-bio em {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 1em;
    line-height: 1;
}

@media (max-width: 48em) {
    .room-program-page .program-bio-entry .social_bio {
        --social-bio-size: 1.85rem;
        --social-bio-gap: .18rem;
    }
}

@media (max-width: 30em) {
    .room-program-page .program-bio-entry .social_bio {
        --social-bio-size: 1.65rem;
        --social-bio-gap: .14rem;
    }
}

/* ==================================================
   PROGRAMMA2627 - LINK VAI A DESTRA DEL NOME NELLE CARD
   Solo layout grafico, HTML invariato.
   ================================================== */
.room-program-page .program-bio-entry {
    position: relative;
}

/* Riserva spazio a destra del titolo per l'icona/link. */
.room-program-page .program-bio-entry > h3 {
    padding-right: 2rem;
}

/* Card in cui il link "vai" è nel testo della biografia:
   lo porta visivamente sulla stessa riga del titolo, a destra. */
.room-program-page .program-bio-entry > p > a.vai[href^="#"] {
    position: absolute;
    top: 2rem;
    right: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    line-height: 1;
    z-index: 2;
}

/* Card Sonia R. Marino: il link contiene già h3 + icona.
   Mantiene il nome a sinistra e spinge l'icona a destra. */
.room-program-page .program-bio-entry > a.vai[href^="#"] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    width: 100%;
    margin: 0 0 1rem;
    padding: 0;
}

.room-program-page .program-bio-entry > a.vai[href^="#"] h3 {
    margin: 0;
    flex: 1 1 auto;
}

.room-program-page .program-bio-entry > a.vai[href^="#"] i {
    flex: 0 0 auto;
    margin-left: auto;
}

/* Riduce coerentemente le distanze nelle card più strette. */
@media (max-width: 48em) {
    .room-program-page .program-bio-entry > h3 {
        padding-right: 1.75rem;
    }

    .room-program-page .program-bio-entry > p > a.vai[href^="#"] {
        top: 1.5rem;
        right: 1.5rem;
    }
}

/* ==================================================
   PROGRAMMA2627 - SONIA H3 COME MAURIZIO
   Uniforma solo il nome Sonia R. Marino al titolo
   standard delle altre card.
   ================================================== */
.room-program-page .program-bio-entry > a.vai[href="#soniam"] h3 {
    margin: 0;
    padding: 0;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--primary);
    text-decoration: none;
}

.room-program-page .program-bio-entry > a.vai[href="#soniam"] {
    color: var(--primary);
    text-decoration: none;
}

.room-program-page .program-bio-entry > a.vai[href="#soniam"]:hover h3,
.room-program-page .program-bio-entry > a.vai[href="#soniam"]:focus-visible h3 {
    color: var(--secondary);
}

/* ==================================================
   PROGRAMMA2627 - H3 UNIFORMI E SONIA ALLINEATA A SINISTRA
   ================================================== */

/* Tutti i nomi delle card usano la stessa dimensione di Sonia. */
.room-program-page .program-bio-entry h3 {
    font-size: 1.35rem;
}

/* Sonia: nome allineato a sinistra rispetto alla card. */
.room-program-page .program-bio-entry > a.vai[href="#soniam"] {
    justify-content: flex-start;
}

.room-program-page .program-bio-entry > a.vai[href="#soniam"] h3 {
    flex: 1 1 auto;
    margin: 0;
    padding: 0;
    text-align: left;
}

/* L'icona del link resta sulla destra della riga. */
.room-program-page .program-bio-entry > a.vai[href="#soniam"] i {
    margin-left: auto;
}

/* ==================================================
   PROGRAMMA2627 - FA-ANGLE-DOUBLE-UP ALLINEATE AGLI H3
   Dimensione base 1.2rem, riducibile nelle card strette.
   ================================================== */
.room-program-page .program-bio-entry {
    --card-up-icon-size: 1.2rem;
}

/* Titolo e icona restano sulla stessa riga. */
.room-program-page .program-bio-entry > h3,
.room-program-page .program-bio-entry > a.vai[href^="#"] {
    min-width: 0;
}

/* Card standard: link "vai" posizionato a destra del titolo. */
.room-program-page .program-bio-entry > p > a.vai[href^="#"] {
    top: 2rem;
    right: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--card-up-icon-size);
    height: var(--card-up-icon-size);
    line-height: 1;
}

/* Card Sonia: h3 e icona nello stesso link flex. */
.room-program-page .program-bio-entry > a.vai[href^="#"] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    width: 100%;
}

.room-program-page .program-bio-entry > a.vai[href^="#"] h3 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.room-program-page .program-bio-entry .fa-angle-double-up {
    flex: 0 0 auto;
    width: var(--card-up-icon-size);
    min-width: var(--card-up-icon-size);
    font-size: var(--card-up-icon-size) !important;
    line-height: 1;
    text-align: center;
    vertical-align: middle;
}

/* Mantiene lo spazio del titolo coerente con la dimensione dinamica dell'icona. */
.room-program-page .program-bio-entry > h3 {
    padding-right: calc(var(--card-up-icon-size) + .75rem);
}

@media (max-width: 48em) {
    .room-program-page .program-bio-entry > p > a.vai[href^="#"] {
        top: 1.5rem;
        right: 1.5rem;
    }
}
