/*
CTC Separate Stylesheet
Updated: 2026-02-23 10:08:52
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.6.1771837732
*/

/* ==========================================================================
   Variabili globali
   ========================================================================== */

:root {
  /* COLORI */
  /* bg */
  --main-bg-color: #f5e4d5;
  --secondary-bg-color: #f6ede5;
  --orange: #c06c45;
  --active-item-bg-color: var(--orange);
  --section-secondary-bg-color: #000000;
  --white-bg: #ffffff;
  /* FONT */
  /* Dimensioni font */
  /* titoli */
  --main-section-title-fs: 110px;
  --secondary-section-title-fs: 60px;
  --main-section-subtitle-fs: 20px;
  --cosa-facciamo-title-fs: 46px;
  --title-fs: 36px;
  --card-title-fs: 26px;
  /* testi */
  --regular-fs: 16px;
  --small-fs: 12px;
  /* Altezza testo */
  --normal-lh: 1.2;
  /* SPACING */
  --px: 10%;
}

/* ==========================================================================
   Reset e normalizzazione
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Playfair Display", serif;
}

/* ==========================================================================
   Regole generali
   ========================================================================== */

.btn-primary[type="button"]:focus {
  background-color: var(--orange) !important;
}

/* Font e tipografia */
/* Versione ottimizzata se non usi tutti i pesi */

.hero-title-italic {
  font-family: "Playfair Display", serif;
  font-weight: bold;
  font-style: italic;
  color: #c06c45 !important;
}

p span {
  line-height: var(--normal-lh);
}

a,
a:active,
a:visited {
  color: inherit;
}

.secondary-section h2 {
  font-family: "Playfair Display", serif;
  font-size: var(--secondary-section-title-fs);
  font-weight: 600;
  font-style: italic;
}

.playfair-title {
  font-family: "Playfair Display", serif;
}

.inter-title {
  font-family: "Inter", sans-serif;
}

/* COLORI */

.secondary-bg {
  background-color: var(--section-secondary-bg-color);
}

.white-bg {
  background-color: var(--white-bg);
}

.text-black {
  color: #0000 !important;
}

html {
  scroll-behavior: smooth;
  background-color: var(--main-bg-color);
}

body {
  background-color: var(--main-bg-color);
}

.container {
  padding: 5% var(--px);
}

body:not(.single-product) .secondary-bg p,
body:not(.single-product) .secondary-bg span {
  color: #ffffff;
}

#mobile-nav-container button:hover,
#mobile-nav-container button:focus,
#mobile-nav-container button:active,
#mobile-nav-container button {
  cursor: pointer;
  background-color: transparent;
  color: var(--orange);
}

/* Spacing */
.move-right {
  position: relative;
  left: 20px;
}

.move-left {
  position: relative;
  left: -20px;
}

.align-self-start {
  align-self: flex-start;
}

.pl-strong-italic {
  font-family: "Playfair Display", serif;
  font-weight: 800; /* Extra-Bold */
  font-style: italic; /* Italic */
}

.title-left {
  position: relative;
  left: -20px;
}

/* Padding 5% per tutte le pagine WooCommerce eccetto il singolo prodotto */
body.woocommerce-page:not(.single-product) .site-main,
body.woocommerce-page:not(.single-product) .container {
  padding-top: 5% !important;
  padding-bottom: 5% !important;
}

/* UTILITIES */
.p-relative {
  position: relative !important;
}

.fw-bold {
  font-weight: bold !important;
}

.flex {
  display: flex !important;
}

.text-black {
  color: black !important;
}

/* Positioning */
.text-center {
  text-align: center !important;
}

.text-end {
  text-align: end !important;
}

.justify-content-between {
  justify-content: space-between !important;
}

.align-items-center {
  align-items: center !important;
}

.align-items-end {
  align-items: flex-end !important;
}

/* Dimensioni */
.w-50 {
  width: 50% !important;
}

/* Link contatti */
.contact-link {
  color: #333;
  text-decoration: underline;
  text-underline-offset: 4px; /* Stacca leggermente la sottolineatura dal testo */
  transition: color 0.3s ease;
}

/* --- OVERRIDE WOOCOMMERCE --- */
.woocommerce-info {
  border-top: 2px solid var(--orange);
}

.woocommerce-info::before {
  color: var(--orange);
}

/* --- STILE GRAVITY FORMS --- */

.gform_submission_error {
  margin-bottom: 10px !important;
}

.secondary-bg .gform_submission_error {
  color: white !important;
}

.secondary-bg .gfield_description.validation_message.gfield_validation_message {
  color: white !important;
}

/* Layout base Gravity Forms — abilita il grid per i campi affiancati */
.gform_wrapper .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Half width (6/12 colonne) */
.gform_wrapper .gfield--width-half {
  grid-column: span 6;
}

/* Full width (12/12 colonne) — default */
.gform_wrapper .gfield--width-full,
.gform_wrapper .gfield--type-textarea,
.gform_wrapper .gfield--type-consent,
.gform_wrapper .gfield--type-html {
  grid-column: span 12;
}

