


/* STILI GENERALI PER TUTTE LE NUOVE PAGINE SEZIONI */
.npg-sezione {
    font-family: 'Open Sans', sans-serif;
    line-height: 1.6;
    color: #333;
}
.npg-sezione h1, .npg-sezione h2 { font-family: 'Raleway', sans-serif; }




/* STILI SPECIFICI PER QUESTA PAGINA: CENTRO-REDAZIONE */
.npg-centro {
    --colore-accento: #5ab1bb; /* Petrolio */
    --colore-titolo: #eab676;  /* Oro */
}

.npg-centro .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/_chi-siamo.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    border-bottom: 5px solid var(--colore-accento);
    margin-bottom: 30px;
}

.npg-centro .hero-content {
    text-align: center; color: white; padding: 20px;
    background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(3px);
    border-radius: 15px; max-width: 85%;
}

.npg-centro .hero-content h1 { 
    font-size: 2.2rem; text-transform: uppercase; margin: 0; 
    color: var(--colore-titolo);
}

.npg-centro .intro-text { 
    padding: 30px; border-radius: 12px; text-align: center; 
    margin-bottom: 40px; border-bottom: 4px solid var(--colore-accento);
    background: #fff; box-shadow: 0 5px 20px rgba(0,0,0,0.05);
}

.npg-centro .identity-grid { 
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; 
}

.npg-centro .identity-card { 
    position: relative; height: 400px; border-radius: 15px; overflow: hidden; 
    display: flex; align-items: flex-end; text-decoration: none;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1); transition: 0.4s;
}

.npg-centro .identity-card:hover { transform: translateY(-5px); }

.npg-centro .card-img { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
    z-index: 1; background-size: cover; background-position: center; transition: 0.6s;
}

.npg-centro .card-overlay { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
    z-index: 2; background: linear-gradient(transparent 30%, rgba(0,0,0,0.8) 90%); 
}

.npg-centro .card-content { position: relative; z-index: 3; padding: 25px; color: white; }

.npg-centro .card-content h2 { font-size: 1.5rem; margin: 0 0 10px; color: var(--colore-titolo); }

.npg-centro .card-btn { 
    display: inline-block; padding: 8px 20px; border: 2px solid var(--colore-titolo); 
    border-radius: 30px; font-size: 0.8rem; font-weight: bold; color: var(--colore-titolo); 
}



/* STILI SPECIFICI PER: ANNATE NPG */
.npg-annate {
    --primary-color: #ff4c36; 
    --primary-light: #fff1ef;
    --dark-accent: #2c3e50;
}

/* HERO */
.npg-annate .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/annate-npg.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
}
.npg-annate .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.3); backdrop-filter: blur(3px); border-radius: 10px;
}
.npg-annate .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; }

/* INTRO */
.npg-annate .intro-box { 
    background: white; padding: 35px; border-radius: 20px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 900px;
}
.npg-annate .intro-box h2 { margin-top: 0; color: var(--dark-accent); font-family: 'Raleway', sans-serif; font-weight: bold; }

/* SEARCH */
.npg-annate .search-container { max-width: 400px; margin: 30px auto; text-align: center; position: sticky; top: 20px; z-index: 100; }
.npg-annate #yearSearch { 
    width: 100%; padding: 15px 25px; border-radius: 40px; 
    border: 2px solid #e2e8f0; font-size: 1.1rem; outline: none; transition: 0.3s;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}
.npg-annate #yearSearch:focus { border-color: var(--primary-color); }

/* TIMELINE */
.npg-annate .timeline-container { position: relative; max-width: 1100px; margin: 40px auto; padding: 40px 0; }
.npg-annate .timeline-container::after { content: ''; position: absolute; width: 6px; background: var(--primary-color); top: 0; bottom: 0; left: 50%; margin-left: -3px; border-radius: 10px; opacity: 0.2; }

.npg-annate .timeline-item { padding: 20px 90px; position: relative; width: 50%; box-sizing: border-box; margin-bottom: 50px; }
.npg-annate .timeline-item::after { 
    content: ''; position: absolute; width: 100px; height: 100px; right: -50px; 
    background-color: #fff; border: 5px solid var(--primary-color); top: 20px; 
    border-radius: 50%; z-index: 2; background-size: cover; background-position: center; 
    box-shadow: 0 5px 15px rgba(0,0,0,0.1); 
}
.npg-annate .right { left: 50%; text-align: left; }
.npg-annate .left { left: 0; text-align: right; }
.npg-annate .right::after { left: -50px; }

.npg-annate .content { background: #fff; border-radius: 20px; padding: 25px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); border-top: 6px solid var(--dark-accent); }
.npg-annate .decennio-titolo { font-family: 'Raleway', sans-serif; font-size: 1.6rem; color: var(--dark-accent); margin-bottom: 15px; font-weight: 800; }

/* ANNI GRID */
.npg-annate .anni-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 10px; }
.npg-annate .anno-link { 
    display: block; padding: 8px 5px; background: #f8f9fa; text-decoration: none; 
    color: #444; font-size: 0.9rem; font-weight: bold; text-align: center; 
    border-radius: 6px; border: 1px solid #eee; transition: 0.3s;
}
.npg-annate .anno-link:hover { background: var(--primary-light); color: var(--primary-color); border-color: var(--primary-color); transform: scale(1.1); }

/* RICERCA HIGHLIGHT */
.npg-annate .searching .anno-link:not(.highlight) { opacity: 0.2; filter: grayscale(1); }
.npg-annate .highlight { background-color: var(--primary-color) !important; color: white !important; transform: scale(1.2); }

/* IMMAGINI TIMELINE */
.npg-annate .item-2020::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/2021-2026.jpeg'); }
.npg-annate .item-2010::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/2011-2020.jpeg'); }
.npg-annate .item-2000::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/2001-2010.jpeg'); }
.npg-annate .item-1990::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/1991-2000.jpeg'); }
.npg-annate .item-1980::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/1981-1990.jpeg'); }
.npg-annate .item-origini::after { background-image: url('https://www.notedipastoralegiovanile.it/imgs/1967-1980.jpeg'); }

@media (max-width: 850px) {
    .npg-annate .timeline-container::after { left: 20px; }
    .npg-annate .timeline-item { width: 100%; padding-left: 60px; padding-right: 10px; text-align: left; }
    .npg-annate .timeline-item::after { width: 60px; height: 60px; left: -10px !important; top: 20px; }
}



/* STILI SPECIFICI PER: SEZIONE FREE / RACCONTARE */
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');

.npg-free {
    --primary-green: #2d5a27;
    --accent-green: #599d23;
    --bg-light: #f9f7f2;
}

/* Hero Section */
.npg-free .hero-header {
    height: 60vh;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), 
                url('https://www.notedipastoralegiovanile.it/imgs/raccontare-1.jpg');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    text-align: center; color: #fff;
}

.npg-free .hero-content h1 {
    font-family: 'Raleway', sans-serif;
    font-size: 3.5rem; line-height: 1.1; margin-bottom: 10px;
}

.npg-free .hero-content p {
    font-size: 1.2rem; text-transform: uppercase; letter-spacing: 3px; font-weight: 300;
}

/* Sezioni Divider */
.npg-free .section-divider {
    height: 300px; background-size: cover; background-position: center;
    background-attachment: fixed; /* Effetto parallax */
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; text-align: center; color: #fff; padding: 0 20px;
    margin-top: 40px;
}

.npg-free .raccontare-header {
    background: linear-gradient(rgba(45, 90, 39, 0.7), rgba(45, 90, 39, 0.7)), 
                url('https://www.notedipastoralegiovanile.it/imgs/raccontare-2.jpg');
}

.npg-free .percorrere-header {
    background: linear-gradient(rgba(89, 157, 35, 0.7), rgba(89, 157, 35, 0.7)), 
                url('https://www.notedipastoralegiovanile.it/imgs/raccontare-3.jpg');
}

.npg-free .section-divider h2 {
    font-family: 'Raleway', sans-serif; font-size: 2.5rem; margin: 0;
}

/* Grid Layout */
.npg-free .link-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 25px; max-width: 1200px; margin: -40px auto 60px; padding: 0 20px;
    position: relative; z-index: 10;
}

/* Card Articoli */
.npg-free .card {
    background: #fff; padding: 30px 20px; border-radius: 12px;
    text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    transition: 0.3s; text-decoration: none; color: #333;
    display: flex; flex-direction: column; align-items: center;
    border-bottom: 4px solid transparent;
}

.npg-free .card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
    border-bottom-color: var(--accent-green);
}

.npg-free .card i {
    font-size: 2.5rem; color: var(--accent-green); margin-bottom: 15px;
}

.npg-free .card h3 {
    font-family: 'Raleway', sans-serif; font-size: 1.2rem; margin-bottom: 5px; font-weight: bold;
}

.npg-free .card span {
    font-size: 0.8rem; text-transform: uppercase; color: #888; letter-spacing: 1px;
}

/* Footer interno alla pagina */
.npg-free .page-footer {
    background: var(--primary-green); color: #fff; text-align: center;
    padding: 30px 20px; font-size: 0.9rem; margin-top: 40px;
}

@media (max-width: 768px) {
    .npg-free .hero-content h1 { font-size: 2.2rem; }
    .npg-free .section-divider { height: 200px; background-attachment: scroll; }
    .npg-free .section-divider h2 { font-size: 1.8rem; }
}


/* STILI SPECIFICI PER: ALTRI CONTENUTI */
.npg-altri-contenuti {
    --primary-color: #268c81; 
    --primary-light: #f0f7f6;
    --text-dark: #1a3a37;
}

/* HERO */
.npg-altri-contenuti .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/alcuni_contenuti.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-altri-contenuti .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.2); border-radius: 10px;
}
.npg-altri-contenuti .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; }

/* STICKY SEARCH */
.npg-altri-contenuti .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; margin-bottom: 30px;
}
.npg-altri-contenuti #searchInput { 
    width: 100%; max-width: 600px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #e0e0e0; font-size: 1rem; outline: none; transition: 0.3s;
}
.npg-altri-contenuti #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 12px rgba(38,140,129,0.15); }

/* SEZIONI E TITOLI */
.npg-altri-contenuti .section-title { 
    font-family: 'Raleway', sans-serif; color: var(--primary-color); 
    border-left: 6px solid var(--primary-color); padding-left: 15px; 
    margin: 40px 0 20px; text-transform: uppercase; font-size: 1.2rem; font-weight: 800;
}

/* GRID & CARDS */
.npg-altri-contenuti .grid-contents { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; 
}
.npg-altri-contenuti .card-link { 
    background: white; border: 1px solid #f1f5f4; padding: 20px; border-radius: 12px; 
    text-decoration: none; color: inherit; transition: 0.3s; 
    display: flex; flex-direction: column; min-height: 100px;
    border-top: 5px solid #eceff1;
}
.npg-altri-contenuti .card-link:hover { 
    transform: translateY(-5px); border-top-color: var(--primary-color); 
    background: var(--primary-light); box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}
.npg-altri-contenuti .card-title { font-weight: 700; color: var(--text-dark); margin-bottom: 10px; flex-grow: 1; }
.npg-altri-contenuti .card-cta { font-size: 0.7rem; color: var(--primary-color); text-align: right; font-weight: bold; text-transform: uppercase; }

/* HIGHLIGHT RICERCA */
.npg-altri-contenuti mark { background: #fff176; color: #000; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-altri-contenuti .hero-content h1 { font-size: 1.8rem; }
    .npg-altri-contenuti .grid-contents { grid-template-columns: 1fr; }
}



/* STILI SPECIFICI PER: GLI AUTORI DI NPG */
.npg-autori {
    --primary-color: #e38531; 
    --primary-light: #fdf2e9;
    --text-dark: #3d405b;
    --accent-yellow: #fff176;
}

/* HERO BANNER */
.npg-autori .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/autori.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-autori .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.3); border-radius: 10px;
}
.npg-autori .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 2px; }

/* INTRO BOX */
.npg-autori .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1100px;
}
.npg-autori .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }

/* STICKY SEARCH BAR */
.npg-autori .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; margin-bottom: 30px;
}
.npg-autori #searchInput { 
    width: 100%; max-width: 700px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #eee; font-size: 1.1rem; outline: none; transition: 0.3s;
}
.npg-autori #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(227,133,49,0.15); }
.npg-autori #stats { margin-top: 8px; font-size: 0.85rem; color: #888; font-weight: 600; }

/* AUTHORS GRID */
.npg-autori .authors-grid { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; 
    max-width: 1100px; margin: 0 auto;
}
.npg-autori .author-card { 
    background: white; border: 1px solid #eee; padding: 15px; border-radius: 12px; 
    text-decoration: none; color: inherit; text-align: center; 
    transition: 0.3s; display: flex; align-items: center; justify-content: center; 
    min-height: 70px; border-bottom: 4px solid #eee; 
}
.npg-autori .author-card:hover { 
    transform: translateY(-5px); border-bottom-color: var(--primary-color); 
    background: var(--primary-light); box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}
.npg-autori .author-name { font-family: 'Raleway', sans-serif; font-weight: 700; color: var(--text-dark); }

.npg-autori mark { background: var(--accent-yellow); color: black; padding: 0 2px; border-radius: 3px; }
.npg-autori .footer-note { text-align: center; margin-top: 50px; color: #999; font-style: italic; }

@media (max-width: 600px) {
    .npg-autori .hero-content h1 { font-size: 1.6rem; }
    .npg-autori .authors-grid { grid-template-columns: 1fr; }
}


/* STILI SPECIFICI PER: CAMMINI, VIAGGI, PELLEGRINAGGI */
.npg-cammini {
    --sunset: #ff7043; 
    --indigo: #3949ab; 
    --forest: #2e7d32;
    --text-dark: #333;
}

/* HERO HEADER */
.npg-cammini .hero-header { 
    position: relative; height: 50vh; min-height: 400px;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), 
                url('https://notedipastoralegiovanile.it/imgs/camminando.jpeg');
    background-size: cover; background-position: center;
    background-attachment: fixed;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; color: white; border-bottom: 8px solid var(--sunset);
}
.npg-cammini .hero-header h1 { font-family: 'Raleway', sans-serif; font-size: 3rem; text-transform: uppercase; margin: 0; letter-spacing: 3px; line-height: 1.1; }
.npg-cammini .hero-header p { font-size: 1.4rem; font-weight: 300; margin-top: 10px; }

.npg-cammini .presentation-box { 
    max-width: 850px; margin: 50px auto; padding: 0 20px; 
    text-align: center; line-height: 1.8; font-size: 1.1rem; color: #555; 
}

