/*
Theme Name: Forst Child
Theme URI: https://devi1gigamind.it
Description: Child theme di Forst
Author: Mattia
Author URI: https://gigamind.it
Template: forst
Version: 1.0.0
*/

/* Body font size: 18px per schermi grandi, 16px per smartphone */
body {
	font-size: 18px;
}

@media (max-width: 767px) {
	body {
		font-size: 16px;
	}
}

/* Testo in grassetto (Bold): +4px rispetto al body font size, colore #308CB5 */
body strong,
body b,
body .elementor-widget-text-editor strong,
body .elementor-widget-text-editor b,
body .elementor-text-editor strong,
body .elementor-text-editor b,
body .elementor-widget-text-editor .elementor-text-editor strong,
body .elementor-widget-text-editor .elementor-text-editor b {
	font-size: 22px;
	color: #308CB5;
	font-weight: bold;
}

@media (max-width: 767px) {
	body strong,
	body b,
	body .elementor-widget-text-editor strong,
	body .elementor-widget-text-editor b,
	body .elementor-text-editor strong,
	body .elementor-text-editor b,
	body .elementor-widget-text-editor .elementor-text-editor strong,
	body .elementor-widget-text-editor .elementor-text-editor b {
		font-size: 20px;
	}
}

/* home - evita che la prima colonna stia sotto al menu verticale */
body .qodef-portfolio-horizontal-showcase .qodef-portfolio-slide-item:first-child{
  margin-left: 40px; /* aumenta/diminuisci finché è libera */
}

@media (max-width: 1024px){
  body .qodef-portfolio-horizontal-showcase .qodef-portfolio-slide-item:first-child{
    margin-left: 0;
  }
}
/* logo gigamind animato: lavora solo dentro il link del logo */
.qodef-header-logo-link .gigamind-logo .gm-reveal,
.qodef-header-logo-link .gigamind-logo .gm-dot,
.qodef-header-logo-link .gigamind-logo .gm-ring{
  transform-box: fill-box;
  transform-origin: center;
}

/* blocchi: reveal */
.qodef-header-logo-link .gigamind-logo .gm-reveal{
  opacity: 0;
  transform: translateY(10px) scale(0.985);
  animation: gm-reveal 0.70s cubic-bezier(.2,.8,.2,1) forwards;
}

/* staggers */
.qodef-header-logo-link .gigamind-logo .gm-d1{ animation-delay: .05s; }
.qodef-header-logo-link .gigamind-logo .gm-d2{ animation-delay: .12s; }
.qodef-header-logo-link .gigamind-logo .gm-d3{ animation-delay: .19s; }
.qodef-header-logo-link .gigamind-logo .gm-d4{ animation-delay: .26s; }
.qodef-header-logo-link .gigamind-logo .gm-d5{ animation-delay: .33s; }
.qodef-header-logo-link .gigamind-logo .gm-d6{ animation-delay: .40s; }
.qodef-header-logo-link .gigamind-logo .gm-d7{ animation-delay: .47s; }
.qodef-header-logo-link .gigamind-logo .gm-d8{ animation-delay: .54s; }

