/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 3.4.5.1762355689
Updated: 2025-11-05 15:14:45

*/
/*MENU FULL SCREEN ************************************************************************************************************************************************************************* */
/*toglie lo scroll verticale nel mega menu full screen*/
 #uc_fullscreen_navigation_menu_elementor_627791c .ue_menu > div > div > div {
    overflow-y: visible!important;
}
/*creo la foglia*/
.elementor-100 .elementor-element.elementor-element-627791c .ue_hamburger{
    background-image: url("https://newfactor.it/wp-content/uploads/2026/07/foglia-menu.png") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

/*avvicino le barre*/
#uc_fullscreen_navigation_menu_elementor_627791c .checkbox-toggle:not(:checked) ~ .ue_hamburger > div:before {
    top: -6px !important;
}
#uc_fullscreen_navigation_menu_elementor_627791c .checkbox-toggle:not(:checked) ~ .ue_hamburger > div:after {
    top: 6px !important;
}

/* barre più corte — SOLO a menu chiuso */
#uc_fullscreen_navigation_menu_elementor_627791c .checkbox-toggle:not(:checked) ~ .ue_menu_wrapper .ue_hamburger > div:before,
#uc_fullscreen_navigation_menu_elementor_627791c .checkbox-toggle:not(:checked) ~ .ue_menu_wrapper .ue_hamburger > div:after {
    width: 60% !important;
    left: 20% !important;
}
#uc_fullscreen_navigation_menu_elementor_627791c .checkbox-toggle:not(:checked) ~ .ue_menu_wrapper .ue_hamburger > div {
    width: 60% !important;
    max-width: 60% !important;
    left: 0 !important;
}
#uc_fullscreen_navigation_menu_elementor_627791c .ue_hamburger {
    align-items: center !important;
}

.corsivo-rosso{
	color:#E10613;
	font-style: italic;
}
.corsivo-bianco{
	color:#ffffff;
	font-style: italic;
}
.corsivo-verdechiaro{
	color:#A8C442;
	font-style: italic;
}

.riga-trends {
  display: inline-block;
  margin-left: 50px; /* regola fino a ottenere il rientro voluto */
}


.hover-undeline a:hover {
    text-decoration: underline !important;
}

/* ==== Header sticky New Factor ==== */
.nf-header-sticky {
	transition: background-color .3s ease, min-height .3s ease;
}
.nf-logo img {
	transition: width .3s ease;
}

/* Stato dopo lo scroll (escluso lo spacer, per evitare salti della pagina) */
.elementor-location-header .elementor-element.nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) {
	--min-height: 120px;
	background-color: #FFFCF3;
}
.elementor-location-header .nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) .nf-logo img {
	width: 150px;
}

@media (max-width: 767px) {
	.elementor-location-header .elementor-element.nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) {
		--min-height: 90px;
	}
	.elementor-location-header .nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) .nf-logo img {
		width: 120px;
	}
}
/* Header sticky — riduzione padding nello stato scrollato */
.nf-header-sticky > .e-con-inner {
	transition: padding .3s ease;
}
.elementor-location-header .elementor-element.nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) {
	--padding-top: 10px;
	--padding-bottom: 10px;
}

@media (max-width: 767px) {
	.elementor-location-header .elementor-element.nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer) {
		--padding-top: 5px;
		--padding-bottom: 5px;
	}
}

/* Header sticky — pagine con logo bianco (es. Chi siamo): sfondo verde */
.elementor-location-header .elementor-element.nf-header-sticky.elementor-sticky--effects:not(.elementor-sticky__spacer):has(.nf-logo-bianco) {
	background-color: #568C41;
}
/* HOME ***********************************************************************************************************************************************************************************/



/*    NEW FACTOR · Token di layout (child theme) */
:root {
  --nf-container: 1440px;
  --nf-gutter: 20px;
  /* offset per allineare qualsiasi elemento al box centrale */
  --nf-inset: max(var(--nf-gutter), calc((100% - var(--nf-container)) / 2));
}

/*  Content slider : per tutti gli slider con classe .slider-nut - allineato al boxed 1440  
Classi Elementor: slider-nut (widget slider)    
slider-nut-frecce (widget frecce) */

.slider-nut .uc_fbps_content {
  margin-inline: var(--nf-inset) var(--nf-gutter) !important;
}