.npg-cammini .podcast-box { 
    background: #1a1a1a; color: #fff; padding: 30px; border-radius: 20px; 
    margin: 40px auto 60px; max-width: 950px; display: flex; align-items: center; 
    gap: 30px; border-bottom: 4px solid #ff5252;
}
.npg-cammini .podcast-icon { font-size: 3rem; }
.npg-cammini .podcast-box h3 { font-family: 'Raleway', sans-serif; margin: 0; color: #ff5252; text-transform: uppercase; font-size: 1.2rem; }
.npg-cammini .btn-podcast { 
    display: inline-block; color: #ff5252; border: 1px solid #ff5252; 
    padding: 10px 25px; text-decoration: none; border-radius: 8px; font-weight: bold; transition: 0.3s; 
}
.npg-cammini .btn-podcast:hover { background: #ff5252; color: white; }

.npg-cammini .section-title { 
    font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--indigo); 
    border-bottom: 3px solid #eee; padding-bottom: 10px; margin: 60px 0 30px; text-transform: uppercase; 
}

.npg-cammini .grid-simple { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 15px; }
.npg-cammini .card-simple { 
    background: white; border: 1px solid #e2e8f0; padding: 18px; border-radius: 10px; 
    text-decoration: none; color: inherit; border-left: 5px solid var(--indigo); transition: 0.3s; 
}
.npg-cammini .card-simple:hover { transform: translateX(5px); border-left-color: var(--sunset); box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.npg-cammini .card-simple .title { font-weight: 700; color: #1e293b; display: block; margin-bottom: 5px; font-size: 0.95rem; }
.npg-cammini .card-simple .label { font-size: 0.75rem; font-style: italic; color: #94a3b8; display: block; text-align: right; }

.npg-cammini .grid-compact { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.npg-cammini .card-compact { 
    background: var(--indigo); color: white; padding: 15px; border-radius: 10px; 
    text-decoration: none; text-align: center; height: 110px; display: flex; flex-direction: column; justify-content: center; transition: 0.3s; 
}
.npg-cammini .card-compact:hover { background: var(--sunset); transform: scale(1.03); }
.npg-cammini .card-compact .title { font-size: 0.85rem; font-weight: 800; line-height: 1.3; }

.npg-cammini .path-group { margin-top: 50px; }
.npg-cammini .path-group h3 { 
    font-family: 'Raleway', sans-serif; color: var(--forest); border-left: 6px solid var(--forest); 
    padding-left: 15px; margin-bottom: 20px; text-transform: uppercase; font-size: 1.3rem;
}
.npg-cammini .grid-photo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.npg-cammini .card-photo { 
    position: relative; height: 180px; border-radius: 12px; overflow: hidden; 
    text-decoration: none; color: white; display: flex; align-items: flex-end; transition: 0.3s;
}
.npg-cammini .card-photo .bg { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
    background-size: cover; background-position: center; z-index: 1; transition: 0.6s; 
}
.npg-cammini .card-photo:hover .bg { transform: scale(1.1); }
.npg-cammini .card-photo .overlay { 
    position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
    background: linear-gradient(transparent, rgba(0,0,0,0.8)); z-index: 2; 
}
.npg-cammini .card-photo .content { position: relative; z-index: 3; padding: 15px; }
.npg-cammini .card-photo .title { font-weight: 800; font-size: 0.85rem; line-height: 1.2; }
.npg-cammini .card-photo .label { font-size: 0.7rem; color: var(--sunset); font-weight: bold; font-style: italic; }

@media (max-width: 1000px) { .npg-cammini .grid-compact, .npg-cammini .grid-photo { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { 
    .npg-cammini .hero-header h1 { font-size: 2rem; }
    .npg-cammini .grid-compact, .npg-cammini .grid-photo, .npg-cammini .grid-simple { grid-template-columns: 1fr; }
    .npg-cammini .podcast-box { flex-direction: column; text-align: center; }
}


/* STILI SPECIFICI PER: ARCHIVIO DOSSIER */
.npg-dossier {
    --primary-color: #bc4b25; 
    --primary-light: #f8f1ee;
    --text-dark: #3d405b;
    --accent-gold: #f2cc8f;
}

/* HERO BANNER */
.npg-dossier .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/dossier.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-dossier .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.3); border-radius: 10px;
}
.npg-dossier .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 2px; }

/* INTRO BOX */
.npg-dossier .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1000px;
}
.npg-dossier .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }
.npg-dossier .intro-box a { color: var(--primary-color); font-weight: bold; text-decoration: underline; }

/* STICKY SEARCH */
.npg-dossier .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; margin-bottom: 30px;
}
.npg-dossier .search-wrapper { max-width: 700px; margin: 0 auto; position: relative; }
.npg-dossier #searchInput { 
    width: 100%; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #eee; font-size: 1.1rem; outline: none; transition: 0.3s;
}
.npg-dossier #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(188,75,37,0.15); }
.npg-dossier .stats { margin-top: 8px; font-size: 0.85rem; color: #888; font-weight: 600; }

/* YEAR SECTIONS (ACCORDION) */
.npg-dossier .year-section { margin-bottom: 12px; border-radius: 12px; overflow: hidden; background: white; border: 1px solid #eee; }
.npg-dossier .year-header { 
    background: #fff; padding: 15px 25px; cursor: pointer; 
    display: flex; justify-content: space-between; align-items: center; transition: 0.3s; 
}
.npg-dossier .year-header h2 { margin: 0; font-family: 'Raleway', sans-serif; font-size: 1.3rem; color: var(--text-dark); }
.npg-dossier .count-badge { background: var(--primary-light); padding: 4px 12px; border-radius: 20px; font-size: 0.8rem; color: var(--primary-color); font-weight: bold; }

.npg-dossier .year-section.open .year-header { background: var(--primary-color); color: white; }
.npg-dossier .year-section.open .year-header h2, .npg-dossier .year-section.open .count-badge { color: white; }
.npg-dossier .year-section.open .count-badge { background: rgba(255,255,255,0.2); }

.npg-dossier .year-content { display: none; padding: 20px; background: #fffcfb; }
.npg-dossier .year-section.open .year-content { display: block; }

/* DOSSIER GRID */
.npg-dossier .dossier-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 15px; }
.npg-dossier .dossier-card { 
    background: white; border: 1px solid #eee; padding: 18px; border-radius: 10px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    transition: 0.3s; border-bottom: 4px solid #eee; 
}
.npg-dossier .dossier-card:hover { transform: translateY(-3px); border-bottom-color: var(--primary-color); box-shadow: 0 8px 15px rgba(0,0,0,0.05); }
.npg-dossier .dossier-card.no-link { opacity: 0.7; cursor: default; }

.npg-dossier .d-num { font-size: 0.7rem; color: var(--primary-color); font-weight: bold; background: var(--primary-light); padding: 2px 8px; border-radius: 4px; align-self: flex-start; margin-bottom: 10px; }
.npg-dossier .d-title { font-weight: 700; font-size: 0.95rem; line-height: 1.4; flex-grow: 1; margin-bottom: 10px; }
.npg-dossier .d-info { font-size: 0.8rem; color: #888; font-style: italic; border-top: 1px solid #f9f9f9; padding-top: 10px; }

.npg-dossier mark { background: var(--accent-gold); color: #000; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-dossier .hero-content h1 { font-size: 1.6rem; }
    .npg-dossier .dossier-grid { grid-template-columns: 1fr; }
}



/* STILI SPECIFICI PER: ARCHIVIO EDITORIALI */
.npg-editoriali {
    --primary-color: #5c76ac; 
    --primary-light: #f0f4f8;
    --text-dark: #1e293b;
    --accent-yellow: #fde047;
}

/* HERO BANNER */
.npg-editoriali .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/editoriali.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-editoriali .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(255,255,255,0.1); backdrop-filter: blur(2px); border-radius: 10px;
}
.npg-editoriali .hero-content h1 { 
    font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; 
    margin: 0; letter-spacing: 3px; color: var(--text-dark);
    text-shadow: 1px 1px 2px rgba(255,255,255,0.8);
}

/* INTRO BOX */
.npg-editoriali .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1000px;
}
.npg-editoriali .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }

/* STICKY SEARCH */
.npg-editoriali .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; margin-bottom: 30px;
    border-bottom: 4px solid var(--primary-light);
}
.npg-editoriali #searchInput { 
    width: 100%; max-width: 700px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #e2e8f0; font-size: 1rem; outline: none; transition: 0.3s;
}
.npg-editoriali #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(92,118,172,0.15); }
.npg-editoriali #resCount { margin-top: 8px; font-size: 0.85rem; color: #64748b; font-weight: 600; }

/* YEAR SECTIONS */
.npg-editoriali .year-section { margin-bottom: 12px; border-radius: 12px; overflow: hidden; background: white; border: 1px solid #e2e8f0; }
.npg-editoriali .year-header { 
    background: #fff; padding: 18px 25px; cursor: pointer; 
    display: flex; justify-content: space-between; align-items: center; transition: 0.3s; 
}
.npg-editoriali .year-header h2 { margin: 0; font-family: 'Raleway', sans-serif; font-size: 1.4rem; color: #334155; font-weight: 800; }
.npg-editoriali .count-badge { background: var(--primary-light); padding: 4px 14px; border-radius: 20px; font-size: 0.85rem; color: var(--primary-color); font-weight: 700; }

.npg-editoriali .year-section.open .year-header { background: var(--primary-color); color: white; }
.npg-editoriali .year-section.open .year-header h2, .npg-editoriali .year-section.open .count-badge { color: white; }
.npg-editoriali .year-section.open .count-badge { background: rgba(255,255,255,0.2); }

.npg-editoriali .year-content { display: none; padding: 25px; background: #fffcfc; }
.npg-editoriali .year-section.open .year-content { display: block; }

/* EDITORIALI CARDS */
.npg-editoriali .ed-grid { display: flex; flex-direction: column; gap: 12px; }
.npg-editoriali .ed-card { 
    background: white; border: 1px solid #e2e8f0; padding: 18px; border-radius: 10px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    transition: 0.2s; border-left: 6px solid #e2e8f0; 
}
.npg-editoriali .ed-card:hover { transform: translateX(10px); border-left-color: var(--primary-color); background: var(--primary-light); }
.npg-editoriali .ed-title { font-family: 'Raleway', sans-serif; font-size: 1.05rem; font-weight: 700; color: #0f172a; margin-bottom: 5px; }
.npg-editoriali .ed-author { font-size: 0.85rem; color: #64748b; font-style: italic; }

.npg-editoriali .ed-note {
    background: #f8fafc; border: 1px dashed #cbd5e1; padding: 15px; border-radius: 10px;
    font-size: 0.95rem; color: #475569; font-style: italic;
}

.npg-editoriali mark { background: var(--accent-yellow); color: black; padding: 0 2px; border-radius: 3px; }

@media (max-width: 600px) {
    .npg-editoriali .hero-content h1 { font-size: 1.5rem; }
    .npg-editoriali .ed-card:hover { transform: none; }
}



/* STILI SPECIFICI PER: ETTY HILLESUM */
.npg-etty {
    --paper: #f9f7f2; 
    --ink: #2c3e50;
    --accent: #6d5b7b; 
    --gold: #b89b5e;
    font-family: 'Open Sans', sans-serif;
}

/* HERO */
.npg-etty .hero { 
    position: relative; height: 60vh; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), url('https://www.notedipastoralegiovanile.it/imgs/etty_portrait.jpg'); 
    background-size: cover; background-position: center; color: white; text-align: center;
    border-bottom: 5px solid var(--gold);
}
.npg-etty .hero h1 { font-family: 'Raleway', sans-serif; font-size: 4rem; margin: 0; font-weight: 300; letter-spacing: 5px; }
.npg-etty .hero p { font-size: 1.4rem; font-style: italic; opacity: 0.9; }

/* CITAZIONE */
.npg-etty .quote-card { 
    background: white; padding: 40px; box-shadow: 0 20px 40px rgba(0,0,0,0.05); 
    max-width: 900px; margin: -50px auto 50px; position: relative; z-index: 10;
    border-top: 4px solid var(--accent);
}
.npg-etty blockquote { font-size: 1.2rem; font-style: italic; color: #444; line-height: 1.8; border: none; margin: 0; }
.npg-etty cite { display: block; margin-top: 20px; text-align: right; font-family: 'Raleway', sans-serif; font-weight: 700; color: var(--gold); text-transform: uppercase; font-size: 0.8rem; }

/* SEZIONI HEADER */
.npg-etty .section-header { text-align: center; margin: 60px 0 30px; }
.npg-etty .section-header h2 { font-family: 'Raleway', sans-serif; font-size: 2rem; color: var(--ink); text-transform: uppercase; margin: 10px 0; }
.npg-etty .flower-img { width: 60px; height: 60px; border-radius: 50%; border: 2px solid var(--gold); object-fit: cover; }

/* GRIGLIE */
.npg-etty .intro-grid, .npg-etty .depth-grid, .npg-etty .subsidies-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.npg-etty .step-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 15px; }

/* CARDS */
.npg-etty .card-base { background: white; padding: 25px; border: 1px solid #eee; text-decoration: none; color: inherit; transition: 0.3s; }
.npg-etty .card-base:hover { border-color: var(--gold); box-shadow: 0 10px 20px rgba(0,0,0,0.05); }

.npg-etty .intro-item h3 { font-family: 'Raleway', sans-serif; color: var(--accent); margin: 0; font-size: 1.5rem; text-align: center; }

.npg-etty .step-card .num { font-family: 'Raleway', sans-serif; font-size: 0.7rem; color: var(--gold); font-weight: 800; display: block; margin-bottom: 5px; }
.npg-etty .step-card h3 { font-family: 'Raleway', sans-serif; font-size: 1.1rem; margin: 0; }

/* WESTERBORK */
.npg-etty .westerbork-outer { position: relative; height: 400px; margin: 60px 0; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.npg-etty .westerbork-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://www.notedipastoralegiovanile.it/images/westerbork.jpg'); background-size: cover; background-position: center; filter: grayscale(100%); transition: 0.5s; }
.npg-etty .westerbork-outer:hover .westerbork-bg { filter: grayscale(0%); }
.npg-etty .westerbork-overlay { position: relative; z-index: 2; background: rgba(255,255,255,0.9); padding: 30px 50px; border: 1px solid var(--gold); text-align: center; }

/* APPROFONDIMENTI */
.npg-etty .depth-item { border-left: 4px solid var(--accent); }
.npg-etty .depth-item h4 { font-family: 'Raleway', sans-serif; font-size: 1.2rem; color: var(--accent); margin: 0 0 10px; }
.npg-etty .depth-btn { display: inline-block; margin-top: 10px; padding: 5px 15px; border: 1px solid var(--gold); color: var(--gold); text-decoration: none; font-size: 0.75rem; font-weight: bold; text-transform: uppercase; }

/* SUSSIDI */
.npg-etty .subsidy-card { display: flex; gap: 15px; align-items: flex-start; }
.npg-etty .subsidy-icon { font-size: 1.5rem; color: var(--gold); }
.npg-etty .subsidy-link { color: var(--accent); font-weight: bold; font-size: 0.8rem; text-decoration: none; border-bottom: 1px solid var(--accent); }

@media (max-width: 800px) {
    .npg-etty .intro-grid, .npg-etty .depth-grid, .npg-etty .subsidies-grid { grid-template-columns: 1fr; }
    .npg-etty .hero h1 { font-size: 2.5rem; }
}


/* STILI SPECIFICI PER: GIOVANI E... */
.npg-giovani-e {
    --primary-color: #871a79; 
    --primary-light: #f9f0f7;
    --accent-color: #b3e5fc;
    --text-dark: #2e0929;
}

/* HERO BANNER */
.npg-giovani-e .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/giovani_e.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 40px;
}
.npg-giovani-e .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.1); border-radius: 10px;
}
.npg-giovani-e .hero-content h1 { 
    font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; 
    margin: 0; letter-spacing: 4px; text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* SEARCH BAR */
.npg-giovani-e .search-wrapper { max-width: 600px; margin: 0 auto 50px; text-align: center; }
.npg-giovani-e #searchInput { 
    width: 100%; padding: 15px 25px; border-radius: 50px; 
    border: 2px solid #eee; font-size: 1rem; outline: none; transition: 0.3s;
    font-family: 'Open Sans', sans-serif;
}
.npg-giovani-e #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 10px 20px rgba(135, 26, 121, 0.1); }

/* GRID SYSTEM */
.npg-giovani-e .giovani-grid { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 25px; 
}

/* CARDS */
.npg-giovani-e .giovani-card { 
    background: white; border: 1px solid #f1f1f1; padding: 40px 25px; border-radius: 20px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    align-items: center; text-align: center; transition: 0.4s;
    border-bottom: 5px solid #eee; position: relative; overflow: hidden;
}
.npg-giovani-e .giovani-card:hover { 
    transform: translateY(-10px); border-bottom-color: var(--primary-color); 
    background: var(--primary-light); box-shadow: 0 15px 30px rgba(0,0,0,0.05);
}

.npg-giovani-e .giovani-icon { font-size: 3rem; margin-bottom: 15px; display: block; }
.npg-giovani-e .giovani-card h3 { 
    font-family: 'Raleway', sans-serif; font-size: 1.1rem; font-weight: 800; 
    text-transform: uppercase; margin: 0; color: var(--text-dark);
}
.npg-giovani-e .giovani-cta { 
    margin-top: 15px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; 
    color: var(--primary-color); opacity: 0.6; 
}

/* HIGHLIGHT & MARK */
.npg-giovani-e mark { background: var(--accent-color); color: black; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-giovani-e .hero-banner { height: 180px; }
    .npg-giovani-e .hero-content h1 { font-size: 1.8rem; }
}


/* STILI SPECIFICI PER: NOTE'S GRAFFITI */
.npg-graffiti {
    --primary-color: #ff7043;
    --serie1: #ff7043; 
    --serie2: #9c27b0; 
    --serie3: #2e7d32;
    --text-dark: #334155;
}

/* HERO BANNER */
.npg-graffiti .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/graffiti.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-graffiti .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.1); border-radius: 10px;
}
.npg-graffiti .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 4px; }
.npg-graffiti .hero-content p { font-size: 1rem; font-style: italic; margin-top: 5px; }

/* INTRO TEXT */
.npg-graffiti .intro-text { 
    max-width: 950px; margin: 40px auto; padding: 30px; 
    background: white; border-radius: 15px; border-bottom: 4px solid var(--primary-color);
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); line-height: 1.7;
}

/* STICKY SEARCH */
.npg-graffiti .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 20px rgba(0,0,0,0.08); 
    text-align: center; border-bottom: 1px solid #eee; margin-bottom: 30px;
}
.npg-graffiti #searchInput { 
    width: 100%; max-width: 600px; padding: 12px 25px; border-radius: 30px; 
    border: 2px solid #e2e8f0; outline: none; transition: 0.3s;
}
.npg-graffiti #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(255, 112, 67, 0.1); }

/* LAYOUT SEZIONI */
.npg-graffiti .serie-section { display: flex; gap: 35px; margin-top: 60px; align-items: flex-start; }
.npg-graffiti .serie-info { flex: 0 0 250px; position: sticky; top: 100px; }
.npg-graffiti .serie-img { width: 100%; height: 300px; border-radius: 15px; object-fit: cover; box-shadow: 0 5px 15px rgba(0,0,0,0.1); margin-bottom: 15px; }
.npg-graffiti .serie-info h2 { font-family: 'Raleway', sans-serif; font-size: 1.6rem; margin: 0; text-transform: uppercase; color: var(--text-dark); }

.npg-graffiti .serie-grid { flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; }

/* CARDS */
.npg-graffiti .card-graffiti { 
    background: white; border: 1px solid #f1f5f9; padding: 20px; border-radius: 12px; 
    text-decoration: none; color: inherit; transition: 0.3s; 
    display: flex; flex-direction: column; border-top: 5px solid #cbd5e1;
    min-height: 110px;
}
.npg-graffiti .card-graffiti:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.05); }

