/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* Global - Spectra first container */
.entry-content > * {
    margin-bottom: 0;
}

/* Global - Pulsanti */
.wp-block-button .wp-block-button__link {
	transition: all .2s linear;
}

/* Global - Ast header */
header.entry-header .post-thumb img, .ast-single-post-featured-section.post-thumb img {
	max-height: 500px
}
/* Global - Ast container */
@media (max-width: 921px) {
    .ast-separate-container #content .ast-container, .ast-container, .ast-container-fluid {
        padding-left: 0;
        padding-right: 0;
    }
}
@media (max-width: 544px) {
	.ast-separate-container .site-content .ast-single-post-featured-section + article {
	margin-top: 20px
	}
	.wp-block-social-links {
		justify-content: center
	}
}
@media (min-width: 545px) and (max-width: 921px) { 
	.ast-separate-container .site-content .ast-single-post-featured-section + article {
		max-width: 95%;
		margin-left: auto;
		margin-right: auto
	}
	header.entry-header .post-thumb, .ast-single-post-featured-section.post-thumb {
		margin-right: -20px;
		margin-left: -20px
	}
}

/* Global - Glightbox */
.pods-gl-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); 
    gap: 15px;  
}

.pods-gl-item { 
    display: block; 
    border-radius: 8px; 
    overflow: hidden; 
}

.pods-gl-item img { 
    width: 100%; 
    height: 160px; 
    object-fit: cover; 
    display: block; 
    transition: transform 0.4s ease; 
}

.pods-gl-item:hover img { 
    transform: scale(1.06); 
}

/* Global - Glightbox - Responsive */
@media (max-width: 768px) { 
    .pods-gl-grid { 
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); 
    } 
	.pods-gl-item img { 
		height: 130px; 
	}
}

/* Global - Spectra post grid */
.uagb-post-grid.is-grid.uagb-post__image-position-top .uagb-post__image a[class^="uagb-image-ratio-"]>img {
    object-fit: cover;
}
.uagb-post-grid .uagb-post__cta {
    display: flex;
}
.uagb-post__inner-wrap {
    transition: transform 0.3s ease-out, box-shadow 0.3s ease-out !important;
}
.uagb-post__inner-wrap:hover {
    transform: translateY(-10px);
}
.uagb-post__inner-wrap .uagb-post__image img {
    transition: transform 0.3s ease-in-out;
    will-change: transform;
}
.uagb-post__inner-wrap:hover .uagb-post__image img {
    transform: scale(1.05);
    transition: transform 0.3s ease;
}

/* Global - Spectra post grid - Responsive */
@media only screen and (max-width: 767px) {
    .uagb-post__image-position-top.is-grid .uagb-post__inner-wrap .uagb-post__image:first-child {
        margin-left: -20px;
        margin-right: -20px;
        margin-top: -20px;
    }
}

/* Global - Pods pagination */
.pods-pagination-paginate {
	width: 100%;
    display: flex;
    justify-content: left;
    gap: 0;
    padding: 40px 0;
    margin-top: 20px;
}

.pods-pagination-paginate a, .pods-pagination-paginate span, .uagb-post-pagination-wrap a {
	background-color: #e4e4e4;
    color: #777777;
	padding: 5px 10px;
    margin: 0;
    margin-right: 4px;
    margin-bottom: 5px;
	min-width: 40px;
	display: flex;
	justify-content: center
}

.uagb-post-pagination-wrap span, .pods-pagination-paginate span {
	background-color: #fff!important;
}

/* Organigramma */
.griglia-membri {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 25px;
	padding: 20px 0;
}

.card-membro {
	background: #ffffff;
	border: 1px solid #eaeaea;
	border-radius: 12px;
	padding: 20px;
	text-align: center;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
	transition: all 0.3s ease;
	position: relative;
}

.card-membro:hover {
	transform: translateY(-5px);
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}

.foto-membro {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 15px;
	border: 3px solid #f8f9fa;
}

.membro-nome {
	color: #222;
	margin-top: 15px;
	margin-bottom: 5px;
	display: block;
}

