/*
Theme Name: Hub Child
Theme URI: http://hub.liquid-themes.com/
Author: Liquid Themes
Author URI: https://themeforest.net/user/liquidthemes
Template: hub
Description: Smart, Powerful and Unlimited Customizable WordPress Theme.
Version: 1.0
License: GNU General Public License
License URI: license.txt
Text Domain: hub-child
Tags: responsive, retina, rtl-language-support, blog, portfolio, custom-colors, live-editor
*/

body .breadcrumb, 
body .breadcrumb>.active,
body .titlebar-inner a, .titlebar-inner p {
    color: var(--e-global-color-primary);
}
.breadcrumb>li,.lqd-af-slide__desc .split-inner {
    display: inline-block
}
.breadcrumb {
    background: 0 0
}

.breadcrumb>li:after,.breadcrumb>li:before {
    content: none
}

.breadcrumb>li:not(:last-child):after {
    content: "/ ";
    display: inline-flex;
    align-items: center;
    margin-inline-start:.75em;margin-inline-end:.75em;font-size: .85em
}

.breadcrumb,.breadcrumb>.active {
    color: inherit
}

.breadcrumb span {
    opacity: .6;
    transition: opacity .3s
}
html.video {
    overflow: scroll !important;
}

header .lqd-icn-ess {
	font-size: 0.7em;
}
header.is-not-stuck .lqd-icn-ess {
    color: #fff;
}

.lqd-lp-author {
	display: none !important;
}

body div#lqd-contents-wrap {
	padding-left: 0;
	padding-right: 0;
}

.elementor-widget-shortcode .elementor-heading-title.elementor-size-small {
	color: var(--e-global-color-primary );
    font-family: "Gotham", Sans-serif;
    font-weight: 600;
    /* text-transform: uppercase; */
    line-height: 1.3em;
	font-size: 18px;
}

@media (min-width: 1200px){
	body .container {
		width: 100%;
	}
	footer[data-sticky-footer] {
		position: relative;
	}
}

/* Reset margin-top "fantasma" sui heading (override Bootstrap + theme.css del parent) */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
	margin-top: 0;
}

/* === Dynamic Categories — Style 4 (Inline) =============================
 * Quando il widget tp-dynamic-categories ha style_4 selezionato
 * (vedi hub_child_tpdc_style_4_before_render in functions.php),
 * il wrapper Elementor riceve la classe .tpae-cat-inline e renderizza
 * il markup di style_3 come flusso libero senza colonne fisse.
 *
 * Il fix anti-FOUC primario è in functions.php: il filtro
 * hub_child_tpdc_style_4_strip_isotope rimuove la classe
 * `list-isotope-metro` dal wrapper così Isotope non parte affatto.
 * Le regole qui sotto restano come rete di sicurezza nel caso il
 * plugin rinomini la classe o un terzo player re-inizializzi Isotope.
 * ====================================================================== */
.elementor-widget.tpae-cat-inline .dynamic-cat-list .tp-row {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: flex-start;
	gap: 8px 8px;
	position: static !important;
	height: auto !important;
}
.elementor-widget.tpae-cat-inline .dynamic-cat-list .tp-row .grid-item,
.elementor-widget.tpae-cat-inline .dynamic-cat-list .tp-row .grid-item.metro-item {
	position: static !important;
	left: auto !important;
	top: auto !important;
	flex: 0 1 auto;
	width: auto !important;
	/* 100% (non "none"): su mobile un'etichetta lunga non deve uscire dallo schermo */
	max-width: 100% !important;
	min-width: 0;
	margin: 0;
	padding: 0;
}
/* Testo della pillola: va a capo solo se l'etichetta supera la larghezza disponibile */
.elementor-widget.tpae-cat-inline .pt-dynamic-wrapper.style_3 .pt-dynamic-hover-cat-name {
	white-space: normal;
	overflow-wrap: break-word;
	text-align: left;
}
/* Mobile: righe più staccate (interlinea globale 1.1 → 1.35) e più padding
   laterale, così la pillola su due righe non sembra "schiacciata" dalla curva.
   Il padding verticale scende di 0.125em per lato per compensare l'interlinea:
   le pillole su una riga restano alte come prima. !important perché le regole
   Elementor del widget (padding/typography) hanno specificità più alta. */