.npg-graffiti .s1:hover { border-top-color: var(--serie1); background: #fff9f7; }
.npg-graffiti .s2:hover { border-top-color: var(--serie2); background: #fcf5ff; }
.npg-graffiti .s3:hover { border-top-color: var(--serie3); background: #f7fdf8; }

.npg-graffiti .card-title { font-weight: 700; font-size: 0.95rem; margin-bottom: 10px; flex-grow: 1; line-height: 1.4; }
.npg-graffiti .card-label { font-size: 0.7rem; color: #94a3b8; font-style: italic; text-align: right; text-transform: uppercase; font-weight: bold; }

.npg-graffiti mark { background: #fff176; color: black; padding: 0 2px; }

@media (max-width: 900px) {
    .npg-graffiti .serie-section { flex-direction: column; }
    .npg-graffiti .serie-info { position: static; flex: 1; width: 100%; text-align: center; }
    .npg-graffiti .serie-img { height: 200px; width: 200px; margin: 0 auto 15px; }
}


/* STILI SPECIFICI PER: IN GENERALE */
.npg-in-generale {
    --primary-color: #88a36d; 
    --primary-light: #f1f5ec;
    --text-dark: #334139;
    --accent-color: #d8e4cc;
}

/* HERO BANNER */
.npg-in-generale .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/in_generale.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-in-generale .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.15); border-radius: 10px;
}
.npg-in-generale .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 4px; }

/* INTRO BOX */
.npg-in-generale .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1000px;
}
.npg-in-generale .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }

/* STICKY SEARCH */
.npg-in-generale .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; border-bottom: 1px solid #eee; margin-bottom: 30px;
}
.npg-in-generale #searchInput { 
    width: 100%; max-width: 600px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #e2e8f0; font-size: 1rem; outline: none; transition: 0.3s;
}
.npg-in-generale #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 12px rgba(136,163,109,0.1); }

/* GRID SYSTEM */
.npg-in-generale .generale-grid { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; 
}

/* CARDS */
.npg-in-generale .info-box { 
    background: white; border: 1px solid #f1f5f4; padding: 30px; border-radius: 12px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    justify-content: space-between; transition: 0.3s; 
    border-top: 5px solid #eceff1; min-height: 160px;
}
.npg-in-generale .info-box:hover { 
    transform: translateY(-8px); border-top-color: var(--primary-color); 
    background-color: var(--primary-light); box-shadow: 0 12px 25px rgba(0,0,0,0.05);
}

.npg-in-generale .info-box h3 { font-family: 'Raleway', sans-serif; font-size: 1.15rem; color: var(--text-dark); font-weight: 700; margin: 0 0 10px; }
.npg-in-generale .info-box p { font-size: 0.95rem; color: #576574; line-height: 1.5; margin: 0; }
.npg-in-generale .link-label { margin-top: 20px; font-size: 0.75rem; text-transform: uppercase; font-weight: 800; color: var(--primary-color); font-style: italic; text-align: right; }

.npg-in-generale mark { background: var(--accent-color); color: #000; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-in-generale .hero-content h1 { font-size: 1.8rem; }
    .npg-in-generale .generale-grid { grid-template-columns: 1fr; }
}


/* STILI SPECIFICI PER: NPG INTERNATIONAL */
.npg-international {
    --int-red: #b71c1c;
    --int-gold: #f39c12;
    --int-teal: #5ab1bb;
    --text-dark: #2c3e50;
    font-family: 'Open Sans', sans-serif;
}

/* HERO BANNER */
.npg-international .hero-section {
    width: 100%; height: 350px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg-int.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    border-bottom: 5px solid var(--int-red);
    margin-bottom: 50px;
}

.npg-international .hero-content {
    text-align: center; padding: 30px;
    background: rgba(255, 255, 255, 0.5); backdrop-filter: blur(4px);
    border-radius: 20px; max-width: 80%;
}

.npg-international .hero-title {
    font-family: 'Raleway', sans-serif; color: var(--int-red);
    font-size: 2.8rem; font-weight: 800; margin: 0; text-transform: uppercase;
}

.npg-international .hero-subtitle {
    font-size: 1.3rem; font-style: italic; margin-top: 10px; color: #333;
}

/* GRIGLIA CARDS */
.npg-international .cards-container {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px; padding: 0 20px;
}

.npg-international .card {
    background-color: transparent; height: 450px; perspective: 1000px;
}

.npg-international .card-inner {
    position: relative; width: 100%; height: 100%;
    transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
    transform-style: preserve-3d; cursor: pointer;
}

.npg-international .card:hover .card-inner { transform: rotateY(180deg); }

.npg-international .card-front, .npg-international .card-back {
    position: absolute; width: 100%; height: 100%;
    backface-visibility: hidden; border-radius: 20px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-international .card-front { background-size: cover; background-position: center; }
.npg-international .card-front::after {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.3); border-radius: 20px;
}

.npg-international .lang-name {
    position: relative; z-index: 1; color: white;
    font-family: 'Raleway', sans-serif; font-size: 2rem; font-weight: 800;
    text-transform: uppercase; text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}

.npg-international .card-back {
    background-color: white; transform: rotateY(180deg);
    padding: 30px; border: 3px solid var(--int-red); text-align: center;
}

.npg-international .btn-enter {
    display: inline-block; margin-top: 20px; padding: 12px 30px;
    background-color: var(--int-red); color: white;
    text-decoration: none; border-radius: 50px; font-weight: bold;
    text-transform: uppercase; font-size: 0.85rem; transition: 0.3s;
    border: 2px solid var(--int-red);
}

.npg-international .btn-enter:hover { background-color: transparent; color: var(--int-red); }

.npg-international .back-label { font-size: 0.75rem; color: #95a5a6; text-transform: uppercase; letter-spacing: 1px; }

/* IMMAGINI CARDS */
.npg-international .img-en { background-image: url('https://www.notedipastoralegiovanile.it/imgs/int-1.jpg'); }
.npg-international .img-es { background-image: url('https://www.notedipastoralegiovanile.it/imgs/int-2.jpg'); }
.npg-international .img-fr { background-image: url('https://www.notedipastoralegiovanile.it/imgs/int-3.jpg'); }

@media (max-width: 768px) {
    .npg-international .hero-title { font-size: 1.8rem; }
    .npg-international .hero-section { height: 250px; }
}


/* STILI SPECIFICI PER: LA BIBLIOTECA DI NPG */
.npg-libri {
    --primary-color: #5a8d56; 
    --primary-light: #f1f8f1; 
    --text-dark: #2d412b;
    --accent-yellow: #fff176;
    --pdf-red: #c62828;
}

/* HERO BANNER */
.npg-libri .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/libri.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-libri .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.15); border-radius: 10px;
}
.npg-libri .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 4px; }

/* STICKY SEARCH */
.npg-libri .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.06); 
    text-align: center; margin-bottom: 30px;
}
.npg-libri #searchInput { 
    width: 100%; max-width: 700px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #eee; font-size: 1rem; outline: none; transition: 0.3s;
}
.npg-libri #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(90,141,86,0.1); }
.npg-libri #stats { margin-top: 8px; font-size: 0.85rem; color: #888; font-weight: 600; }

/* COLLANA SECTION */
.npg-libri .collana-section { margin-bottom: 50px; }
.npg-libri .collana-header { 
    border-bottom: 3px solid var(--primary-color); 
    margin-bottom: 20px; display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 8px; 
}
.npg-libri .collana-header h2 { font-family: 'Raleway', sans-serif; color: var(--primary-color); margin: 0; font-size: 1.4rem; text-transform: uppercase; font-weight: 800; }
.npg-libri .collana-count { font-size: 0.8rem; color: var(--primary-color); font-weight: bold; background: var(--primary-light); padding: 4px 12px; border-radius: 20px; }

/* GRID & CARDS */
.npg-libri .books-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.npg-libri .book-card { 
    background: white; border: 1px solid #eef1ee; padding: 20px; border-radius: 12px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    transition: 0.3s; border-top: 5px solid #d1d9d1; min-height: 150px;
}
.npg-libri .book-card:hover { transform: translateY(-5px); border-top-color: var(--primary-color); background: var(--primary-light); box-shadow: 0 10px 20px rgba(0,0,0,0.05); }