.slider-nut .uc_fbps_container_desc {
  max-width: 470px;
}

/* Frecce di navigazione (widget separato, in absolute) */
.slider-nut-frecce.elementor-absolute {
  right: var(--nf-inset) !important;
  left: auto !important;
}

.slider-stondato-tl,
.slider-stondato-br,
.slider-stondato-top {
	--slider-radius: clamp(50px, 10.5vw, 200px);
}

.slider-stondato-tl .owl-stage-outer {
	border-top-left-radius: var(--slider-radius);
	overflow: hidden;
}

.slider-stondato-br .owl-stage-outer {
	border-bottom-right-radius: var(--slider-radius);
	overflow: hidden;
}

.slider-stondato-top .owl-stage-outer {
	border-top-left-radius: var(--slider-radius);
	border-top-right-radius: var(--slider-radius);
	overflow: hidden;
}

/*se non c'è url del bottone, lo nascondo*/
/* Nasconde il bottone dello slider quando il link è vuoto */
.slider-nut .ue-btn-wrap:has(> a.uc_fbps_cta[href=""]),
.slider-nut .ue-btn-wrap:has(> a.uc_fbps_cta:not([href])),
.slider-nut .ue-btn-wrap:has(> a.uc_fbps_cta[href="#"]) {
  display: none !important;
}

/* fallback nel caso :has() non sia supportato */
.slider-nut a.uc_fbps_cta[href=""],
.slider-nut a.uc_fbps_cta:not([href]),
.slider-nut a.uc_fbps_cta[href="#"] {
  display: none !important;
}


/*scritta noci di romagla slider*/
#slider-uc_content_slider_new_elementor_3d7e5c7 .noci-romagna {
  font-family: var(--e-global-typography-6cb2aec-font-family), sans-serif;
  font-size:   var(--e-global-typography-6cb2aec-font-size);
  font-weight: var(--e-global-typography-6cb2aec-font-weight);
  line-height: var(--e-global-typography-6cb2aec-line-height);
  display: inline-block;
  text-transform: none;
  margin-bottom:30px;
}
.noci-romagna {
  font-family: var(--e-global-typography-6cb2aec-font-family), sans-serif;
  font-size:   var(--e-global-typography-6cb2aec-font-size);
  font-weight: var(--e-global-typography-6cb2aec-font-weight);
  line-height: var(--e-global-typography-6cb2aec-line-height);
  display: inline-block;
  text-transform: none;
  margin-bottom:30px;
}


/* News loop – dot attivo: barra da 30px rossa */
#loop-home .swiper-pagination-bullet-active {
  width: 50px!important;
  border-radius: 10px; /* per l'effetto "barretta" arrotondata; metti 0 se lo vuoi squadrato */
  background-color: #E10613;
  opacity: 1;
}
#loop-home  .swiper-pagination-bullet {
    color:#568C41!important;
    opacity: 1!important;
}

.carosello-home-mobile .owl-dot.active  {
    width: 50px!important;
    border-radius: 70px !important;
}

/* ==========================================================
   Card Carousel per slider mobile noci di romagna :  nasconde il bottone se il link è vuoto
   ========================================================== */

.carosello-home-mobile .ue_button:has(> a.uc_more_btn[href=""]),
.carosello-home-mobile .ue_button:has(> a.uc_more_btn:not([href])),
.carosello-home-mobile .ue_button:has(> a.uc_more_btn[href="#"]){
  display: none !important;
}

/* fallback nel caso :has() non sia supportato */
.carosello-home-mobile a.uc_more_btn[href=""],
.carosello-home-mobile a.uc_more_btn:not([href]),
.carosello-home-mobile a.uc_more_btn[href="#"]{
  display: none !important;
}

/*  Puntini dei caroselli CATALOGHI (Swiper): attivo rosso allungato,   inattivi tondi verdi  */

.puntini-nut .swiper-pagination-bullet{
  width: 10px !important;
  height: 10px !important;
  margin: 0 5px !important;
  background-color: #568C41 !important;
  border-radius: 50% !important;
  opacity: 1 !important;
}

.puntini-nut .swiper-pagination-bullet-active{
  width: 50px !important;
  border-radius: 70px !important;
  background-color: #E10613 !important;
}