/* Third width */
.gform_wrapper .gfield--width-third {
  grid-column: span 4;
}

/* Two thirds */
.gform_wrapper .gfield--width-two-thirds {
  grid-column: span 8;
}

/* Mobile: tutto in colonna singola */
@media (max-width: 575px) {
  .gform_wrapper .gfield--width-half,
  .gform_wrapper .gfield--width-third,
  .gform_wrapper .gfield--width-two-thirds {
    grid-column: span 12;
  }
}

/* Wrapper per dare respiro al form */
.contact-form-wrapper {
  max-width: 100%;
  margin-top: 20px;
}

/* Reset dei campi input di Gravity Forms */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
select,
.gform_wrapper textarea {
  background-color: transparent !important;
  border: 1px solid #1a1a1a !important; /* Bordo scuro come da design */
  border-radius: 8px !important; /* Angoli arrotondati */
  padding: 12px 15px !important;
  font-family: "Inter", sans-serif !important;
  font-size: 15px !important;
  color: #333 !important;
  width: 100%;
  box-sizing: border-box;
}

.gform_wrapper input[type="checkbox"]::before {
  color: var(--orange) !important;
}

/* ==========================================================================
   STILE CUSTOM CHECKBOX (Officina delle Arti)
   ========================================================================== */

/* 1. Stile di base della checkbox (non selezionata) */
input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none; /* Per compatibilità Safari */
    
    aspect-ratio: 1;
    width: 20px;
    height: 20px;
    border: 1px solid #1a1a1a; /* Bordo scuro coerente con il brand */
    border-radius: 4px; /* Leggermente arrotondata */
    background-color: transparent;
    cursor: pointer;
    display: inline-grid;
    place-content: center; /* Centra la spunta perfettamente */
    position: relative;
    vertical-align: middle;
    transition: all 0.2s ease-in-out;
}

.secondary-bg input[type="checkbox"] {
  border-color: #ffffff !important;
}

/* 2. EFFETTO QUANDO È SELEZIONATA (:checked) */
input[type="checkbox"]:checked {
    background-color: #c3622e; /* Il tuo arancione terracotta */
    border-color: #c3622e;
}

/* 3. Creazione del "baffo" della spunta bianca usando uno pseudo-elemento */
input[type="checkbox"]::before {
    content: "";
    width: 6px;
    height: 10px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0; /* Disegna solo i lati destro e inferiore di un rettangolo */
    transform: rotate(45deg) scale(0); /* Ruotato di 45° e rimpicciolito a zero di default */
    transition: transform 0.1s ease-in-out;
    margin-top: -2px; /* Micro-aggiustamento per centrarlo visivamente */
}

/* 4. Mostra la spunta animata quando la checkbox è :checked */
input[type="checkbox"]:checked::before {
    transform: rotate(45deg) scale(1); /* Torna a dimensione intera quando attiva */
}