.npg-libri .book-author { color: var(--primary-color); font-weight: 800; font-size: 0.7rem; text-transform: uppercase; margin-bottom: 8px; }
.npg-libri .book-title { font-family: 'Raleway', sans-serif; font-size: 1rem; font-weight: 700; color: #1a2e19; margin-bottom: 12px; flex-grow: 1; line-height: 1.4; }

/* BADGES */
.npg-libri .badge-container { display: flex; gap: 8px; align-items: center; margin-top: auto; }
.npg-libri .pdf-badge { background: var(--pdf-red); color: white; font-size: 0.6rem; padding: 2px 8px; border-radius: 4px; font-weight: 900; }
.npg-libri .web-link { font-size: 0.7rem; color: #666; font-style: italic; }

/* SPECIAL FOOTER */
.npg-libri .special-footer { 
    background: #2d3a2c; color: #fff; padding: 40px; border-radius: 20px; margin-top: 60px; border-bottom: 8px solid var(--primary-color);
}
.npg-libri .special-footer h2 { font-family: 'Raleway', sans-serif; color: #a5d6a7; margin-top: 0; font-size: 1.3rem; text-transform: uppercase; }
.npg-libri .special-link { color: white; text-decoration: none; display: block; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.05); transition: 0.3s; }
.npg-libri .special-link:hover { padding-left: 10px; color: #c8e6c9; }

.npg-libri mark { background: var(--accent-yellow); color: black; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-libri .hero-content h1 { font-size: 1.6rem; }
    .npg-libri .books-grid { grid-template-columns: 1fr; }
}


/* STILI SPECIFICI PER: INDICE NPG (BLUE SECTION) */
.npg-npg-index {
    --primary-blue: #2c82c9;    /* Azzurro banner */
    --dark-blue: #1b639e;       /* Blu notte banner */
    --teal-accent: #5ab1bb;     /* Ottanio banner */
    --bg-light: #f4f7f9;
}

/* HERO BANNER */
.npg-npg-index .hero-section {
    width: 100%; height: 350px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    border-bottom: 5px solid var(--primary-blue);
    margin-bottom: 50px;
}

.npg-npg-index .hero-content {
    text-align: center; padding: 25px;
    background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(4px);
    border-radius: 20px; max-width: 80%;
}

.npg-npg-index .hero-title {
    font-family: 'Raleway', sans-serif; color: var(--dark-blue);
    font-size: 2.8rem; font-weight: 800; margin: 0; text-transform: uppercase;
}

.npg-npg-index .hero-subtitle {
    font-family: 'Open Sans', sans-serif; color: #2c3e50;
    font-size: 1.3rem; font-style: italic; margin-top: 10px;
}

/* GRIGLIA CARDS */
.npg-npg-index .cards-container {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px; padding: 0 20px;
}

.npg-npg-index .card {
    background-color: transparent; height: 480px; perspective: 1000px;
}

.npg-npg-index .card-inner {
    position: relative; width: 100%; height: 100%;
    text-align: center; transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform-style: preserve-3d; cursor: pointer;
}

.npg-npg-index .card:hover .card-inner { transform: rotateY(180deg); }

.npg-npg-index .card-front, .npg-npg-index .card-back {
    position: absolute; width: 100%; height: 100%;
    backface-visibility: hidden; border-radius: 15px;
    overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-npg-index .card-front {
    background-size: cover; background-position: center;
    justify-content: flex-end;
}

.npg-npg-index .card-front::after {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(transparent 50%, rgba(27, 99, 158, 0.85));
}

.npg-npg-index .card-label {
    position: relative; z-index: 1; color: white;
    font-family: 'Raleway', sans-serif; font-size: 1.6rem; font-weight: 800;
    padding: 25px; margin: 0; text-align: left;
}

.npg-npg-index .card-back {
    background-color: white; transform: rotateY(180deg);
    border: 3px solid var(--primary-blue);
}

.npg-npg-index .back-header {
    background-color: var(--primary-blue); color: white;
    padding: 15px; font-family: 'Raleway', sans-serif;
    font-size: 1.1rem; font-weight: 800; text-transform: uppercase;
}

.npg-npg-index .link-list {
    list-style: none; padding: 10px 20px; margin: 0;
    text-align: left; overflow-y: auto; flex-grow: 1;
}

.npg-npg-index .link-list li { border-bottom: 1px solid #f0f0f0; padding: 10px 0; }
.npg-npg-index .link-list a {
    text-decoration: none; color: #444; font-size: 0.95rem;
    font-family: 'Open Sans', sans-serif; display: block; transition: 0.2s;
}

.npg-npg-index .link-list a:hover { color: var(--primary-blue); padding-left: 8px; font-weight: bold; }

/* IMMAGINI CARDS */
.npg-npg-index .img-novita { background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg-1.jpg'); }
.npg-npg-index .img-rivista { background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg-2.jpg'); }
.npg-npg-index .img-vintage { background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg-3.jpg'); }
.npg-npg-index .img-risorse { background-image: url('https://www.notedipastoralegiovanile.it/imgs/npg-4.jpg'); }

@media (max-width: 768px) {
    .npg-npg-index .hero-title { font-size: 1.8rem; }
    .npg-npg-index .hero-section { height: 250px; }
    .npg-npg-index .card { height: 420px; }
}


/* STILI SPECIFICI PER: PERCORSI E ITINERARI PG */
.npg-percorsi-pg {
    --primary-color: #cc3602; 
    --primary-light: #fdf2f0;
    --accent-color: #f2dcb3;
    --text-dark: #4a1401;
}

/* HERO BANNER */
.npg-percorsi-pg .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/percorsi_pg.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 40px;
}
.npg-percorsi-pg .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.15); border-radius: 10px;
}
.npg-percorsi-pg .hero-content h1 { 
    font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; 
    margin: 0; letter-spacing: 4px; text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* SEARCH BAR */
.npg-percorsi-pg .search-wrapper { max-width: 600px; margin: 0 auto 50px; text-align: center; }
.npg-percorsi-pg #searchInput { 
    width: 100%; padding: 18px 30px; border-radius: 50px; 
    border: 2px solid #eee; font-size: 1rem; outline: none; transition: 0.3s;
    font-family: 'Open Sans', sans-serif;
}
.npg-percorsi-pg #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 10px 20px rgba(204, 54, 2, 0.1); }

/* GRID SYSTEM */
.npg-percorsi-pg .percorsi-grid { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; 
}

/* CARDS */
.npg-percorsi-pg .path-card { 
    background: white; border: 1px solid #f1f1f1; padding: 45px 30px; border-radius: 24px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    align-items: center; text-align: center; transition: 0.4s;
    border-bottom: 5px solid #eee; position: relative; overflow: hidden;
    min-height: 220px;
}
.npg-percorsi-pg .path-card:hover { 
    transform: translateY(-10px); border-bottom-color: var(--primary-color); 
    background: var(--primary-light); box-shadow: 0 15px 30px rgba(0,0,0,0.05);
}

.npg-percorsi-pg .path-icon { font-size: 3rem; margin-bottom: 20px; display: block; }
.npg-percorsi-pg .path-card h3 { 
    font-family: 'Raleway', sans-serif; font-size: 1.2rem; font-weight: 800; 
    text-transform: uppercase; margin: 0; color: var(--text-dark); line-height: 1.3;
}
.npg-percorsi-pg .path-cta { 
    margin-top: 15px; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; 
    color: var(--primary-color); opacity: 0.7; 
}

/* HIGHLIGHT & MARK */
.npg-percorsi-pg mark { background: var(--accent-color); color: black; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-percorsi-pg .hero-banner { height: 180px; }
    .npg-percorsi-pg .hero-content h1 { font-size: 1.8rem; }
}


/* STILI SPECIFICI PER: INDICE PASTORALE GIOVANILE (GREEN/ORANGE SECTION) */
.npg-pg-index {
    --pg-green-dark: #6b8e23;
    --pg-green-light: #84a94c;
    --pg-orange: #d35400;
    --pg-yellow: #f39c12;
    --bg-light: #f9faf7;
    --text-main: #2f4f4f;
}

/* HERO BANNER */
.npg-pg-index .hero-section {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--pg-green-light);
    margin-bottom: 50px;
}

.npg-pg-index .hero-content {
    text-align: center; padding: 25px;
    background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(4px);
    border-radius: 20px; max-width: 80%;
}

.npg-pg-index .hero-title {
    font-family: 'Raleway', sans-serif; color: var(--pg-green-dark);
    font-size: 2.8rem; font-weight: 800; margin: 0; text-transform: uppercase;
}

.npg-pg-index .hero-subtitle {
    font-family: 'Open Sans', sans-serif; color: #333;
    font-size: 1.3rem; font-style: italic; margin-top: 10px;
}

/* GRIGLIA CARDS */
.npg-pg-index .cards-container {
    max-width: 1250px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px; padding: 0 20px;
}

.npg-pg-index .card {
    background-color: transparent; height: 500px; perspective: 1000px;
}

.npg-pg-index .card-inner {
    position: relative; width: 100%; height: 100%;
    text-align: center; transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform-style: preserve-3d; cursor: pointer;
}

.npg-pg-index .card:hover .card-inner { transform: rotateY(180deg); }

.npg-pg-index .card-front, .npg-pg-index .card-back {
    position: absolute; width: 100%; height: 100%;
    backface-visibility: hidden; border-radius: 15px;
    overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-pg-index .card-front {
    background-size: cover; background-position: center;
    justify-content: flex-end;
}

.npg-pg-index .card-front::after {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(transparent 50%, rgba(107, 142, 35, 0.85));
}

.npg-pg-index .card-label {
    position: relative; z-index: 1; color: white;
    font-family: 'Raleway', sans-serif; font-size: 1.5rem; font-weight: 800;
    padding: 25px; margin: 0; text-align: left; text-transform: uppercase;
}

.npg-pg-index .card-back {
    background-color: white; transform: rotateY(180deg);
    border: 2px solid var(--pg-green-light);
}

.npg-pg-index .back-header {
    background-color: var(--pg-green-light); color: white;
    padding: 15px; font-family: 'Raleway', sans-serif;
    font-size: 1.1rem; font-weight: 800; text-transform: uppercase;
}

/* LISTE LINK */
.npg-pg-index .link-list {
    list-style: none; padding: 10px 20px; margin: 0;
    text-align: left; overflow-y: auto; flex-grow: 1;
}

.npg-pg-index .link-list::-webkit-scrollbar { width: 5px; }
.npg-pg-index .link-list::-webkit-scrollbar-thumb { background: var(--pg-yellow); border-radius: 10px; }

.npg-pg-index .link-list li { border-bottom: 1px solid #f0f0f0; padding: 8px 0; }
.npg-pg-index .link-list a {
    text-decoration: none; color: #444; font-size: 0.9rem;
    font-family: 'Open Sans', sans-serif; display: block; transition: 0.2s;
}

.npg-pg-index .link-list a:hover { color: var(--pg-green-dark); padding-left: 5px; font-weight: bold; }

.npg-pg-index .list-header {
    font-weight: bold; color: var(--pg-orange); font-size: 0.85rem;
    padding: 8px 0; border-bottom: 2px solid #eee !important; margin-top: 5px;
}

.npg-pg-index .sub-item { padding-left: 15px !important; background-color: #fafcf5; }
.npg-pg-index .sub-item a { font-size: 0.85rem; color: #666; }

.npg-pg-index .main-access-link {
    display: block; background-color: var(--pg-green-dark); color: white !important;
    text-align: center; padding: 12px; margin: 15px; border-radius: 8px;
    text-transform: uppercase; font-weight: bold; font-size: 0.8rem; text-decoration: none;
}

.npg-pg-index .main-access-link:hover { background-color: var(--pg-orange) !important; }

/* IMMAGINI CARDS */
.npg-pg-index .img-studi { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-1.jpg'); }
.npg-pg-index .img-soggetti { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-2.jpg'); }
.npg-pg-index .img-giovanie { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-3.jpg'); }
.npg-pg-index .img-percorsi { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-4.jpg'); }
.npg-pg-index .img-sussidi { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-5.jpg'); }
.npg-pg-index .img-contenuti { background-image: url('https://www.notedipastoralegiovanile.it/imgs/pg-6.jpg'); }

@media (max-width: 768px) {
    .npg-pg-index .hero-title { font-size: 1.8rem; }
    .npg-pg-index .hero-section { height: 200px; }
    .npg-pg-index .card { height: 450px; }
}



/* STILI SPECIFICI PER: RISORSE NPG */
.npg-risorse {
    --primary-color: #b73e5e; 
    --primary-light: #fbeef1;
    --accent-color: #f2dcb3;
    --text-dark: #3e2723;
}

/* HERO BANNER */
.npg-risorse .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/risorse.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 40px;
}
.npg-risorse .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.15); border-radius: 10px;
}
.npg-risorse .hero-content h1 { 
    font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; 
    margin: 0; letter-spacing: 4px; text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* INTRO BOX */
.npg-risorse .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1000px;
}
.npg-risorse .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }

/* GRID SYSTEM */
.npg-risorse .risorse-grid { 
    display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; 
}

/* CARDS */
.npg-risorse .res-card { 
    background: white; border: 1px solid #f1f1f1; padding: 45px 30px; border-radius: 24px; 
    text-decoration: none; color: inherit; display: flex; flex-direction: column; 
    align-items: center; text-align: center; transition: 0.4s;
    border-bottom: 5px solid #eee; position: relative; overflow: hidden;
    min-height: 220px;
}
.npg-risorse .res-card:hover { 
    transform: translateY(-10px); border-bottom-color: var(--primary-color); 
    background: var(--primary-light); box-shadow: 0 15px 30px rgba(183, 62, 94, 0.1);
}

.npg-risorse .res-icon { font-size: 3.5rem; margin-bottom: 20px; display: block; transition: 0.3s; }
.npg-risorse .res-card:hover .res-icon { transform: scale(1.1); }

.npg-risorse .res-card h3 { 
    font-family: 'Raleway', sans-serif; font-size: 1.2rem; font-weight: 800; 
    text-transform: uppercase; margin: 0; color: var(--text-dark);
}
.npg-risorse .res-card p { font-size: 0.95rem; color: #6d4c41; margin-top: 10px; line-height: 1.4; }

@media (max-width: 600px) {
    .npg-risorse .hero-banner { height: 180px; }
    .npg-risorse .hero-content h1 { font-size: 1.8rem; }
    .npg-risorse .risorse-grid { grid-template-columns: 1fr; }
}



/* STILI SPECIFICI PER: ARCHIVIO RUBRICHE */
.npg-rubriche {
    --primary-color: #568c73; 
    --primary-light: #f1f7f4;
    --accent-color: #d1e5da;
    --text-dark: #334155;
    --accent-yellow: #fff176;
}

/* HERO BANNER */
.npg-rubriche .hero-banner {
    width: 100%; height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/rubriche.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--primary-color);
    margin-bottom: 20px;
}
.npg-rubriche .hero-content { 
    position: relative; z-index: 1; text-align: center; color: white; 
    padding: 20px; background: rgba(0,0,0,0.15); border-radius: 10px;
}
.npg-rubriche .hero-content h1 { font-family: 'Raleway', sans-serif; font-size: 2.2rem; text-transform: uppercase; margin: 0; letter-spacing: 4px; }

/* INTRO BOX */
.npg-rubriche .intro-box { 
    background: white; padding: 35px; border-radius: 15px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin: 40px auto; max-width: 1000px;
}
.npg-rubriche .intro-box h2 { font-family: 'Raleway', sans-serif; font-size: 1.8rem; color: var(--text-dark); margin-bottom: 15px; font-style: italic; }

/* STICKY SEARCH */
.npg-rubriche .sticky-header { 
    position: sticky; top: 0; z-index: 100; 
    background: white; padding: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; border-bottom: 1px solid #eee; margin-bottom: 30px;
}
.npg-rubriche #searchInput { 
    width: 100%; max-width: 600px; padding: 12px 25px; border-radius: 40px; 
    border: 2px solid #eee; font-size: 1rem; outline: none; transition: 0.3s;
}
.npg-rubriche #searchInput:focus { border-color: var(--primary-color); box-shadow: 0 0 15px rgba(86,140,115,0.1); }
.npg-rubriche #stats { margin-top: 8px; font-size: 0.85rem; color: #888; font-weight: 600; }

.npg-rubriche .section-title { 
    font-family: 'Raleway', sans-serif; color: var(--primary-color); 
    border-left: 6px solid var(--primary-color); padding-left: 15px; 
    margin: 40px 0 25px; text-transform: uppercase; font-size: 1.2rem; font-weight: 800;
}

/* GRID 2026 */
.npg-rubriche .grid-2026 { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 15px; }
.npg-rubriche .card-2026 { 
    background: white; border-radius: 12px; padding: 20px; border-top: 5px solid var(--primary-color); 
    text-decoration: none; color: inherit; transition: 0.3s; display: flex; flex-direction: column; 
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.npg-rubriche .card-2026:hover { transform: translateY(-5px); background: var(--primary-light); }
.npg-rubriche .card-2026 h3 { font-family: 'Raleway', sans-serif; font-size: 1rem; font-weight: 800; margin: 0 0 8px; color: #1e293b; }
.npg-rubriche .card-2026 .author { color: var(--primary-color); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }

/* ALPHABETICAL CATALOG */
.npg-rubriche .letter-header { font-size: 2.5rem; font-weight: 900; color: #e2e8f0; margin: 30px 0 15px; border-bottom: 2px solid #f1f5f9; }
.npg-rubriche .rubric-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.npg-rubriche .rubric-item { 
    background: white; padding: 12px 18px; border-radius: 8px; text-decoration: none; color: #475569; 
    border: 1px solid #f1f5f9; display: flex; align-items: center; transition: 0.2s; font-weight: 600; font-size: 0.9rem;
}
.npg-rubriche .rubric-item:hover { transform: translateX(5px); border-color: var(--primary-color); color: var(--primary-color); background: var(--primary-light); }
.npg-rubriche .rubric-item::before { content: "●"; color: var(--primary-color); margin-right: 10px; font-size: 0.7rem; opacity: 0.5; }

.npg-rubriche mark { background: var(--accent-yellow); color: #000; padding: 0 2px; }

@media (max-width: 600px) {
    .npg-rubriche .hero-banner { height: 180px; }
    .npg-rubriche .hero-content h1 { font-size: 1.6rem; }
    .npg-rubriche .grid-2026, .npg-rubriche .rubric-list { grid-template-columns: 1fr; }
}


/* STILI SPECIFICI PER: INDICE SDB (SALESIAN SECTION) */
.npg-sdb-index {
    --sdb-orange: #d35400;      /* Arancio banner */
    --sdb-gold: #f39c12;        /* Oro banner */
    --sdb-green: #6b8e23;       /* Verde oliva banner */
    --bg-light: #f4f4f4;
    --text-main: #2c3e50;
}

/* HERO BANNER */
.npg-sdb-index .hero-section {
    width: 100%; height: 350px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb.png');
    background-size: cover; background-position: center;
    display: flex; align-items: center; justify-content: center;
    position: relative; border-bottom: 6px solid var(--sdb-gold);
    margin-bottom: 50px;
}

.npg-sdb-index .hero-content {
    text-align: center; padding: 25px;
    background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(4px);
    border-radius: 20px; max-width: 80%;
}

.npg-sdb-index .hero-title {
    font-family: 'Raleway', sans-serif; color: var(--sdb-orange);
    font-size: 2.8rem; font-weight: 800; margin: 0; text-transform: uppercase;
}

.npg-sdb-index .hero-subtitle {
    font-family: 'Open Sans', sans-serif; color: #333;
    font-size: 1.3rem; font-style: italic; margin-top: 10px;
}

/* GRIGLIA CARDS */
.npg-sdb-index .cards-container {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px; padding: 0 20px;
}

.npg-sdb-index .card {
    background-color: transparent; height: 500px; perspective: 1000px;
}

.npg-sdb-index .card-inner {
    position: relative; width: 100%; height: 100%;
    text-align: center; transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform-style: preserve-3d; cursor: pointer;
}

.npg-sdb-index .card:hover .card-inner { transform: rotateY(180deg); }

.npg-sdb-index .card-front, .npg-sdb-index .card-back {
    position: absolute; width: 100%; height: 100%;
    backface-visibility: hidden; border-radius: 15px;
    overflow: hidden; display: flex; flex-direction: column;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-sdb-index .card-front {
    background-size: cover; background-position: center;
    justify-content: flex-end;
}

.npg-sdb-index .card-front::after {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(transparent 50%, rgba(211, 84, 0, 0.85));
}

.npg-sdb-index .card-label {
    position: relative; z-index: 1; color: white;
    font-family: 'Raleway', sans-serif; font-size: 1.6rem; font-weight: 800;
    padding: 25px; margin: 0; text-align: left;
}

.npg-sdb-index .card-back {
    background-color: white; transform: rotateY(180deg);
    border: 3px solid var(--sdb-gold);
}

.npg-sdb-index .back-header {
    background-color: var(--sdb-gold); color: white;
    padding: 15px; font-family: 'Raleway', sans-serif;
    font-size: 1.1rem; font-weight: 800; text-transform: uppercase;
}

/* LISTE LINK */
.npg-sdb-index .link-list {
    list-style: none; padding: 10px 20px; margin: 0;
    text-align: left; overflow-y: auto; flex-grow: 1;
}

.npg-sdb-index .link-list li { border-bottom: 1px solid #f2f2f2; padding: 10px 0; }
.npg-sdb-index .link-list a {
    text-decoration: none; color: #444; font-size: 0.92rem;
    font-family: 'Open Sans', sans-serif; display: block; transition: 0.2s;
}

.npg-sdb-index .link-list a:hover { color: var(--sdb-orange); padding-left: 5px; font-weight: bold; }

.npg-sdb-index .news-link {
    background-color: var(--sdb-green); padding: 15px; text-align: center;
}
.npg-sdb-index .news-link a {
    color: white !important; font-weight: bold; text-decoration: none;
    text-transform: uppercase; font-size: 0.8rem;
}

/* IMMAGINI CARDS */
.npg-sdb-index .img-db { background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb-1.jpg'); }
.npg-sdb-index .img-pgs { background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb-2.jpg'); }
.npg-sdb-index .img-cisi { background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb-3.jpg'); }
.npg-sdb-index .img-doc { background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb-4.jpg'); }

@media (max-width: 768px) {
    .npg-sdb-index .hero-title { font-size: 1.8rem; }
    .npg-sdb-index .hero-section { height: 250px; }
    .npg-sdb-index .card { height: 450px; }
}
</style>




/* --- SEZIONE SDB-CISI-DOC --- */
.npg-sdb-cisi-doc {
    --primary-color: #87cb35;
    --primary-light: #f4f9ed;
    --text-dark: #2d4312;
    --accent-yellow: #f4e956;
    --white: #ffffff;
}

.npg-sdb-cisi-doc {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-sdb-cisi-doc h1, 
.npg-sdb-cisi-doc h2, 
.npg-sdb-cisi-doc h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-sdb-cisi-doc .hero-banner {
    width: 100%;
    height: 250px;
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb_cisi-doc.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-sdb-cisi-doc .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.15);
}

.npg-sdb-cisi-doc .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-sdb-cisi-doc .hero-content h1 {
    font-size: 2.2rem;
    text-transform: uppercase;
    letter-spacing: 4px;
    margin: 0;
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5);
}

/* LAYOUT SPLIT */
.npg-sdb-cisi-doc .split-container {
    display: flex;
    max-width: 1200px;
    margin: 40px auto;
    gap: 40px;
    padding: 0 20px;
}

.npg-sdb-cisi-doc .left-side {
    flex: 1;
    position: sticky;
    top: 20px;
    height: fit-content;
}

.npg-sdb-cisi-doc .main-img {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
    border: 1px solid #eee;
}

.npg-sdb-cisi-doc .right-side {
    flex: 1.5;
}

/* GRIGLIA BOX */
.npg-sdb-cisi-doc .box-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.npg-sdb-cisi-doc .box-card {
    background: var(--white);
    border-radius: 15px;
    padding: 30px 20px;
    text-decoration: none !important;
    color: var(--text-dark) !important;
    border-bottom: 5px solid #eee;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    min-height: 150px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.npg-sdb-cisi-doc .box-card:hover {
    transform: translateY(-5px);
    border-bottom-color: var(--primary-color);
    box-shadow: 0 15px 30px rgba(135, 203, 53, 0.15);
    background: var(--primary-light);
}

.npg-sdb-cisi-doc .news-highlight {
    background-color: #fffdf2;
    border-left: 4px solid var(--accent-yellow);
}

.npg-sdb-cisi-doc .box-card h3 {
    margin: 0;
    font-size: 1.1rem;
    line-height: 1.3;
    flex-grow: 1;
    text-transform: uppercase;
}

.npg-sdb-cisi-doc .box-cta {
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--primary-color);
    margin-top: 20px;
    text-align: right;
    font-style: italic;
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-sdb-cisi-doc .split-container {
        flex-direction: column;
    }
    .npg-sdb-cisi-doc .left-side {
        position: static;
        order: 2;
    }
    .npg-sdb-cisi-doc .right-side {
        order: 1;
    }
    .npg-sdb-cisi-doc .box-grid {
        grid-template-columns: 1fr;
    }
    .npg-sdb-cisi-doc .hero-banner {
        height: 180px;
    }
    .npg-sdb-cisi-doc .hero-content h1 {
        font-size: 1.6rem;
    }
}


/* --- SEZIONE SDB-CISI (UFFICI CISI) --- */
.npg-sdb-cisi {
    --primary-color: #ff7e43; 
    --primary-light: #fff2ec; 
    --text-dark: #3e1f11;
    --white: #ffffff;
}

.npg-sdb-cisi {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-sdb-cisi h1, 
.npg-sdb-cisi h2, 
.npg-sdb-cisi h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-sdb-cisi .hero-banner {
    width: 100%;
    height: 220px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb_cisi.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-sdb-cisi .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.15); 
}

.npg-sdb-cisi .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-sdb-cisi .hero-content h1 { 
    font-size: 2.2rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* LAYOUT SPLIT */
.npg-sdb-cisi .split-container { 
    display: flex; 
    max-width: 1200px; 
    margin: 40px auto; 
    gap: 40px; 
    padding: 0 20px; 
}

.npg-sdb-cisi .left-side { 
    flex: 1; 
    position: sticky; 
    top: 20px; 
    height: fit-content; 
}

.npg-sdb-cisi .main-img { 
    width: 100%; 
    border-radius: 20px; 
    box-shadow: 0 15px 35px rgba(0,0,0,0.1); 
    border: 1px solid #ddd; 
}

.npg-sdb-cisi .right-side { flex: 1.5; }

/* GRIGLIA BOX */
.npg-sdb-cisi .box-grid { 
    display: grid; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 20px; 
}

.npg-sdb-cisi .box-card { 
    background: var(--white); 
    border-radius: 15px; 
    padding: 30px 20px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    border-bottom: 5px solid #eee; 
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: flex; 
    flex-direction: column; 
    min-height: 150px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.npg-sdb-cisi .box-card:hover { 
    transform: translateY(-8px); 
    border-bottom-color: var(--primary-color); 
    box-shadow: 0 15px 30px rgba(255, 126, 67, 0.15); 
    background: var(--primary-light); 
}

.npg-sdb-cisi .box-card h3 { 
    margin: 0; 
    font-size: 1.1rem; 
    line-height: 1.3; 
    flex-grow: 1; 
    text-transform: uppercase;
}

.npg-sdb-cisi .box-cta { 
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--primary-color); 
    margin-top: 20px; 
    text-align: right; 
    font-style: italic; 
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-sdb-cisi .split-container { flex-direction: column; }
    .npg-sdb-cisi .left-side { position: static; order: 2; }
    .npg-sdb-cisi .right-side { order: 1; }
    .npg-sdb-cisi .box-grid { grid-template-columns: 1fr; }
    .npg-sdb-cisi .hero-banner { height: 180px; }
    .npg-sdb-cisi .hero-content h1 { font-size: 1.8rem; }
}



/* --- SEZIONE SDB-DON-BOSCO --- */
.npg-don-bosco {
    --sdb-blue: #0066af; 
    --sdb-light: #eaf3f9; 
    --text-dark: #1b2631;
    --white: #ffffff;
}

.npg-don-bosco {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-don-bosco h1, 
.npg-don-bosco h2, 
.npg-don-bosco h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-don-bosco .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb_donbosco.png');
    background-size: cover;
    background-position: center top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--sdb-blue);
}

.npg-don-bosco .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.2); 
}

.npg-don-bosco .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-don-bosco .hero-content h1 { 
    font-size: 2.5rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* LAYOUT SPLIT */
.npg-don-bosco .split-container { 
    display: flex; 
    max-width: 1200px; 
    margin: 40px auto; 
    gap: 40px; 
    padding: 0 20px 60px; 
}

.npg-don-bosco .left-side { 
    flex: 1; 
    position: sticky; 
    top: 20px; 
    height: fit-content; 
}

.npg-don-bosco .main-img { 
    width: 100%; 
    height: auto;
    border-radius: 20px; 
    box-shadow: 0 15px 35px rgba(0,0,0,0.1); 
    border: 1px solid #ddd; 
}

.npg-don-bosco .right-side { flex: 1.5; }

/* GRIGLIA BOX */
.npg-don-bosco .box-grid { 
    display: grid; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 20px; 
}

.npg-don-bosco .box-card { 
    background: var(--white); 
    border-radius: 15px; 
    padding: 35px 25px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    border-bottom: 5px solid #eee; 
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: flex; 
    flex-direction: column; 
    min-height: 160px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.npg-don-bosco .box-card:hover { 
    transform: translateY(-8px); 
    border-bottom-color: var(--sdb-blue); 
    box-shadow: 0 15px 30px rgba(0,102,175,0.15); 
    background: var(--sdb-light); 
}

.npg-don-bosco .box-card h3 { 
    margin: 0; 
    font-size: 1.1rem; 
    line-height: 1.4; 
    flex-grow: 1; 
    text-transform: uppercase;
}

.npg-don-bosco .box-cta { 
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--sdb-blue); 
    margin-top: 20px; 
    text-align: right; 
    font-style: italic; 
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-don-bosco .split-container { flex-direction: column; }
    .npg-don-bosco .left-side { position: static; order: 2; }
    .npg-don-bosco .right-side { order: 1; }
    .npg-don-bosco .box-grid { grid-template-columns: 1fr; }
    .npg-don-bosco .hero-banner { height: 180px; }
    .npg-don-bosco .hero-content h1 { font-size: 1.8rem; }
}


/* --- SEZIONE SDB-PGS (PASTORALE GIOVANILE) --- */
.npg-sdb-pgs {
    --sdb-magenta: #c6358e; 
    --sdb-light: #fbebf4; 
    --text-dark: #2d0a1f;
    --white: #ffffff;
}

.npg-sdb-pgs {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-sdb-pgs h1, 
.npg-sdb-pgs h2, 
.npg-sdb-pgs h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-sdb-pgs .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sdb_pgs.png');
    background-size: cover;
    background-position: center top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--sdb-magenta);
}

.npg-sdb-pgs .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.1); 
}

.npg-sdb-pgs .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-sdb-pgs .hero-content h1 { 
    font-size: 2.2rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* LAYOUT SPLIT */
.npg-sdb-pgs .split-container { 
    display: flex; 
    max-width: 1200px; 
    margin: 40px auto; 
    gap: 40px; 
    padding: 0 20px 60px; 
}

.npg-sdb-pgs .left-side { 
    flex: 1; 
    position: sticky; 
    top: 20px; 
    height: fit-content; 
}

.npg-sdb-pgs .main-img { 
    width: 100%; 
    height: auto;
    border-radius: 20px; 
    box-shadow: 0 15px 35px rgba(0,0,0,0.1); 
    border: 1px solid #ddd; 
}

.npg-sdb-pgs .right-side { flex: 1.5; }

/* INTRO BOX */
.npg-sdb-pgs .intro-box {
    background: var(--white);
    padding: 30px;
    border-radius: 15px;
    margin-bottom: 30px;
    border-left: 6px solid var(--sdb-magenta);
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.npg-sdb-pgs .intro-box p { 
    margin: 0; 
    font-size: 1.05rem; 
    color: #555; 
    font-style: italic; 
}

/* GRIGLIA BOX */
.npg-sdb-pgs .box-grid { 
    display: grid; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 20px; 
}

.npg-sdb-pgs .box-card { 
    background: var(--white); 
    border-radius: 15px; 
    padding: 35px 25px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    border-bottom: 5px solid #eee; 
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    display: flex; 
    flex-direction: column; 
    min-height: 160px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.npg-sdb-pgs .box-card:hover { 
    transform: translateY(-8px); 
    border-bottom-color: var(--sdb-magenta); 
    box-shadow: 0 15px 30px rgba(198, 53, 142, 0.15); 
    background: var(--sdb-light); 
}

.npg-sdb-pgs .box-card h3 { 
    margin: 0; 
    font-size: 1.1rem; 
    line-height: 1.3; 
    flex-grow: 1; 
    text-transform: uppercase;
}

.npg-sdb-pgs .box-cta { 
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--sdb-magenta); 
    margin-top: 20px; 
    text-align: right; 
    font-style: italic; 
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-sdb-pgs .split-container { flex-direction: column; }
    .npg-sdb-pgs .left-side { position: static; order: 2; }
    .npg-sdb-pgs .right-side { order: 1; }
    .npg-sdb-pgs .box-grid { grid-template-columns: 1fr; }
    .npg-sdb-pgs .hero-banner { height: 180px; }
    .npg-sdb-pgs .hero-content h1 { font-size: 1.8rem; }
}


/* --- SEZIONE SOGGETTI-PG --- */
.npg-soggetti-pg {
    --primary-color: #00d7ee; 
    --primary-light: #e6faff;
    --accent-color: #c1d02d;
    --text-dark: #00454d;
    --white: #ffffff;
}

.npg-soggetti-pg {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-soggetti-pg h1, 
.npg-soggetti-pg h2, 
.npg-soggetti-pg h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-soggetti-pg .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/soggetti_pg.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-soggetti-pg .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.15); 
}

.npg-soggetti-pg .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-soggetti-pg .hero-content h1 { 
    font-size: 2.2rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

/* CONTAINER & SEARCH */
.npg-soggetti-pg .main-container { 
    max-width: 1100px; 
    margin: 40px auto; 
    padding: 0 20px 60px; 
}

.npg-soggetti-pg .search-wrapper { 
    max-width: 600px; 
    margin: 0 auto 40px; 
}

.npg-soggetti-pg #npg-search-subjects { 
    width: 100%; 
    padding: 15px 25px; 
    border-radius: 50px; 
    border: 2px solid #eee; 
    font-size: 1rem; 
    outline: none; 
    transition: 0.3s; 
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    font-family: 'Open Sans', sans-serif;
}

.npg-soggetti-pg #npg-search-subjects:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 15px 30px rgba(0, 215, 238, 0.15); 
}

/* GRID */
.npg-soggetti-pg .soggetti-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 25px; 
}

.npg-soggetti-pg .subject-card { 
    background: white; 
    border: 1px solid #f1f1f1; 
    padding: 40px 25px; 
    border-radius: 20px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    text-align: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative; 
    overflow: hidden;
    min-height: 200px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    border-bottom: 5px solid #eee;
}

.npg-soggetti-pg .subject-card:hover { 
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 215, 238, 0.15);
    border-bottom-color: var(--primary-color);
    background: var(--primary-light);
}

.npg-soggetti-pg .subject-icon { 
    font-size: 3rem; 
    margin-bottom: 15px; 
    transition: transform 0.4s ease;
}

.npg-soggetti-pg .subject-card:hover .subject-icon { 
    transform: scale(1.2); 
}

.npg-soggetti-pg .subject-card h3 { 
    margin: 0; 
    font-size: 1.2rem; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    line-height: 1.3;
}

.npg-soggetti-pg .subject-cta { 
    margin-top: 15px;
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--primary-color);
    opacity: 0.7;
}

.npg-soggetti-pg mark { 
    background: var(--accent-color); 
    color: black; 
    padding: 0 2px; 
    border-radius: 3px; 
}

/* RESPONSIVE */
@media (max-width: 600px) {
    .npg-soggetti-pg .hero-banner { height: 180px; }
    .npg-soggetti-pg .hero-content h1 { font-size: 1.8rem; }
    .npg-soggetti-pg .soggetti-grid { grid-template-columns: 1fr; }
}


/* --- SEZIONE STUDI-PG --- */
.npg-studi-pg {
    --primary-color: #00b8a5; 
    --primary-light: #e6f8f6;
    --accent-color: #f4e956;
    --text-dark: #1a3b3a;
    --white: #ffffff;
}

.npg-studi-pg {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-studi-pg h1, 
.npg-studi-pg h2, 
.npg-studi-pg h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-studi-pg .hero-banner {
    width: 100%;
    height: 250px;
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/studi_pg.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-studi-pg .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(255,255,255,0.1);
}

.npg-studi-pg .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 20px;
}

.npg-studi-pg .hero-content h1 { 
    font-size: 2.5rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    color: var(--text-dark);
    text-shadow: 1px 1px 3px rgba(255,255,255,0.8); 
}

/* SEARCH BAR */
.npg-studi-pg .main-container { 
    max-width: 1100px; 
    margin: 40px auto; 
    padding: 0 20px 60px; 
}

.npg-studi-pg .search-wrapper { 
    max-width: 600px; 
    margin: 0 auto 40px; 
}

.npg-studi-pg #npg-studi-search { 
    width: 100%; 
    padding: 15px 25px; 
    border-radius: 50px; 
    border: 2px solid #eee; 
    font-size: 1rem; 
    outline: none; 
    transition: 0.3s; 
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    font-family: 'Open Sans', sans-serif;
}

.npg-studi-pg #npg-studi-search:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 15px 30px rgba(0, 184, 165, 0.15); 
}

/* GRID SYSTEM */
.npg-studi-pg .studi-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 25px; 
}

/* CARD */
.npg-studi-pg .study-card { 
    background: var(--white); 
    border: 1px solid #f1f1f1; 
    padding: 40px 25px; 
    border-radius: 20px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    text-align: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative; 
    overflow: hidden;
    min-height: 200px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    border-bottom: 5px solid #eee;
}

.npg-studi-pg .study-card:hover { 
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 184, 165, 0.15);
    border-bottom-color: var(--primary-color);
    background: var(--primary-light);
}

.npg-studi-pg .study-icon { 
    font-size: 3rem; 
    margin-bottom: 15px; 
    transition: transform 0.4s ease;
}

.npg-studi-pg .study-card:hover .study-icon { 
    transform: scale(1.2) rotate(5deg); 
}

.npg-studi-pg .study-card h3 { 
    margin: 0; 
    font-size: 1.2rem; 
    line-height: 1.3;
    text-transform: uppercase;
    transition: color 0.3s;
}

.npg-studi-pg .study-card:hover h3 { 
    color: var(--primary-color); 
}

.npg-studi-pg .study-cta { 
    margin-top: 15px; 
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--primary-color); 
    opacity: 0; 
    transition: 0.3s; 
}

.npg-studi-pg .study-card:hover .study-cta { 
    opacity: 1; 
}

.npg-studi-pg mark { 
    background: var(--accent-color); 
    color: black; 
    padding: 0 2px; 
    border-radius: 3px; 
}

/* RESPONSIVE */
@media (max-width: 600px) {
    .npg-studi-pg .hero-banner { height: 180px; }
    .npg-studi-pg .hero-content h1 { font-size: 1.8rem; }
    .npg-studi-pg .studi-grid { grid-template-columns: 1fr; }
}


/* --- SEZIONE SUSSIDI E MATERIALI --- */
.npg-sussidi {
    --primary-color: #87cb35; 
    --primary-light: #f4f9ed;
    --accent-color: #f4e956;
    --text-dark: #2d4312;
    --white: #ffffff;
}

.npg-sussidi {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-sussidi h1, 
.npg-sussidi h2, 
.npg-sussidi h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-sussidi .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/sussidi.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-sussidi .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.1); 
}

.npg-sussidi .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-sussidi .hero-content h1 { 
    font-size: 2.2rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

.npg-sussidi .hero-content p { 
    font-size: 1.1rem; 
    font-style: italic; 
    margin-top: 10px;
    text-shadow: 1px 1px 8px rgba(0,0,0,0.5);
}

/* INTRO TEXT */
.npg-sussidi .intro-text { 
    max-width: 1000px; 
    margin: 40px auto; 
    padding: 30px; 
    background: var(--white); 
    border-radius: 15px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    font-size: 1.05rem;
    border-bottom: 4px solid var(--primary-color);
}

.npg-sussidi .intro-text b { color: var(--primary-color); }

/* SEARCH AREA */
.npg-sussidi .sticky-search { 
    position: sticky; 
    top: 0; 
    z-index: 100; 
    background: white; 
    padding: 20px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    margin-bottom: 30px;
}

.npg-sussidi .search-wrapper { max-width: 800px; margin: 0 auto; }

.npg-sussidi #npg-sussidi-search { 
    width: 100%; 
    padding: 15px 25px; 
    border-radius: 50px; 
    border: 2px solid #eee; 
    font-size: 1rem; 
    outline: none; 
    transition: 0.3s;
}

.npg-sussidi #npg-sussidi-search:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 0 15px rgba(135, 203, 53, 0.15); 
}

/* DASHBOARD / INDEX */
.npg-sussidi .dashboard { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 
    gap: 10px; 
    margin-bottom: 40px; 
    padding: 0 20px;
}

.npg-sussidi .dash-item { 
    background: var(--white); 
    padding: 12px; 
    border-radius: 10px; 
    text-decoration: none !important; 
    color: var(--primary-color) !important; 
    font-size: 0.75rem; 
    font-weight: 800; 
    text-align: center; 
    border: 2px solid var(--primary-light); 
    transition: all 0.2s ease; 
    display: flex; align-items: center; justify-content: center;
    text-transform: uppercase;
}

.npg-sussidi .dash-item:hover { 
    background: var(--primary-color); 
    color: white !important; 
    transform: translateY(-3px); 
}

/* SECTIONS */
.npg-sussidi .section-header-wrap { 
    display: flex; 
    align-items: center; 
    gap: 20px; 
    margin: 60px 0 25px; 
    padding-bottom: 15px;
    border-bottom: 3px solid var(--primary-color);
}

.npg-sussidi .section-icon { 
    width: 70px; height: 70px; 
    border-radius: 50%; 
    border: 3px solid var(--primary-color); 
    object-fit: cover;
    background: white;
}

.npg-sussidi .section-header-text h2 { 
    color: var(--primary-color); 
    margin: 0; 
    font-size: 1.4rem; 
    text-transform: uppercase;
}

.npg-sussidi .section-count { 
    font-size: 0.7rem; 
    background: var(--primary-light); 
    color: var(--primary-color); 
    padding: 2px 10px; 
    border-radius: 20px; 
    font-weight: 700;
}

/* CARDS GRID */
.npg-sussidi .sussidi-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 20px; 
    padding: 0 20px;
}

.npg-sussidi .card-sussidio { 
    background: var(--white); 
    border: 1px solid #f1f5f4; 
    padding: 20px; 
    border-radius: 12px; 
    text-decoration: none !important; 
    color: inherit !important; 
    transition: 0.3s; 
    display: flex; 
    flex-direction: column; 
    border-top: 5px solid #eceff1;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
    min-height: 80px;
}

.npg-sussidi .card-sussidio:hover { 
    border-top-color: var(--primary-color); 
    transform: translateY(-5px); 
    background: var(--primary-light);
}

.npg-sussidi .sussidio-title { 
    font-size: 1rem; 
    font-weight: 700; 
    color: var(--text-dark); 
    margin-bottom: 10px; 
    line-height: 1.3; 
    flex-grow: 1; 
}

.npg-sussidi .sussidio-link-label { 
    font-size: 0.7rem; 
    color: var(--primary-color); 
    text-align: right; 
    font-weight: 800;
    text-transform: uppercase;
    font-style: italic;
}

.npg-sussidi mark { background: var(--accent-color); color: #000; padding: 0 2px; border-radius: 2px; }

@media (max-width: 600px) {
    .npg-sussidi .hero-content h1 { font-size: 1.6rem; }
    .npg-sussidi .dashboard { grid-template-columns: 1fr 1fr; }
    .npg-sussidi .sussidi-grid { grid-template-columns: 1fr; }
    .npg-sussidi .section-header-wrap { flex-direction: column; text-align: center; }
}


/* --- SEZIONE NPG-VINTAGE --- */
.npg-vintage {
    --primary-color: #7d9bb6; 
    --primary-dark: #5a7d9a;
    --primary-light: #f1f4f7;
    --bg: #fdfaf6; 
    --text-dark: #2c3e50;
    
    /* Palette Vintage */
    --v-blue: #7d9bb6;
    --v-gold: #b5a17a;
    --v-teal: #87a69f;
    --v-slate: #7e8c9a;
    --v-rose: #b68d8d;
    --v-green: #93a681;
    --v-purple: #948ba6;
    --v-brown: #a69185;
}

.npg-vintage {
    font-family: 'Open Sans', sans-serif;
    background-color: var(--bg);
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-vintage h1, 
.npg-vintage h2, 
.npg-vintage h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-vintage .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/vintage.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-vintage .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.15); 
}

.npg-vintage .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
}

