/*
Theme Name: Nordic Child
Theme URI: https://nordic.casethemes.net/
Author: Case-Themes
Author URI: https://casethemes.net/
Description: Nordic child theme
Version: 1.2.1
Template: nordic
Text Domain: nordic-child
*/

/* =========================================================
   TOKENS
========================================================= */

:root {
	--tempini-highlight-color: var(--e-global-color-primary, var(--primary-color, #A89860));
	--tempini-font-display: var(--font-heading, "Crimson Text", serif);
	--tempini-font-body: var(--font-body, "Work Sans", sans-serif);
	--tempini-font-accent: var(--tempini-font-display);

	/* backward compatibility */
	--tempini-heading-font: var(--tempini-font-display);
}

/* ==========================================================================
   SPAN DATA-HEADING
   ========================================================================== */

/**
 * 1. RESET GLOBALE SPAN-HEADINGS
 * Sostituisce il comportamento nativo di h1-h6 ereditando l'aspetto esatto.
 */
span[data-heading] {
    display: block;
	  font-family: var(--tempini-font-display) !important;
    font-optical-sizing: auto;
    color: var(--link-color);
    font-weight: 500;
    margin: 0 0 15px;
    clear: both;
    line-height: 1.28;
    font-style: normal;
}

span[data-heading="h1"] { font-size: 90px; }
span[data-heading="h2"] { font-size: 72px; }
span[data-heading="h3"] { font-size: 58px; }
span[data-heading="h4"] { font-size: 48px; }
span[data-heading="h5"] { font-size: 40px; }
span[data-heading="h6"] { font-size: 36px; }


/**
 * 2. SELETTORI CONTESTUALI SPECIFICI
 */
dl + span[data-heading="h2"] + ul      { padding-left: 35px; }
dl + span[data-heading="h2"] + ul ul   { padding-left: 35px; }
dl + span[data-heading="h2"] + ul ul li { list-style: outside; }


/**
 * 3. ASSETS/SCSS/WIDGETS.SCSS
 * Gestione dei titoli dei blocchi widget nel frontend
 */
.widget_block .wp-block-search__label,
.widget_block .wp-block-group__inner-container > span[data-heading="h2"] {
    /* @extend .ft-heading rimappato esplicitamente */
    font-size: 24px;
    font-style: normal;
    font-weight: 500;
    color: var(--link-color);
    text-transform: uppercase;
    margin-bottom: 30px;
    line-height: 1.2;
    position: relative;
    display: flex;
    align-items: baseline;
    gap: 10px;
    border-bottom: 1px solid #d5d5d5;
    padding-bottom: 10px;
}

@media (max-width: 1200px) {
    .widget_block .wp-block-search__label,
    .widget_block .wp-block-group__inner-container > span[data-heading="h2"] {
        margin-bottom: 33px;
        font-size: 20px;
    }
}



/**
 * 4. ASSETS/SCSS/WOOCOMMERCE.SCSS
 * Mappatura completa dell'area Shop, Carrello e Checkout
 */

/* Mini Cart Sidebar */
#pxl-cart-sidebar .cart-product-meta span[data-heading="h3"] {
    font-size: 16px; 
    line-height: normal; 
    margin-bottom: 3px;
}
#pxl-cart-sidebar .cart-product-meta span[data-heading="h3"] a {
    color: inherit; 
    font-weight: 600;
}
#pxl-cart-sidebar .cart-product-meta span[data-heading="h3"] a:hover {
    color: #555;
}

/* Prodotti Correlati e Tab Singolo Prodotto */
.single-product section.related span[data-heading="h2"] {
    font-size: 30px; 
    text-transform: capitalize; 
    color: #261723; 
    font-weight: 500; 
    border-top: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
    padding: 28px 0;
}
.single-product .woocommerce-Tabs-panel > span[data-heading="h2"] {
    display: none;
}
.single-product .up-sells.upsells > span[data-heading="h2"] {
    font-size: 32px; 
    margin-bottom: 23px;
}