@media (max-width: 767px) {
	.elementor-widget.tpae-cat-inline .pt-dynamic-wrapper.style_3 .pt-dynamic-hover-cat-name {
		line-height: 1.35 !important;
		padding: calc(8px - 0.125em) 18px !important;
	}
}
.elementor-widget.tpae-cat-inline .pt-dynamic-wrapper.style_3,
.elementor-widget.tpae-cat-inline .pt-dynamic-wrapper.style_3 .pt-dynamic-content,
.elementor-widget.tpae-cat-inline .pt-dynamic-wrapper.style_3 .pt-dynamic-content a {
	width: auto;
}

/* === Listing medici — layout interno card =========================
 * Lo skin template Elementor 16144 (widget tp-dynamic-listing 1d8c01d
 * sulla pagina /specializzazioni/) ha card con altezza variabile per
 * via di nomi piu' o meno lunghi. Il JS `equalizeSpecialistiCards()` in
 * myscript.js imposta a tutte le card l'altezza della piu' alta; questo
 * blocco CSS prepara la struttura flex interna così che, quando l'altezza
 * dell'<article> viene forzata, immagine/titolo/pulsante si distribuiscano
 * correttamente (titolo centrato che riempie lo spazio residuo, pulsante
 * sempre in basso).
 * Selettori ancorati allo skin 16144: se in futuro lo skin viene
 * ricreato, gli ID Elementor (478085fe, 2906335d, 69c2a40b, 425ccf1d,
 * e4f48d6) andranno aggiornati.
 * ====================================================================== */
.elementor-widget-tp-dynamic-listing .grid-item > article,
.elementor-widget-tp-dynamic-listing .grid-item > article > .blog-list-content,
.elementor-widget-tp-dynamic-listing .grid-item > article > .blog-list-content > .elementor-16144,
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-478085fe,
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-478085fe > .e-con-inner {
	height: 100%;
}
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-2906335d {
	height: 100%;
	display: flex !important;
	flex-direction: column !important;
}
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-69c2a40b,
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-e4f48d6 {
	flex: 0 0 auto;
}
.elementor-widget-tp-dynamic-listing .grid-item > article .elementor-element-425ccf1d {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Visibilità per CPT sulla single condivisa (specialista / infermiere).
   La template Elementor è la stessa per i due CPT: queste regole sfruttano le
   body class single-specialista / single-infermiere aggiunte da WordPress.
   Uso: in Elementor → Avanzate → Classi CSS dell'elemento, aggiungi:
     - "solo-specialisti"  -> visibile su specialista, nascosto su infermiere
     - "solo-infermieri"   -> visibile su infermiere, nascosto su specialista
   Disattivate: le single infermiere non sono pubbliche (404), quindi le regole
   non hanno effetto. Riattivare se le single infermiere tornano pubbliche.
body.single-infermiere .solo-specialisti { display: none !important; }
body.single-specialista .solo-infermieri { display: none !important; }
*/

a.post-load-more {
	border-radius: 35px;
}

/* Load more medici: durante l'assestamento (dopo "Altri medici") le
   card appena aggiunte vengono nascoste finché il JS non le ha pareggiate e
   posizionate. Evita il flash di una card "lunghissima" (immagine lazy non
   ancora vincolata a 300px) che, via equalize, allungherebbe tutta la griglia.
   Il body prende/perde la classe .esp-loading-more in myscript.js; le card
   pronte hanno .esp-card-ready. */
body.esp-loading-more .elementor-widget-tp-dynamic-listing .grid-item > article:not(.esp-card-ready) {
	visibility: hidden;
	/* Cap di sicurezza: qualunque sia la causa del transiente (immagine/Isotope
	   non ancora assestati) la card non riserva mai un'altezza "lunghissima" che
	   allungherebbe la pagina prima che il JS la riveli all'altezza corretta. */
	max-height: 480px;
	overflow: hidden;
}