.npg-vintage .hero-banner h1 {
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 4px;
    margin: 0;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}

/* INTRO BOX */
.npg-vintage .intro-container { 
    max-width: 1000px; 
    margin: 40px auto; 
    padding: 0 20px; 
}

.npg-vintage .intro-box { 
    background: white; 
    padding: 40px; 
    border-radius: 12px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

.npg-vintage .intro-box h2 {
    font-size: 2rem;
    font-style: italic;
    color: var(--text-dark);
    margin: 0 0 20px 0;
}

.npg-vintage .intro-box p { 
    margin-bottom: 15px; 
    color: #475569; 
    font-size: 1.05rem; 
}

.npg-vintage .intro-box p.gratitudine { 
    font-weight: 600; 
    color: var(--primary-dark);
    font-style: italic;
    margin-top: 20px;
}

/* GRID SYSTEM */
.npg-vintage .main-container { 
    max-width: 1200px; 
    margin: 50px auto 80px; 
    padding: 0 20px; 
}

.npg-vintage .vintage-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 
    gap: 25px; 
}

/* BOX VINTAGE */
.npg-vintage .vintage-box { 
    background: white; 
    border: 1px solid #eef1f4; 
    padding: 40px 30px; 
    border-radius: 8px; 
    text-decoration: none !important; 
    color: var(--text-dark) !important;
    display: flex; 
    flex-direction: column; 
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative; 
    overflow: hidden;
    min-height: 160px;
    border-left: 8px solid #cbd5e1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.npg-vintage .vintage-box h3 { 
    margin: 0; 
    font-size: 1.15rem; 
    line-height: 1.4; 
    z-index: 2;
}