/* Pagina Carrello - Totale */
body.woocommerce-cart .cart-collaterals .cart_totals > span[data-heading="h2"] {
    font-size: 26px; 
    margin-bottom: 29px; 
    text-transform: capitalize;
}

/* Pagina Checkout - Dettagli Fatturazione e Spedizione */
.woocommerce-checkout #customer_details .woocommerce-billing-fields > span[data-heading="h3"],
.woocommerce-checkout #customer_details .woocommerce-additional-fields > span[data-heading="h3"] {
    font-size: 40px; 
    margin-bottom: 24px; 
    text-transform: capitalize;
}

@media (max-width: 991px) {
    .woocommerce-checkout #customer_details .woocommerce-billing-fields > span[data-heading="h3"],
    .woocommerce-checkout #customer_details .woocommerce-additional-fields > span[data-heading="h3"] {
        font-size: 32px;
    }
}
@media (max-width: 767px) {
    .woocommerce-checkout #customer_details .woocommerce-billing-fields > span[data-heading="h3"],
    .woocommerce-checkout #customer_details .woocommerce-additional-fields > span[data-heading="h3"] {
        font-size: 28px;
    }
}

.woocommerce-checkout #customer_details .woocommerce-additional-fields > span[data-heading="h3"] {
    margin-bottom: 32px; /* Margine specifico per i campi addizionali */
}

/* Pagina Account / Login */
.woocommerce-account .woocommerce-notices-wrapper + span[data-heading="h2"] {
    text-align: center; 
    font-size: 24px;
}
.woocommerce-account #customer_login span[data-heading="h2"] {
    font-size: 42px; 
    margin-bottom: 23px;
}

@media (max-width: 767px) {
    .woocommerce-account #customer_login span[data-heading="h2"] {
        font-size: 32px;
    }
}

/* =========================================================
   GLOBAL TYPOGRAPHY
========================================================= */

/* Heading system del tema */
body .ft-heading,
body .widget .widget-title,
body .pxl-widget-title,
body .comments-title,
body .comment-reply-title,
body .pxl-logo-fixed .pxl-logo-text,
body .pxl-heading.px-sub-title-default-style .pxl-heading--inner .pxl-item--title,
body .pxl-heading.px-sub-title-overlay-style .pxl-heading--inner .pxl-item--title,
body .pxl-heading.px-sub-title-style1-style .pxl-heading--inner .pxl-item--subtitle,
body .pxl-heading.px-sub-title-style1-style .pxl-heading--inner .pxl-item--title,
body .pxl-heading.px-sub-title-style2-style .pxl-item--title,
body .pxl-heading.px-sub-title-style3-style .pxl-item--subtitle,
body .pxl-heading .pxl-item--title,
body .pxl-process-box .pxl-item-title,
body .pxl-process-cards .pxl-title-heading,
body .pxl-banner-box .pxl-item-title,
body .pxl-icon-box .pxl-item-title,
body .pxl-post--title,
body .pxl-accordion--title,
body .pxl-tabs--title .pxl-title--text {
	font-family: var(--tempini-font-display) !important;
}

/* Highlight heading globale */
body .pxl-heading .pxl-title--highlight {
	font-family: var(--tempini-font-display) !important;
}

/* menu */
@media screen and (max-width: 1200px) {
    .pxl-menu-close {
        background-color: rgba(0, 0, 0, 0.03);
        position: absolute;
        top: 40px;
        right: 20px;
	}
}

/* home sezione cosa facciamo */
.pxl-process-cards2 .process-container {
	margin-top:50px !important;
}

/* cerchio icona vuoto (nessuna icona impostata nel repeater) */
.pxl-process-cards2 .pxl--item .pxl-section-content .pxl-item--icon {
	display: none !important;
}

/* tempini academy */
.pxl-image-single.style_img3 .pxl-item--inner .pxl-item--image {
    background-color: transparent; 
}
.pxl-banner-box.pxl-banner-box3 .pxl-banner-inner .pxl-list-banner a {
	background-color: var(--link-color);
	color: var(--primary-color);
}