/* FOOTER ***********************************************************************************************************************************************************************************/

/* Footer — link legali su mobile: senza separatori, voci più distanziate */
@media (max-width: 767px) {
	.nf-footer-legal .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li:not(:last-child)::after {
		display: none;
	}
	.nf-footer-legal .elementor-nav-menu--layout-horizontal .elementor-nav-menu > li > a {
		padding-inline: 12px;
	}
}
/* Form — link nei testi delle checkbox (es. Privacy Policy) */
.elementor-widget-form .elementor-field-subgroup a {
	color: #000000;
	text-decoration: underline;
}

/* ===== NEW FACTOR – FORM CONTATTI ===== */

/* 1. INPUT A SOLO UNDERLINE */
.nf-form-contatti .elementor-field-textual {

    padding: 6px 2px !important;
}


/* 2. PLACEHOLDER IN NERO */
.nf-form-contatti .elementor-field-textual::placeholder {
    color: #000000!important;
    opacity: 1!important;
}

/* 3. SELECT "AREA DI INTERESSE" → PILL VERDE CENTRATO */
.nf-form-contatti .elementor-field-group-area { text-align: center; }
.nf-form-contatti .elementor-field-group-area .elementor-select-wrapper {
    display: inline-block;
    position: relative;
    width: auto;
    max-width: 270px;
    margin: 0 auto;
}
.nf-form-contatti .elementor-field-group-area select.elementor-field-textual {
    border: 1.5px solid #568C41 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: #000 !important;
    text-align: center;
    padding: 12px 42px !important;
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    cursor: pointer;
}
.nf-form-contatti .elementor-field-group-area .select-caret-down-wrapper {
    position: absolute;
    right: 18px; top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #568C41;
}
/* 4. SELECT "AREA DI INTERESSE" → riga intera + pill centrato */
.nf-form-contatti .elementor-field-group-area {
    flex: 0 0 100% !important;
    max-width: 100% !important;
   text-align: center;
}