.npg-vintage .link-hint {
    font-size: 0.75rem; 
    text-transform: uppercase; 
    letter-spacing: 1.5px;
    font-weight: 800; 
    margin-top: 15px; 
    opacity: 0;
    transform: translateX(-10px); 
    transition: 0.3s;
    color: white;
    z-index: 2;
}

/* Hover Effetti */
.npg-vintage .vintage-box:hover { 
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(125, 155, 182, 0.2);
    border-left-width: 15px;
}

.npg-vintage .vintage-box:hover h3, 
.npg-vintage .vintage-box:hover .link-hint { 
    color: white !important; 
}

.npg-vintage .vintage-box:hover .link-hint { 
    opacity: 1; 
    transform: translateX(0); 
}

/* Classi Colore */
.npg-vintage .c1:hover { border-left-color: var(--v-blue); background-color: var(--v-blue); }
.npg-vintage .c3:hover { border-left-color: var(--v-teal); background-color: var(--v-teal); }
.npg-vintage .c4:hover { border-left-color: var(--v-slate); background-color: var(--v-slate); }
.npg-vintage .c6:hover { border-left-color: var(--v-green); background-color: var(--v-green); }
.npg-vintage .c7:hover { border-left-color: var(--v-purple); background-color: var(--v-purple); }
.npg-vintage .c8:hover { border-left-color: var(--v-brown); background-color: var(--v-brown); }

/* RESPONSIVE */
@media (max-width: 600px) {
    .npg-vintage .hero-banner { height: 180px; }
    .npg-vintage .hero-banner h1 { font-size: 1.8rem; }
    .npg-vintage .intro-box { padding: 25px; }
    .npg-vintage .intro-box h2 { font-size: 1.5rem; }
    .npg-vintage .vintage-grid { grid-template-columns: 1fr; }
}



/* --- SEZIONE VOCI TEMATICHE --- */
.npg-voci-tematiche {
    --primary-color: #7b1fa2; 
    --primary-light: #f3e5f5;
    --accent-color: #ef8e71; 
    --text-dark: #311b92;
    --white: #ffffff;
}

.npg-voci-tematiche {
    font-family: 'Open Sans', sans-serif;
    color: #333;
    line-height: 1.6;
}

.npg-voci-tematiche h1, 
.npg-voci-tematiche h2, 
.npg-voci-tematiche h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-voci-tematiche .hero-banner {
    width: 100%;
    height: 250px;
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/voci_tematiche.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-voci-tematiche .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.1);
}

.npg-voci-tematiche .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
}

.npg-voci-tematiche .hero-content h1 {
    color: white;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-size: 2.2rem;
    margin: 0;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}

/* STICKY SEARCH & NAV */
.npg-voci-tematiche .sticky-header { 
    position: sticky; 
    top: 0; 
    z-index: 100; 
    background: white; 
    padding: 15px 20px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; 
}

.npg-voci-tematiche .search-wrapper { max-width: 850px; margin: 0 auto; }

.npg-voci-tematiche #npg-voci-search { 
    width: 100%; 
    padding: 12px 25px; 
    border-radius: 40px; 
    border: 2px solid #eee; 
    font-size: 1.1rem; 
    outline: none; 
    transition: 0.3s;
    font-family: 'Open Sans', sans-serif;
}

.npg-voci-tematiche #npg-voci-search:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 0 15px rgba(123,31,162,0.15); 
}

.npg-voci-tematiche .az-nav { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    gap: 4px; 
    margin-top: 12px; 
    max-width: 900px; 
    margin-left: auto; 
    margin-right: auto; 
}

.npg-voci-tematiche .az-nav a { 
    text-decoration: none !important; 
    color: var(--primary-color) !important; 
    font-weight: bold; 
    padding: 4px 10px; 
    border-radius: 5px; 
    font-size: 0.85rem; 
    transition: 0.2s; 
    background: var(--primary-light); 
}

.npg-voci-tematiche .az-nav a:hover { 
    background: var(--primary-color); 
    color: white !important; 
}

/* INTRO BOX */
.npg-voci-tematiche .intro-box { 
    background: white; 
    padding: 35px; 
    border-radius: 15px; 
    margin: 40px auto; 
    max-width: 1000px;
    border-left: 10px solid var(--accent-color); 
    box-shadow: 0 4px 15px rgba(0,0,0,0.04); 
}

.npg-voci-tematiche .intro-box p { font-style: italic; font-size: 1.05rem; margin: 0; }

.npg-voci-tematiche .annate-link-box { 
    margin-top: 20px; 
    text-align: center; 
    background: #fffafa; 
    padding: 20px; 
    border-radius: 12px; 
    border: 1px solid #fce4ec; 
}

.npg-voci-tematiche .btn-annate { 
    display: inline-block; 
    background: var(--primary-color); 
    color: white !important; 
    padding: 12px 30px; 
    border-radius: 30px; 
    text-decoration: none !important; 
    font-weight: bold; 
    transition: 0.3s; 
    margin-top: 10px; 
    letter-spacing: 1px; 
}

.npg-voci-tematiche .btn-annate:hover { 
    transform: scale(1.05); 
    box-shadow: 0 8px 20px rgba(123,31,162,0.3); 
}

/* GRIGLIA RISULTATI */
.npg-voci-tematiche .letter-group { margin-bottom: 50px; max-width: 1100px; margin-left: auto; margin-right: auto; padding: 0 20px; }

.npg-voci-tematiche .letter-title { 
    font-size: 3rem; 
    font-weight: 900; 
    color: #eceff1; 
    margin-bottom: 15px; 
    border-bottom: 4px solid #f1f5f9; 
    font-family: 'Raleway', sans-serif;
}

.npg-voci-tematiche .voci-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); 
    gap: 15px; 
}

.npg-voci-tematiche .voce-card { 
    background: white; 
    padding: 16px 20px; 
    border-radius: 10px; 
    text-decoration: none !important; 
    color: #444 !important; 
    border: 1px solid #f1f5f9; 
    transition: all 0.2s ease; 
    font-weight: 700; 
    display: flex; 
    align-items: center; 
    justify-content: space-between;
    border-bottom: 3px solid #eee;
}

.npg-voci-tematiche .voce-card:hover { 
    border-color: var(--primary-color); 
    color: var(--primary-color) !important; 
    background: var(--primary-light); 
    transform: translateX(5px);
    border-bottom-color: var(--primary-color);
}

.npg-voci-tematiche mark { background: var(--accent-color); color: white; padding: 0 2px; border-radius: 3px; }

@media (max-width: 600px) {
    .npg-voci-tematiche .hero-banner { height: 180px; }
    .npg-voci-tematiche .hero-content h1 { font-size: 1.6rem; }
    .npg-voci-tematiche .az-nav { display: none; }
    .npg-voci-tematiche .voci-grid { grid-template-columns: 1fr; }
}



/* --- SEZIONE WEB-TV --- */
.npg-webtv {
    --primary-color: #718fd5; 
    --primary-dark: #5a73b5;
    --primary-light: #f1f4fb;
    --text-dark: #2c3e50;
    --white: #ffffff;
}

.npg-webtv {
    font-family: 'Open Sans', sans-serif;
    color: #334155;
    line-height: 1.6;
}

.npg-webtv h1, 
.npg-webtv h2, 
.npg-webtv h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-webtv .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/web-tv.png');
    background-size: cover;
    background-position: left top;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-webtv .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.1); 
}

.npg-webtv .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-webtv .hero-content h1 { 
    font-size: 2.5rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.4); 
}

.npg-webtv .hero-content p { 
    font-size: 1.1rem; 
    margin-top: 5px;
    opacity: 0.95;
    text-shadow: 1px 1px 8px rgba(0,0,0,0.3);
    font-style: italic;
}

/* CONTAINER & RICERCA */
.npg-webtv .main-container { 
    max-width: 1100px; 
    margin: 40px auto; 
    padding: 0 20px 60px; 
}

.npg-webtv .search-wrapper { 
    max-width: 600px; 
    margin: 0 auto 40px; 
}

.npg-webtv #npg-webtv-search { 
    width: 100%; 
    padding: 15px 25px; 
    border-radius: 50px; 
    border: 2px solid #eee; 
    font-size: 1rem; 
    outline: none; 
    transition: 0.3s; 
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.npg-webtv #npg-webtv-search:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 15px 30px rgba(113, 143, 213, 0.15); 
}

/* GRID */
.npg-webtv .webtv-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 30px; 
}

/* CARD VIDEO */
.npg-webtv .video-card { 
    background: var(--white); 
    border: 1px solid #f1f1f1; 
    padding: 40px 25px; 
    border-radius: 20px; 
    text-decoration: none !important; 
    color: inherit !important;
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    text-align: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative; 
    overflow: hidden;
    min-height: 200px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    border-bottom: 5px solid #eee;
}

.npg-webtv .video-card::before {
    content: '▶'; 
    font-size: 1.8rem; 
    color: var(--primary-color);
    margin-bottom: 20px; 
    transition: 0.3s;
}

.npg-webtv .video-card:hover { 
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(113, 143, 213, 0.2);
    border-bottom-color: var(--primary-color);
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
}

.npg-webtv .video-card:hover, 
.npg-webtv .video-card:hover h3, 
.npg-webtv .video-card:hover p, 
.npg-webtv .video-card:hover .video-cta, 
.npg-webtv .video-card:hover::before {
    color: white !important;
}

.npg-webtv .video-card h3 { 
    margin: 0 0 12px; 
    font-size: 1.25rem; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    color: var(--text-dark);
}

.npg-webtv .video-card p { 
    font-size: 0.95rem; 
    color: #64748b; 
    margin: 0; 
    flex-grow: 1;
}

.npg-webtv .video-cta { 
    margin-top: 25px; 
    font-size: 0.75rem; 
    text-transform: uppercase; 
    font-weight: 800; 
    color: var(--primary-color); 
    font-style: italic;
}

.npg-webtv mark { background: #fff176; color: black; padding: 0 2px; border-radius: 3px; }

@media (max-width: 600px) {
    .npg-webtv .hero-banner { height: 180px; }
    .npg-webtv .hero-content h1 { font-size: 1.8rem; }
    .npg-webtv .webtv-grid { grid-template-columns: 1fr; }
}



/* --- SEZIONE ZIBALDONE --- */
.npg-zibaldone {
    --primary-color: #545b64; 
    --primary-light: #f1f3f4;
    --accent-color: #78909c; 
    --text-dark: #37474f;
    --white: #ffffff;
}

.npg-zibaldone {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-zibaldone h1, 
.npg-zibaldone h2, 
.npg-zibaldone h3,
.npg-zibaldone .area-title,
.npg-zibaldone .sub-area-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-zibaldone .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/zibaldone.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-zibaldone .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.15); 
}

.npg-zibaldone .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
}

.npg-zibaldone .hero-content h1 { 
    color: white;
    text-transform: uppercase;
    letter-spacing: 4px;
    font-size: 2.2rem;
    margin: 0;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.5);
}

/* STICKY SEARCH */
.npg-zibaldone .sticky-header { 
    position: sticky; 
    top: 0; 
    z-index: 100; 
    background: white; 
    padding: 15px 20px; 
    box-shadow: 0 4px 15px rgba(0,0,0,0.05); 
    text-align: center; 
}

.npg-zibaldone .search-wrapper { max-width: 850px; margin: 0 auto; }

.npg-zibaldone #npg-ziba-search { 
    width: 100%; 
    padding: 12px 25px; 
    border-radius: 40px; 
    border: 2px solid #eee; 
    font-size: 1.1rem; 
    outline: none; 
    transition: 0.3s;
    font-family: 'Open Sans', sans-serif;
}

.npg-zibaldone #npg-ziba-search:focus { 
    border-color: var(--primary-color); 
    box-shadow: 0 0 15px rgba(84,91,100,0.15); 
}

/* DASHBOARD */
.npg-zibaldone .dashboard { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 
    gap: 12px; 
    margin: 40px 0; 
}

.npg-zibaldone .dash-item { 
    background: var(--primary-color); 
    color: white !important; 
    padding: 15px; 
    border-radius: 12px; 
    text-decoration: none !important; 
    font-size: 0.75rem; 
    font-weight: 800; 
    text-align: center; 
    text-transform: uppercase; 
    transition: all 0.3s ease; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    min-height: 50px;
    letter-spacing: 1px;
}

.npg-zibaldone .dash-item:hover { 
    background: var(--accent-color); 
    transform: translateY(-4px); 
}

/* TITOLI AREE */
.npg-zibaldone .area-title { 
    background: #fff; 
    border-left: 8px solid var(--primary-color); 
    padding: 15px 25px; 
    margin: 60px 0 25px; 
    color: var(--primary-color); 
    text-transform: uppercase; 
    font-size: 1.5rem; 
    letter-spacing: 1px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03); 
}

.npg-zibaldone .sub-area-title { 
    color: var(--accent-color); 
    font-size: 1.1rem; 
    margin: 40px 0 20px; 
    padding-bottom: 8px; 
    border-bottom: 2px dashed #eceff1; 
    text-transform: uppercase;
}

/* GRID E CARDS */
.npg-zibaldone .zibaldone-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); 
    gap: 18px; 
}

.npg-zibaldone .card-item { 
    background: white; 
    border: 1px solid #f1f3f4; 
    padding: 20px; 
    border-radius: 10px; 
    text-decoration: none !important; 
    color: inherit !important; 
    transition: 0.3s; 
    display: flex; 
    flex-direction: column; 
    border-top: 4px solid #eceff1;
    min-height: 100px;
}

.npg-zibaldone .card-item:hover { 
    border-top-color: var(--accent-color); 
    background: var(--primary-light); 
    transform: translateY(-5px); 
}

.npg-zibaldone .item-title { 
    font-size: 0.95rem; 
    font-weight: 700; 
    color: #263238; 
    margin-bottom: 10px; 
    line-height: 1.4; 
    flex-grow: 1; 
}

.npg-zibaldone .item-link-label { 
    font-size: 0.75rem; 
    color: var(--accent-color); 
    font-style: italic; 
    font-weight: 800; 
    text-align: right; 
    text-transform: uppercase; 
}

.npg-zibaldone .footer-note { 
    margin: 60px auto; 
    padding: 30px; 
    background: #fff; 
    border-radius: 15px; 
    border: 1px solid #eceff1; 
    font-size: 0.9rem; 
    color: #546e7a; 
    text-align: center;
    border-bottom: 6px solid var(--primary-color);
}