/* paginazione post */
.pxl-pagination-wrap .page-numbers {
	background-color: var(--link-color-hover);
}

/* hero fixes */
#pxl-page-title-default {background-position: center center !important;}

#pxl-inner-post-sg-bg .pxl-item-address {display:none;}
/* =========================================================
   PAGE 15291 - TYPOGRAPHY ALIGNMENT
========================================================= */

/* Base rule di pagina: tutti i titoli pxl-heading della pagina */
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-heading .pxl-item--title,
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-heading .pxl-title--highlight {
	font-family: var(--tempini-font-display) !important;
}

/* Widget heading specifico 85e849d: freno di sicurezza */
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-85e849d .pxl-heading .pxl-item--title,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-85e849d .pxl-heading .pxl-title--highlight {
	font-family: var(--tempini-font-display) !important;
}

/* Highlight color fix specifico */
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-85e849d .pxl-heading.px-sub-title-default-style .pxl-heading--inner .pxl-item--title .pxl-title--highlight,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-85e849d .pxl-heading .pxl-title--highlight {
	color: var(--tempini-highlight-color) !important;
	font-weight: 600 !important;
}

/* Fallback highlight sulla pagina */
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-heading.px-sub-title-default-style .pxl-heading--inner .pxl-item--title .pxl-title--highlight {
	color: var(--tempini-highlight-color);
}

/* Text carousel della pagina: regola base coerente */
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-text-carousel .pxl-item--text,
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-text-carousel .pxl-item--text span {
	font-family: var(--tempini-font-accent) !important;
	font-weight: 500;
	line-height: 1.2;
}

/* Widget carousel specifico c78220e: freno di sicurezza */
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-c78220e .pxl-text-carousel .pxl-item--text,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-c78220e .pxl-text-carousel .pxl-item--text span {
	font-family: var(--tempini-font-accent) !important;
	font-weight: 500;
	line-height: 1.2;
}

/* Manteniamo i colori del carousel già impostati dal builder/tema */
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-c78220e .pxl-text-carousel .pxl-item--text,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-c78220e .pxl-text-carousel .pxl--item:nth-child(2n) .pxl-item--text {
	color: #555555;
}

/* list box title */
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-list-box .pxl-item--title,
body.page-id-15291.elementor-page-15291 .elementor-15291 .pxl-list-box .pxl-item--title a,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-9e9d713 .pxl-list-box .pxl-item--title,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-9e9d713 .pxl-list-box .pxl-item--title a {
	font-family: var(--tempini-font-display) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
}

/* metadata sotto il titolo: categoria + data */
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-9e9d713 .pxl-text-categori,
body.page-id-15291.elementor-page-15291 .elementor-15291 .elementor-element.elementor-element-9e9d713 .pxl-text-date {
	font-family: var(--tempini-font-body) !important;
}

/* =========================================================
   HERO
========================================================= */

.pxl-carousel-hero1 .pxl-item .pxl-item-content .pxl-item--title {
	text-transform: initial;
	margin-top: 0;
}

.pxl-carousel-hero1 .pxl-item-inner {
	background: none;
}

@media screen and (min-width: 1201px)  {
  .fr-style-box2 .pxl-menu-primary > li.current_page_item > a, .fr-style-box2 .pxl-menu-primary > li.current-menu-item > a{
    background-position:100%;
  }
}

/* MacBook Pro 14" e schermi con viewport ≤ 980px di altezza:
   riduce il hero a calc(100vh - 140px) così header (120px) + hero
   non sforano il viewport. Il min-width esclude tablet/mobile
   che hanno già le proprie regole sotto i 1024px. */
@media screen and (max-height: 980px) and (min-width: 1025px) {
	.pxl-carousel-hero1 .pxl-item-inner {
		height: max(calc(100vh - 140px), 760px);
	}
  .pxl-carousel-hero1 .pxl-item {
		height: 50vh;
	}
}

.elementor-background-video-container::before {
	background: rgba(0, 0, 0, 0.7);
}

