/* ==========================================================================
   HOME PAGE STYLES
   ========================================================================== */

/* CATEGORIE HOME */
.categorie_home {max-width: var(--container); margin: 0 auto;}
.categorie_home img { border-top-left-radius: 39px; border-top-right-radius: 39px; transition: ease-in-out 0.5s;}
.categorie_home .wp-block-column { background-color: #fff; border-radius: 39px; border: 10px solid #fff; box-shadow: 3px 3px 6px #0000002d; transition: ease-in-out 0.5s;}
.categorie_home p a{ text-decoration: none; font-size: var(--font-size-lg) !important;  width: 100%; display: block;}

/* GENERAL ELEMENTS */
.slogan { max-width: 50%; }
.bi-chevron-down::before { content: "\f282"; font-size: 35px; color: var(--color-primary); }
.lead { font-size: var(--font-size-lg); line-height: 1.5; }
.col_stat { border-bottom: 1px solid #fff; }
.container_statistiche { position: relative; }
.sedi { position: absolute; top: -35%; right: -2%; max-width: 28vw !important; }
.media-text-bg .wp-block-media-text__content { position: absolute; left: 0; top: 50%; transform: translateY(-50%); background-color: #fff; padding: 20px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); max-width: 90%; }
.container_regione_home .wp-block-group {max-width: var(--container); margin: 0 auto;}


/* ==========================================================================
   ARTICLE CARDS LAYOUT - FULLSCREEN
   ========================================================================== */

/* ARTICLE CONTAINER - DYNAMIC GRID */
.articles-container { display: grid; gap: 0; height: 100vh; overflow: hidden; }

/* GRID LAYOUTS DINAMICI */
.articles-container[data-cards="2"] { grid-template-columns: repeat(2, 1fr); }
.articles-container[data-cards="3"] { grid-template-columns: repeat(3, 1fr); }
.articles-container[data-cards="4"] { grid-template-columns: repeat(4, 1fr); }
.articles-container[data-cards="5"] { grid-template-columns: repeat(5, 1fr); }
.articles-container[data-cards="6"] { grid-template-columns: repeat(6, 1fr); }

/* ARTICLE CARD */
.article-card { position: relative; height: 100vh; cursor: pointer; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; }
.article-card:hover { transform: scale(1.02); z-index: 2; }

/* CARD INNER */
.article-card-inner { position: relative; width: 100%; height: 100%; background-size: cover; background-position: center bottom; background-repeat: no-repeat; transition: all 0.6s ease; }

/* OVERLAY */
.article-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; transition: all 0.4s ease; }

/* CONTENT */
.article-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align: center; z-index: 2; width: 80%; transform-origin: center center; will-change: transform; backface-visibility: hidden; perspective: 1000px; }

/* TITLE */
.article-title { margin: 0; font-size: clamp(2rem, 4vw, 4rem); font-weight: var(--font-weight-demi); line-height: 1.1; color: #fff; transition: all 0.3s ease; transform-origin: center center; backface-visibility: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* EXPANSION CONTENT STABILITY */
.article-card.expanding-left .article-content, .article-card.expanding-center .article-content, .article-card.expanding-right .article-content { transform: translate(-50%, -50%) scale(1) !important; transition: none !important; }
.article-card.expanding-left .article-title, .article-card.expanding-center .article-title, .article-card.expanding-right .article-title { transform: none !important; transition: none !important; }

/* TITLE LINKS */
.article-title a { color: inherit; text-decoration: none; transition: all 0.3s ease; }
.article-title a:hover { text-shadow: 4px 4px 16px rgba(0, 0, 0, 1); transform: scale(1.05); display: inline-block; }


/* ==========================================================================
   EXPANSION ANIMATIONS - DIRECTIONAL
   ========================================================================== */

/* EXPANSION STATES */
.article-card.expanding-left { position: fixed; top: 0; left: 0; width: 100vw !important; height: 100vh !important; z-index: 9999; animation: expandFromLeft 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards; }
.article-card.expanding-center { position: fixed; top: 0; left: 0; width: 100vw !important; height: 100vh !important; z-index: 9999; animation: expandFromCenter 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards; }
.article-card.expanding-right { position: fixed; top: 0; left: 0; width: 100vw !important; height: 100vh !important; z-index: 9999; animation: expandFromRight 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards; }

/* KEYFRAMES DINAMICI PER NUMERO VARIABILE DI CARD */
@keyframes expandFromLeft { 0% { transform: scaleX(var(--scale-factor, 0.333)) scaleY(1); transform-origin: left center; } 100% { transform: scaleX(1) scaleY(1); transform-origin: left center; } }
@keyframes expandFromCenter { 0% { transform: scaleX(var(--scale-factor, 0.333)) scaleY(1); transform-origin: center center; } 100% { transform: scaleX(1) scaleY(1); transform-origin: center center; } }
@keyframes expandFromRight { 0% { transform: scaleX(var(--scale-factor, 0.333)) scaleY(1); transform-origin: right center; } 100% { transform: scaleX(1) scaleY(1); transform-origin: right center; } }

/* SCALE FACTORS PER DIVERSI NUMERI DI CARD */
.articles-container[data-cards="2"] .article-card.expanding-left, 
.articles-container[data-cards="2"] .article-card.expanding-center,
.articles-container[data-cards="2"] .article-card.expanding-right { --scale-factor: 0.5; }

.articles-container[data-cards="3"] .article-card.expanding-left,
.articles-container[data-cards="3"] .article-card.expanding-center,
.articles-container[data-cards="3"] .article-card.expanding-right { --scale-factor: 0.333; }

.articles-container[data-cards="4"] .article-card.expanding-left,
.articles-container[data-cards="4"] .article-card.expanding-center,
.articles-container[data-cards="4"] .article-card.expanding-right { --scale-factor: 0.25; }

.articles-container[data-cards="5"] .article-card.expanding-left,
.articles-container[data-cards="5"] .article-card.expanding-center,
.articles-container[data-cards="5"] .article-card.expanding-right { --scale-factor: 0.2; }

.articles-container[data-cards="6"] .article-card.expanding-left,
.articles-container[data-cards="6"] .article-card.expanding-center,
.articles-container[data-cards="6"] .article-card.expanding-right { --scale-factor: 0.167; }

/* OTTIMIZZAZIONE TESTO PER NUMERO DI CARD */
.articles-container[data-cards="4"] .article-title,
.articles-container[data-cards="5"] .article-title,
.articles-container[data-cards="6"] .article-title { font-size: clamp(1.5rem, 3vw, 3rem); }

.articles-container[data-cards="2"] .article-title { font-size: clamp(2.5rem, 5vw, 4rem); }

/* CARD STATES */
.article-card.hidden-card { opacity: 0 !important; pointer-events: none !important; transition: opacity 0.3s ease !important; }
.article-card.restoring { opacity: 1 !important; pointer-events: auto !important; transition: all 0.6s ease !important; }

/* OVERFLOW HANDLING */
.article-card-inner.has-overflow { overflow-y: auto; scrollbar-width: none; -ms-overflow-style: none; }
.article-card-inner.has-overflow::-webkit-scrollbar { display: none; }

/* ==========================================================================
   SINGLE POST HERO SECTION
   ========================================================================== */

/* HERO CONTAINER */
.single-post-hero { position: relative; height: 60vh; width: 100vw; margin-left: calc(-50vw + 50%); background-size: cover; background-position: center bottom; background-repeat: no-repeat; background-attachment: fixed; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; overflow: hidden; padding-top: 5vh;}
.single .single-post-hero {height: 70vh;}
/* HERO OVERLAY */
.single-post-hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.4) 100%); z-index: 1; }