.npg-zibaldone mark { background: #fff176; color: black; padding: 0 2px; border-radius: 3px; }

@media (max-width: 900px) { .npg-zibaldone .dashboard { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { 
    .npg-zibaldone .hero-banner { height: 180px; }
    .npg-zibaldone .zibaldone-grid { grid-template-columns: 1fr; } 
}


/* --- SEZIONE CHI SIAMO / INGRESSO --- */
.npg-chi-siamo {
    --primary-purple: #5b4a7d;
    --accent-teal: #5ab1bb;
    --accent-gold: #eab676;
    --text-dark: #2c3e50;
    --bg-light: #f4f7f6;
    --white: #ffffff;
    --banner-full-url: url('https://www.notedipastoralegiovanile.it/imgs/chi-siamo.png');
}

.npg-chi-siamo {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-chi-siamo h1, 
.npg-chi-siamo h2, 
.npg-chi-siamo h3, 
.npg-chi-siamo h4 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-chi-siamo .hero-banner {
    width: 100%;
    height: 300px; 
    background-image: var(--banner-full-url);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 5px solid var(--accent-gold);
}

.npg-chi-siamo .hero-content {
    text-align: center;
    background: rgba(255, 255, 255, 0.9);
    padding: 25px 40px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-chi-siamo .hero-content h1 { 
    font-size: 2.5rem; 
    margin: 0; 
    color: var(--primary-purple);
    text-transform: uppercase;
}

.npg-chi-siamo .hero-content a {
    display: inline-block;
    margin-top: 10px;
    color: var(--accent-teal);
    text-decoration: none !important;
    font-weight: 700;
    font-size: 1.2rem;
    transition: 0.3s;
}

/* WELCOME BOX */
.npg-chi-siamo .welcome-box {
    display: flex;
    align-items: center;
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.05);
    margin: 40px auto;
    max-width: 1100px;
    border-left: 8px solid var(--accent-gold);
}

.npg-chi-siamo .welcome-img {
    flex: 0 0 40%;
    max-width: 400px;
}

.npg-chi-siamo .welcome-img img { 
    width: 100%; 
    height: auto;
    display: block; 
}

.npg-chi-siamo .welcome-text { padding: 40px; flex: 1; }
.npg-chi-siamo .welcome-text h2 { font-size: 2.2rem; color: var(--primary-purple); margin-top: 0; }
.npg-chi-siamo .welcome-text p { font-size: 1.1rem; color: #555; font-style: italic; margin-bottom: 25px; }

/* GRID */
.npg-chi-siamo .mid-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin: 40px auto;
    max-width: 1100px;
}

.npg-chi-siamo .mid-card {
    position: relative;
    height: 220px;
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none !important;
    transition: 0.4s ease;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
    background-color: var(--primary-purple);
}

.npg-chi-siamo .mid-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.6)), var(--banner-full-url);
    background-size: cover;
    background-position: center;
    transition: 0.5s;
    z-index: 1;
}

.npg-chi-siamo .mid-card:hover::before { 
    transform: scale(1.1); 
    background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.8)), var(--banner-full-url);
    background-size: cover;
}

.npg-chi-siamo .mid-card h3 {
    position: relative;
    z-index: 2;
    color: var(--white) !important;
    font-size: 1.4rem;
    padding: 20px;
    margin: 0;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.8); 
}

/* PRIVACY */
.npg-chi-siamo .privacy-box {
    display: flex;
    align-items: center;
    background: #e9ecef;
    padding: 25px;
    border-radius: 15px;
    text-decoration: none !important;
    color: var(--text-dark) !important;
    transition: 0.3s;
    border: 1px solid #ddd;
    margin: 40px auto;
    max-width: 1100px;
}