.pxl-carousel-hero1 .pxl-bg-hero,
.pxl-carousel-hero1 .pxl-bg-hero::after,
.pxl-carousel-hero1 .pxl-bg-hero::before {
	background-color:transparent !important;
	background:none !important;
}

.pxl-carousel-hero1 .pxl-item .pxl-item-content .pxl-item--desc {
	color:#fff;
}

/* =========================================================
   HEADING WIDGET — reset margin browser defaults su h1-h6
   font-size / font-weight / line-height sono gestiti da Elementor
   con selettori propri: non li tocchiamo per non confliggere.
========================================================= */

.pxl-heading h1.pxl-item--title,
.pxl-heading h2.pxl-item--title,
.pxl-heading h3.pxl-item--title,
.pxl-heading h4.pxl-item--title,
.pxl-heading h5.pxl-item--title,
.pxl-heading h6.pxl-item--title {
	margin-top: 0;
	margin-bottom: 0;
}

/* =========================================================
   PROCESS CARDS — reset h2 browser defaults
   font-size/weight/line-height già espliciti sul selettore .pxl-title-heading
   (72px / 500 / 1.15em): le proprietà tipografiche vengono ereditate.
   Solo margin-top va resettato (h2 default ≈ 0.67em × 72px ≈ 48px).
========================================================= */