/* 5. Opzionale: Effetto focus per l'accessibilità (quando ci si sposta con la tastiera) */
input[type="checkbox"]:focus-visible {
    outline: 2px solid #c3622e;
    outline-offset: 2px;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

input[type=number]:focus,
input[type=number]:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Rimuovi l'outline brutto del browser al click */
.gform_wrapper input:focus,
.gform_wrapper textarea:focus {
  outline: none !important;
  border-color: var(--orange) !important;
}

/* Stile delle Etichette (Labels) */
.gform_wrapper .gfield_label {
  font-family: "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  margin-bottom: 8px !important;
  display: block;
}

/* Stile specifico per l'area di testo (Messaggio) */
.gform_wrapper textarea {
  min-height: 150px;
  resize: vertical;
}

/* Stile della Checkbox Privacy */
.gform_wrapper .gfield_checkbox li {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gform_wrapper .gfield_checkbox input[type="checkbox"] {
  margin: 0 !important;
  width: 18px;
  height: 18px;
  accent-color: var(--orange); /* Colore del check (su browser moderni) */
}

.gform_wrapper .gfield_checkbox label {
  font-weight: 400 !important;
  font-size: 13px !important;
}

/* Stile del Bottone "RICHIEDI INFO" */
.gform_wrapper .gform_footer {
  text-align: center; /* Centra il bottone */
  margin-top: 30px;
}

.gform_wrapper input[type="submit"] {
  background-color: var(--orange) !important;
  color: #ffffff !important;
  font-family: "Inter", sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-transform: uppercase !important;
  padding: 15px 60px !important;
  border: none !important;
  border-radius: 30px !important; /* Forma a pillola */
  cursor: pointer;
  margin: 0 auto !important;
  transition: background-color 0.3s ease !important;
}

.gform_wrapper input[type="submit"]:hover {
  background-color: #a05835 !important;
}

.gform_wrapper .gfield_required {
  color: var(--orange) !important;
  padding-left: 2px;
}

/* Rimuove la leggenda "I campi contrassegnati con * sono obbligatori" */
.gform_required_legend,
.gform_wrapper .gfield_required_text {
  display: none !important;
}

/* Rimuove anche eventuali bordi o padding extra che GF aggiunge al contenitore della leggenda */
.gform_wrapper .gform_required_indicator {
  display: none !important;
}

.gfield--type-consent {
  border: none;
}

/* /STILE GFORM FINE */

.contact-link:hover {
  color: var(--orange);
}

/* Bottoni */
.btn-primary {
  display: inline-block;
  background-color: #c06c45;
  color: #ffffff !important;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: bold;
  font-size: var(--small-fs);
  letter-spacing: 1px;
  transition: background-color 0.3s ease;
  align-self: flex-start;
}

.btn-primary,
.btn-secondary {
  padding: 10px 25px;
  border-radius: 27px;
}

.btn-primary:hover {
  color: #ffffff;
  background-color: #a05835;
}

body,
p,
a,
span,
li,
div {
  font-family: "Inter", sans-serif;
}

/* SALE PRICE */
ins .woocommerce-Price-amount bdi {
  font-size: 1.8rem !important;
}

/* ==========================================================================
   HEADER & NAV
   ========================================================================== */

.sticky-header {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 99;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.main-header,
.top-bar,
.navbar-main {
  width: 100%;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
}

#navbar-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sub-menu {
  list-style-type: none;
}

/* CART & MY ACCOUNT */

/* --- TOP BAR --- */
.top-bar {
  background-color: var(--orange);
  color: #ffffff;
  padding: 8px 1% 8px calc(1% + 20px);
}

.top-bar-content {
  display: flex;
  justify-content: space-between;
  width: 100%;
  font-size: 11px;
  letter-spacing: 1px;
  font-weight: 500;
}

.top-bar a {
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.top-bar a:hover {
  opacity: 0.8;
  text-decoration: underline;
}

/*- Mobile navbaer -*/
/* --- MENU MOBILE: NASCOSTO SU DESKTOP --- */
#mobile-nav-container {
  display: none;
}

/* --- HAMBURGER BUTTON (Desktop) --- */
.menu-toggle {
  display: none; /* Nascosto di default */
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 1000; /* Deve stare sopra al menu mobile quando si apre */
}

.menu-toggle:hover {
  background-color: transparent;
}

.hamburger-line {
  display: block;
  width: 30px;
  height: 3px;
  margin: 6px auto;
  background-color: #1a1a1a;
  transition: all 0.3s ease-in-out;
}

/* Allineamento contenitore Desktop per affiancare Menu e Icone */
.desktop-nav {
  display: flex;
  align-items: center;
}

/* Container icone */
.header-user-actions {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-left: 25px; /* Distanza dalla voce Contatti */
}

/* Stile icone */
.action-icon {
  position: relative;
  color: #1c1c1c;
  display: flex;
  transition: color 0.3s;
}
.action-icon:hover {
  color: var(--orange);
}

/* Pallino contatore AJAX */
.cart-count {
  position: absolute;
  top: -5px;
  right: -8px;
  background: var(--orange);
  color: white;
  font-size: 10px;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Dropdown Mini-Cart */
.mini-cart-wrapper {
  position: relative;
}

.mini-cart-dropdown {
  position: absolute;
  top: 150%;
  right: 0;
  width: 320px;
  background: white;
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.3s ease;
}
.mini-cart-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* --- ICONE HEADER & MINI-CART (GLOBAL/DESKTOP) --- */
.desktop-nav {
  display: flex;
  align-items: center;
}

.header-user-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}

.desktop-actions {
  margin-left: 25px; /* Spazio dal bottone Contatti */
}

/* Nascondiamo i controlli extra da mobile su desktop */
.mobile-controls {
  display: none;
  z-index: 99999;
}

.action-icon {
  position: relative;
  color: #1c1c1c;
  display: flex;
  transition: color 0.3s ease;
}
.action-icon:hover {
  color: var(--orange);
}

.cart-count {
  position: absolute;
  top: -5px;
  right: -8px;
  background: var(--orange);
  color: white;
  font-size: 10px;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Base Dropdown Carrello */
.mini-cart-wrapper {
  position: relative;
}

.mini-cart-dropdown {
  position: absolute;
  top: 150%;
  right: 0;
  width: 320px;
  background: white;
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.3s ease;
}
.mini-cart-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* --- NAVBAR --- */

.navbar-main {
  background-color: #ffffff;
}

.nav-container {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 30px 0 20px 1%;
}

/* Centratura logo e menu */
.nav-logo {
  padding-right: 1%;
  padding-bottom: 5px;
  align-self: end;
}
.nav-logo img {
  height: 70px;
  display: block;
}

.main-nav-list {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 10px;
}

/* --- STILE BASE VOCI MENU --- */
.main-nav-list li a {
  display: inline-block;
  padding: 8px 20px;
  text-decoration: none;
  color: #1a1a1a;
  font-family: "Inter", sans-serif; /* Assicurati sia caricato */
  font-size: 14px;
  text-transform: uppercase;
  transition: all 0.3s ease;
  border: 1px solid transparent; /* Evita scatti quando appare il bordo */
  border-radius: 27px; /* Come da Figma */
}

/* --- HOVER --- */
.main-nav-list li a:hover,
.sub-menu li a:hover {
  background-color: #f2e7d8;
}

/* --- STATO ACTIVE (Pagina corrente e Padre di pagina corrente) --- */
.main-nav-list li.current-menu-item > a,
.main-nav-list li.current_page_item > a,
.main-nav-list li.current-menu-ancestor > a,
.main-nav-list li.current-menu-parent > a {
  background-color: var(--active-item-bg-color);
  color: #ffffff !important;
  font-weight: bold;
}

/* ==========================================================================
   FIX CONFLITTO CORSI E WORKSHOP / CERAMICA (Con Hover ripristinato)
   ========================================================================== */

/* Quando siamo nella pagina "Corsi e Workshop" (ID 195), 
   disattiviamo l'active di "Cosa Facciamo" (193) e "Ceramica" (305) */
body.page-id-195 .main-nav-list li.menu-item-193 > a,
body.page-id-195 .main-nav-list li.menu-item-305 > a {
  background-color: transparent !important;
  font-weight: normal !important;
}

/* RIPRISTINO HOVER: 
   Permettiamo allo sfondo crema di riattivarsi quando l'utente passa il mouse */
body.page-id-195 .main-nav-list li.menu-item-193 > a:hover,
body.page-id-195 .main-nav-list li.menu-item-305 > a:hover {
  background-color: #f2e7d8 !important; /* Colore crema che usi per l'hover */
  color: #1a1a1a !important; /* Mantiene il testo scuro durante l'hover */
}

/* --- NAV ITEM CONTATTI --- */
.main-nav-list a[href*="contatti"] {
  background-color: var(--orange) !important;
  color: #ffffff !important;
  border: none;
}

.main-nav-list a[href*="contatti"]:hover {
  background-color: #a05835;
}

/* Regole specifiche di hover e active per voce "Contatti" */
.main-nav-list li:last-child.current-menu-item.chi-siamo a,
.main-nav-list li:last-child.current_page_item.chi-siamo a {
  background-color: #f2e7d8;
}

/* ==========================================================================
   /HEADER & NAV
   ========================================================================== */

/* ==========================================================================
   LAYOUT COMPONENTI GENERICI (Layout a due colonne)
   ========================================================================== */

/* Il contenitore che ospita le due colonne (Testo / Immagine) */
.split-layout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}

/* Colonna Testo */
.text-col {
  width: 45%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Colonna Immagine/i */
.media-col {
  width: 55%;
}

.media-col video {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ==========================================================================
   HOME CONTENT
   ========================================================================== */

/* --- STILI GENERICI SEZIONI HOME --- */

.main-section-title,
.secondary-section-title {
  line-height: 0.9;
  margin-bottom: 25px;
}

.main-section-title {
  font-family: "Inter", sans-serif;
  font-size: var(--main-section-title-fs);
  font-weight: 900;
  letter-spacing: -2px;
  color: #ffffff;
}

.section-subtitle {
  font-size: var(--main-section-subtitle-fs);
  font-weight: 600;
  margin-bottom: 15px;
  color: #ffffff;
}

.section-description {
  width: 70%;
  font-size: var(--regular-fs);
  line-height: 1.6;
  margin-bottom: 30px;
  color: #ffffff;
}

.title-indent {
  display: block;
  padding-left: 20px;
}

/* --- SEZIONE IMPARA --- */
#impara {
  position: relative;
  overflow: hidden;
  /* Se hai un pattern a linee topografiche SVG come per la hero, inseriscilo qui come background-image */
}

/* Offset specifico per Impara */
#impara .hero-title-italic {
  font-size: calc(var(--main-section-title-fs) + 5px);
  margin-left: calc(-40px);
}

#impara .title-line-1 {
  display: block;
  margin-left: -20px;
}

.page-template-home .title-line-1 {
  text-wrap: nowrap;
}

.page-template-home .text-col {
  position: relative;
  z-index: 2;
}

#impara .title-line-2 {
  display: block;
}