.npg-chi-siamo .privacy-box:hover { background: #dee2e6; transform: translateY(-3px); }
.npg-chi-siamo .privacy-icon { flex: 0 0 80px; margin-right: 25px; }
.npg-chi-siamo .privacy-icon img { width: 100%; height: auto; }
.npg-chi-siamo .privacy-info h4 { margin: 0 0 5px; font-size: 1.3rem; color: var(--primary-purple); }
.npg-chi-siamo .privacy-info p { margin: 0; font-size: 0.95rem; color: #666; }

/* BUTTONS */
.npg-chi-siamo .btn-link {
    display: inline-block;
    padding: 10px 25px;
    background: var(--accent-teal);
    color: white !important;
    text-decoration: none !important;
    border-radius: 30px;
    font-weight: 600;
    transition: 0.3s;
}

.npg-chi-siamo .btn-link:hover { background: var(--primary-purple); }

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-chi-siamo .welcome-box { flex-direction: column; }
    .npg-chi-siamo .welcome-img { max-width: 100%; flex: none; }
    .npg-chi-siamo .mid-grid { grid-template-columns: 1fr; }
    .npg-chi-siamo .hero-content h1 { font-size: 1.8rem; }
    .npg-chi-siamo .privacy-box { flex-direction: column; text-align: center; }
    .npg-chi-siamo .privacy-icon { margin-right: 0; margin-bottom: 15px; }
}


/* --- SEZIONE ORATORIO --- */
.npg-oratorio {
    --primary-red: #e63946;
    --red-light: #fef2f2;
    --red-border: #fee2e2;
    --text-dark: #1f2937;
    --text-muted: #4b5563;
    --white: #ffffff;
}

.npg-oratorio {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-oratorio h1, 
.npg-oratorio h2, 
.npg-oratorio h3,
.npg-oratorio .section-title {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HEADER & HERO */
.npg-oratorio .header-box {
    text-align: center;
    padding: 40px 20px;
    background: #fcfcfc;
    border-bottom: 4px solid var(--primary-red);
    margin-bottom: 40px;
}

.npg-oratorio h1 {
    color: var(--primary-red);
    font-size: 2.8rem;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.npg-oratorio .subtitle {
    color: var(--primary-red);
    font-size: 1.5rem;
    margin-top: 0;
}

.npg-oratorio .hero-img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    margin-top: 30px;
}

/* INTRO BOX */
.npg-oratorio .intro-box {
    background-color: var(--red-light);
    border: 1px solid var(--red-border);
    padding: 30px;
    border-radius: 12px;
    margin-bottom: 40px;
}

.npg-oratorio .intro-box strong {
    display: block;
    margin-bottom: 15px;
    font-size: 1.1rem;
}

/* QUICK INDEX */
.npg-oratorio .quick-nav {
    background: #f3f4f6;
    padding: 15px;
    border-radius: 10px;
    text-align: center;
    font-weight: 700;
    margin-bottom: 50px;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* SECTIONS */
.npg-oratorio .content-section {
    margin-bottom: 60px;
    border-left: 6px solid var(--primary-red);
    padding-left: 30px;
}

.npg-oratorio .section-title {
    color: var(--primary-red);
    font-size: 1.8rem;
    margin-top: 0;
}

.npg-oratorio .section-desc {
    font-style: italic;
    color: var(--text-muted);
    margin-bottom: 25px;
}

/* LINK LISTS */
.npg-oratorio .resource-list {
    list-style: none;
    padding: 0;
}

.npg-oratorio .resource-list li {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f3f4f6;
}

.npg-oratorio .resource-list li strong {
    display: block;
    color: var(--text-dark);
    font-size: 1.05rem;
}

.npg-oratorio .resource-list a {
    color: #2563eb;
    text-decoration: none;
    font-size: 0.9rem;
    word-break: break-all;
}

.npg-oratorio .resource-list a:hover {
    text-decoration: underline;
}

/* BIBLIOGRAPHY */
.npg-oratorio .biblio-box {
    background: #f9fafb;
    padding: 40px;
    border-radius: 15px;
    border: 1px solid #e5e7eb;
    margin-bottom: 50px;
}

.npg-oratorio .biblio-list {
    font-size: 0.9rem;
    color: var(--text-muted);
    column-count: 1; /* Di default 1 colonna per mobile */
}

/* DOSSIER GRID */
.npg-oratorio .dossier-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

.npg-oratorio .dossier-card {
    background: var(--white);
    padding: 20px;
    border: 1px solid #eee;
    border-radius: 10px;
    transition: 0.3s;
    border-top: 4px solid var(--primary-red);
}

.npg-oratorio .dossier-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
}

.npg-oratorio .dossier-card h4 {
    margin: 0 0 8px 0;
    font-size: 1rem;
    color: var(--text-dark);
}

.npg-oratorio .dossier-date {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.npg-oratorio .dossier-link {
    color: var(--primary-red);
    font-weight: 700;
    text-decoration: none;
    font-size: 0.85rem;
}

/* RESPONSIVE */
@media (min-width: 768px) {
    .npg-oratorio .biblio-list { column-count: 2; column-gap: 40px; }
}

@media (max-width: 768px) {
    .npg-oratorio h1 { font-size: 2rem; }
    .npg-oratorio .dossier-grid { grid-template-columns: 1fr; }
}


/* --- SEZIONE TOUR --- */
.npg-tour {
    --primary-color: #d19c4c; 
    --primary-light: #f9f4ec;
    --accent-color: #f39c12;
    --dark: #334155;
    --text-muted: #475569;
    --bg: #fdfdfd;
    --white: #ffffff;
}

.npg-tour {
    font-family: 'Open Sans', sans-serif;
    color: var(--dark);
    line-height: 1.6;
}

.npg-tour h1, 
.npg-tour h2, 
.npg-tour h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-tour .hero-banner {
    width: 100%;
    height: 250px; 
    background-image: url('https://www.notedipastoralegiovanile.it/imgs/tour.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-bottom: 6px solid var(--primary-color);
}

.npg-tour .hero-banner::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.25);
}

.npg-tour .hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: white;
    padding: 20px;
}

.npg-tour .hero-content h1 { 
    font-size: 2.2rem; 
    text-transform: uppercase; 
    letter-spacing: 4px; 
    margin: 0; 
    text-shadow: 2px 2px 15px rgba(0,0,0,0.5); 
}

.npg-tour .hero-content p { 
    font-size: 1.1rem; 
    font-style: italic; 
    margin-top: 5px;
    text-shadow: 1px 1px 8px rgba(0,0,0,0.5);
}

/* INTRO BOX */
.npg-tour .intro-container { 
    max-width: 1000px; 
    margin: 40px auto; 
    padding: 0 20px; 
}

.npg-tour .intro-box { 
    background: white; 
    padding: 35px; 
    border-radius: 12px; 
    border-left: 8px solid var(--primary-color); 
    box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

.npg-tour .intro-box h2 {
    font-size: 1.8rem;
    color: var(--dark);
    margin: 0 0 15px 0;
}

.npg-tour .intro-box p { 
    margin-bottom: 15px; 
    color: var(--text-muted); 
    font-size: 1.05rem; 
}

/* GRID SYSTEM */
.npg-tour .main-grid { 
    display: grid; 
    grid-template-columns: repeat(6, 1fr); 
    gap: 20px; 
    max-width: 1200px;
    margin: 40px auto 80px;
    padding: 0 20px;
}

/* CARDS */
.npg-tour .tour-box { 
    position: relative; 
    border-radius: 15px; 
    overflow: hidden; 
    background: var(--white); 
    text-decoration: none !important; 
    color: inherit !important;
    display: flex; 
    flex-direction: column; 
    transition: all 0.3s ease;
    min-height: 250px; 
    border: 1px solid #f1f1f1;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
}

.npg-tour .tour-box:hover { 
    transform: translateY(-8px); 
    box-shadow: 0 15px 35px rgba(209,156,76,0.2); 
    border-bottom: 4px solid var(--primary-color);
}

.npg-tour .box-img { 
    position: absolute; 
    top: 0; left: 0; width: 100%; height: 100%; 
    background-size: cover; 
    background-position: center; 
    z-index: 1; 
    transition: transform 0.6s ease;
}

.npg-tour .tour-box:hover .box-img { transform: scale(1.1); }

.npg-tour .box-overlay { 
    position: absolute; 
    top: 0; left: 0; width: 100%; height: 100%; 
    z-index: 2; 
    background: linear-gradient(to top, rgba(0,0,0,0.85) 5%, rgba(0,0,0,0.1) 80%); 
}

.npg-tour .box-content { 
    position: relative; 
    z-index: 3; 
    padding: 25px; 
    margin-top: auto; 
    color: white; 
}

.npg-tour .box-content h3 { 
    font-size: 1.4rem; 
    margin: 0 0 8px; 
    color: var(--primary-color); 
}

.npg-tour .box-content p { 
    font-size: 0.9rem; 
    margin: 0; 
    opacity: 0.9; 
}

/* SPANS */
.npg-tour .col-3 { grid-column: span 3; }
.npg-tour .col-6 { grid-column: span 6; min-height: 180px; flex-direction: row; }
.npg-tour .col-1 { grid-column: span 1; min-height: 120px; }

.npg-tour .col-6 .box-content { margin-top: 0; align-self: center; padding: 40px; flex: 1; }
.npg-tour .col-6 .box-img { width: 35%; position: relative; height: 100%; }
.npg-tour .col-6 .box-overlay { background: linear-gradient(to right, rgba(0,0,0,0.9), transparent); }

/* NEWS BOXES */
.npg-tour .news-header { grid-column: span 6; margin: 50px 0 10px; border-bottom: 2px solid var(--primary-light); }
.npg-tour .news-header h2 { text-transform: uppercase; font-size: 1.2rem; color: var(--primary-color); letter-spacing: 2px; }

.npg-tour .news-box { 
    background: white; 
    border-top: 6px solid #eee; 
    text-align: center; 
    border-radius: 12px;
}
.npg-tour .news-box .box-content { color: var(--dark); padding: 15px 5px; margin: auto; }
.npg-tour .news-box h3 { font-size: 0.8rem; font-weight: 800; text-transform: uppercase; margin: 0; }

.npg-tour .n1 { border-top-color: #e53935; } .npg-tour .n1 h3 { color: #e53935; }
.npg-tour .n2 { border-top-color: #3949ab; } .npg-tour .n2 h3 { color: #3949ab; }
.npg-tour .n3 { border-top-color: #fb8c00; } .npg-tour .n3 h3 { color: #fb8c00; }
.npg-tour .n4 { border-top-color: #00897b; } .npg-tour .n4 h3 { color: #00897b; }
.npg-tour .n5 { border-top-color: #8e24aa; } .npg-tour .n5 h3 { color: #8e24aa; }
.npg-tour .n6 { border-top-color: #546e7a; } .npg-tour .n6 h3 { color: #546e7a; }

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-tour .col-3, .npg-tour .col-6, .npg-tour .col-1 { grid-column: span 6; }
    .npg-tour .col-6 { flex-direction: column; }
    .npg-tour .col-6 .box-img { width: 100%; height: 180px; }
    .npg-tour .main-grid { grid-template-columns: 1fr; }
    .npg-tour .col-1 { grid-column: span 1; }
}
@media (max-width: 600px) {
    .npg-tour .news-box { grid-column: span 6; }
}



/* --- SEZIONE CAMMINI (SUSSIDI) --- */
.npg-cammini {
    --accent-color: #1a3a5f;
    --bg-light: #f4f7f9;
    --text-dark: #2c2c2c;
    --white: #ffffff;
}

.npg-cammini {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-cammini h1, 
.npg-cammini h2, 
.npg-cammini h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HEADER / HERO */
.npg-cammini .hero-header {
    min-height: 300px;
    background: linear-gradient(rgba(26,58,95,0.7), rgba(26,58,95,0.7)), 
                url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?q=80&w=2071&auto=format&fit=crop');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--white);
    padding: 40px 20px;
    margin-bottom: 40px;
}

.npg-cammini .hero-header h1 {
    font-size: 3rem;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.npg-cammini .hero-header p {
    font-size: 1.2rem;
    font-style: italic;
    margin-top: 10px;
    opacity: 0.9;
}

/* GRID SYSTEM */
.npg-cammini .link-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 25px;
    max-width: 1200px;
    margin: 0 auto 60px;
    padding: 0 20px;
}

/* CARDS */
.npg-cammini .card {
    background: var(--white);
    padding: 40px 30px;
    border-radius: 15px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    text-decoration: none !important;
    color: inherit !important;
    transition: all 0.3s ease;
    border-bottom: 5px solid #eee;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.npg-cammini .card:hover {
    transform: translateY(-8px);
    border-bottom-color: var(--accent-color);
    box-shadow: 0 15px 35px rgba(26,58,95,0.15);
}

.npg-cammini .card i {
    font-size: 3rem;
    color: var(--accent-color);
    margin-bottom: 20px;
}

.npg-cammini .card h3 {
    margin: 0;
    font-size: 1.4rem;
    color: var(--accent-color);
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .npg-cammini .hero-header h1 { font-size: 2.2rem; }
    .npg-cammini .hero-header { min-height: 200px; }
}



/* --- SEZIONE CREATIVI E ATTIVI (HUB) --- */
.npg-creativi-attivi {
    --primary-green: #2d5a27;
    --bg-light: #f9f7f2;
    --white: #ffffff;
    --text-dark: #333333;
}

.npg-creativi-attivi {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
    background-color: var(--bg-light);
}

.npg-creativi-attivi h1, 
.npg-creativi-attivi h2 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO BANNER */
.npg-creativi-attivi .hero-banner {
    height: 400px;
    background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)), 
                url('https://www.notedipastoralegiovanile.it/imgs/creativi-attivi.jpg');
    background-size: cover; 
    background-position: center;
    display: flex; 
    align-items: center; 
    justify-content: center; 
    text-align: center; 
    color: var(--white);
}

.npg-creativi-attivi .hero-content h1 { 
    font-size: 3.5rem; 
    text-shadow: 2px 2px 10px rgba(0,0,0,0.5); 
    margin: 0;
    text-transform: uppercase;
}

.npg-creativi-attivi .hero-content p { 
    font-size: 1.1rem; 
    text-transform: uppercase; 
    letter-spacing: 3px; 
    margin-top: 10px;
}

/* GRID CONTAINER */
.npg-creativi-attivi .main-container { 
    max-width: 1200px; 
    margin: -60px auto 80px; 
    padding: 0 20px; 
}

.npg-creativi-attivi .hub-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
}

/* CARDS */
.npg-creativi-attivi .hub-card {
    position: relative;
    flex: 0 1 calc(33.333% - 20px);
    min-width: 300px;
    height: 400px;
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    padding: 30px;
    text-decoration: none !important;
    color: var(--white) !important;
    box-shadow: 0 15px 35px rgba(0,0,0,0.2);
    transition: transform 0.4s ease;
}

.npg-creativi-attivi .hub-card:hover { 
    transform: translateY(-10px); 
}

.npg-creativi-attivi .hub-card img { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    z-index: 1; 
    transition: 0.6s ease; 
}

.npg-creativi-attivi .hub-card:hover img { 
    transform: scale(1.1); 
}

.npg-creativi-attivi .hub-overlay { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: linear-gradient(to top, rgba(0,0,0,0.9) 10%, transparent 70%); 
    z-index: 2; 
}

.npg-creativi-attivi .hub-text { 
    position: relative; 
    z-index: 3; 
}

.npg-creativi-attivi .hub-text h2 { 
    font-size: 1.8rem; 
    margin-bottom: 5px; 
    color: #ffffff;
}

.npg-creativi-attivi .hub-text p { 
    font-size: 0.85rem; 
    opacity: 0.9; 
    text-transform: uppercase; 
    letter-spacing: 1px; 
    margin: 0;
}

/* RESPONSIVE */
@media (max-width: 992px) { 
    .npg-creativi-attivi .hub-card { flex: 0 1 calc(50% - 20px); } 
}

@media (max-width: 600px) { 
    .npg-creativi-attivi .hero-content h1 { font-size: 2.2rem; }
    .npg-creativi-attivi .hero-banner { height: 300px; }
    .npg-creativi-attivi .hub-card { flex: 0 1 100%; height: 350px; } 
}



/* --- SEZIONE DIZIONARIO DELL'UMANO --- */
.npg-dizionario {
    --primary-red: #b02a37;
    --bg-paper: #fdfdfb;
    --text-dark: #333333;
    --text-muted: #555555;
    --border-light: #f0e6d6;
    --white: #ffffff;
}

.npg-dizionario {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.8;
    background-color: var(--bg-paper);
    padding: 40px 20px;
}

.npg-dizionario h1, 
.npg-dizionario h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
}

/* HEADER */
.npg-dizionario .header-title {
    text-align: center;
    margin-bottom: 50px;
}

.npg-dizionario h1 {
    font-size: 2.8rem;
    color: var(--primary-red);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-bottom: 3px solid var(--primary-red);
    display: inline-block;
    padding-bottom: 10px;
}

.npg-dizionario .subtitle {
    color: var(--primary-red);
    font-size: 1.4rem;
    margin-top: 15px;
    font-style: italic;
    font-weight: 400;
}

/* IMMAGINE E DOWNLOAD */
.npg-dizionario .hero-box {
    background-color: var(--white);
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.06);
    border: 1px solid var(--border-light);
    margin-bottom: 60px;
    text-align: center;
}

.npg-dizionario .main-img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.15);
    border: 8px solid var(--white);
}

.npg-dizionario .btn-download {
    background-color: var(--primary-red);
    color: var(--white) !important;
    padding: 18px 40px;
    text-decoration: none !important;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1.2rem;
    display: inline-block;
    transition: 0.3s ease;
    box-shadow: 0 4px 15px rgba(176, 42, 55, 0.3);
    margin-top: 30px;
}

.npg-dizionario .btn-download:hover {
    transform: scale(1.03);
    box-shadow: 0 6px 20px rgba(176, 42, 55, 0.4);
}

/* INTRODUZIONE */
.npg-dizionario .intro-text {
    max-width: 900px;
    margin: 0 auto 60px;
    font-size: 1.15rem;
    color: #444;
    text-align: justify;
    border-left: 5px solid var(--primary-red);
    padding-left: 30px;
}

/* GRIGLIA PARTI */
.npg-dizionario .parts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    max-width: 900px;
    margin: 0 auto;
}

.npg-dizionario .part-card {
    background-color: var(--white);
    padding: 35px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    border-top: 6px solid var(--primary-red);
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.npg-dizionario .part-label {
    color: var(--primary-red);
    font-weight: 800;
    font-size: 0.85rem;
    text-transform: uppercase;
    margin-bottom: 5px;
    display: block;
}

.npg-dizionario .part-card h3 {
    font-size: 1.6rem;
    margin: 0 0 15px 0;
    color: var(--text-dark);
}

.npg-dizionario .word-list {
    font-size: 1.2rem;
    color: var(--text-muted);
    font-weight: 300;
    margin: 0;
}

/* FOOTER */
.npg-dizionario .footer-note {
    text-align: center;
    margin-top: 60px;
    border-top: 1px solid #eee;
    padding-top: 40px;
    opacity: 0.5;
    letter-spacing: 2px;
    font-size: 0.8rem;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .npg-dizionario h1 { font-size: 1.8rem; }
    .npg-dizionario .intro-text { font-size: 1rem; padding-left: 15px; }
    .npg-dizionario .btn-download { width: 100%; font-size: 1rem; box-sizing: border-box; }
}


/* --- SEZIONE INTERIORITÀ --- */
.npg-interiorita {
    --primary-red: #e63946;
    --red-hover: #c1121f;
    --bg-fondamenti: #fdf8f0;
    --bg-approfondimenti: #f4f8f4;
    --bg-raccontare: #f5f7fa;
    --text-dark: #333333;
    --white: #ffffff;
}

.npg-interiorita {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-interiorita h1, 
.npg-interiorita h2, 
.npg-interiorita h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    margin-top: 0;
}

/* HERO BANNER */
.npg-interiorita .hero-banner {
    width: 100%;
    min-height: 400px;
    background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), 
                url('https://www.notedipastoralegiovanile.it/imgs/interiorita.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 40px 20px;
}

.npg-interiorita .hero-glass {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(10px);
    padding: 40px;
    border-radius: 20px;
    max-width: 800px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-interiorita .hero-glass h1 {
    color: var(--primary-red);
    font-size: 2.8rem;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.npg-interiorita .hero-subtitle {
    font-size: 1.5rem;
    font-style: italic;
    color: #000;
}

.npg-interiorita .hero-author {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 2px solid var(--primary-red);
    display: inline-block;
    font-weight: 600;
    color: #444;
}

/* INTRO BOX */
.npg-interiorita .intro-box {
    max-width: 900px;
    margin: 60px auto;
    padding: 30px;
    background: var(--white);
    border-left: 6px solid var(--primary-red);
    font-style: italic;
    font-size: 1.2rem;
    text-align: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

/* SEZIONI FULL WIDTH */
.npg-interiorita .section-wrap {
    padding: 80px 20px;
    width: 100%;
}

.npg-interiorita .section-header {
    text-align: center;
    font-size: 2.2rem;
    color: var(--primary-red);
    text-transform: uppercase;
    margin-bottom: 50px;
}

/* GRID SYSTEM */
.npg-interiorita .npg-grid {
    display: grid;
    gap: 30px;
    max-width: 1100px;
    margin: 0 auto;
}

.npg-interiorita .grid-2 { grid-template-columns: repeat(2, 1fr); }
.npg-interiorita .grid-3 { grid-template-columns: repeat(3, 1fr); }
.npg-interiorita .grid-4 { grid-template-columns: repeat(4, 1fr); }

/* CARDS */
.npg-interiorita .npg-card {
    background: var(--white);
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease;
    border: 1px solid rgba(0,0,0,0.05);
}

.npg-interiorita .npg-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.npg-interiorita .npg-card h3 {
    color: var(--primary-red);
    font-size: 1.3rem;
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eee;
}

.npg-interiorita .npg-card p {
    font-size: 0.95rem;
    color: #555;
    flex-grow: 1;
}

.npg-interiorita .card-link {
    margin-top: 20px;
    font-weight: 700;
    color: #0056b3;
    text-decoration: none !important;
}

.npg-interiorita .card-link:hover { text-decoration: underline !important; }

/* LISTE INTERNE */
.npg-interiorita .sub-list {
    margin: 15px 0 0;
    padding: 0;
    list-style: none;
}

.npg-interiorita .sub-list li {
    margin-bottom: 10px;
    padding-left: 15px;
    border-left: 3px solid #ffcc00;
}

.npg-interiorita .sub-list a {
    color: var(--text-dark);
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.9rem;
}

.npg-interiorita .sub-list a:hover { color: var(--primary-red); }

/* RESPONSIVE */
@media (max-width: 1024px) {
    .npg-interiorita .grid-3, .npg-interiorita .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .npg-interiorita .grid-2, .npg-interiorita .grid-3, .npg-interiorita .grid-4 { grid-template-columns: 1fr; }
    .npg-interiorita .hero-glass h1 { font-size: 1.8rem; }
    .npg-interiorita .hero-banner { min-height: 300px; }
}



/* --- SEZIONE RACCONTARE (SUSSIDI) --- */
.npg-raccontare {
    --accent-color: #599d23;
    --bg-light: #f9f7f2;
    --text-dark: #2c2c2c;
    --white: #ffffff;
}

.npg-raccontare {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.6;
}

.npg-raccontare h1, 
.npg-raccontare h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HEADER / HERO */
.npg-raccontare .hero-header {
    min-height: 300px;
    background: linear-gradient(rgba(45,90,39,0.75), rgba(45,90,39,0.75)), 
                url('https://www.notedipastoralegiovanile.it/imgs/pila_libri.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--white);
    padding: 40px 20px;
}

.npg-raccontare .hero-header h1 {
    font-size: 3rem;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
}

.npg-raccontare .hero-header p {
    font-size: 1.2rem;
    margin-top: 10px;
    opacity: 0.9;
    font-style: italic;
}

/* GRID SYSTEM */
.npg-raccontare .link-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 25px;
    max-width: 1200px;
    margin: 40px auto 60px;
    padding: 0 20px;
}

/* CARDS */
.npg-raccontare .card {
    background: var(--white);
    padding: 40px 30px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    text-decoration: none !important;
    color: inherit !important;
    transition: all 0.3s ease;
    border-bottom: 5px solid #eee;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.npg-raccontare .card:hover {
    transform: translateY(-8px);
    border-bottom-color: var(--accent-color);
    box-shadow: 0 15px 35px rgba(89,157,35,0.15);
}

.npg-raccontare .card i {
    font-size: 2.8rem;
    color: var(--accent-color);
    margin-bottom: 20px;
}

.npg-raccontare .card h3 {
    margin: 0;
    font-size: 1.4rem;
    color: var(--text-dark);
}

.npg-raccontare .card:hover h3 {
    color: var(--accent-color);
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .npg-raccontare .hero-header h1 { font-size: 2.2rem; }
    .npg-raccontare .hero-header { min-height: 220px; }
    .npg-raccontare .link-grid { grid-template-columns: 1fr; }
}


/* --- SEZIONE VIAGGIARE (SUSSIDI) --- */
.npg-viaggiare {
    --text-dark: #2c3e50;
    --text-muted: #34495e;
    --white: #ffffff;
    --roma-red: #962d2d;
    --italia-green: #2d5a27;
    --europa-navy: #1a3a5f;
    --santuari-blue: #1a5276;
    --bg-light: #fdfdfb;
}

.npg-viaggiare {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.8;
}

.npg-viaggiare h1, 
.npg-viaggiare h2 {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
}

/* HERO SECTION */
.npg-viaggiare .hero-banner {
    height: 500px;
    background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.5)), 
                      url('https://www.notedipastoralegiovanile.it/imgs/viaggiare.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.npg-viaggiare .hero-glass {
    padding: 40px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    max-width: 90%;
}

.npg-viaggiare .hero-glass h1 {
    color: var(--white);
    font-size: 4rem;
    letter-spacing: 10px;
    text-transform: uppercase;
    margin: 0;
    text-shadow: 3px 3px 15px rgba(0,0,0,0.5);
}

.npg-viaggiare .hero-glass p {
    color: var(--white);
    font-size: 1.2rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 300;
    margin-top: 20px;
}

/* INTRO BOX */
.npg-viaggiare .intro-box {
    max-width: 850px;
    margin: -60px auto 80px;
    background: var(--white);
    padding: 50px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    position: relative;
    z-index: 10;
    border: 1px solid #f0f0f0;
    font-size: 1.3rem;
    color: var(--text-muted);
    text-align: center;
    line-height: 2;
    font-style: italic;
}

/* GRID SECTIONS */
.npg-viaggiare .grid-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto 100px;
    padding: 0 20px;
}

.npg-viaggiare .img-box {
    width: 100%;
    height: 450px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.npg-viaggiare .text-content h2 {
    font-size: 2.2rem;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.npg-viaggiare .text-content p {
    text-align: justify;
    margin-bottom: 30px;
}

/* BUTTONS */
.npg-viaggiare .btn-progetto {
    display: inline-block;
    padding: 15px 35px;
    text-decoration: none !important;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    border-radius: 50px;
    transition: 0.3s;
    color: var(--white) !important;
}

.npg-viaggiare .btn-progetto:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    filter: brightness(1.1);
}

/* VARIANTI COLORI */
.npg-viaggiare .roma h2 { color: var(--roma-red); }
.npg-viaggiare .roma .btn-progetto { background-color: var(--roma-red); }

.npg-viaggiare .italia h2 { color: var(--italia-green); }
.npg-viaggiare .italia .btn-progetto { background-color: var(--italia-green); }

.npg-viaggiare .europa h2 { color: var(--europa-navy); }
.npg-viaggiare .europa .btn-progetto { background-color: var(--europa-navy); }

.npg-viaggiare .santuari h2 { color: var(--santuari-blue); }
.npg-viaggiare .santuari .btn-progetto { background-color: var(--santuari-blue); }

/* FOOTER */
.npg-viaggiare .footer-note {
    text-align: center;
    padding: 80px 20px;
    opacity: 0.6;
    letter-spacing: 3px;
    font-size: 0.8rem;
}

/* RESPONSIVE */
@media (max-width: 900px) {
    .npg-viaggiare .grid-section {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
    }
    .npg-viaggiare .hero-glass h1 { font-size: 2.5rem; letter-spacing: 5px; }
    .npg-viaggiare .img-box { height: 300px; }
    .npg-viaggiare .grid-section div { order: 0 !important; } /* Reset ordine alternato su mobile */
    .npg-viaggiare .text-content p { text-align: center; }
}


/* --- SEZIONE VITA DELLO SPIRITO --- */
.npg-vita-spirito {
    --text-dark: #2c3e50;
    --text-muted: #555555;
    --fede-red: #9e1b32;
    --speranza-green: #1b5e20;
    --carita-blue: #0d47a1;
    --white: #ffffff;
    --bg-light: #fdfdfd;
}

.npg-vita-spirito {
    font-family: 'Open Sans', sans-serif;
    color: var(--text-dark);
    line-height: 1.8;
}

.npg-vita-spirito h1, 
.npg-vita-spirito h2, 
.npg-vita-spirito h3 {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
}

/* HERO SECTION */
.npg-vita-spirito .hero-banner {
    height: 450px;
    background-image: linear-gradient(rgba(255,255,255,0.2), rgba(255,255,255,0.4)), 
                      url('https://www.notedipastoralegiovanile.it/imgs/percorsi.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.npg-vita-spirito .hero-content {
    padding: 40px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(5px);
    border-radius: 4px;
    max-width: 90%;
}

.npg-vita-spirito .hero-content h1 {
    font-size: 3.5rem;
    text-transform: uppercase;
    margin: 0;
    line-height: 1.1;
    color: var(--text-dark);
}

.npg-vita-spirito .hero-divider {
    width: 60px;
    height: 3px;
    background-color: var(--fede-red);
    margin: 20px auto;
}

.npg-vita-spirito .hero-content p {
    font-size: 1.1rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #555;
    margin: 0;
}

/* INTRO TEXT */
.npg-vita-spirito .intro-box {
    max-width: 850px;
    margin: 60px auto;
    padding: 40px;
    font-size: 1.2rem;
    color: #34495e;
    text-align: center;
    line-height: 2;
    font-style: italic;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}

/* SECTION GRID */
.npg-vita-spirito .section-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 60px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 20px;
}

.npg-vita-spirito .img-aside {
    text-align: center;
}

.npg-vita-spirito .img-aside img {
    width: 100%;
    max-width: 280px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.npg-vita-spirito .text-aside h2 {
    font-size: 2.2rem;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.npg-vita-spirito .section-motto {
    font-style: italic;
    font-size: 1.3rem;
    margin-bottom: 20px;
    display: block;
}

/* DOWNLOAD BUTTONS */
.npg-vita-spirito .btn-pdf {
    display: inline-block;
    margin-top: 25px;
    padding: 12px 25px;
    color: var(--white) !important;
    text-decoration: none !important;
    border-radius: 4px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.9rem;
    transition: 0.3s;
    text-align: center;
}

.npg-vita-spirito .btn-pdf:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
    filter: brightness(1.1);
}

/* COLORS BY SECTION */
.npg-vita-spirito .fede h2 { color: var(--fede-red); }
.npg-vita-spirito .fede .section-motto { color: var(--fede-red); }
.npg-vita-spirito .fede .btn-pdf { background-color: var(--fede-red); }

.npg-vita-spirito .speranza h2 { color: var(--speranza-green); }
.npg-vita-spirito .speranza .section-motto { color: var(--speranza-green); }
.npg-vita-spirito .speranza .btn-pdf { background-color: var(--speranza-green); }

.npg-vita-spirito .carita h2 { color: var(--carita-blue); }
.npg-vita-spirito .carita .section-motto { color: var(--carita-blue); }
.npg-vita-spirito .carita .btn-pdf { background-color: var(--carita-blue); }

/* FOOTER */
.npg-vita-spirito .footer-wrap {
    padding: 80px 20px;
    text-align: center;
    background-color: #fdfdfd;
}

.npg-vita-spirito .footer-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.npg-vita-spirito .footer-copy {
    font-size: 0.8rem;
    color: #95a5a6;
    letter-spacing: 3px;
    text-transform: uppercase;
}

/* RESPONSIVE */
@media (max-width: 800px) {
    .npg-vita-spirito .section-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
        padding: 40px 20px;
    }
    .npg-vita-spirito .hero-content h1 { font-size: 2.2rem; }
    .npg-vita-spirito .img-aside { order: 0 !important; }
    .npg-vita-spirito .text-aside { order: 1 !important; }
}