@keyframes gm-reveal{
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* centro: pallino */
.qodef-header-logo-link .gigamind-logo .gm-dot{
  opacity: 0;
  transform: scale(0.80);
  animation: gm-dot 0.55s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: .40s;
}
@keyframes gm-dot{
  0%{ opacity: 0; transform: scale(0.80); }
  60%{ opacity: 1; transform: scale(1.05); }
  100%{ opacity: 1; transform: scale(1.00); }
}

/* ring: draw */
.qodef-header-logo-link .gigamind-logo .gm-ring{
  stroke-dasharray: 474;
  stroke-dashoffset: 474;
  opacity: 0;
  animation:
    gm-ring-draw 1.10s cubic-bezier(.2,.8,.2,1) forwards,
    gm-ring-fade 0.40s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay: .55s, .55s;
}
@keyframes gm-ring-draw{ to{ stroke-dashoffset: 0; } }
@keyframes gm-ring-fade{ from{ opacity: 0; } to{ opacity: 1; } }

/* riduzione movimento */
@media (prefers-reduced-motion: reduce){
  .qodef-header-logo-link .gigamind-logo .gm-reveal,
  .qodef-header-logo-link .gigamind-logo .gm-dot,
  .qodef-header-logo-link .gigamind-logo .gm-ring{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    stroke-dashoffset: 0 !important;
  }
}


/* home - nasconde solo la categoria (testo verticale) su tablet e mobile */
@media (max-width: 1024px){
  body .qodef-portfolio-horizontal-showcase .qodef-e-categories{
    display: none;
  }
}
/* home - allarga a fullwidht da css e non tramite il javascropt da Elementor, che arrivava alla fine e imbruttiva il caricamento della pagina. In avanzate-classe ccs in Elementor va aggiunto gm-fullbleed
 */
.gm-fullbleed{
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
}
/* ingrandisce leggermente categoria e anno (verticali) */
/* categoria (link) */
.qodef-portfolio-horizontal-showcase .qodef-e-categories,
.qodef-portfolio-horizontal-showcase .qodef-e-categories a{
  font-size: 15px;
}

/* va a capo in shortcode slider revolution */
  .wrap-title {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
/* Desktop: nascondi i break */
@media (min-width: 1025px) {
  .wrap-title .qodef-m-title br {
    display: none !important;
  }
}

/* Mobile: mostra i break */
@media (max-width: 1024px) {
  .wrap-title .qodef-m-title br {
    display: block !important;
  }
}

/* anno */
.qodef-portfolio-horizontal-showcase .qodef-e-year{
  font-size: 15px;
}
/* ingrandisce il font del testo nei box del repeater */
body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-excerpt{
  font-size: 1.15em;
  line-height: 1.6;
}

/* home - nasconde la freccia nei box su mobile */
@media (max-width: 1024px){
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-top-title-holder > svg{
    display: none;
  }
}
/* mostra freccia sul mobile dopo l'excerpt */
/* di default non si vede (desktop) */
body.page-id-1624 .qodef-portfolio-info-panel .gm-mobile-readmore{
  display: none;
}

/* su mobile la mostri sotto il testo */
@media (max-width: 767px){
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-top{
    display: flex;
    flex-direction: column;
  }
  
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-content{
    overflow: visible;
  }
  
  body.page-id-1624 .qodef-portfolio-info-panel .gm-mobile-readmore{
    display: inline-flex;
    align-items: center;
    margin-top: 10px;
    margin-left: auto;
    text-decoration: none;
  }

  body.page-id-1624 .qodef-portfolio-info-panel .gm-mobile-readmore svg{
    width: 38px;
    height: 38px;
    color: #000;
    margin-top: 3px;
    flex-shrink: 0;
    fill: transparent;
    stroke: currentColor;
    transition: fill 0.25s ease-out;
  }

  
  body.page-id-1624 .qodef-portfolio-info-panel .gm-mobile-readmore:hover svg{
    fill: currentColor;
  }
}


@media (max-width: 767px){
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-title,
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-title-link{
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
  }
/* home - riduce un po' i titoli dei box nel mobile e in casi estremi li manda a capo */
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-title{
    font-size: clamp(26px, 5.2vw, 36px);
    line-height: 1.05;
  }
  
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-excerpt{
    font-size: 1.15em;
  }
}
/* home - tronca dopo X righe il testo dei box, solo per il mobile */
@media (max-width: 767px){
  body.page-id-1624 .qodef-portfolio-info-panel .qodef-e-excerpt{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4; /* numero di righe */
    line-clamp: 4; /* standard property per compatibilità */
    overflow: hidden;
  }
}

/* testimonials - raddoppia dimensione autore */
body .qodef-testimonials-list .qodef-e-author {
  font-size: 17.5px;
}

/* Archive Percorsi e Servizi - Layout semplice con immagine e titolo */
.qodef-blog--simple-list .qodef-blog-item {
	margin-bottom: 40px;
}

.qodef-blog--simple-list .qodef-e-inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.qodef-blog--simple-list .qodef-e-media {
	position: relative;
	overflow: hidden;
}

.qodef-blog--simple-list .qodef-e-media-link {
	display: block;
	line-height: 0;
}

.qodef-blog--simple-list .qodef-e-media-image {
	width: 100%;
	height: auto;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.qodef-blog--simple-list .qodef-e-media-link:hover .qodef-e-media-image {
	transform: scale(1.05);
}

.qodef-blog--simple-list .qodef-e-content {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.qodef-blog--simple-list .qodef-e-title {
	margin: 0;
}

.qodef-blog--simple-list .qodef-e-excerpt {
	font-size: 16px;
	line-height: 1.6;
	color: #666;
	margin: 0;
}

@media (max-width: 768px) {
	.qodef-blog--simple-list .qodef-blog-item {
		margin-bottom: 30px;
	}
	
	.qodef-blog--simple-list .qodef-e-inner {
		gap: 15px;
	}
}

/* Archive Percorsi e Servizi (page-category) - Nasconde filtro e paginazione */
body.tax-page-category .qodef-portfolio-filter {
	display: none;
}

body.tax-page-category .qodef-m-pagination {
	display: none;
}

/* Assicura che il portfolio list abbia la larghezza corretta per 4 colonne */
body.tax-page-category .qodef-portfolio-list {
	width: 1300px;
	max-width: 1300px;
	margin-left: auto;
	margin-right: auto;
}

/* Assicura che il grid abbia le colonne corrette per 4 colonne con dimensioni fisse */
body.tax-page-category .qodef-portfolio-list .qodef-grid-inner {
	grid-template-columns: repeat(4, 310px);
	gap: 80px 20px;
	justify-content: center;
	width: 1300px;
	max-width: 1300px;
}

/* Mobile: una singola colonna per gli archive percorsi/servizi */
@media (max-width: 1024px) {
	body.tax-page-category .qodef-portfolio-list {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		padding-left: 20px;
		padding-right: 20px;
	}
	
	body.tax-page-category .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: 1fr;
		gap: 40px 0;
		width: 100%;
		max-width: 100%;
	}
}

/* Forza sfondo grigio chiaro per l'header mobile su percorsi/servizi durante lo scroll */
body.tax-page-category #qodef-page-mobile-header {
	background-color: #e9e9e9;
}

body.tax-page-category #qodef-page-mobile-header.qodef-mobile-header--sticky {
	background-color: #e9e9e9;
}

/* Uniforma font, colore e stile di tutti i titoli H al tipo dell'H1 */
/* H1: font-weight 300 (come originale) */
/* H2-H6: font-weight 500 (come gli highlighted qodef-m-highlight-500) */

/* H1: font-weight 300 */
body h1,
body .qodef-h1,
body h1.elementor-heading-title,
body .elementor-widget-heading h1.elementor-heading-title,
body .elementor-widget-heading h1 .elementor-heading-title,
body .wp-block-heading h1 {
	font-family: "Space Grotesk", sans-serif;
	text-transform: uppercase;
	font-weight: 300;
	color: #000000;
	letter-spacing: normal;
}

/* H1 con classe qodef-m-title (Slider Revolution): bianco */
body h1.qodef-m-title {
	color: #FFFFFF;
}

/* Riduce dimensione H1 nello slider su mobile */
@media (max-width: 767px) {
	body h1.qodef-m-title {
		font-size: clamp(24px, 6vw, 32px);
		line-height: 1.2;
	}
}

/* H2-H6: font-weight 500 (come highlighted) */
body h2, body h3, body h4, body h5, body h6,
body .qodef-h2, body .qodef-h3, body .qodef-h4, body .qodef-h5, body .qodef-h6,
body h2.elementor-heading-title,
body h3.elementor-heading-title,
body h4.elementor-heading-title,
body h5.elementor-heading-title,
body h6.elementor-heading-title,
body .elementor-widget-heading h2.elementor-heading-title,
body .elementor-widget-heading h3.elementor-heading-title,
body .elementor-widget-heading h4.elementor-heading-title,
body .elementor-widget-heading h5.elementor-heading-title,
body .elementor-widget-heading h6.elementor-heading-title,
body .elementor-widget-heading h2 .elementor-heading-title,
body .elementor-widget-heading h3 .elementor-heading-title,
body .elementor-widget-heading h4 .elementor-heading-title,
body .elementor-widget-heading h5 .elementor-heading-title,
body .elementor-widget-heading h6 .elementor-heading-title,
body .wp-block-heading h2,
body .wp-block-heading h3,
body .wp-block-heading h4,
body .wp-block-heading h5,
body .wp-block-heading h6 {
	font-family: "Space Grotesk", sans-serif;
	text-transform: uppercase;
	font-weight: 500;
	color: #000000;
	letter-spacing: normal;
}

/* H2 specifico: line-height e margin corretti */
body h2,
body .qodef-h2,
body h2.elementor-heading-title,
body .elementor-widget-heading h2 .elementor-heading-title,
body .wp-block-heading h2 {
	line-height: 1.1333333333em; /* 51px / 45px = 1.1333333333 */
	margin: 25px 0;
}

/* H2 in Elementor: mantiene margin-top, margin-bottom sarà sovrascritto sotto */
body .elementor-widget-heading h2.elementor-heading-title {
	line-height: 1.1333333333em;
	margin-top: 25px;
	margin-bottom: 25px;
}

/* Riduce spazio bianco sotto i titoli nelle pagine Elementor */
body .elementor-widget.elementor-widget-heading {
	margin-bottom: 0px;
	--widgets-spacing-row: 0px;
}

/* Riduce margin-bottom per tutti i titoli in Elementor - regola più specifica */
body .elementor-widget.elementor-widget-heading h1.elementor-heading-title,
body .elementor-widget.elementor-widget-heading h2.elementor-heading-title,
body .elementor-widget.elementor-widget-heading h2.elementor-heading-title.elementor-size-default,
body .elementor-widget.elementor-widget-heading h3.elementor-heading-title,
body .elementor-widget.elementor-widget-heading h4.elementor-heading-title,
body .elementor-widget.elementor-widget-heading h5.elementor-heading-title,
body .elementor-widget.elementor-widget-heading h6.elementor-heading-title,
body .elementor-widget.elementor-widget-heading .elementor-heading-title {
	margin-bottom: 0px;
}

/* Forst Button in side area: sfondo #308CB5, testo bianco, maiuscolo */
body #qodef-side-area-inner .widget.widget_forst_core_button .qodef-button,
body #qodef-side-area-inner .widget.widget_forst_core_button .qodef-button .qodef-m-text {
	background-color: #308CB5;
	color: #ffffff;
	text-transform: uppercase;
}