.media-col img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* --- SEZIONE COSA FACCIAMO --- */

.page-template-home #cosa-facciamo {
  background-color: var(--secondary-bg-color);
}

#cosa-facciamo {
  font-size: var(--cosa-facciamo-title-fs);
}

#cosa-facciamo .section-header {
  margin-bottom: 60px;
}

#cosa-facciamo .inter-title {
  width: 40%;
  margin: 0 auto;
}

#cosa-facciamo .container {
  padding: 5% 1%;
}

#cosa-facciamo .swiper-slide {
  min-height: 60vh;
}

/* ==========================================================================
   SEZIONE COSA FACCIAMO (SLIDER)
   ========================================================================== */

/* Fa in modo che le card pareggino tutte l'altezza della più alta */
.servizi-slider .swiper-slide {
  height: auto;
}

.cf-card {
  height: 100%; /* Espande la card per riempire la slide */
}

/* Nasconde i pallini su desktop, verranno mostrati solo su mobile tramite media query */
.servizi-pagination {
  display: none;
  position: static !important;
  text-align: center;
}

/* Stile pallini (riutilizza quello delle recensioni se vuoi renderli uguali) */
.servizi-pagination .swiper-pagination-bullet {
  width: 25px;
  height: 6px;
  border-radius: 5px;
  background: transparent;
  border: 1px solid var(--orange);
  opacity: 1;
  transition: 0.3s;
}