.membro-ruolo {
	font-size: 0.85rem;
	color: #026cb8;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0;
	margin-bottom: 0;
	display: flex;
	justify-content: center;
}

.badge-esterno {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 8px;
	font-size: 14px;
	line-height: 1.4;
	border-radius: 999px;
	background: #026cb8;
	color: #fff;
	position: absolute;
	top: 25px;
	right: 25px;
}

.membro-ruoli {
	margin: 6px 0 0;
	padding-left: 18px;
}

.membro-ruoli li {
	margin: 2px 0;
}

/* Organigramma - Responsive */
@media only screen and (max-width: 767px) {
	.card-membro {
		padding: 0;
		text-align: left;
		overflow: hidden
	}
	.membro-contenitore {
		display: flex;
		gap: 20px;
		align-items: center
	}
	.membro-immagine img {
		max-width: 125px;
		border-radius: 100%;
        padding: 15px;
	}
	.membro-ruolo {
		justify-content: left
	}
	.membro-nome {
		margin-top: 0
	}
	.badge-esterno {
		bottom: 10px;
    	left: 25px;
		top: unset;
		right: unset;
	}
}

/* Area operativa  */
.postid-383 .ast-single-entry-banner {
	background-color: #006db8;
}
.postid-384 .ast-single-entry-banner {
	background-color: #d9010e;
}
.postid-385 .ast-single-entry-banner {
	background-color: #fc9c00;
}
.postid-383 .ast-single-entry-banner .entry-title, .postid-384 .ast-single-entry-banner .entry-title, .postid-385 .ast-single-entry-banner .entry-title {
	color: #fff
}

.area-sezione-box {
    margin-bottom: 30px;
    padding: 25px;
    background: #fafafa;
    border: 1px solid #eee;
    border-radius: 12px;
}

.responsabili-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.responsabile-card {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.persona-foto img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
	cursor: default;
}

.persona-info strong {
    display: block;
    font-size: 1.1rem;
    color: #333;
    line-height: 1.2;
    margin-bottom: 4px;
}

.persona-info .ruolo-label {
    display: block;
    color: #026cb8;
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
}

.responsabile-link {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
}

.servizio-titolo-main {
	margin-top: 0;
	color: #026cb8;
}

.sedi-cards-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 15px;
    margin-top: 15px;
}

.sedi-label-preview {
	font-weight: 600;
}
.sede-mini-card-link {
    text-decoration: none !important;
    display: block;
}

.sede-mini-card {
    position: relative;
    background: #fff;
    border-radius: 8px;
    padding: 20px;
    padding-right: 50px; /* Spazio per la freccia */
    border-left: 5px solid #026cb8;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: all 0.3s ease;
    height: 100%;
}

.sede-mini-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    background: #fdfdfd;
}

.sede-tipologia {
    display: block;
    font-weight: 600;
    color: #026cb8;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.sede-info-main {
    color: #333;
    font-size: 1.05rem;
    margin-bottom: 5px;
}

.sede-comune {
    font-weight: 600;
}

.sede-associazione {
    font-size: 0.9rem;
    color: #026cb8;
    font-style: italic;
}

.sede-chevron {
    position: absolute;
    right: 20px;
    bottom: 0;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    background: #eee;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.sede-mini-card:hover .sede-chevron {
    background: #026cb8;
}

.sede-chevron::after {
    content: '';
    width: 8px;
    height: 8px;
    border-top: 2px solid #999;
    border-right: 2px solid #999;
    transform: rotate(45deg);
    margin-right: 3px;
}

.sede-mini-card:hover .sede-chevron::after {
    border-color: #fff;
}

/* Sede */
.single-sede .entry-header {
	display: flex;
	align-items: center;
	gap: 20px
}
.single-sede .ast-article-single section {
	margin-bottom: 50px
}
.sede-header-intro {
    display: flex;
    gap: 30px;
    align-items: flex-start;
    margin-bottom: 40px;
}

.sede-info-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 25px; 
}