/* Forst Button in side area: +1% dimensioni */
body #qodef-side-area-inner .widget.widget_forst_core_button .qodef-button {
	font-size: 1.01em;
	padding: 1.01em 2.02em;
}

/* Portfolio - Rimuove riga orizzontale e anno dal riquadro hover */
body .qodef-portfolio-list .qodef-e-portfolio-info-holder .qodef-e-info-separator,
body .qodef-portfolio-list .qodef-e-portfolio-info-holder .qodef-e-year,
body .qodef-e-portfolio-info-holder .qodef-e-info-separator,
body .qodef-e-portfolio-info-holder .qodef-e-year,
body .qodef-e-info .qodef-e-portfolio-info-holder .qodef-e-info-separator,
body .qodef-e-info .qodef-e-portfolio-info-holder .qodef-e-year,
body .qodef-e-top-holder .qodef-e-portfolio-info-holder .qodef-e-info-separator,
body .qodef-e-top-holder .qodef-e-portfolio-info-holder .qodef-e-year,
body article .qodef-e-portfolio-info-holder .qodef-e-info-separator,
body article .qodef-e-portfolio-info-holder .qodef-e-year {
	display: none;
}

/* Intro H2 sopra la griglia archive percorsi/servizi */
.tax-page-category .forst-archive-intro {
	text-align: center;
	margin: 20px auto 50px;
	width: 100%;
	max-width: 1300px;
	padding-left: 20px;
	padding-right: 20px;
}