.servizi-pagination .swiper-pagination-bullet-active {
  background: var(--orange);
}

/* Griglia principale a 4 colonne */
.cf-grid {
  display: grid;
  margin: 0 calc(var(--px) * -1);
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

/* Stile della singola Card */
.cf-card {
  background-color: var(--orange);
  border-radius: 20px;
  padding: 40px 20px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #ffffff;
  transition: transform 0.3s ease;
}

/* Titolo della Card */
.cf-card-title {
  font-family: "Inter", sans-serif;
  min-height: 70px;
  max-width: 80%;
  font-size: var(--card-title-fs);
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.3;
  margin-bottom: 30px;
  color: #ffffff;
}

/* Immagine Circolare */
.cf-card-img {
  width: 150px;
  height: 150px;
  border-radius: 50%; /* Rende il div un cerchio perfetto */
  overflow: hidden;
  margin-bottom: 30px;
  flex-shrink: 0; /* Impedisce che il cerchio si schiacci */
}

.cf-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Descrizione card */
.cf-card-desc {
  font-size: var(--regular-fs);
  line-height: 1.5;
  margin-bottom: 30px;
  color: #ffffff;
  flex-grow: 1;
}

/* Bottone card */
.cf-card-btn {
  background-color: #1a1a1a;
  color: #ffffff;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none;
  padding: 12px 10px;
  border-radius: 30px;
  letter-spacing: 0.5px;
  transition: background-color 0.3s ease;
  margin-top: auto;
}

.cf-card-btn:hover {
  background-color: var(--main-bg-color);
  color: black;
}

/* --- SEZIONE FALEGNAMERIA & RESTAURO --- */

/* Varianti Sezione FALEGNAMERIA (Doppia immagine sfalsata) */
.double-img-grid {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  position: relative;
}

.double-img-grid .img-low {
  width: 60%;
  margin-top: 60px; /* Sfalsamento */
}

.double-img-grid .img-high {
  width: 40%;
}

.double-img-grid img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}

/* ==========================================================================
   SEZIONE CERAMICA
   ========================================================================== */

#ceramica {
  padding: 0; /* Rimuove i padding preliminari */
  margin: 0;
  width: 100%; /* Occupa tutto lo schermo */
  /* La classe .flex che hai messo sull'HTML applica già display: flex; */
  align-items: stretch; /* (Default) Forza i due box ad avere la stessa altezza */
}

/* --- Box Testo (Metà sinistra) --- */
.ceramica-text {
  width: 50%;
  padding: 100px 5% 100px var(--px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* --- Box Immagine (Metà destra) --- */
.ceramica-img {
  width: 50%;
  display: flex;
}

.ceramica-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   SEZIONE RECENSIONI (GRID + SLIDER)
   ========================================================================== */

#recensioni .container {
  padding: 5%;
}

#recensioni .split-layout {
  gap: 0px;
}

#recensioni .text-col {
  width: 35%;
}

#recensioni .media-col {
  width: 65%;
}

.reviews-slider {
  width: 100%;
  padding-bottom: 50px !important; /* Spazio per i pallini in basso */
}

/* Griglia Swiper: 2 colonne e 2 righe */
.reviews-slider .swiper-wrapper {
  display: flex;
  flex-wrap: wrap; /* Importante per il modulo grid di Swiper */
}

.reviews-slider .swiper-slide {
  height: calc(
    (100% - 20px) / 2
  ) !important; /* Calcola altezza per 2 righe con gap */
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Stile Card */
.review-card {
  background-color: var(--main-bg-color);
  border-radius: 20px;
  padding: 30px;
  color: #1a1a1a;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.review-header {
  gap: 15px;
  margin-bottom: 10px;
}

.review-avatar {
  width: 35px;
  height: 35px;
  background-color: var(--orange);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
}

.review-name {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
}
.review-stars {
  color: #fabb05;
  font-size: 18px;
  margin-bottom: 15px;
}
.review-text {
  font-size: 13px;
  line-height: 1.6;
  flex-grow: 1;
  margin: 0;
}

/* --- CONTROLLI (Pagination dots) --- */
.slider-footer {
  margin-top: 20px;
  width: 100%;
}

.swiper-pagination-bullet {
  width: 25px !important;
  height: 6px !important;
  border-radius: 5px !important;
  background: transparent !important;
  border: 1px solid #1a1a1a !important;
  opacity: 1 !important;
  transition: 0.3s;
}

.swiper-pagination-bullet-active {
  background: #1a1a1a !important;
}

/* ==========================================================================
   RESPONSIVE RECENSIONI
   ========================================================================== */
@media (max-width: 991px) {
  #recensioni .split-layout {
    flex-direction: column;
    gap: 40px;
  }
  #recensioni .text-col,
  #recensioni .media-col {
    width: 100% !important;
  }
}