.pxl-process-cards1 .pxl-process-content h2.pxl-title-heading {
	margin-top: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

/* =========================================================
   ACCORDION — reset h3 browser defaults
   L'h3.pxl-title--text eredita tipografia dal .pxl-accordion--title
   (font-size: 24px / 20px responsive, font-weight: 600, line-height: 1.32).
========================================================= */

.pxl-accordion1 .pxl-accordion--title h2.pxl-title--text,
.pxl-accordion1 .pxl-accordion--title h3.pxl-title--text,
.pxl-accordion1 .pxl-accordion--title h4.pxl-title--text,
.pxl-accordion1 .pxl-accordion--title h5.pxl-title--text,
.pxl-accordion1 .pxl-accordion--title h6.pxl-title--text {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	margin: 0;
	color: inherit;
}

/* =========================================================
   PAGE 15291 - TYPOGRAPHY ALIGNMENT
========================================================= */
/* highlight */
.elementor-15151 .elementor-element.elementor-element-af7b63f .pxl-heading .pxl-title--highlight,
.elementor-15151 .elementor-element.elementor-element-e27c2c9 .pxl-heading .pxl-title--highlight,
.elementor-15151 .elementor-element.elementor-element-51b37d1 .pxl-heading .pxl-title--highlight,
.pxl-heading.px-sub-title-default-style .pxl-heading--inner .pxl-item--title .pxl-title--highlight {
  color: var(--tempini-highlight-color);
}

/* PAGE 15151 - intro paragraph */
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-2906cee .pxl-text-editor p {
	font-family: var(--tempini-font-body) !important;
	font-weight: 400 !important;
	line-height: 1.7 !important;
	letter-spacing: 0 !important;
}

/* PAGE 15151 - only section labels */
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-038fcbb .pxl-text-editor p,
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-a7887bf .pxl-text-editor p {
	font-family: var(--tempini-font-display) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
}

/* PAGE 15151 - mission/vision descriptions */
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-0582902 .pxl-text-editor p,
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-be4b527 .pxl-text-editor p {
	font-family: var(--tempini-font-body) !important;
	font-weight: 400 !important;
	line-height: 1.7 !important;
	letter-spacing: 0 !important;
}

/* PAGE 15151 - About Us label */
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-6706575 .pxl-text-editor p {
	font-family: var(--tempini-font-display) !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
}

/* PAGE 15151 - philosophy sentence */
body.page-id-15151.elementor-page-15151 .elementor-15151 .elementor-element.elementor-element-d4ca1fc .pxl-text-editor p {
	font-family: var(--tempini-font-display) !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	letter-spacing: 0 !important;
}


/* PAGE 15151 - carousel awards, clone dell'istanza corretta */
body.page-id-15151 .elementor-15151 .elementor-element.elementor-element-789ae0e .pxl-text-carousel .pxl-item--text,
body.page-id-15151 .elementor-15151 .elementor-element.elementor-element-789ae0e .pxl-text-carousel .pxl-item--text span {
	font-family: var(--tempini-font-display) !important;
	font-weight: 400 !important;
	line-height: 1.3em !important;
	letter-spacing: 0 !important;
	color: #555555 !important;
	text-transform: none !important;
}

body.page-id-15151 .elementor-15151 .elementor-element.elementor-element-789ae0e .pxl-text-carousel .pxl--item:nth-child(2n) .pxl-item--text {
	color: #555555 !important;
}

body.page-id-15151 .elementor-15151 .elementor-element.elementor-element-789ae0e .pxl-text-carousel .pxl--item::after {
	background-color: #555555 !important;
}
body.page-id-15151 .pxl-testimonial-carousel1 .pxl-item-inner {
    background-color: #F1F1EE;
}

/* =========================================================
   BRAND SINGLE — ripristino padding laterale
   Il tema azzera padding su .col-12 per Elementor pages a ≤1024px,
   escludendo solo single-post e single-product.
========================================================= */
@media (max-width: 1024px) {
    .elementor-page:not(.single-post):not(.single-product).single-brand #pxl-content-area.col-12 {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* =========================================================
   PAGE TITLE BAR
========================================================= */
#pxl-page-title-default .pxl-ptitle-content .pxl-ptitle-icon {
    display: none;
}

/* =========================================================
   BLOG e PROGETTI
========================================================= */
.pxl-post-carousel3 .pxl-post--inner,
.widget_search .search-field, .widget_search .wp-block-search__input,
.pxl-sidebar-area .widget,
.widget_tag_cloud a,
.single-post .pxl-inner-top-meta .pxl-inner-post-custom,
.pxl-related-post,
.pxl-pagination1,
.pxl-video-scroll1 .pxl-list-video {
	background-color: var(--link-color-hover);
}


.pxl-item--archive {
  box-shadow: 0px 3px 15px rgba(0, 0, 0, .2);
  background-color: transparent;
}

.pxl-sidebar-sticky [id^="pxl_elementor_box-"],
.pxl-sidebar-sticky [id^="categories-"] {
  display: none;
}

/* =========================================================
   BRAND ARCHIVE — intro text alignment
   e-con-boxed aggiunge padding al .e-con-inner che sfasa il testo
   rispetto al titolo nel banner (che usa .container Bootstrap).
========================================================= */
.elementor-element-cc26bf6 > .e-con-inner {
    padding-inline-start: 0;
    padding-inline-end: 0;
    margin:0;
}

/* =========================================================
   BRAND — logo image full-width
========================================================= */
.pxl-brand--inner > a > img,
.pxl-brand--inner > a img {
    width: 100%;
    height: auto;
    display: block;
}

.pxl-brand-cat--image,
.pxl-brand-cat--image img {
    width: 100%;
    height: auto;
    display: block;
}

.pxl-brand-cat--inner {
    overflow: hidden;
}

.pxl-brand-cat--body {
    padding: 12px 0;
}

.pxl-brand-cat--name {
    margin: 0 0 4px;
}

/* =========================================================
   PRODOTTI — descrizione categoria troncata a 5 righe
   Altezza massima fissa sul blocco (non solo sul singolo <p>)
   cosi le card restano della stessa dimensione anche quando
   la descrizione ha piu' di un paragrafo.
========================================================= */
.pxl-line-clamp-5 {
    max-height: 132px;
    overflow: hidden;
}

.pxl-line-clamp-5 p {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}

/* =========================================================
   PRODOTTI — spaziature card (titolo / testo / bottone)
========================================================= */
.pxl-prodotti-grid .pxl-brand-item {
    margin-bottom: 50px;
}

/* Altezza immagine omogenea: le foto caricate hanno proporzioni diverse
   (alcune quasi quadrate, altre panoramiche); fissiamo un aspect-ratio
   comune e ritagliamo con object-fit invece di lasciare height:auto. */
.pxl-prodotti-grid .pxl-brand--inner > a {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.pxl-prodotti-grid .pxl-brand--inner > a > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Stessa correzione di altezza immagine omogenea applicata all'archivio
   tassonomia /categoria-brand/{slug}/ (nordic-child/taxonomy-brand_category.php,
   classe .pxl-brand-tax-grid), che ha lo stesso markup .pxl-brand--inner > a > img
   ma non riceve le regole sopra perche' non usa la classe .pxl-prodotti-grid. */
.pxl-brand-tax-grid .pxl-brand--inner > a {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.pxl-brand-tax-grid .pxl-brand--inner > a > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pxl-prodotti-grid .pxl-brand--body {
    padding: 20px 0 0;
}

.pxl-prodotti-grid .pxl-post--title {
    margin: 0 0 10px;
}

.pxl-prodotti-grid .pxl-brand--excerpt {
    margin: 0 0 18px;
}

.pxl-prodotti-grid .pxl-post--btn {
    margin-top: 4px;
}

/* =========================================================
   PRODOTTI — bottone "Scopri di più" isolato, identico al
   bottone "I nostri prodotti" della home (stile dedicato,
   valori fissi, non dipende dal sistema .btn globale).
========================================================= */
.pxl-btn-prodotti {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    background-color: #141414;
    color: #ffffff;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 18px 28px;
    line-height: 1;
    border-radius: 0;
    transition: background-color .25s ease;
}

.pxl-btn-prodotti:hover {
    background-color: #000000;
    color: #ffffff;
    text-decoration: none;
}

.pxl-btn-prodotti .pxl-button-arrow {
    transition: transform .25s ease;
    flex-shrink: 0;
}

.pxl-btn-prodotti:hover .pxl-button-arrow {
    transform: translateX(4px);
}

/* =========================================================
   PRODOTTI — intestazione gruppo (shortcode [tempini_prodotti])
========================================================= */
.pxl-prodotti-group + .pxl-prodotti-group {
    margin-top: 60px;
}

.pxl-prodotti-group__title {
    font-family: var(--tempini-font-display);
    margin: 0 0 30px;
}

/* ==========================================================================
   Override UI File Upload CF7 (Bugfix theme.js)
   Il vero <input type="file"> di CF7 (nascosto via JS da theme.js con stili
   inline) viene forzato a coprire l'intero wrapper in modo invisibile, cosi'
   il click nativo del browser apre il file picker senza bisogno di JS custom
   (elimina la race condition sul timing di generazione del DOM da parte di
   theme.js). !important necessario per vincere gli stili inline iniettati
   da theme.js sull'input reale.
   ========================================================================== */
.pxl-file-upload-wrapper {
    position: relative !important;
    overflow: hidden;
}

.pxl-file-upload-wrapper .pxl-file-upload-hidden {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    visibility: visible !important;
    z-index: 99 !important;
    cursor: pointer !important;
}

.pxl-file-upload-wrapper .pxl-file-upload-input,
.pxl-file-upload-wrapper .pxl-file-upload-button {
    pointer-events: none !important;
}

/* Varco residuo: focus da tastiera (Tab) bypassa pointer-events. Il readonly
   vero e proprio viene applicato via JS in focusin (vedi functions.php),
   qui copriamo solo l'aspetto visivo del caret nel frattempo. */
.pxl-file-upload-wrapper .pxl-file-upload-input {
    user-select: none !important;
    caret-color: transparent !important;
}

.mt-cust {
  margin-top:60px;
}

.mb-cust {
  margin-bottom:20px;
}

.pxl-grid-inner {
  margin-bottom:60px;
}

/* =========================================================
   SHOWROOM — altezza uniforme immagini card (portfolio-grid-layout2)
   Le immagini caricate possono avere aspect ratio diversi (es. 450×450
   vs 1230×600). Forziamo l'aspect ratio del container e object-fit cover
   così tutte le card hanno la stessa altezza a prescindere dall'immagine.
========================================================= */
.pxl-portfolio-grid-layout2 .pxl-featured-img,
.pxl-portfolio-carousel2 .pxl-post--featured .pxl-featured-img {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.pxl-portfolio-grid-layout2 .pxl-featured-img img,
.pxl-portfolio-carousel2 .pxl-post--featured .pxl-featured-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

/* =========================================================
   SHOWROOM — line-clamp excerpt card
========================================================= */

@media (max-width: 1200px) {
    .pxl-portfolio-carousel2 .pxl-item--content,
    .pxl-portfolio-grid-layout2 .pxl-item--content {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* =========================================================
   SHOWROOM — badge prossima apertura
========================================================= */

.pxl-post--coming-soon a {
    pointer-events: none;
    cursor: default;
}

.pxl-badge--coming-soon {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    background-color: var(--tempini-highlight-color);
    color: #fff;
    font-family: var(--tempini-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 2px;
    pointer-events: none;
}

/* =========================================================
   CONTACT FORM — campo upload file coerente con gli altri input
========================================================= */
.pxl-file-upload-wrapper .pxl-file-upload-input {
    border: none;
    height: 55px;
    color: #999;
    font-weight: 400;
}

.pxl-file-upload-wrapper .pxl-file-upload-button {
    line-height: 55px;
}

/* =============================
   CONTACT FORM — campo upload file coerente con gli altri input
========================================================= */
.pxl-file-upload-wrapper .pxl-file-upload-input {
    border: none;
    height: 55px;
    color: #999;
    font-weight: 400;
}

.pxl-file-upload-wrapper .pxl-file-upload-button {
    line-height: 55px;
}

/* =========================================================
  SERVIZI
========================================================= */
.pxl-service-sidebar1 .pxl-item-inner .pxl-inner-change .pxl-item-change .pxl-item--icon {
  display:none;
}

/* ============================================
   TEAM SPHERES - CURSOR FIX
   Sfere team non cliccabili: cursore default,
   hover animazione invariato. Solo "Vedi tutti" resta pointer.
============================================ */
.pxl-team-box1 .pxl-team-inner,
.pxl-team-box1 .pxl-team-inner * {
    cursor: default !important;
}
.pxl-button-radius .pxl-radius-button {
    cursor: pointer !important;
}


/* 1. Forza la visibilità e le dimensioni della checkbox */
.pxl-item-privacy input[type="checkbox"] {
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 16px !important;
    height: 16px !important;
    position: static !important;
    margin: 0 10px 0 0 !important; /* Aggiunge spazio solo a destra */
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    flex-shrink: 0 !important; /* Evita che la spunta si schiacci se il testo è lungo */
}

/* 2. Allinea tutto a sinistra e blocca su un'unica riga */
.pxl-item-privacy {
    text-align: left !important;
    margin-bottom: 20px !important;
}

/* 3. Usa flexbox per affiancare gli elementi */
.pxl-item-privacy p,
.pxl-item-privacy label {
    display: flex !important;
    align-items: center !important; /* Centra verticalmente spunta e testo */
    justify-content: flex-start !important;
    flex-direction: row !important;
    margin: 0 !important;
    text-align: left !important;
    width: 100% !important;
}

/* 4. Nasconde eventuali ritorni a capo automatici (<br>) creati da WP/CF7 */
.pxl-item-privacy br {
    display: none !important;
}

/* 5. Azzera i margini dei contenitori standard di CF7 per non creare stacchi */
.pxl-item-privacy .wpcf7-form-control-wrap,
.pxl-item-privacy .wpcf7-list-item {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* Allineamento verticale preciso per i contenitori di CF7 */
.pxl-item-privacy .wpcf7-form-control-wrap,
.pxl-item-privacy .wpcf7-acceptance,
.pxl-item-privacy .wpcf7-list-item {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    height: auto !important;
}

.pxl-contact-form .wpcf7-acceptance .wpcf7-list-item {
	    top: 8px;
}

.pxl-item-privacy a:hover {
	color: #b3a762;
}