/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

html{overflow-x: hidden; scroll-padding-top: 150px;}

body{ overflow-x: hidden;
	background: linear-gradient(to right, 
    rgba(43, 75, 155, 0.3) 0%, 
    rgba(136, 187, 221, 0.3) 100%
  ), #00131E;
} 



.displaynone { display: none!important; }
ul.wp-block-list {
    margin-block-end: 1rem;
}


textarea#comment {
    margin-top: .5rem;
}
h2#reply-title, h2.title-comments {
	font-size: 2rem;
}
h2.title-comments {
    display: none!important;
}

h2#reply-title {
    margin-top: 2rem;
}

.elementor-nav-menu--dropdown a[aria-expanded="true"] .fa-svg-chevron-down {
	fill: #fff;
}

.form-dark .wpcf7-not-valid-tip {
	color: #ff5656!important;
}
.form-dark .acceptance-gdpr {
	color: #fff!important;
}

.form-dark label.acceptance-gdpr a:hover {
	color: #a5e520 !important;
}

label.acceptance-gdpr a:hover {
	color: var(--e-global-color-primary)!important;
}

/* Evidenzia il bordo del campo con errore */
/*.form-dark .wpcf7-form-control.wpcf7-not-valid {
    border: 2px solid #ff0000 !important;
	border-width: 4px !important;
    background-color: #fff8f8; /* Opzionale: aggiunge una leggera sfumatura di fondo */
/*}
*/


.wpcf7-response-output {
    font-weight: 700;
    text-align: center;
    background: #fff;
}

label.acceptance-gdpr {
    line-height: 1.4;
    font-size: .9rem;
    display: block;
}

p.label-post-type {
    margin-bottom: -6px;
    line-height: 1;
    font-size: .75rem;
    font-weight: 300;
}

.background-2{background: linear-gradient(to right, 
    rgba(43, 75, 155, 0.3) 0%, 
    rgba(136, 187, 221, 0.3) 100%
  ), #00131E;
}