@media (max-width: 767px) {
  .reviews-slider .swiper-slide {
    height: 100% !important; /* Su mobile una card per volta */
  }
}

/* ==========================================================================
   /HOME CONTENT
   ========================================================================== */

/* ==========================================================================
   STILE FOOTER CUSTOM
   ========================================================================== */

.main-footer {
  background-color: #e6a37c;
  padding: 40px 20px;
  color: #1a1a1a;
  font-family: "Inter", sans-serif;
  text-align: center;
}

.main-footer .footer-container {
  max-width: 1200px;
  margin: 0 auto;
}

/* Linea contatti (email e telefono) */
.main-footer .footer-contact-line {
  font-size: 14px;
  margin-bottom: 10px;
}

.main-footer .footer-contact-line a {
  color: #1a1a1a;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

/* Link Privacy e Cookie */
.main-footer .footer-legal-links {
  font-size: 14px;
  margin-bottom: 25px;
}

.main-footer .footer-legal-links a {
  color: #1a1a1a;
  text-decoration: none;
  font-weight: 500;
}

/* Riga Copyright finale */
.main-footer .footer-copyright {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  opacity: 0.9;
  margin-top: 20px;
}

.page-thank-you-wrapper {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    min-height: calc(100vh - 250px) !important;
    width: 100%;
    margin: 0 auto;
}

/* Coloriamo il separatore della Thank You Page */
.page-thank-you-wrapper hr.wp-block-separator {
    background-color: #c3622e !important; /* Il tuo arancione terracotta */
    border-color: #c3622e !important;
    border-style: solid !important;
    border-width: 1px 0 0 0 !important; /* Solo bordo superiore */
    
    opacity: 1 !important; /* Rimuove la trasparenza di default di Gutenberg */
    
    /* Regoliamo larghezza e distacco */
    width: 50% !important; 
    margin: 30px auto !important; 
    height: 2px !important; /* Spessore della linea */
}

/* ==========================================================================
   RESPONSIVE E MEDIA QUERIES
   ========================================================================== */

@media (min-width: 769px) {
  /* Assicuriamoci che la navbar faccia da "ancora" per la striscia assoluta */
  .navbar-main {
    position: relative;
  }

  /* Padre: torna nero come le altre voci principali */
  body.page-id-195 .main-nav-list li.menu-item-193 > a {
    color: #1a1a1a !important;
  }
  /* Figlio: torna scuro come gli altri link del sottomenu a tendina */
  body.page-id-195 .main-nav-list li.menu-item-305 > a {
    color: #1c1c1c !important;
  }

  /* Stile della striscia (nascosta di default) */
  .main-nav-list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: #ffffff;
    border-top: 1px solid var(--orange);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 5%;
    box-sizing: border-box;
    gap: 30px;
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05); /* Leggera ombra per staccare dal contenuto */

    /* Animazione di comparsa */
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.5s ease;
    z-index: 90;
  }

  /* Crea un ponte invisibile sopra il sottomenu per evitare che l'hover si rompa */
  .main-nav-list .sub-menu::before {
    content: "";
    position: absolute;
    top: -30px; /* Si alza verso il menu principale */
    left: 0;
    width: 100%;
    height: 30px; /* Copre esattamente lo spazio di gap */
    background: transparent;
  }

  /* Mostra la striscia quando si passa col mouse sul padre */
  .main-nav-list .menu-item-has-children:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* Override degli stili per i link del sub-menu (rimuoviamo l'effetto "pillola") */
  .main-nav-list .sub-menu li a {
    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 400;
    color: #1c1c1c;
    text-transform: uppercase;
    padding: 5px 10px;
    border: none;
  }

  /* OPZIONALE: Aggiunge la freccina verso il basso (Chevron) di fianco a "Cosa Facciamo" */
  .main-nav-list .menu-item-has-children > a::after {
    content: "";
    display: inline-block;
    margin-left: 8px;
    width: 8px;
    height: 8px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.3s ease;
  }

  /* Gira la freccina quando il menu è aperto */
  .main-nav-list .menu-item-has-children:hover > a::after {
    transform: translateY(2px) rotate(-135deg);
  }
}