/* HERO CONTENT */
.single-post-hero-content { position: relative; z-index: 2; width: 100%; color: #fff; }

/* HERO TITLE */
.single-post-hero h1 { font-size: clamp(2rem, 4.5vw, 4rem); font-weight: var(--font-weight-demi); line-height: 1.1; color: #fff; margin-bottom: 0; }

/* BREADCRUMBS */
.single-post-hero .breadcrumbs { margin-bottom: 3rem; font-size: var(--font-size-md); opacity: 0.9; }
.single-post-hero .breadcrumbs a { color: #fff; text-decoration: none; transition: all 0.3s ease; }
.single-post-hero .breadcrumbs a:hover { opacity: 0.8; text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8); }
.single-post-hero .breadcrumbs span { color: rgba(255, 255, 255, 0.7); margin: 0 10px; }

/* NAVIGATION ELEMENTS */
.single-post-hero .bi-chevron-down::before { color: #fff; }
.breadcrumb-item {margin-bottom: 0 !important;}
.container_breadcrumb a { color: #fff; }
.breadcrumb-item.active { color: rgba(255, 255, 255, 0.7); }
.ancora i{margin-top: 25px !important; font-size: 50px !important;}

/* ==========================================================================
   PAGE TRANSITIONS - SMOOTH NAVIGATION
   ========================================================================== */

/* PAGE TRANSITION STATES */
body.page-transitioning { opacity: 0; transition: opacity 0.3s ease-out; }
body.page-entering { opacity: 0; transform: translateY(20px); }
body.page-enter-active { opacity: 1; transform: translateY(0); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }

/* SMOOTH SCROLL BEHAVIOR */
html { scroll-behavior: smooth; }

/* LOADING STATE FOR CARD TRANSITIONS */
.article-card.loading::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; border: 3px solid rgba(255, 255, 255, 0.3); border-top: 3px solid #fff; border-radius: 50%; animation: cardLoading 1s linear infinite; z-index: 10; }

@keyframes cardLoading { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }

/* ==========================================================================
   PORTFOLIO
   ========================================================================== */
  
.single-post-meta {background-color: #fff; box-shadow: 0px 0px 10px #00000014; position: relative; z-index: 3; margin-top: -5vh; margin-bottom: 100px; padding: 0;}
.single-post-meta h3 {font-weight: var(--font-weight-demi); color: #fff;}
.single-post-meta ul { list-style: none; padding: 0; margin: 0 !important; }
.single-post-meta ul li { margin-bottom: 10px; border-bottom: 1px solid #fff; padding-bottom: 5px;color: #fff; font-weight: var(--font-weight-regular); font-size: var(--font-size-sm);}
.single-post-meta ul li strong { font-weight: var(--font-weight-demi); }
.single-post-meta ul li:last-child { margin-bottom: 0 !important; }

.info_progetto {border-left: 1px solid #fff; padding:50px; background-color: var(--color-primary);}
.descrizione_progetto {padding: 50px;}
.descrizione_progetto h2 {color: var(--color-primary);}
.descrizione_progetto p {font-size: var(--font-size-base);}

.col_portfolio .primary { background-color: var(--color-primary); color: #fff;}
.col_portfolio .wp-block-column:last-child:not(.primary) { color: var(--color-primary); border-right: 1px solid var(--color-secondary);}
.col_portfolio .wp-block-column:first-child:not(.primary) { color: var(--color-primary); border-left: 1px solid var(--color-secondary);}
.col_portfolio .wp-block-column:not(.primary) ul li,
.col_portfolio .wp-block-column:not(.primary) p{ color: var(--color-secondary);}

.col_portfolio .wp-block-column {aspect-ratio: 1 / 1; object-fit: cover;display:flex; justify-content:center; align-items: center; flex-direction: column;padding: 50px;}
.col_portfolio .wp-block-column h4 {width: 100%; font-size: var(--font-size-2xl);}
.col_portfolio .wp-block-column ul {padding-left: 1rem !important;}

.content-page {margin-bottom: 100px;}
.portfolio-loop { margin-top: 20vh; }
.article-portfolio {margin-top: 50px;}
.portfolio-loop .article-portfolio:last-child {margin-bottom: 50px;}

.article-portfolio {border: 1px solid #eee; border-radius: 8px; overflow: hidden; transition: all 0.3s ease ; box-shadow: 0px 7px 11px #00000014;}
.article-portfolio a {text-decoration: none;}
.attachment-post-thumbnail {margin-bottom: 0;}
.title_post_cat {font-size: var(--font-size-xl); color: var(--color-primary);}


/* ==========================================================================
   CERTIFICAZIONI
   ========================================================================== */

.certificazioni .wp-block-image {max-width: 150px;}

/* ==========================================================================
   IMPIANTI
   ========================================================================== */

.colonne_video .wp-block-columns {margin-bottom: 0 !important;}
.category-impianti .col_portfolio .wp-block-column {padding: 0px;}
.category-impianti .col_portfolio .wp-block-column {border: 0 !important;}
.category-impianti .wp-block-columns {padding: 0px !important;}

/* ==========================================================================
   ACCORDION STYLES - WP-BLOCK-DETAILS
   ========================================================================== */

/* Container principale dell'accordion */
.wp-block-details {
    margin: 1rem 0;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease;
}

.wp-block-details:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Header dell'accordion (summary) */
.wp-block-details summary {
    background: linear-gradient(135deg, var(--color-primary, #2c5aa0) 0%, var(--color-secondary, #1e3a5f) 100%);
    color: #fff;
    padding: 1rem 1.5rem;
    cursor: pointer;
    user-select: none;
    font-weight: var(--font-weight-semi, 600);
    font-size: 1.1rem;
    line-height: 1.4;
    border: none;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    transition: all 0.3s ease;
}

.wp-block-details summary:hover {
    background: linear-gradient(135deg, var(--color-primary, #2c5aa0) 0%, #234a7a 100%);
    transform: translateY(-1px);
}

.wp-block-details summary:focus {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);
}

/* Rimuove il marker di default del browser */
.wp-block-details summary::marker,
.wp-block-details summary::-webkit-details-marker {
    display: none;
}

/* Icona personalizzata per l'accordion */
.wp-block-details summary::after {
    content: "\f282"; /* Bootstrap Icons chevron-down */
    font-family: "bootstrap-icons", Arial, sans-serif;
    font-weight: normal;
    font-size: 1.2rem;
    color: #fff;
    transition: transform 0.3s ease;
    margin-left: 1rem;
    flex-shrink: 0;
}

/* Rotazione dell'icona quando aperto */
.wp-block-details[open] summary::after {
    transform: rotate(180deg);
}

/* Contenuto dell'accordion */
.wp-block-details .wp-block-details__content,
.wp-block-details > p {
    padding: 1.5rem;
    background-color: #fff;
    color: #333;
    line-height: 1.6;
    font-size: 1rem;
    border-top: 1px solid #f0f0f0;
    animation: slideDown 0.3s ease;
}

/* Animazione di apertura */
@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Stili per accordions multipli */
.wp-block-details + .wp-block-details {
    margin-top: 0.5rem;
}

/* Variante con bordo colorato */
.wp-block-details.has-border-color {
    border-left: 4px solid var(--color-primary, #2c5aa0);
}

/* Responsive */
@media (max-width: 768px) {
    .wp-block-details summary {
        padding: 0.75rem 1rem;
        font-size: 1rem;
    }
    
    .wp-block-details .wp-block-details__content,
    .wp-block-details > p {
        padding: 1rem;
    }
}

/* Stati di focus per accessibilità */
.wp-block-details summary:focus-visible {
    outline: 2px solid var(--color-primary, #2c5aa0);
    outline-offset: 2px;
}

.contatti .wp-block-column{
   border-bottom: 1px solid var(--color-primary);
}


/* ==========================================================================
   WPFORMS STYLES
   ========================================================================== */

/* Hide Labels */
.wpforms-field-container .wpforms-field-label {
    display: none !important;
}

/* Form Fields - Base Styles */
div.wpforms-container-full input[type=datetime],
div.wpforms-container-full input[type=datetime-local], 
div.wpforms-container-full input[type=email], 
div.wpforms-container-full input[type=month], 
div.wpforms-container-full input[type=number], 
div.wpforms-container-full input[type=password], 
div.wpforms-container-full input[type=range], 
div.wpforms-container-full input[type=search], 
div.wpforms-container-full input[type=tel], 
div.wpforms-container-full input[type=text], 
div.wpforms-container-full input[type=time], 
div.wpforms-container-full input[type=url], 
div.wpforms-container-full input[type=week], 
div.wpforms-container-full select, 
div.wpforms-container-full textarea,
.wp-core-ui div.wpforms-container-full input[type=date], 
.wp-core-ui div.wpforms-container-full input[type=datetime], 
.wp-core-ui div.wpforms-container-full input[type=datetime-local], 
.wp-core-ui div.wpforms-container-full input[type=email], 
.wp-core-ui div.wpforms-container-full input[type=month], 
.wp-core-ui div.wpforms-container-full input[type=number], 
.wp-core-ui div.wpforms-container-full input[type=password], 
.wp-core-ui div.wpforms-container-full input[type=range], 
.wp-core-ui div.wpforms-container-full input[type=search], 
.wp-core-ui div.wpforms-container-full input[type=tel], 
.wp-core-ui div.wpforms-container-full input[type=text], 
.wp-core-ui div.wpforms-container-full input[type=time], 
.wp-core-ui div.wpforms-container-full input[type=url], 
.wp-core-ui div.wpforms-container-full input[type=week], 
.wp-core-ui div.wpforms-container-full select, 
.wp-core-ui div.wpforms-container-full textarea {
    /* Reset borders */
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    
    /* Bottom border standard */
    border-bottom: 2px solid #e0e0e0 !important;
    
    /* Style improvements */
    padding: 12px 0 8px 0 !important;
    background-color: transparent !important;
    color: var(--color-text, #333) !important;
    font-size: 1rem !important;
    line-height: 1.4 !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
}

/* Hover State */
div.wpforms-container-full input[type=datetime]:hover,
div.wpforms-container-full input[type=datetime-local]:hover,


/* ==========================================================================
   VIDEO OVERLAY
   ========================================================================== */

/* Overlay container */
.video-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  z-index: 99999;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  will-change: opacity;
}

.video-overlay.active {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

/* Overlay content wrapper */
.video-overlay-content {
  position: relative;
  width: 90%;
  max-width: 1440px;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  contain: layout paint;
}

.video-overlay.active .video-overlay-content {
  opacity: 1;
  transform: none;
}

/* Close button */
.video-overlay-close {
  position: absolute;
  top: -70px;
  right: 0;
  background: var(--color-primary, #2c5aa0);
  border: none;
  color: #fff;
  font-size: 28px;
  cursor: pointer;
  padding: 0;
  z-index: 100000;
  transition: all 0.3s ease;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  box-shadow: 0 4px 15px rgba(44, 90, 160, 0.4);
}

.video-overlay-close .bi-x-lg::before {
  font-size: 21px;
}

.video-overlay-close:hover {
  background-color: var(--color-secondary, #1e3a5f);
  transform: scale(1.1) rotate(90deg);
  box-shadow: 0 6px 20px rgba(44, 90, 160, 0.6);
}

.video-overlay-close:focus {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* Video container */
.video-overlay-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  background-color: #000;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
  contain: paint;
}

/* Video element */
.video-overlay-container video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background-color: #000;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .video-overlay,
  .video-overlay-content,
  .video-overlay-close {
    transition: none !important;
  }
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .video-overlay-content {
    width: 95%;
  }
  
  .video-overlay-close {
    top: -60px;
    font-size: 24px;
    width: 45px;
    height: 45px;
  }
}

@media (max-width: 480px) {
  .video-overlay-close {
    top: 10px;
    right: 10px;
  }
  
  .video-overlay-container {
    border-radius: 0;
  }
}
div.wpforms-container-full input[type=email]:hover,
div.wpforms-container-full input[type=month]:hover,
div.wpforms-container-full input[type=number]:hover,
div.wpforms-container-full input[type=password]:hover,
div.wpforms-container-full input[type=range]:hover,
div.wpforms-container-full input[type=search]:hover,
div.wpforms-container-full input[type=tel]:hover,
div.wpforms-container-full input[type=text]:hover,
div.wpforms-container-full input[type=time]:hover,
div.wpforms-container-full input[type=url]:hover,
div.wpforms-container-full input[type=week]:hover,
div.wpforms-container-full select:hover,
div.wpforms-container-full textarea:hover,
.wp-core-ui div.wpforms-container-full input[type=date]:hover,
.wp-core-ui div.wpforms-container-full input[type=datetime]:hover,
.wp-core-ui div.wpforms-container-full input[type=datetime-local]:hover,
.wp-core-ui div.wpforms-container-full input[type=email]:hover,
.wp-core-ui div.wpforms-container-full input[type=month]:hover,
.wp-core-ui div.wpforms-container-full input[type=number]:hover,
.wp-core-ui div.wpforms-container-full input[type=password]:hover,
.wp-core-ui div.wpforms-container-full input[type=range]:hover,
.wp-core-ui div.wpforms-container-full input[type=search]:hover,
.wp-core-ui div.wpforms-container-full input[type=tel]:hover,
.wp-core-ui div.wpforms-container-full input[type=text]:hover,
.wp-core-ui div.wpforms-container-full input[type=time]:hover,
.wp-core-ui div.wpforms-container-full input[type=url]:hover,
.wp-core-ui div.wpforms-container-full input[type=week]:hover,
.wp-core-ui div.wpforms-container-full select:hover,
.wp-core-ui div.wpforms-container-full textarea:hover {
    border-bottom-color: var(--color-primary, #2c5aa0) !important;
    transform: translateY(-1px) !important;
}

/* Focus State */
div.wpforms-container-full input[type=datetime]:focus,
div.wpforms-container-full input[type=datetime-local]:focus,
div.wpforms-container-full input[type=email]:focus,
div.wpforms-container-full input[type=month]:focus,
div.wpforms-container-full input[type=number]:focus,
div.wpforms-container-full input[type=password]:focus,
div.wpforms-container-full input[type=range]:focus,
div.wpforms-container-full input[type=search]:focus,
div.wpforms-container-full input[type=tel]:focus,
div.wpforms-container-full input[type=text]:focus,
div.wpforms-container-full input[type=time]:focus,
div.wpforms-container-full input[type=url]:focus,
div.wpforms-container-full input[type=week]:focus,
div.wpforms-container-full select:focus,
div.wpforms-container-full textarea:focus,
.wp-core-ui div.wpforms-container-full input[type=date]:focus,
.wp-core-ui div.wpforms-container-full input[type=datetime]:focus,
.wp-core-ui div.wpforms-container-full input[type=datetime-local]:focus,
.wp-core-ui div.wpforms-container-full input[type=email]:focus,
.wp-core-ui div.wpforms-container-full input[type=month]:focus,
.wp-core-ui div.wpforms-container-full input[type=number]:focus,
.wp-core-ui div.wpforms-container-full input[type=password]:focus,
.wp-core-ui div.wpforms-container-full input[type=range]:focus,
.wp-core-ui div.wpforms-container-full input[type=search]:focus,
.wp-core-ui div.wpforms-container-full input[type=tel]:focus,
.wp-core-ui div.wpforms-container-full input[type=text]:focus,
.wp-core-ui div.wpforms-container-full input[type=time]:focus,
.wp-core-ui div.wpforms-container-full input[type=url]:focus,
.wp-core-ui div.wpforms-container-full input[type=week]:focus,
.wp-core-ui div.wpforms-container-full select:focus,
.wp-core-ui div.wpforms-container-full textarea:focus {
    border-bottom: 2px solid var(--color-primary, #2c5aa0) !important;
    outline: none !important;
    box-shadow: 0 2px 0 0 rgba(44, 90, 160, 0.2) !important;
    transform: translateY(-2px) !important;
}

/* Active State */
div.wpforms-container-full input[type=datetime]:active,
div.wpforms-container-full input[type=datetime-local]:active,
div.wpforms-container-full input[type=email]:active,
div.wpforms-container-full input[type=month]:active,
div.wpforms-container-full input[type=number]:active,
div.wpforms-container-full input[type=password]:active,
div.wpforms-container-full input[type=range]:active,
div.wpforms-container-full input[type=search]:active,
div.wpforms-container-full input[type=tel]:active,
div.wpforms-container-full input[type=text]:active,
div.wpforms-container-full input[type=time]:active,
div.wpforms-container-full input[type=url]:active,
div.wpforms-container-full input[type=week]:active,
div.wpforms-container-full select:active,
div.wpforms-container-full textarea:active,
.wp-core-ui div.wpforms-container-full input[type=date]:active,
.wp-core-ui div.wpforms-container-full input[type=datetime]:active,
.wp-core-ui div.wpforms-container-full input[type=datetime-local]:active,
.wp-core-ui div.wpforms-container-full input[type=email]:active,
.wp-core-ui div.wpforms-container-full input[type=month]:active,
.wp-core-ui div.wpforms-container-full input[type=number]:active,
.wp-core-ui div.wpforms-container-full input[type=password]:active,
.wp-core-ui div.wpforms-container-full input[type=range]:active,
.wp-core-ui div.wpforms-container-full input[type=search]:active,
.wp-core-ui div.wpforms-container-full input[type=tel]:active,
.wp-core-ui div.wpforms-container-full input[type=text]:active,
.wp-core-ui div.wpforms-container-full input[type=time]:active,
.wp-core-ui div.wpforms-container-full input[type=url]:active,
.wp-core-ui div.wpforms-container-full input[type=week]:active,
.wp-core-ui div.wpforms-container-full select:active,
.wp-core-ui div.wpforms-container-full textarea:active {
    border-bottom-color: var(--color-secondary, #1e3a5f) !important;
    transform: translateY(0) !important;
}

/* Placeholder Styles */
div.wpforms-container-full input::placeholder,
div.wpforms-container-full textarea::placeholder,
.wp-core-ui div.wpforms-container-full input::placeholder,
.wp-core-ui div.wpforms-container-full textarea::placeholder {
    color: rgba(51, 51, 51, 0.6) !important;
    opacity: 1 !important;
}

/* Textarea Specific */
div.wpforms-container-full textarea,
.wp-core-ui div.wpforms-container-full textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

/* Select Specific */
div.wpforms-container-full select,
.wp-core-ui div.wpforms-container-full select {
    cursor: pointer !important;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 16px !important;
    padding-right: 40px !important;
}

/* Submit Button Styles */
.wpforms-submit,
div.wpforms-container-full .wpforms-submit,
.wp-core-ui div.wpforms-container-full .wpforms-submit {
    /* Reset default styles */
    border: none !important;
    outline: none !important;
    cursor: pointer !important;
    
    /* Apply theme button styles */
    border-radius: 8px !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    font-size: 0.875rem !important;
    padding: 0.75rem 2rem !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    border: 2px solid transparent !important;
    position: relative !important;
    overflow: hidden !important;
    
    /* Primary button colors */
    background-color: var(--color-primary, #2c5aa0) !important;
    color: #fff !important;
    box-shadow: 0 4px 15px rgba(44, 90, 160, 0.3) !important;
    
    /* Remove default margins */
    margin: 1rem 0 0 0 !important;
    width: auto !important;
    display: inline-block !important;
}

/* Shimmer effect */
.wpforms-submit::before,
div.wpforms-container-full .wpforms-submit::before,
.wp-core-ui div.wpforms-container-full .wpforms-submit::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent) !important;
    transition: left 0.5s !important;
    z-index: 1 !important;
}

/* Hover State */
.wpforms-submit:hover,
div.wpforms-container-full .wpforms-submit:hover,
.wp-core-ui div.wpforms-container-full .wpforms-submit:hover {
    background-color: var(--color-primary-dark, #1e3a5f) !important;
    color: #fff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(44, 90, 160, 0.4) !important;
}

.wpforms-submit:hover::before,
div.wpforms-container-full .wpforms-submit:hover::before,
.wp-core-ui div.wpforms-container-full .wpforms-submit:hover::before {
    left: 100% !important;
}

/* Focus State */
.wpforms-submit:focus,
div.wpforms-container-full .wpforms-submit:focus,
.wp-core-ui div.wpforms-container-full .wpforms-submit:focus {
    background-color: var(--color-primary-dark, #1e3a5f) !important;
    color: #fff !important;
    box-shadow: 0 0 0 0.25rem rgba(44, 90, 160, 0.25) !important;
}

/* Active State */
.wpforms-submit:active,
div.wpforms-container-full .wpforms-submit:active,
.wp-core-ui div.wpforms-container-full .wpforms-submit:active {
    background-color: var(--color-primary-dark, #1e3a5f) !important;
    transform: translateY(0) !important;
}

/* Loading/Disabled State */
.wpforms-submit[disabled],
.wpforms-submit.wpforms-submit-disabled,
div.wpforms-container-full .wpforms-submit[disabled],
div.wpforms-container-full .wpforms-submit.wpforms-submit-disabled,
.wp-core-ui div.wpforms-container-full .wpforms-submit[disabled],
.wp-core-ui div.wpforms-container-full .wpforms-submit.wpforms-submit-disabled {
    background-color: #cccccc !important;
    color: #666666 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
    opacity: 0.7 !important;
}

.wpforms-submit[disabled]::before,
.wpforms-submit.wpforms-submit-disabled::before,
div.wpforms-container-full .wpforms-submit[disabled]::before,
div.wpforms-container-full .wpforms-submit.wpforms-submit-disabled::before,
.wp-core-ui div.wpforms-container-full .wpforms-submit[disabled]::before,
.wp-core-ui div.wpforms-container-full .wpforms-submit.wpforms-submit-disabled::before {
    display: none !important;
}
.pswp__bg {
    opacity: .005;
    background: #000000c7;
}
.angle_down_home {
   margin-top: 50px;
}

/* ==========================================================================
   ARTICLE POST CARDS
   ========================================================================== */

/* Individual article card */
.article-post-card {
  overflow: hidden;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  height: 100%;
  margin-bottom: 2rem;
  border-radius: 39px;
  border: 10px solid #fff;
  box-shadow: 3px 3px 6px #0000002d;
  transition: ease-in-out 0.5s;
}

.article-post-card:hover {
  transform: translateY(-5px);
  box-shadow: 0px 15px 25px #00000029;
}

/* Card link */
.article-post-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* Card image */
.article-post-card-image {
  position: relative;
  width: 100%;
  padding-bottom: 60%;
  overflow: hidden;
  background-color: #f5f5f5;
}

.article-post-card-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.article-post-card:hover .article-post-card-image img {
  transform: scale(1.05);
}

/* Placeholder for missing images */
.article-post-card-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--color-primary, #2c5aa0) 0%, var(--color-secondary, #1e3a5f) 100%);
  color: #fff;
  font-size: 3rem;
}

/* Card content */
.article-post-card-content {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
  text-align: center;
}

/* Card title */
.article-post-card-title {
  font-size: var(--font-size-xl, 1.5rem);
  font-weight: var(--font-weight-demi, 600);
  color: var(--color-primary, #2c5aa0);
  margin-bottom: 1rem;
  line-height: 1.3;
  transition: color 0.3s ease;
}

.article-post-card:hover .article-post-card-title {
  color: var(--color-secondary, #1e3a5f);
}

/* Card excerpt */
.article-post-card-excerpt {
  font-size: var(--font-size-base, 1rem);
  color: #666;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  flex-grow: 1;
}

/* Card button */
.article-post-card-button {
  display: inline-block;
  padding: 0.75rem 2rem;
  background-color: var(--color-primary, #2c5aa0);
  color: #fff;
  border-radius: 8px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.875rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-align: center;
  box-shadow: 0 4px 15px rgba(44, 90, 160, 0.3);
}

.article-post-card:hover .article-post-card-button {
  background-color: var(--color-secondary, #1e3a5f);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(44, 90, 160, 0.4);
}
.container-articles {
  padding: 50px 0;
}
.intro-box {
  padding: 2.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  border-top: 5px solid var(--color-primary);
}
.tipologia .wp-block-media-text__content,.box-tipologia {background-color: #fff; max-width: 800px; padding: 2rem; border-radius: 8px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);}
.box-tipologia {max-width: var(--container-lg);}
.box-tipologia h4 {font-size: var(--font-size-lg);}
.wp-block-media-text__media {mix-blend-mode: multiply;}
mark { margin-bottom: 25px; padding: 1rem;border-radius: 4px;font-weight: 400;z-index: 2; text-transform: uppercase; font-size: var(--font-size-2xl); display: block; width: fit-content;}
.wp-element-caption {width: fit-content; background-color: var(--color-primary); color: #fff; padding: 0.4rem 1rem;border-radius: 4px;font-weight: var(--font-weight-demi);text-transform: uppercase; font-size: var(--font-size-xs);}
.wp-block-image figure, .wp-block-image {display: flex !important; flex-direction: column !important; align-items: center !important;}
.scheda_tecnica img {max-width: 40px;}
.scheda_tecnica a {text-decoration: underline;text-decoration-color: #e2574c;}
.scheda_tecnica a:hover {text-decoration-color: #c0392b; color: #c0392b;}


.card-prodotti h5 {font-size: var(--font-size-md) !important; color: var(--color-primary); margin: 1rem 0 !important;} 
.card-prodotti ul {width: fit-content;}
.card-prodotti {margin-top: 1.75em;}
.lista_prodotti,.card-prodotti {list-style: none; padding: 15px; border-radius: 8px; margin-bottom: 1.75em;}
.lista_prodotti li, .card-prodotti ul li {margin-bottom: 1.75em; padding-bottom: 10px; border-bottom: 1px solid #ddd;}
.card-prodotti.sub_prodotti ul {list-style: none; padding-left: 0;}
.card-prodotti.sub_prodotti ul li {border-bottom: none; padding-bottom: 0;}
.card-prodotti.sub_prodotti ul li:first-child {padding-top: 10px;}
.card-prodotti.sub_prodotti ul li:last-child {padding-bottom: 10px;}

.container_colonna ul.wp-block-list {display: flex; flex-wrap: wrap; list-style: none; padding-left: 0 !important; margin: 30px 0;}
.container_colonna ul.wp-block-list li {background-color: #f4f7f9; padding: 12px; border-radius: 8px; margin: 0.5rem; flex: 1 1 calc(50% - 1rem); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); text-align: center;}
.container_colonna.collonne_3 ul.wp-block-list li {flex: 1 1 calc(33.333% - 1rem); text-align: left !important;}
.container_colonna.collonne_3 ul.wp-block-list ul li{flex: 1 1 calc(100% - 1rem); box-shadow: none; text-align: left; padding: 0;}

.container_colonna.collonne_3 ul.wp-block-list ul {margin: 10px 0 }

/* ==========================================================================
   POST NAVIGATION - PREV / NEXT (solo categoria prodotti)
   ========================================================================== */

.post-navigation {
  padding: 60px 0;
}

.post-navigation-unified {
  background: var(--color-primary);
  padding: 70px 0;
  margin-top: 60px;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}

.post-navigation-unified .post-nav-inner {
  width: 100%;
}

.post-nav-wrapper {
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  align-items: stretch;
}

.post-navigation-unified .post-nav-wrapper {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(360px, 1.4fr) minmax(220px, 1fr);
  align-items: stretch;
}

.post-nav-side {
  display: flex;
  align-items: center;
}

.post-nav-side-next {
  justify-content: flex-end;
}

.post-nav-text-only {
  width: 100%;
  min-height: 210px;
}

.post-nav-text-only .post-nav-info {
  width: 100%;
  padding: 1.5rem;
}

.post-nav-item {
  flex: 1;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.25rem;
  text-decoration: none;
  color: inherit;
  border-radius: 20px;
  overflow: hidden;
  transition: ease-in-out 0.5s;
  min-height: 140px;
  color: #fff;
}
.post-nav-item  a {
  color: #fff;
}
.post-nav-item:hover {
  transform: translateY(-5px);
  color: inherit;
  text-decoration: none;
}

/* Prev: thumb a sinistra */
.post-nav-prev {
  flex-direction: row;
}

/* Next: thumb a destra */
.post-nav-next {
  flex-direction: row-reverse;
}

.post-nav-thumb {
  flex-shrink: 0;
  width: 160px;
  height: 140px;
  overflow: hidden;
  margin: -10px;
}

.post-nav-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.post-nav-item:hover .post-nav-thumb img {
  transform: scale(1.07);
}

.post-nav-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem 1.25rem;
  gap: 0.5rem;
}

.post-nav-next .post-nav-info {
  text-align: right;
  align-items: flex-end;
}

.post-nav-label {
  font-size: var(--font-size-xs, 0.75rem);
  font-weight: var(--font-weight-demi, 600);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.post-nav-next .post-nav-label {
  justify-content: flex-end;
}

.post-nav-title {
  font-size: var(--font-size-md, 1.1rem);
  font-weight: var(--font-weight-demi, 600);
  color: #fff;
  margin: 0;
  line-height: 1.3;
  transition: color 0.3s ease;
}

.post-nav-item:hover .post-nav-title {
  color: #fff;
}

.post-nav-link {
  display: inline-block;
  padding: 0.45rem 1.25rem;
  background-color: var(--color-primary);
  color: #fff;
  border-radius: 8px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.75rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 15px rgba(44, 90, 160, 0.3);
  align-self: flex-start;
  margin-top: 0.25rem;
}

.post-nav-next .post-nav-link {
  align-self: flex-end;
}

.post-nav-item:hover .post-nav-link {
  background-color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(44, 90, 160, 0.4);
}

@media (max-width: 768px) {
  .post-nav-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1.25rem !important;
    align-items: stretch !important;
  }

  .post-navigation-unified {
    padding: 50px 0;
  }

  .post-navigation-unified .post-nav-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1.25rem !important;
  }

  .post-nav-side {
    flex: 1 1 calc(50% - 0.625rem) !important;
    min-width: 140px !important;
  }

  .post-nav-side-prev {
    order: 2 !important;
    flex: 1 1 calc(50% - 0.625rem) !important;
  }

  .post-nav-side-next {
    order: 3 !important;
    flex: 1 1 calc(50% - 0.625rem) !important;
  }

  .post-navigation-unified .contatti-section {
    order: 1 !important;
    flex: 1 1 100% !important;
    padding: 20px 1rem !important;
    margin-bottom: 0.5rem !important;
  }

  .post-nav-text-only {
    min-height: auto;
  }

  .post-nav-thumb {
    width: 110px;
    height: 110px;
  }

  .post-nav-next .post-nav-info {
    text-align: left;
    align-items: flex-start;
  }

  .post-nav-next .post-nav-label {
    justify-content: flex-start;
  }

  .post-nav-next .post-nav-link {
    align-self: flex-start;
  }
}

/* ==========================================================================
   SEZIONE CONTATTI - SINGLE POST PRODOTTI
   ========================================================================== */

.contatti-section {
  position: relative;
  width: 100%;
  padding: 80px 2rem;
  background: var(--color-primary);
  text-align: center;
  margin-top: 60px;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.post-navigation-unified .contatti-section {
  background: transparent;
  margin: 0;
  padding: 30px 2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 768px) {
  .post-navigation-unified .contatti-section {
    order: 2;
    padding: 20px 1rem;
  }
}

.contatti-section h3 {
  color: #fff;
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: var(--font-weight-demi);
  margin-bottom: 1rem;
}

.contatti-section p {
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--font-size-base, 1rem);
  max-width: 700px;
  margin: 0 auto 2rem;
  line-height: 1.5;
  font-weight: 400;
}

.contatti-section .btn-primary {
  display: inline-block;
  padding: 0.85rem 2.5rem;
  background-color: #fff;
  color: var(--color-primary);
  border-radius: 8px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.875rem;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
  max-width: 350px;
  text-align: center;
}

.contatti-section .btn-primary:hover {
  background-color: var(--color-secondary);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   CONTACT FORM 7 - STILE COERENTE CON WPFORMS
   ========================================================================== */

/* Grid 2 colonne per nome/cognome e email/telefono */
.cf7-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 2rem;
}

@media (max-width: 768px) {
  .cf7-grid {
    grid-template-columns: 1fr;
  }
}

/* Campo singolo a larghezza piena */
.cf7-field {
  margin-top: 1.25rem;
}

/* Label */
.wpcf7 label {
  display: flex;
  flex-direction: column;
  font-size: var(--font-size-sm, 0.85rem);
  font-weight: var(--font-weight-demi, 600);
  color: var(--color-primary);
  gap: 6px;
  margin-top: 1.25rem;
  width: 100%;
}

.cf7-grid .cf7-col label {
  margin-top: 0;
}

/* Input, textarea, select */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  border: none;
  border-bottom: 2px solid #e0e0e0;
  border-radius: 0;
  background-color: transparent;
  padding: 10px 0 8px;
  font-size: 1rem;
  color: var(--color-text, #333);
  line-height: 1.4;
  outline: none;
  box-shadow: none;
  transition: all 0.3s ease;
  appearance: none;
  -webkit-appearance: none;
}

.wpcf7 input[type="text"]:hover,
.wpcf7 input[type="email"]:hover,
.wpcf7 input[type="tel"]:hover,
.wpcf7 select:hover,
.wpcf7 textarea:hover {
  border-bottom-color: var(--color-primary);
  transform: translateY(-1px);
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-bottom: 2px solid var(--color-primary);
  box-shadow: 0 2px 0 0 rgba(44, 90, 160, 0.2);
  transform: translateY(-2px);
}

/* Select: freccia personalizzata */
.wpcf7 select {
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23333' d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  background-size: 16px;
  padding-right: 28px;
}

/* Textarea */
.wpcf7 textarea {
  min-height: 100px;
  resize: vertical;
  height: 100px;
}

/* File upload */
.wpcf7 input[type="file"] {
  width: 100%;
  padding: 10px 0 8px;
  font-size: 0.9rem;
  color: var(--color-text, #333);
  border-bottom: 2px solid #e0e0e0;
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.wpcf7 input[type="file"]:hover {
  border-bottom-color: var(--color-primary);
}

/* Privacy checkbox */
.cf7-privacy label.privacy {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  font-size: var(--font-size-sm, 0.85rem);
  font-weight: var(--font-weight-regular, 400);
  color: #555;
  cursor: pointer;
  margin-top: 1.5rem;
}

.cf7-privacy .wpcf7-list-item {
  margin: 0;
}

.cf7-privacy input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  accent-color: var(--color-primary);
  margin-top: 2px;
  cursor: pointer;
}

/* Validation errors */
.wpcf7 .wpcf7-not-valid-tip {
  font-size: 0.75rem;
  color: #e2574c;
  margin-top: 4px;
}

.wpcf7 .wpcf7-not-valid input,
.wpcf7 .wpcf7-not-valid textarea,
.wpcf7 .wpcf7-not-valid select {
  border-bottom-color: #e2574c !important;
}

/* Response message */
.wpcf7 .wpcf7-response-output {
  margin: 1.5rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-size: 0.9rem;
  border: none;
}

.wpcf7 .wpcf7-mail-sent-ok {
  background-color: rgba(39, 174, 96, 0.1);
  color: #27ae60;
}

.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-aborted {
  background-color: rgba(226, 87, 76, 0.1);
  color: #e2574c;
}

/* Submit button */
.wpcf7 input[type="submit"] {
  margin-top: 2rem;
  border: none;
  outline: none;
  cursor: pointer;
  border-radius: 8px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 0.875rem;
  padding: 0.75rem 2.5rem;
  background-color: var(--color-primary);
  color: #fff;
  box-shadow: 0 4px 15px rgba(44, 90, 160, 0.3);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
}

.wpcf7 input[type="submit"]:hover {
  background-color: var(--color-secondary);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(44, 90, 160, 0.4);
}

.wpcf7 input[type="submit"]:active {
  transform: translateY(0);
}

/* Spinner di caricamento */
.wpcf7 .wpcf7-spinner {
  margin-left: 10px;
  vertical-align: middle;
}