/* 5. CHECKBOX QUADRATE, BORDO VERDE */
.nf-form-contatti .elementor-field-option { display: flex; align-items: flex-start; gap: 10px; }
.nf-form-contatti .elementor-acceptance-field {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px;
    margin-top: 2px;
    border: 2px solid #568C41 !important;
    border-radius: 3px !important;
    background: transparent !important;
    cursor: pointer;
    flex: 0 0 auto;
    position: relative;
    display: inline-block;
}
.nf-form-contatti .elementor-acceptance-field:checked { background: #568C41 !important; }
.nf-form-contatti .elementor-acceptance-field:checked::after {
    content: "";
    position: absolute;
    left: 5px; top: 1px;
    width: 4px; height: 9px;
    border: solid #FDEDB5;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.nf-form-contatti .elementor-field-type-acceptance label,
.nf-form-contatti .elementor-field-type-acceptance small { color: #000; }


/* 6. RITMO VERTICALE */
.nf-form-contatti .elementor-field-group { margin-bottom: 14px; }

/* Colora la tendina aperta in tinta col resto */
.nf-form-contatti .elementor-field-group-area select.elementor-field-textual option {
    background-color: #FDEDB5;
    color: #000;
     text-align: left !important;  
     font-size: 18px;
  
}
/* Distanza extra sotto il select */
.nf-form-contatti .elementor-field-group-area {
    margin-bottom: 40px !important;
}

/*chackbox grandi e verdi, font etc..*/
.nf-form-contatti .elementor-acceptance-field {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    width:     clamp(0.75rem, 0.6rem + 0.75vw, 1.5rem) !important;
    height:    clamp(0.75rem, 0.6rem + 0.75vw, 1.5rem) !important;
    min-width: clamp(0.75rem, 0.6rem + 0.75vw, 1.5rem);
    font-size: clamp(0.75rem, 0.6rem + 0.75vw, 1.5rem);  /* aggancia gli em della spunta alla dimensione del box */
    margin-top: 2px;
    border: 2px solid #568C41 !important;
    border-radius: 3px !important;
    background: transparent !important;
    cursor: pointer;
    flex: 0 0 auto;
    position: relative;
    display: inline-block;
}
.nf-form-contatti .elementor-acceptance-field:checked { background: #568C41 !important; }
.nf-form-contatti .elementor-acceptance-field:checked::after {
    content: "";
    position: absolute;
    left: 0.28em; top: 0.05em;
    width: 0.22em; height: 0.5em;
    border: solid #FDEDB5;
    border-width: 0 0.12em 0.12em 0;
    transform: rotate(45deg);
}
/*spazio extra tra imput e acceptance*/
/* 40px di stacco tra i campi input e il blocco acceptance */
/* 40px di stacco tra i campi input e il blocco acceptance */
.nf-form-contatti .elementor-field-group-newsletter {
    margin-top: 40px !important;
}

/* CHI SIAMO ********************************************************************************************************************************************************************************/

/* chi siamo slider numeri*/
.numero-slide {
	font-size: clamp(40px, 6.25vw, 120px);
	font-weight: 700;
	line-height: 1;
	display: block;
}
.linea-slide {
	font-size: clamp(40px, 6.25vw, 120px);
	font-weight: 700;
	line-height: 1;
}

.numero-slide-dopo {
	font-size: clamp(28px, 3.65vw, 70px)!important;
	font-weight: 400!important;
	line-height: 1;
	display: block;
}

/* slider numeri - descrizione a piena larghezza */
.descrizione-larga .uc_fbps_container_desc {
  width: max-content !important;
  max-width: 100% !important;
}

/* Slider numeri — allineamento verticale testo/frecce. */

/* il widget deve riempire il contenitore, altrimenti la slide sborda
   e il testo finisce 116px sotto le frecce */
.elementor-element.descrizione-larga{ flex-grow: 1; }

/* il paragrafo vuoto occupa comunque 24px di margine */
.descrizione-larga .uc_fbps_container_desc:empty{ display: none; }

/* il titolo è un <p>: 14,4px di margine dal tema, inutili se non c'è paragrafo */
.descrizione-larga .uc_fbps_content:has(.uc_fbps_container_desc:empty)
.uc_fbps_container_title{ margin-bottom: 0; }

/* centra le frecce sul punto di ancoraggio invece di appoggiarle sotto */
.frecce-numeri.elementor-absolute{ transform: translateY(-50%); }


/*sistemazione slider numeri  peer laptop*/
/* Slider numeri — fascia laptop.
   I clamp dello slider scalano in vw puro, quindi sotto i 1366px
   le scritte crollano (il numero arriva a 64px a 1025). Qui le blocco
   al valore che hanno già a 1366px: nessuno scalino al confine col
   desktop, che resta intoccato.
   !important sul titolo perché Elementor lo scrive con selettore ID
   e il child è caricato prima del suo CSS. */
@media (min-width: 1025px) and (max-width: 1366px){

  .numero-slide,
  .linea-slide{ font-size: 85px; }

  .numero-slide-dopo{ font-size: 50px !important; }

  .elementor-element.descrizione-larga .uc_fbps_container_title{
    font-size: 40px !important;
  }
}


/* ==========================================================
   Slider "La nostra storia" — frecce remote + barra centrale
   NB: aspetto frecce (widget Remote Arrows → Stile) e spaziatura
   testo (Content Slider → Stile → Text → Spacing) si impostano
   nei widget: Elementor e UE usano selettori che il child non batte.
   ========================================================== */

.frecce-storia{
  --frecce-linea: rgba(255,255,255,.6);
}

/* Il widget slider deve riempire il contenitore, altrimenti la slide
   sborda e la barra si scosta. ".elementor-element" davanti è
   OBBLIGATORIO: elementor-frontend.css è caricato dopo il child
   e con sola .storia-slider resetta flex-grow a 0. */
.elementor-element.storia-slider{ flex-grow: 1; }

/* Contenuto centrato: annulla il boxed ereditato da .slider-nut,
   che qui sposterebbe il testo fuori asse rispetto alla barra. */
.storia-slider .uc_fbps_content{ margin-inline: auto !important; }

/* Blocco testo ad altezza costante e vicina a quella del titolo
   (191–211px): così la barra cade nel gap senza offset da ritarare. */
.storia-slider .uc_fbps_container_desc{ min-height: 200px; }

/* Layout: freccia sx → barra → freccia dx */
.frecce-storia .ue-remote-carousel-navigation-wrapper{ width: 100%; }

.frecce-storia .ue-remote-carousel-navigation{
  width: 100%;
  align-items: center;
}

.frecce-storia .ue-carousel-prev{ order: 1; }
.frecce-storia .ue-carousel-next{ order: 3; }

.frecce-storia .ue-remote-carousel-navigation::before{
  content: "";
  order: 2;
  flex: 1 1 auto;
  height: 1px;
  background: var(--frecce-linea);
}

.frecce-storia .ue-remote-arrow:hover .ue-carousel-nav-icon{
  opacity: .65;
}

.frecce-storia.elementor-absolute{
  transform: translate(-50%, -50%);
}


/* Sistemazione mobile per lo slider storia: La barra resta nel gap anche sotto i 1366px: il min-height del paragrafo segue l'altezza del blocco titolo, che è fluida.
   Scarto residuo entro i 5px su tutta la fascia. */
@media (max-width: 1366px){
  .storia-slider .uc_fbps_container_desc{ min-height: 175px; }
}

@media (max-width: 1024px){
  .storia-slider .uc_fbps_container_desc{ min-height: 157px; }
}

@media (max-width: 767px){
  .storia-slider .uc_fbps_container_desc{ min-height: 140px; }
}


/* ==========================================================
   Nut carousel — responsive
   L'immagine dentro la foglia è posizionata con offset in px
   (--nut-img-x / --nut-img-y, uno per slide) tarati sulla foglia
   da 484px: rimpicciolire la foglia senza scalare gli offset fa
   scivolare l'immagine fuori dalla sagoma. Ogni misura di foglia
   va quindi accoppiata al suo --nut-k (larghezza foglia / 484).
   I campi responsive leaf/stack del widget sono vuoti di proposito:
   comandano queste righe.
   ========================================================== */

.nut-carousel__leaf-image{
  transform:
    translate(calc(var(--nut-img-x, 0px) * var(--nut-k, 1)),
              calc(var(--nut-img-y, 0px) * var(--nut-k, 1)))
    scale(var(--nut-img-zoom)) !important;
}

/* LAPTOP — resta a due colonne */
@media (max-width: 1366px){
  .nut-carousel__card{ width:340px !important; height:308px !important; --nut-k:.70; }
  .nut-carousel__stack{ height:350px !important; }
}

/* TABLET — etichette sopra, carosello sotto */
@media (max-width: 1024px){
  .nut-carousel__row{ flex-direction:column; align-items:stretch; }

  .nut-carousel__col--text,
  .nut-carousel__col--stack{ flex:0 0 auto; width:100%; min-width:0; }

  .nut-carousel__card{ width:380px !important; height:344px !important; --nut-k:.785; }
  .nut-carousel__stack{ height:390px !important; }

  /* larghezza pari al ventaglio: lo centra invece di appoggiarlo a destra */
  .nut-carousel__col--stack{ width:595px; max-width:100%; margin-inline:auto; }
}

/* MOBILE */
@media (max-width: 767px){
  .nut-carousel__card{ width:260px !important; height:235px !important; --nut-k:.537; }
  .nut-carousel__stack{ height:270px !important; }
  .nut-carousel__col--stack{ width:408px; }
}

@media (max-width: 455px){
  .nut-carousel__card{ width:200px !important; height:181px !important; --nut-k:.413; }
  .nut-carousel__stack{ height:210px !important; }
  .nut-carousel__col--stack{ width:313px; }
}

@media (max-width: 359px){
  .nut-carousel__card{ width:165px !important; height:149px !important; --nut-k:.341; }
  .nut-carousel__stack{ height:175px !important; }
  .nut-carousel__col--stack{ width:258px; }
}


/*carosello numri moblile*/
@media (max-width: 767px){
  .elementor-element-38ac04a .uc_classic_carousel_placeholder{
    height: 225px;
    width: 100% !important;
  }
}


/* NEWS **********************************************************************************************************************************************************************/
.data-news .anno-news {
    font-weight: 700;
}

/*se ci sono dei link nei testi delle news devono essere neri e sottilineati*/
.testo-news a {
color: #000 !important;
text-decoration: underline !important;
}


/*FONFDI RICEVUTI*/
/* Link nel testo: colore del testo e sottolineati (esclusi i link con sottolineatura solo al hover) */
.elementor .elementor-widget-text-editor:not(.hover-undeline) a {
  color: inherit;
  text-decoration: underline;
}