/* --- TABLET E SCHERMI MEDI (Fino a 768px) --- */
@media (max-width: 768px) {
  /* =========================================================
     1. IMPOSTAZIONI GENERALI HEADER MOBILE
     ========================================================= */

  /* Nascondiamo il menu Desktop e la Top Bar */
  .desktop-nav,
  .top-bar {
    display: none !important;
  }

  /* Mostriamo il bottone Hamburger */
  .menu-toggle {
    display: block;
  }

  .nav-logo {
    padding: 5px 0 5px 5px;
  }

  .nav-logo img {
    width: 80%;
    height: auto;
  }

  /* Padre: torna scuro come le voci principali mobili */
  body.page-id-195 .main-nav-list li.menu-item-193 > a {
    color: #1c1c1c !important;
  }
  /* Figlio: torna grigino come gli altri link della tendina mobile */
  body.page-id-195 .main-nav-list li.menu-item-305 > a {
    color: #666 !important;
  }

  #mobile-nav-container .header-user-actions {
    margin-left: 0;
    margin-top: 30px;
    justify-content: center;
    width: 100%;
  }

  #mobile-nav-container .mini-cart-dropdown {
    /* Lo centriamo per non farlo uscire fuori dallo schermo su mobile */
    right: 50%;
    transform: translateX(50%) translateY(10px);
    width: 280px;
  }

  #mobile-nav-container .mini-cart-dropdown.is-open {
    transform: translateX(50%) translateY(0);
  }

  /* =========================================================
     2. OVERLAY MENU MOBILE (Contenitore principale)
     ========================================================= */

  #mobile-nav-container {
    display: flex;
    position: fixed;
    top: 0;
    left: 100%; /* Spostato fuori dallo schermo a destra */
    width: 100%;
    height: 100vh;
    background-color: var(--main-bg-color);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: left 0.4s ease;
    z-index: 999;
  }

  /* Quando riceve la classe tramite JS, entra da destra */
  #mobile-nav-container.is-open {
    left: 0;
  }

  /* Formattazione base della lista nel menu mobile */
  #mobile-nav-container .main-nav-list {
    flex-direction: column;
    text-align: center;
    gap: 5px;
  }

  #mobile-nav-container .main-nav-list li a {
    font-size: 24px;
    color: #1c1c1c;
  }

  /* =========================================================
     3. GESTIONE SUB-MENU MOBILE (Accordion con bottone +)
     ========================================================= */

  /* Trasformiamo il LI genitore in flex per affiancare Link e Bottone */
  #mobile-nav-container .menu-item-has-children {
    display: flex;
    flex-wrap: wrap; /* Permette alla tendina di andare a capo */
    justify-content: center;
    align-items: center;
  }

  /* Il link principale lascia spazio al bottone laterale */
  #mobile-nav-container .menu-item-has-children > a {
    display: inline-block;
    padding-right: 10px;
  }

  /* Stile del bottone Toggle (+ / -) generato in JS */
  .submenu-toggle-btn {
    background: transparent;
    border: none;
    color: #1c1c1c;
    font-size: 26px;
    font-weight: 300;
    cursor: pointer;
    padding: 0 15px; /* Area di tocco più grande */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
  }

  /* Colora il bottone '-' quando è aperto */
  .menu-item-has-children.active-submenu .submenu-toggle-btn {
    color: var(--orange);
  }

  /* Contenitore della tendina: nascosto con max-height per un'animazione fluida */
  .main-nav-list .sub-menu {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    width: 100%; /* Occupa tutto lo spazio e va sotto il link principale */
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    list-style: none;
    gap: 5px;
  }

  /* Stato Aperto (quando si clicca il +, il JS aggiunge .active-submenu) */
  .menu-item-has-children.active-submenu .sub-menu {
    max-height: 500px;
    opacity: 1;
    padding-top: 15px;
    margin-bottom: 10px;
  }

  /* Stile dei link figli all'interno della tendina */
  .main-nav-list .sub-menu li a {
    font-size: 18px !important; /* Più piccolo del genitore */
    font-weight: 400;
    text-transform: uppercase;
    color: #666; /* Grigio scuro per gerarchia visiva */
    padding: 5px 10px;
  }

  /* Animazione Hamburger -> X */
  .menu-toggle.is-active .hamburger-line:nth-child(1) {
    transform: translateY(9px) rotate(45deg);
  }
  .menu-toggle.is-active .hamburger-line:nth-child(2) {
    opacity: 0;
  }
  .menu-toggle.is-active .hamburger-line:nth-child(3) {
    transform: translateY(-9px) rotate(-45deg);
  }

  /* --- ICONE HEADER & MINI-CART (MOBILE) --- */

  /* Trasformiamo i controlli in un box FIXED, perennemente in alto a destra */
  .mobile-controls {
    display: flex;
    align-items: center;
    gap: 20px;
    position: fixed; /* Ancorato allo schermo! */
    right: var(--px, 5%);
    top: 35px; /* Distanza dall'alto: allineato col logo grosso modo */
    transform: translateY(-50%);
    z-index: 99999; /* Deve sovrastare sia la topbar che l'overlay del menu nero */
    transition: top 0.3s ease; /* Fluidità se la topbar scompare/appare */
  }

  /* Cambiamo il colore dell'hamburger e del carrello quando il menu è aperto (se il menu copre lo schermo) */
  body.mobile-menu-open .mobile-controls .action-icon,
  body.mobile-menu-open .mobile-controls .hamburger-line {
    color: #1a1a1a;
    background-color: #1a1a1a;
  }

  /* Mantieni l'arancione in hover e il contatore visibile */
  body.mobile-menu-open .mobile-controls .action-icon:hover {
    color: var(--orange);
  }
  body.mobile-menu-open .cart-count {
    color: #fff;
  }

  /* Resettiamo il bottone hamburger visto che ora è nel nuovo div */
  .menu-toggle {
    position: static;
    transform: none;
    z-index: inherit;
  }

  /* Gestione del dropdown carrello da mobile */
  .mobile-cart-action .mini-cart-dropdown {
    position: fixed; /* Il dropdown diventa fixed per evitare bug di scorrimento */
    right: var(--px, 5%);
    top: 70px; /* Sotto le icone fisse */
    width: 90vw;
    max-width: 400px;
  }

  /* Resettiamo il bottone hamburger visto che ora è nel nuovo div */
  .menu-toggle {
    position: static;
    transform: none;
  }

  /* Evitiamo che il dropdown su mobile esca fuori dallo schermo */
  .mobile-cart-action .mini-cart-dropdown {
    top: calc(100% + 20px);
    width: 90vw;
  }

  /* Centriamo l'icona account in fondo al menu */
  .mobile-actions {
    margin-top: 30px;
    justify-content: center;
    width: 100%;
    margin-left: 0;
  }
  /* FINE Mobile menu */

  .container,
  .ceramica-text,
  #cosa-facciamo .container {
    padding: 10% var(--px);
  }

  /* Layout a due colonne che diventa a singola colonna */
  .split-layout,
  #recensioni .split-layout {
    flex-direction: column;
    gap: 40px;
  }

  .text-col,
  .media-col,
  #recensioni .text-col,
  #recensioni .media-col {
    width: 100% !important;
  }

  /* Ridimensionamento generale testi e titoli */
  .section-description {
    width: 100%;
  }

  .title-indent {
    padding-left: 20px;
  }

  .main-section-title {
    font-size: 60px;
  }

  /* HOME: COSA FACCIAMO */
  .servizi-pagination {
    display: block; /* Mostra i pallini per lo scorrimento */
  }
  .servizi-slider {
    padding-bottom: 20px; /* Dà respiro tra le card e i pallini */
  }
  .cf-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  /* Specifiche Sezione: Impara */
  #impara .hero-title-italic {
    font-size: calc(60px + 5px);
    margin-left: 0;
  }

  #impara .title-line-1 {
    margin-left: 0;
  }

  #impara .title-line-2 {
    padding-left: 30px;
  }

  /* Specifiche Sezione: Falegnameria */
  .double-img-grid .img-low {
    margin-top: 0; /* Rimuove lo sfalsamento tra le immagini */
  }

  /* Specifiche Sezione: Ceramica */
  #ceramica {
    flex-direction: column-reverse;
  }

  .ceramica-text,
  .ceramica-img {
    width: 100%;
  }

  .ceramica-img {
    min-height: 400px;
  }

  /* Specifiche Sezione: Recensioni */
  #recensioni .split-layout {
    align-items: flex-start !important;
  }

  #recensioni .hero-title-italic {
    font-size: 46px !important;
  }

  .gform_wrapper .gform_fields {
    display: flex !important;
    max-width: 95% !important;
    margin: auto !important;
    flex-direction: column !important;
    gap: 16px !important;
  }

  .ginput_container.ginput_container_consent {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .gform_wrapper input[type="submit"] {
    width: 95% !important; /* Bottone largo tutta la pagina su mobile */
  }
}