body.tax-page-category .forst-archive-intro__title {
	margin: 0;
}

/* Titoli H3 delle sottocategorie solo su /servizi/ */
body.tax-page-category.term-servizi .forst-archive-group__title {
	text-align: left;
	margin: 40px auto 0;
	width: 1300px;
	max-width: 1300px;
	color: #308CB5;
	padding-top: 0;
}

body.tax-page-category.term-servizi .forst-archive-group {
	margin-bottom: 60px;
}

body.tax-page-category.term-servizi .forst-archive-group:last-child {
	margin-bottom: 0;
}

body.tax-page-category.term-servizi .forst-archive-intro {
	width: 100%;
	max-width: 100%;
	text-align: left;
	padding-left: 0;
	padding-right: 0;
}

body.tax-page-category.term-servizi .forst-archive-group__title {
	width: 100%;
	max-width: 100%;
}

/* Sidebar Servizi (solo archive /servizi/) */
body.tax-page-category.term-servizi .forst-servizi-sidebar {
	position: sticky;
	top: 160px;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__inner {
	padding-left: 24px;
	border-left: 1px solid #eee;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__list,
body.tax-page-category.term-servizi .forst-servizi-sidebar__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__list li,
body.tax-page-category.term-servizi .forst-servizi-sidebar__items li {
	padding-left: 0;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__list li::before,
body.tax-page-category.term-servizi .forst-servizi-sidebar__items li::before {
	content: none;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__group {
	margin: 0 0 12px;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__group-link {
	color: #308CB5;
	font-weight: 600;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__items a {
	position: relative;
	display: inline-block;
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__items a::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 1px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s cubic-bezier(0.33, 0.52, 0.05, 0.96);
}

body.tax-page-category.term-servizi .forst-servizi-sidebar__items a:hover::before {
	transform: scaleX(1);
	transform-origin: left;
}

/* Sidebar Percorsi/Servizi (pagine singole) */
body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__inner {
	padding-left: 24px;
	border-left: 1px solid #eee;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__section {
	margin-bottom: 24px;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__section:last-child {
	margin-bottom: 0;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__title {
	margin: 0 0 12px;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__list,
body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__list li,
body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items li {
	padding-left: 0;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__list li::before,
body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items li::before {
	content: none;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__group {
	margin: 0 0 12px;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__group-link {
	color: #308CB5;
	font-weight: 600;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items a {
	position: relative;
	display: inline-block;
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items a::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 1px;
	background-color: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s cubic-bezier(0.33, 0.52, 0.05, 0.96);
}

body.gm-percorsi-servizi-page .forst-servizi-sidebar--percorsi-servizi .forst-servizi-sidebar__items a:hover::before {
	transform: scaleX(1);
	transform-origin: left;
}

@media (max-width: 767px) {
	body.gm-percorsi-servizi-page .qodef-page-sidebar-section {
		display: none;
	}
}

/* Con sidebar, la griglia Servizi non può restare a 4 colonne fisse */
body.tax-page-category.term-servizi .qodef-portfolio-list,
body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner {
	width: 100%;
	max-width: 100%;
}

body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner {
	grid-template-columns: repeat(3, 310px);
	gap: 80px 20px;
	justify-content: center;
}

@media (max-width: 1500px) {
	body.tax-page-category.term-percorsi .qodef-portfolio-list {
		width: 100%;
		max-width: 100%;
		padding-left: 20px;
		padding-right: 20px;
	}

	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner {
		width: 100%;
		max-width: 100%;
		justify-content: center;
	}

	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: repeat(3, 310px);
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: repeat(2, 310px);
	}
}

@media (max-width: 1280px) {
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: repeat(2, 310px);
	}
}

@media (max-width: 1024px) {
	.tax-page-category .forst-archive-intro {
		margin: 15px auto 30px;
		width: 100%;
		max-width: 100%;
		padding-left: 20px;
		padding-right: 20px;
		text-align: left;
	}

	body.tax-page-category.term-servizi .forst-archive-group__title {
		width: 100%;
		max-width: 100%;
		padding-left: 20px;
		padding-right: 20px;
	}

	body.tax-page-category.term-servizi .forst-archive-group__title,
	body.tax-page-category.term-servizi .qodef-e-text .qodef-e-title,
	body.tax-page-category.term-servizi .qodef-e-text .qodef-e-title-link,
	body.tax-page-category.term-percorsi .qodef-e-text .qodef-e-title,
	body.tax-page-category.term-percorsi .qodef-e-text .qodef-e-title-link {
		overflow-wrap: normal;
		word-break: normal;
		hyphens: none;
		white-space: normal;
		max-width: 100%;
	}

	body.tax-page-category.term-servizi .forst-archive-group__title {
		font-size: clamp(1.4rem, 6.5vw, 2.2rem);
	}

	body.tax-page-category.term-servizi .qodef-e-text .qodef-e-title,
	body.tax-page-category.term-servizi .qodef-e-text .qodef-e-title-link,
	body.tax-page-category.term-percorsi .qodef-e-text .qodef-e-title,
	body.tax-page-category.term-percorsi .qodef-e-text .qodef-e-title-link {
		display: block;
		font-size: clamp(1.35rem, 6.6vw, 2.4rem);
	}

	body.tax-page-category.term-servizi .qodef-col--sidebar {
		display: none;
	}

	body.tax-page-category.term-servizi .qodef-grid.qodef-layout--template.qodef-grid-template--9-3 > .qodef-grid-inner {
		grid-template-columns: minmax(0, 1fr);
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: 1fr;
	}

	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner {
		grid-template-columns: 1fr;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-item,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-media,
	body.tax-page-category.term-servizi .qodef-portfolio-list img,
	body.tax-page-category.term-percorsi .qodef-portfolio-list,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-item,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-media,
	body.tax-page-category.term-percorsi .qodef-portfolio-list img {
		max-width: 100%;
		box-sizing: border-box;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-inner,
	body.tax-page-category.term-percorsi .qodef-portfolio-list,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-inner {
		width: 100%;
		min-width: 0;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-grid-item,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-grid-item {
		min-width: 0;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-content,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-text,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-title,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-title-link,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-content,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-text,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-title,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-title-link {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		box-sizing: border-box;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-title-link,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-title-link {
		overflow-wrap: normal;
		word-break: normal;
		-webkit-hyphens: none;
		-ms-hyphens: none;
		hyphens: none;
	}

	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-title,
	body.tax-page-category.term-servizi .qodef-portfolio-list .qodef-e-title-link,
	body.tax-page-category.term-servizi .forst-archive-group__title,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-title,
	body.tax-page-category.term-percorsi .qodef-portfolio-list .qodef-e-title-link {
		display: block;
		overflow: visible;
		text-overflow: unset;
		-webkit-line-clamp: unset;
		line-clamp: unset;
		-webkit-box-orient: unset;
	}
}

/* Excerpt personalizzato sotto al titolo negli archive percorsi/servizi */
body.tax-page-category .qodef-e-excerpt--custom {
	margin: 10px 0 0;
	text-align: left;
	font-size: 16px;
	line-height: 1.5;
	color: #000;
}

/* Testimonials (Qi Addons): left align text */
.qodef-qi-testimonials-list .qodef-e-content,
.qodef-qi-testimonials-slider .qodef-e-content {
	text-align: left;
}

/* Testimonials (Qi Addons): remove uppercase on text */
.qodef-qi-testimonials-list .qodef-e-text,
.qodef-qi-testimonials-slider .qodef-e-text {
	text-transform: none;
}

@media (max-width: 1024px) {
	.tax-page-category .qodef-e-text {
		max-width: 100%;
	}

	.tax-page-category .qodef-e-text .qodef-e-title,
	.tax-page-category .qodef-e-text .qodef-e-excerpt--custom {
		font-size: 2em;
		overflow-wrap: anywhere;
	}

	.tax-page-category .qodef-e-text .qodef-e-excerpt--custom {
		font-size: 1.4em;
	}
}

/* Riduce padding del contenitore breadcrumb da 40px a 20px */
body .qodef-page-title .qodef-m-content.qodef-content-full-width {
	padding: 0 20px;
}

/* Riduce altezza del contenitore breadcrumb da 150px a 100px */
body .qodef-page-title.qodef-title--breadcrumbs {
	height: 100px;
	min-height: 100px;
}

/* checklist con icona Font Awesome */
ul.gigachecklist {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

ul.gigachecklist li {
	position: relative;
	padding-left: 28px;
}

ul.gigachecklist li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: #308CB5;
	position: absolute;
	left: 0;
	top: 0.15em;
}

/* Applica lo stile "gigachecklist" a tutti gli elenchi puntati nelle pagine */
body .entry-content ul:not(.gigachecklist),
body .elementor-text-editor ul:not(.gigachecklist),
body .elementor-widget-text-editor ul:not(.gigachecklist),
body .wp-block ul:not(.gigachecklist) {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}

body .entry-content ul:not(.gigachecklist) li,
body .elementor-text-editor ul:not(.gigachecklist) li,
body .elementor-widget-text-editor ul:not(.gigachecklist) li,
body .wp-block ul:not(.gigachecklist) li {
	position: relative;
	padding-left: 28px;
}

body .entry-content ul:not(.gigachecklist) li::before,
body .elementor-text-editor ul:not(.gigachecklist) li::before,
body .elementor-widget-text-editor ul:not(.gigachecklist) li::before,
body .wp-block ul:not(.gigachecklist) li::before {
	content: "\f058";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: #308CB5;
	position: absolute;
	left: 0;
	top: 0.15em;
}

/* immagine scorrevole per Elementor HTML widget */
.gm-scrolling-image {
	width: 100%;
	max-width: 100%;
	height: 650px;
	margin: 0 auto;
	position: relative;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 0%;
	transition: background-position 6s ease;
}

.gm-scrolling-image:hover {
	background-position: 50% 100%;
}

.gm-scrolling-image__icon {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: 32px;
	color: #ffffff;
	opacity: 1;
	transition: opacity 0.6s ease;
	pointer-events: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.8);
	animation: gm-pulse-ring 1.8s ease-in-out infinite;
}

.gm-scrolling-image:hover .gm-scrolling-image__icon {
	opacity: 0;
}

.gm-scrolling-image__icon i {
	animation: gm-pulse-icon 1.8s ease-in-out infinite;
}

@keyframes gm-pulse-ring {
	0% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5); }
	70% { transform: translate(-50%, -50%) scale(1.04); box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); }
	100% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

@keyframes gm-pulse-icon {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.08); opacity: 0.85; }
}

@media (max-width: 767px) {
	.gm-scrolling-image {
		width: 100%;
		height: 650px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gm-scrolling-image {
		transition: none;
	}
}