.sede-logo-main { 
	flex-shrink: 0; 
	width: 140px
}
.sede-logo-main img { 
	background: #fff;
	width: 100%; 
	min-width: 140px; 
	height: 100%; 
	min-height: 140px; 
	border-radius: 100%; 
	border: 1px solid #dedede 
}
.sezione-titolo { 
	margin: 0 0 25px 0; 
	color: #333; 
	display: inline-block; 
	align-self: flex-start;
}

.staff-grid-linear {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}
.staff-card-mini {
    display: flex;
    align-items: center;
    background: #fdfdfd;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #eee;
    transition: transform 0.2s ease;
}
.staff-img-wrapper { width: 80px; height: auto; margin-right: 15px; flex-shrink: 0; }
.staff-img-wrapper img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.staff-dettagli .staff-ruolo { display: block; color: #026cb8; font-weight: 600; text-transform: uppercase; font-size: 0.85rem; margin-bottom: 2px; }
.staff-dettagli .staff-nome { font-family: 'Nunito', sans-serif; font-size: 20px; color: #222; font-weight: 700}

.dettagli-list {
	background: #fdfdfd;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid #eee;
    margin: 0;
    list-style: none !important;
}
.dettagli-item {
	line-height: 1.4;
	font-size: 0.95em;
    color: #444;
    border-bottom: 1px dashed #dedede;
    padding-bottom: 12px;
	margin-bottom: 12px;
	display: flex;
	align-items: start;
    gap: 10px;
}
.dettagli-item strong {
	min-width: 80px
}
.dettagli-item.dash {
	align-items: center;
}
.dettagli-list .dettagli-item:last-child { 
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0
}

.orari {
    display: flex !important;
    flex-direction: column; 
    align-items: flex-start !important;
    gap: 5px;
}

.orari-group {
    display: flex;
    flex-direction: column;
    gap: 4px; 
}

.orario-item {
    display: block;
    color: #555;
    line-height: 1.4;
}

.dettagli-list .dashicons { 
    color: #026cb8; 
    font-size: 20px; 
    width: 20px; 
    height: 20px; 
    flex-shrink: 0;
}

.dettagli-list a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.dettagli-list a:hover {
    color: #026cb8;
}
.map-cta {
	display: flex;
	margin-top: 30px;
}

/* Sede - Responsive */
@media (max-width: 544px) {
	.single-sede .entry-header {
		flex-direction: column;
		align-items: flex-start;
	}
	.sede-logo-main { 
		margin-top: -100px
	}
	.single-sede .ast-article-single section {
		margin-bottom: 30px
	}
}
/* Sedi */
.sede-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px; 
    margin: 40px 0;
}

.sede-card-item {
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid #f0f0f0;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    display: flex;
}

.sede-card-link {
    text-decoration: none !important;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.sede-card-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

.sede-card-image-wrap {
    position: relative;
    height: 250px;
    overflow: hidden;
}

.sede-card-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.sede-card-item:hover .sede-card-image-wrap img {
    transform: scale(1.1);
}

.sede-card-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: #026cb8;
    color: #fff;
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 30px;
}

.sede-card-body {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.sede-card-title {
    color: #222;
    margin: 0;
    line-height: 1.3;
}

.sede-card-meta {
    color: #666;
    margin-bottom: 20px;
    flex-grow: 1;
}

.sede-card-address, .sede-card-ref {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
}

.sede-card-ref {
	color: #026cb8
}

.sede-card-footer {
    padding-top: 15px;
    border-top: 1px solid #f0f0f0;
}

.sede-card-cta {
    color: #026cb8;
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    display: flex;
    align-items: center;
}

.sede-card-cta::after {
    content: '→';
    margin-left: 8px;
    transition: margin 0.2s ease;
}

.sede-card-item:hover .sede-card-cta::after {
    margin-left: 15px;
}

/* Sedi - Elenco - Responsive */
@media (max-width: 992px) {
    .sede-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .sede-card-grid { grid-template-columns: 1fr; }
}

/* Bilanci sociali */
.lista-bilanci-sociali {
	padding: 20px
}
.card-bilancio {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    padding: 25px;
    background: #fff;
    border-radius: 12px;
    margin-bottom: 20px;
    border: 1px solid #eaeaea;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.card-bilancio:hover {
	transform: translateY(-5px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}

.bilancio-content-left {
    display: flex;
    align-items: center;
    gap: 25px;
    flex: 1;
}

.bilancio-thumb {
    width: 150px;
    flex-shrink: 0;
}

.bilancio-thumb img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
}

.bilancio-anno {
    margin: 0 !important;
}

.bilancio-downloads {
    display: flex;
    gap: 15px;
    flex-shrink: 0;
}

.is-style-outline .wp-block-button__link {
    border-style: solid
}

/* Bilanci sociali - Responsive */
@media (max-width: 768px) {
    .card-bilancio {
        flex-direction: column;
        text-align: center;
    }

    .bilancio-content-left {
        flex-direction: column;
        gap: 15px;
		width: 100%
    }

    .bilancio-thumb {
        width: 100%;
    }

    .bilancio-downloads {
        width: 100%;
        flex-direction: column;
        gap: 10px;
    }

    .bilancio-downloads .wp-block-button,
    .bilancio-downloads .wp-block-button__link {
        width: 100%;
        display: block;
    }
}

/* Homepage - Aree operative */
.card-area-operativa.area-educativa {
    --colore-primario: #006db8;
}

.card-area-operativa.area-socio-assistenziale {
    --colore-primario: #d9010e;
}

.card-area-operativa.area-extrascolastica {
    --colore-primario: #fc9c00;
}

.griglia-aree-operative {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.card-area-operativa {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #f0f0f0;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    position: relative;
}

.card-area-operativa:hover {
    transform: translateY(-10px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.1);
}

.area-image {
    height: 200px;
    overflow: hidden;
    position: relative;
}

.area-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.area-icon-overlay {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
}

.icon-circle {
    width: 80px;
    height: 80px;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.icon-circle img {
    width: 50px;
    height: 50px;
    object-fit: contain;
}

.card-area-operativa:hover .area-image img {
    transform: scale(1.1);
}

.card-area-operativa:hover .icon-circle {
    border-color: var(--colore-primario);
}

.area-body {
    padding: 25px;
    padding-top: 45px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.card-area-operativa:hover .area-body {
    background-color: var(--colore-primario);
}

.card-area-operativa:hover .area-title,
.card-area-operativa:hover .area-description {
    color: #ffffff !important;
}

.area-title {
    margin: 0 0 15px 0 !important;
    font-size: 1.4rem;
}

.area-description {
    font-size: 0.95rem;
    color: #555;
    margin-bottom: 25px;
    flex-grow: 1;
}

.area-cta {
    margin-top: auto;
}

.area-cta .wp-block-button {
    display: flex;
}

.card-area-operativa .wp-block-button__link {
    background-color: var(--colore-primario) !important;
    color: #ffffff !important;
    transition: all 0.3s ease;
    border: 2px solid var(--colore-primario) !important;
}

.card-area-operativa:hover .wp-block-button__link {
    background-color: #ffffff !important;
    color: var(--colore-primario) !important;
    border-color: #ffffff !important;
}

/* Homepage - Aree operative - Responsive */
@media (max-width: 544px) {
    .griglia-aree-operative {
        grid-template-columns: 1fr;
    }
}

/* Homepage - Sedi */
.carosello-sedi-home-external {
    --swiper-navigation-size: 34px;
}
.carosello-sedi-home-external .swiper-pagination {
	position: unset
}
/* Homepage - Sedi - Responsive */
@media (min-width: 1240px) {
    .carosello-sedi-home-external .swiper-button-prev {
        left: -60px !important; 
        margin: 0;
    }

    .carosello-sedi-home-external .swiper-button-next {
        right: -60px !important; 
        margin: 0;
    }
}
@media (max-width: 1024px) {
	.carosello-sedi-home-external .swiper-button-prev, .carosello-sedi-home-external .swiper-button-next {
		display: none;
	}
}
/* Servizi */
.area-link-servizio {
	display: flex;
	padding: 20px 0
}

.servizi-area-container-wrapper .area-titolo-main-list {
	color: #026cb8
}

@media (max-width: 544px) {
	.servizi-area-container-wrapper {
		padding: 0 20px 60px 20px
	}
}