/* --- SMARTPHONE (Fino a 575px) --- */
@media (max-width: 575px) {
  /* Riduciamo il padding laterale globale per recuperare spazio prezioso */
  :root {
    --px: 5%;
  }

  .hero-bg-media {
    display: none !important;
  }

  .text-col {
    align-items: center !important;
  }

  /* HOME: COSA FACCIAMO */
  .cf-grid {
    grid-template-columns: 1fr; /* Passa a 1 singola colonna */
    margin: 0;
  }

  #cosa-facciamo .inter-title {
    width: unset;
  }

  #cosa-facciamo .section-header h2 {
    font-size: 40px !important;
  }

  #cosa-facciamo .section-header h2 {
    font-size: 36px !important; /* Riduciamo ancora un po' il titolo per schermi molto piccoli */
  }

  /* HOME: CERAMICA */
  .ceramica-text {
    order: 1;
  }

  /* HOME: RECENSIONI */
  .reviews-grid {
    grid-template-columns: 1fr; /* Una colonna su mobile */
  }

  /* Reset Swiper per mobile: 1 card alla volta con scorrimento orizzontale */
  .reviews-slider .swiper-wrapper {
    flex-wrap: nowrap !important;
  }

  .reviews-slider .swiper-slide {
    height: auto !important;
    margin-top: 0 !important;
  }

  /* FOOTER */
  .main-footer {
    padding: 30px 15px;
  }

  .main-footer .footer-contact-line,
  .main-footer .footer-legal-links,
  .main-footer .footer-copyright {
    font-size: 13px;
    line-height: 1.6;
  }

  p.footer-contact-line {
    margin: auto;
    width: 260px;
  }
}