.header-sticky {
  
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.header-sticky.scrolled {
  background: linear-gradient(to right, 
    rgba(43, 75, 155, 0.3) 0%, 
    rgba(136, 187, 221, 0.3) 100%
  ), #00131E!important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3) !important;
}

.elementor-widget-theme-site-logo.elementor-widget-image {
	transition: all .2s ease-out;
}

.scrolled .elementor-widget-theme-site-logo.elementor-widget-image {
    max-width: 60px !important;
}

.scrolled .e-con-inner {
	padding-block: 1rem!important;
}

.cta a{
	padding: 16px 28px!important;
	background: #D0481B; 
	text-transform: uppercase;
	font-weight: 900!important;
	border-radius: 50px;
	font-family: "DM Sans", Sans-serif;
	color: #fff!important;
	font-size: 0.9rem!important;
}

.cta a:hover{background: var(--e-global-color-text); color: #000 !important;}

@media (max-width: 1024px) {
	.cta a{
		border-radius: 0!important;
		color: #fff!important;
	}
}

.underline{ text-decoration: underline!important; text-decoration-thickness: 7px!important; text-underline-offset: 10px!important;}

.underline.pink{text-decoration-color: #E6007E!important; font-weight: bold;}
.underline.green{text-decoration-color: #A5E520!important; font-weight: bold;}
.underline.blue{text-decoration-color: #3172B4!important; font-weight: bold;}

.underline__light{ text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;}

.text-green{color: #8CBE23; font-weight: bold;}
.text-pink{color: #D0481B!important;}


@media (max-width: 1024px) {
	.underline{ text-decoration: underline!important; text-decoration-thickness: 6px!important; text-underline-offset: 5px!important;}
}

@media (max-width: 768px) {
	.underline{ text-decoration: underline!important; text-decoration-thickness: 4px!important; text-underline-offset: 4px!important;}
}

.bg.pink{ 
  font-weight: bold;
  text-shadow: 4px 4px 0px rgba(230, 0, 126, 0.8);;
}

.bg.green {
  font-weight: bold;
	text-shadow: 4px 4px 0px rgba(165, 229, 32, 0.8);
}

.bg.blue {
  font-weight: bold;
  text-shadow: 4px 4px 0px rgba(49, 114, 180, 0.8);
}


.outline.pink{font-weight: 900;}
.outline.green{font-weight: 900;}
.outline.blue{font-weight: 900;}



.dotted{text-decoration: underline!important; text-decoration-style: dotted!important; text-decoration-thickness: 7px!important; text-underline-offset: 10px!important;}

.dotted.pink{text-decoration-color: #E6007E!important; font-weight: bold;}
.dotted.green{text-decoration-color: #A5E520!important; font-weight: bold;}
.dotted.blue{text-decoration-color: #3172B4!important; font-weight: bold;}

.wavy{text-decoration: underline!important; text-decoration-style: wavy!important; text-decoration-thickness: 4px!important; text-underline-offset: 10px!important;}

.wavy.pink{text-decoration-color: #E6007E!important; font-weight: bold;}
.wavy.green{text-decoration-color: #A5E520!important; font-weight: bold;}
.wavy.blue{text-decoration-color: #3172B4!important; font-weight: bold;}

.abf-banner a{transition: all .3s;}
.abf-banner a:hover{color: #243773!important;}

.social-icon-big a{transition: all .2s;}
.social-icon-big a:hover{transform: scale(1.1);}

.twobox label.text-white, .fullbox label.text-white{color: #fff!important;}



.text-white{color: #fff;}


@media (max-width:768px) {
	

	.elementor-nav-menu--dropdown a:hover{color: #fff!important;}
}

.background-bolli {
    position: relative;
    background-color: #F9FAFB;
}

/* Bollo in basso a sinistra - Rosa */
.background-bolli::before {
    content: '';
    position: absolute;
    top: -150px;
    left: -150px;
    width: 400px;
    height: 400px;
    background-color: rgba(230, 0, 126, 0.2);
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
		z-index: 2;
}

/* Bollo in alto a destra - Blu */
.background-bolli::after {
    content: '';
    position: absolute;
    bottom: -150px;
    right: -150px;
    width: 400px;
    height: 400px;
    background-color: rgba(49, 114, 180, 0.2);
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
		z-index: 2;
}

.background-bolli {
    position: relative;
    background-color: #F9FAFB;
}

/* Bollo in basso a sinistra - Rosa */
.background-bolli-2::before {
    content: '';
    position: absolute;
    top: -150px;
    left: -150px;
    width: 400px;
    height: 400px;
    background-color: rgba(230, 0, 126, 0.2);
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
		z-index: 2;
}


.wp-block-heading{margin-top: 0!important;}


#breadcrumbs span a{text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.breadcrumb_last{font-weight: bold;}

.elementor-swiper-button-prev svg:hover{ fill: #fff;}

.img-project-loop img{
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
}

a.glink{
    color: #fff;
}

.gt_float_switcher .gt_options{position: absolute!important; background: #fff;width: 150px;}

.us-location__titolo{
	color: #fff!important;
	margin-bottom: 0rem;
	margin-top: 0;
	font-size: 1.25rem!important;
	letter-spacing: -1px!important;
}

.us-location__indirizzo{margin-bottom: -0.2rem!important; margin-top: 0; color: #fff!important;}

.us-location__indirizzo{
	font-size: 1rem;
    line-height: 1.2;
    margin-top: .5rem;
}

.us-location__indirizzo, .us-location__maps {
		font-size: .9rem;
		font-weight: 300;
	}

.us-location__maps{
	color: #fff!important;
	text-decoration: underline!important;
	font-size: 1rem;
}

.tipo-post{
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight: bold;
	font-size: 1rem;
	color: #243773!important;
}

.tipo-post-white{
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight: bold;
	font-size: 1rem;
	color: #fff!important;
}

@media (max-width: 768px) {
	.tipo-post, .tipo-post-white{font-size: 0.8rem;}
}

.container-card .img-project-loop {overflow: hidden;}
.container-card .img-project-loop img {transition: transform 0.3s ease;}
.container-card:hover .img-project-loop img {transform: scale(1.1);}

.container-card:hover h4{color:#d60276!important;}
.container-card:hover .cta-card{color: #d60276!important;}
.container-card:hover .cta-card:after{filter: invert(21%) sepia(7%) saturate(6425%) hue-rotate(191deg) brightness(97%) contrast(97%);}

.container-card-dark .img-project-loop {overflow: hidden;}
.container-card-dark .img-project-loop img {transition: transform 0.3s ease;}
.container-card-dark:hover .img-project-loop img {transform: scale(1.1);}

.container-card-dark:hover h4{color:var( --e-global-color-text )!important;}

.cta-card{
    display: inline-flex;
    align-items: center;
    gap: 4px;
		text-decoration: underline;
		text-underline-offset: 3px;
}

.elementor-custom-embed-play svg{
	box-shadow: 0px 0px 50px 100px rgba(2, 19, 60, 0.3);
	background: #fff;
	border-radius: 100px;
	opacity: 1!important; 
}

@media (max-width: 768px) {
	.elementor-custom-embed-play svg{
		box-shadow: 0px 0px 10px 10px rgba(2, 19, 60, 0.6)!important;
		border-radius: 100px;
	}
}

/* Contact Form */

.bando-donwload {
    font-weight: 700;
    text-decoration: underline !important;
    text-underline-offset: 2px;
    font-size: 1.1rem;
    text-decoration-color: #0170B9!important;
}

.bando-donwload a{color: #0170B9!important;}

.dl-icon {
    display: inline-flex;
    width: 20px;
    margin-right: 10px;
    margin-top: 2px;
	margin-bottom: -4px;
}

.twobox label, .fullbox label {
    display: grid !important;
    gap: .6em;
    color: #2A446A !important;
}

p.bando-donwload.moduli-donwload {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.form-uploads {
    margin-top: 3rem !important;
    margin-bottom: 2rem !important;
    padding-top: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #d3d3d3;
    border-top: 1px solid #d3d3d3;
}

input[type=email], input[type=number], input[type=password], input[type=reset], input[type=search], input[type=tel], input[type=text], input[type=url], select, textarea {
    color: #666;
    padding: .75em;
    height: auto;
    border-width: 1px;
    border-style: solid;
    border-color: #dddddd;
    border-radius: 2px;
    background: #FAFAFA;
    box-shadow: none;
    box-sizing: border-box;
    transition: all .2s linear;
}

.wpcf7 input[type=file] {
    color: #666;
    height: auto;
    border-width: 1px;
    border-style: solid;
    border-color: #dddddd;
    border-radius: 2px;
    background: #fafafa;
    box-shadow: none;
    box-sizing: border-box;
    transition: all .2s linear;
}

.wpcf7 input:not([type=submit]), .wpcf7 select, .wpcf7 textarea {
    width: 100%;
    padding: .75em;
}

form small {
    font-weight: 400;
    font-style: italic;
    display: block;
    line-height: 1.2;
    margin-top: 4px;
    margin-bottom: -8px;
}

.acceptance-gdpr a{color: #0170B9!important;}


/* Share Icon */

.share-buttons-container {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.share-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.share-icon img {
		height: 20px;
		width: 20px;
		filter: brightness(0) saturate(100%) invert(18%) sepia(61%) saturate(1076%) hue-rotate(194deg) brightness(95%) contrast(93%);
}

.share-icon:hover {
    transform: scale(1.1);
}

.copy-feedback {
    font-size: 0.8rem;
    color: #243773;
    font-weight: bold;
		text-transform: uppercase;
		letter-spacing: 1px;
		font-family: "DM Sans";
}

.icon-clear .copy-feedback {
    font-size: 0.8rem;
    color: #3C8DDF;
    font-weight: bold;
		text-transform: uppercase;
		letter-spacing: 1px;
		font-family: "DM Sans";
}

.icon-clear .share-icon img{
	 filter: brightness(0) saturate(100%) invert(65%) sepia(97%) saturate(3917%) hue-rotate(189deg) brightness(93%) contrast(87%);
}

/* Accessibilità */

@media (prefers-reduced-motion:reduce) {
    a:hover {
        transition: none!important;
        animation: none!important;
        transform: none!important;
        opacity: 1!important;
        scale: 1!important;
        --e-con-transform-scale: 1!important
    }

    a {
        transition: none!important;
        animation: none!important
    }

    a:hover *,a:focus *,a:active * {
        transition: none!important;
        animation: none!important;
        transform: none!important;
        opacity: 1!important;
        scale: 1!important;
        --e-con-transform-scale: 1!important
    }
}

.top-bar .elementor-icon-list-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0
}

.skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
    text-decoration: none;
    z-index: 9999;
    font-weight: 500!important;
    line-height: 1
}

.skip-link:focus {
    position: static;
    width: auto;
    height: auto;
    margin-top: 10px;
    margin-left: 10px;
    padding: 10px;
    background-color: #f7f7f7;
    color: #333;
    z-index: 99999;
    display: block;
    text-align: center;
    text-decoration: underline;
    left: 0;
    top: 0
}

.skip-link:focus-visible {
    border-radius: 0!important
}

:focus-visible {
    outline-offset: 4px;
    outline: 3px solid #E6007E;
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
}

.elementor-swiper-button.proxy-focused {
  outline-offset: 4px;
    outline: 3px solid #E6007E;
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
	padding: 10px;
}

.elementor-swiper-button.proxy-focused {
  background-color: var(--e-global-color-ea59fa3);
    color: #fff;
	border-style: solid;
    border-width: 3px 3px 3px 3px;
    border-color: var(--e-global-color-ea59fa3);
    border-radius: 30px 30px 30px 30px;
    padding: 15px 15px 15px 15px;
}

.elementor-swiper-button.proxy-focused svg path {
	color: #fff!important;
}
.elementor-swiper-button-next svg path {
  fill: currentColor;
}

.sub-menu li a {outline-offset: 0!important;}

.container-card:focus-visible {
	  outline-offset: -3px;
    outline: 3px solid #E6007E;
    border-radius: 0px!important;
		padding: 10px;
}

#comments a {
    text-decoration: underline;
}

.elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-next:focus-visible,
.elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-prev:focus-visible {
		background-color: var(--e-global-color-ea59fa3);
		color: #fff;
}

.elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-next:focus-visible svg,
.elementor-widget-loop-carousel .elementor-swiper-button.elementor-swiper-button-prev:focus-visible svg{
		fill: #fff!important;
}

.elementor-widget-loop-carousel.carousel-team .elementor-swiper-button:focus-visible{
	 outline: 3px solid #fff!important;
}

.elementor-widget-loop-carousel.ca.us-location__indirizzorousel-team .elementor-swiper-button.elementor-swiper-button-next:focus-visible,
.elementor-widget-loop-carousel.carousel-team .elementor-swiper-button.elementor-swiper-button-prev:focus-visible {
		background-color: #E6007E;
		color: #fff;
}

.elementor-widget-loop-carousel.carousel-team .elementor-swiper-button.elementor-swiper-button-next:focus-visible svg,
.elementor-widget-loop-carousel.carousel-team .elementor-swiper-button.elementor-swiper-button-prev:focus-visible svg{
		fill: #fff!important;
}

span.wp-block-accordion-heading__toggle-title {
    letter-spacing: 0!important;
}

.wp-block-accordion-heading button {
    width: 100%!important;
    display: flex!important;
}

p.has-small-font-size {
    line-height: 1.5!important;
}

.wp-block-accordion-panel {
	    padding: 20px clamp(0rem, -4.4643rem + 14.881vw, 3.125rem) 10px clamp(0rem, -4.4643rem + 14.881vw, 3.125rem);

}

.wp-block-accordion-panel p, .wp-block-accordion-panel ul, .wp-block-accordion-panel li {
    font-size: 1rem;
    line-height: 1.4;
}

/* H3: Ridotto di 0.5rem rispetto all'originale */
.single-post .elementor-widget-theme-post-content h3, .single-bando .elementor-widget-theme-post-content h3 {
	font-size: clamp(2rem, 1.5714rem + 1.1905vw, 3rem) !important;
	font-weight: 900;
    line-height: 1em;
    letter-spacing: -1px;
}

/* H4: Ridotto di ~0.375rem (via di mezzo) */
.single-post .elementor-widget-theme-post-content h4, .single-bando .elementor-widget-theme-post-content h4 {
	font-size: clamp(1.625rem, 1.3036rem + 0.8929vw, 2.375rem) !important;
	font-weight: 900;
    line-height: 1em;
    letter-spacing: -1px;
}

/* H5: Ridotto di 0.25rem */
.single-post .elementor-widget-theme-post-content h5, .single-bando .elementor-widget-theme-post-content h5 {
	font-size: clamp(1.25rem, 1.0357rem + 0.5952vw, 1.75rem) !important;
	font-weight: 900;
    line-height: 1em;
    letter-spacing: -1px;
}
@media (max-width: 576px) {
	.us-location__titolo {
		font-size: 1.25rem !important;
		letter-spacing: -1px !important;
		margin-bottom: .2rem;
	}
	html{scroll-padding-top: 150px;}
	
	
	
}

.single-bando .pos-comments-title {
	display: none!important;
}
span.wpcf7-list-item {
    margin: 0 !important;
}

/* ── Riepilogo errori in cima al form ──────────────────────────────────────── */
.cf7-riepilogo-errori {
  margin-bottom:    1.25rem;
  padding:          1rem 1.25rem;
  background-color: #fdf2f2;
  border:           2px solid #c0392b;
  border-radius:    4px;
  color:            #7b1a12;         /* contrasto ≥ 4.5:1 su sfondo chiaro */
  font-size:        0.95rem;
}

.cf7-riepilogo-errori p  { margin: 0 0 0.5rem; }
.cf7-riepilogo-errori ul { margin: 0; padding-left: 1.25rem; }
.cf7-riepilogo-errori li { margin-bottom: 0.25rem; line-height: 1.4}

/* ── Messaggi inline ─────────────────────────────────────────────────────── */
.wpcf7-not-valid-tip {
  display:      block;
  margin-top:   4px;
  color:        #c0392b;             /* contrasto ≥ 4.5:1 */
  font-size:    0.85rem;
  font-style:   italic;
  font-weight:  normal;
  line-height:  1.4;
}

/* ── Campi in errore ─────────────────────────────────────────────────────── */
.wpcf7-not-valid {
  border-color: #c0392b !important;
  outline:      2px solid #c0392b !important;
  outline-offset: 1px;
}

/* ── Focus visibile (WCAG 2.4.7) ────────────────────────────────────────── */
.wpcf7-form input:focus,
.wpcf7-form select:focus {
  outline:        3px solid #005fcc;
  outline-offset: 2px;
}

/* ── Riduzione del movimento (prefers-reduced-motion) ────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .wpcf7-not-valid-tip,
  .cf7-riepilogo-errori {
    transition: none;
    animation:  none;
  }
}

/* ── Feedback positivo ───────────────────────────────────────────────────── */
.cf7-feedback-ok {
  display:      block;
  margin-top:   4px;
  color:        #1a7a3c;
  font-size:    0.85rem;
  font-style:   italic;
  font-weight:  normal;
  line-height:  1.4;
}

/* Bordo verde sui campi validi */
.wpcf7-valid {
  border-color:   #1a7a3c !important;
  outline:        2px solid #1a7a3c !important;
  outline-offset: 1px;
}


.form-dark .cf7-feedback-ok {
  display:      block;
  margin-top:   4px;
  color:        #25ae56;
  font-size:    0.85rem;
  font-style:   italic;
  font-weight:  normal;
  line-height:  1.4;
}

/* Bordo verde sui campi validi */
.form-dark .wpcf7-valid {
  border-color:   #25ae56 !important;
  outline:        2px solid #25ae56 !important;
  outline-offset: 1px;
}

/* ── Feedback negativo (già esistente, invariato) ────────────────────────── */
.wpcf7-not-valid-tip {
  display:      block;
  margin-top:   4px;
  color:        #c0392b;
  font-size:    0.85rem!important;
  font-style:   italic;
  font-weight:  normal;
  line-height:  1.4;
}

.wpcf7-not-valid {
  border-color:   #c0392b !important;
  outline:        2px solid #c0392b !important;
  outline-offset: 1px;
}

/* ── Focus visibile ──────────────────────────────────────────────────────── */
/* .wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  outline:        3px solid #005fcc;
  outline-offset: 2px;
} */

@media (prefers-reduced-motion: reduce) {
  .wpcf7-not-valid-tip,
  .cf7-feedback-ok { transition: none; animation: none; }
}

label.acceptance-gdpr,
label.presa-visione-bando {
  display: block;
}

label.acceptance-gdpr .wpcf7-not-valid-tip,
label.acceptance-gdpr .cf7-feedback-ok,
label.presa-visione-bando .wpcf7-not-valid-tip,
label.presa-visione-bando .cf7-feedback-ok {
  display: block;
  margin-top: 6px;
}

.comment-form-cookies-consent{
	display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.evento-chiuso{color: #A5E520; font-size: 0.85rem; font-weight: 400; font-style: italic;}