/*
 Theme Name:   Impresa Luchetta
 Description:  Tema su misura per il sito di Impresa Costruzioni Luchetta s.r.l. (Crotone).
 Author:       Pixelfarm
 Author URI:   https://www.pixelfarm.it
 Template:     bootscore
 Version:      6.0.1
 Requires at least: 5.0
 Tested up to: 7.0
 Requires PHP: 7.4
 License: MIT License
 License URI: https://github.com/bootscore/bootscore-child/blob/main/LICENSE
 Text Domain:  bootscore
*/
:root {
  --surface-container-highest: #e0e3e6;
  --on-secondary-container: #4a6774;
  --inverse-primary: #a1c9ff;
  --secondary-fixed-dim: #adcbda;
  --on-error: #ffffff;
  --surface-dim: #d8dadd;
  --on-secondary-fixed-variant: #2e4b57;
  --on-tertiary-fixed-variant: #6d3a00;
  --on-secondary: #ffffff;
  --tertiary-fixed-dim: #ffb77a;
  --primary: #003e6f;
  --on-tertiary-container: #ffba80;
  --primary-fixed-dim: #a1c9ff;
  --tertiary: #5e3100;
  --surface-container-lowest: #ffffff;
  --secondary-container: #c6e4f4;
  --on-background: #191c1e;
  --surface-tint: #1961a1;
  --outline: #727781;
  --surface-container-high: #e6e8eb;
  --on-primary-container: #a5cbff;
  --inverse-on-surface: #eff1f4;
  --secondary-fixed: #c9e7f7;
  --inverse-surface: #2d3133;
  --surface-container: #eceef1;
  --tertiary-fixed: #ffdcc2;
  --on-primary: #ffffff;
  --outline-variant: #c1c7d2;
  --on-primary-fixed-variant: #004880;
  --surface-variant: #e0e3e6;
  --primary-container: #005696;
  --on-error-container: #93000a;
  --background: #f7f9fc;
  --on-surface-variant: #414750;
  --primary-fixed: #d2e4ff;
  --error: #ba1a1a;
  --error-container: #ffdad6;
  --surface: #f7f9fc;
  --surface-bright: #f7f9fc;
  --tertiary-container: #804500;
  --on-primary-fixed: #001c37;
  --on-secondary-fixed: #001f2a;
  --surface-container-low: #f2f4f7;
  --on-tertiary: #ffffff;
  --secondary: #466270;
  --on-surface: #191c1e;
  --on-tertiary-fixed: #2e1500;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  overflow-x: hidden;
  width: 100%;
}

body {
  font-family:
    "Inter",
    -apple-system,
    BlinkMacSystemFont,
    sans-serif;
  color: var(--on-surface);
  background-color: var(--surface);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-headline {
  font-family: "Manrope", sans-serif;
}

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

img {
  max-width: 100%;
  height: auto;
}

a {
  transition: all 0.3s ease;
}

.bg-surface {
  background-color: var(--surface) !important;
}
.bg-surface-dim {
  background-color: var(--surface-dim) !important;
}
.bg-surface-container {
  background-color: var(--surface-container) !important;
}
.bg-surface-container-low {
  background-color: var(--surface-container-low) !important;
}
.bg-surface-container-lowest {
  background-color: var(--surface-container-lowest) !important;
}
.bg-surface-container-high {
  background-color: var(--surface-container-high) !important;
}
.bg-surface-container-highest {
  background-color: var(--surface-container-highest) !important;
}
.bg-tertiary {
  background-color: var(--tertiary) !important;
}
.bg-primary {
  background-color: var(--primary) !important;
}
.bg-primary-container {
  background-color: var(--primary-container) !important;
}
.bg-primary-fixed {
  background-color: var(--primary-fixed) !important;
}
.bg-primary-fixed-dim {
  background-color: var(--primary-fixed-dim) !important;
}
.bg-secondary {
  background-color: var(--secondary) !important;
}
.bg-secondary-container {
  background-color: var(--secondary-container) !important;
}
.bg-tertiary-container {
  background-color: var(--tertiary-container) !important;
}
.bg-error {
  background-color: var(--error) !important;
}

.text-primary {
  color: var(--primary) !important;
}
.text-tertiary {
  color: var(--tertiary) !important;
}
.text-tertiary-fixed {
  color: var(--tertiary-fixed) !important;
}
.text-tertiary-fixed-dim {
  color: var(--tertiary-fixed-dim) !important;
}
.text-secondary {
  color: var(--secondary) !important;
}
.text-on-surface {
  color: var(--on-surface) !important;
}
.text-on-surface-variant {
  color: var(--on-surface-variant) !important;
}
.text-on-primary {
  color: var(--on-primary) !important;
}
.text-on-primary-container {
  color: var(--on-primary-container) !important;
}
.text-inverse-primary {
  color: var(--inverse-primary) !important;
}
.text-outline {
  color: var(--outline) !important;
}
.text-outline-variant {
  color: var(--outline-variant) !important;
}
.text-primary-fixed-dim {
  color: var(--primary-fixed-dim) !important;
}

.border-outline-variant {
  border-color: var(--outline-variant) !important;
}
.border-primary {
  border-color: var(--primary) !important;
}

.text-white {
  color: #ffffff !important;
}
.text-white-50 {
  color: rgba(255, 255, 255, 0.6) !important;
}

.font-weight-light {
  font-weight: 300 !important;
}
.font-weight-normal {
  font-weight: 400 !important;
}
.font-weight-medium {
  font-weight: 500 !important;
}
.font-weight-semibold,
.font-semibold {
  font-weight: 600 !important;
}
.font-weight-bold,
.font-bold {
  font-weight: 700 !important;
}
.font-weight-extrabold,
.font-extrabold {
  font-weight: 800 !important;
}
.font-black {
  font-weight: 900 !important;
}

.tracking-tighter {
  letter-spacing: -0.05em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-normal {
  letter-spacing: 0;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}

.leading-none {
  line-height: 1 !important;
}
.leading-tight {
  line-height: 1.25 !important;
}
.leading-snug {
  line-height: 1.375 !important;
}
.leading-normal {
  line-height: 1.5 !important;
}
.leading-relaxed {
  line-height: 1.625 !important;
}
.leading-loose {
  line-height: 2 !important;
}

.material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

.glass-nav {
  backdrop-filter: blur(1.25rem);
  -webkit-backdrop-filter: blur(1.25rem);
}

.asymmetric-clip {
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
}

.glass-panel {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(0.75rem);
  -webkit-backdrop-filter: blur(0.75rem);
  border-radius: 0.5rem;
}

.text-gradient-primary {
  background: linear-gradient(135deg, #003e6f 0%, #005696 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.construction-shadow {
  box-shadow: 0 1.5rem 3.5rem -0.75rem rgba(25, 28, 30, 0.08);
}

.text-shadow-sm {
  text-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.1);
}

.transition-all {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.hover-translate-y-sm:hover {
  transform: translateY(-0.1875rem);
}

.hover-translate-y-md:hover {
  transform: translateY(-0.5rem);
}

.hover-scale-sm:hover {
  transform: scale(1.05);
}

.hover-scale-lg:hover {
  transform: scale(1.1);
}

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.object-fit-cover {
  object-fit: cover;
}

.object-fit-contain {
  object-fit: contain;
}

.opacity-50 {
  opacity: 0.5;
}

.pointer-events-none {
  pointer-events: none;
}

.z-0 {
  z-index: 0;
}
.z-1 {
  z-index: 1;
}
.z-2 {
  z-index: 2;
}
.z-3 {
  z-index: 100;
}

nav.fixed-top.glass-nav {
  background: rgba(255, 255, 255, 0.92) !important;
  backdrop-filter: blur(1.25rem) saturate(1.8);
  -webkit-backdrop-filter: blur(1.25rem) saturate(1.8);
}

nav.fixed-top a.text-secondary:hover {
  color: var(--primary) !important;
}

nav.fixed-top a.bg-primary {
  background: linear-gradient(
    135deg,
    var(--primary) 0%,
    var(--primary-container) 100%
  ) !important;
  border: none;
}

nav.fixed-top a.bg-primary:hover {
  box-shadow: 0 0.5rem 1.5rem rgba(0, 62, 111, 0.35);
  filter: brightness(1.1);
  transform: translateY(-0.125rem);
}

.bg-opacity-75 {
  background-color: rgba(255, 255, 255, 0.92) !important;
}

footer {
  background: linear-gradient(180deg, #0a1628 0%, #061220 100%) !important;
}

footer a:hover {
  color: #ffffff !important;
}

footer .text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}

footer .text-white-50:hover {
  color: rgba(255, 255, 255, 0.85) !important;
}

.form-select,
input[type="text"],
input[type="email"],
textarea,
select {
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  color: var(--on-surface);
}

.form-select:focus,
input:focus,
textarea:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 0.1875rem rgba(0, 62, 111, 0.15);
  outline: none;
}

.form-check-input:checked {
  background-color: var(--primary);
  border-color: var(--primary);
}

button[type="submit"]:hover,
.btn-primary:hover {
  filter: brightness(1.1);
  box-shadow: 0 0.75rem 2rem rgba(0, 62, 111, 0.35) !important;
  transform: translateY(-0.125rem);
}

.rounded {
  border-radius: 0.5rem !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

section {
  position: relative;
}

#offcanvasNavbar {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#offcanvasNavbar .offcanvas-header {
  border-color: rgba(193, 199, 210, 0.1) !important;
}

#offcanvasNavbar a {
  transition:
    color 0.2s ease,
    transform 0.2s ease;
}

#offcanvasNavbar a:hover {
  color: var(--primary-container) !important;
  transform: translateX(0.25rem);
}

@media (max-width: 48rem) {
  h1 {
    font-size: 2.5rem !important;
  }
  h2 {
    font-size: 2rem !important;
  }
  .d-none.d-md-block,
  .d-none.d-lg-block {
    display: none !important;
  }
}

@media (max-width: 62rem) {
  .d-none.d-lg-flex {
    display: none !important;
  }
}

::selection {
  background: var(--primary-container);
  color: #ffffff;
}

.cf7-custom-wrapper label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  display: block;
}

.cf7-custom-wrapper .wpcf7-form-control-wrap input[type="text"],
.cf7-custom-wrapper .wpcf7-form-control-wrap input[type="email"],
.cf7-custom-wrapper .wpcf7-form-control-wrap select,
.cf7-custom-wrapper .wpcf7-form-control-wrap textarea {
  width: 100%;
  background-color: #ffffff;
  border: 0.0625rem solid var(--outline-variant);
  border-radius: 0.25rem;
  padding: 0.875rem 1rem;
  font-size: 1rem;
  color: var(--on-surface);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-sizing: border-box;
}

.cf7-custom-wrapper .wpcf7-form-control-wrap select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23414750'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1.5rem;
  padding-right: 3rem;
}

.cf7-custom-wrapper .wpcf7-form-control-wrap input:focus,
.cf7-custom-wrapper .wpcf7-form-control-wrap select:focus,
.cf7-custom-wrapper .wpcf7-form-control-wrap textarea:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 0.125rem rgba(0, 62, 111, 0.1);
  outline: none;
}

.cf7-custom-wrapper .wpcf7-form-control-wrap textarea {
  min-height: 10rem;
  resize: vertical;
}

.cf7-custom-wrapper .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.cf7-custom-wrapper .wpcf7-acceptance input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  border: 0.0625rem solid var(--outline-variant);
  border-radius: 0.125rem;
  appearance: none;
  cursor: pointer;
  position: relative;
  background-color: #ffffff;
}

.cf7-custom-wrapper .wpcf7-acceptance input[type="checkbox"]:checked {
  background-color: var(--primary);
  border-color: var(--primary);
}

.cf7-custom-wrapper .wpcf7-acceptance input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 0.375rem;
  top: 0.1875rem;
  width: 0.375rem;
  height: 0.625rem;
  border: solid white;
  border-width: 0 0.125rem 0.125rem 0;
  transform: rotate(45deg);
}

.cf7-custom-wrapper .wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 0.875rem;
  color: var(--on-surface-variant);
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
}

.cf7-custom-wrapper .wpcf7-submit {
  background-color: var(--primary);
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 1rem 2rem;
  border: none;
  border-radius: 0.25rem;
  width: 100%;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-size: 1rem;
}

.cf7-custom-wrapper .wpcf7-submit:hover {
  filter: brightness(1.1);
  box-shadow: 0 0.5rem 1rem rgba(0, 62, 111, 0.2);
  transform: translateY(-0.125rem);
}

.cf7-custom-wrapper .wpcf7-spinner {
  display: none !important;
}

.cf7-custom-wrapper .wpcf7-response-output {
  border-radius: 0.25rem;
  font-size: 0.875rem;
  margin-top: 1.5rem;
  padding: 1rem;
  border: 0.0625rem solid var(--outline-variant);
}

.cnt-mappa-contatti {
  border-radius: 0.75rem;
  overflow: hidden;
  margin-top: 5rem;
  min-height: 40rem;
}

.mappa-container {
  width: 100%;
  height: 100%;

  background-color: #f0f0f0;
  position: relative;
}

@media (max-width: 47.96875rem) {
  .cnt-mappa-contatti {
    min-height: 25rem;
  }
}

.custom-desktop-nav .nav-link {
  color: var(--secondary) !important;
  font-weight: 600 !important;
  font-family: "Manrope", sans-serif !important;
  letter-spacing: -0.025em !important;
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  padding: 0 !important;
}

.custom-desktop-nav .nav-link:hover,
.custom-desktop-nav .nav-link.active {
  color: var(--primary) !important;
}

.custom-mobile-nav .nav-link {
  color: var(--primary) !important;
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  font-size: 1.25rem !important;
  padding: 0 !important;
}

.custom-mobile-nav .nav-link:hover,
.custom-mobile-nav .nav-link.active {
  transform: translateX(0.25rem);
}

div#page {
  padding-bottom: 0 !important;
}

body.page-id-3 div#content,
body.page-id-126 div#content {
  margin-top: 10rem;
}

@media (max-width: 500.5px) {
  body.page-id-3 div#content,
  body.page-id-126 div#content {
    margin-top: 5rem;
  }

  .container-fluid.mx-auto.border-top.border-secondary.pt-5.d-flex.flex-column.flex-md-row.justify-content-between.align-items-center
    .d-flex {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
    width: 100%;
  }

  body.page-template-page-contatti main#primary {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .padding-sm-0 {
    padding-left: 0rem !important;
    padding-right: 0rem !important;
  }

  body.single main#primary {
    padding: 0 !important;
  }

  .bg-surface-container-lowest.construction-shadow.w-100 {
    padding: 1.5rem !important;
  }

  body.post-type-archive-portfolio header.padding-sm-0 div {
    padding: 0 1rem !important;
  }
}

@media (max-width: 31.28125rem) {
  .padding-sm-0 .row {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Hover effects (sostituiscono gli handler inline onmouseover/onmouseout) */
.il-hover-card:hover .over { opacity: 1 !important; }
.il-hover-zoom:hover img { transform: scale(1.1); }
.il-hover-color:hover img { filter: grayscale(0) !important; }
.il-btn-outline-fill:hover { background-color: var(--primary) !important; color: #fff !important; }

/* Lightbox gallerie (assets/js/lightbox.js) */
.il-lb-open { overflow: hidden; }
.il-lb {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 20, 40, 0.94);
  animation: il-lb-fade 0.2s ease-out;
}
.il-lb[hidden] { display: none; }
@keyframes il-lb-fade { from { opacity: 0; } to { opacity: 1; } }
.il-lb-figure {
  margin: 0;
  max-width: min(92vw, 90rem);
  max-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 0 3rem;
}
.il-lb-img {
  max-width: 100%;
  max-height: calc(100vh - 8rem);
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.5rem;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
  animation: il-lb-zoom 0.25s ease-out;
}
@keyframes il-lb-zoom { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: none; } }
.il-lb-caption {
  color: rgba(255, 255, 255, 0.75);
  font-size: 0.875rem;
  margin-top: 0.75rem;
  text-align: center;
}
.il-lb-counter {
  position: absolute;
  bottom: 1rem;
  left: 0;
  right: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.8125rem;
  letter-spacing: 0.15em;
}
.il-lb-close, .il-lb-prev, .il-lb-next {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  cursor: pointer;
  transition: background 0.2s;
}
.il-lb-close:hover, .il-lb-prev:hover, .il-lb-next:hover,
.il-lb-close:focus-visible, .il-lb-prev:focus-visible, .il-lb-next:focus-visible {
  background: rgba(255, 255, 255, 0.28);
  outline: none;
}
.il-lb-close .material-symbols-outlined, .il-lb-prev .material-symbols-outlined, .il-lb-next .material-symbols-outlined { font-size: 2rem; }
.il-lb-close { top: 1rem; right: 1rem; }
.il-lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.il-lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.il-lb-prev[hidden], .il-lb-next[hidden] { display: none; }
@media (max-width: 48rem) {
  .il-lb-figure { max-width: 100vw; padding: 3.5rem 0.5rem 3rem; }
  .il-lb-img { max-height: calc(100vh - 7rem); }
  .il-lb-prev, .il-lb-next { width: 2.5rem; height: 2.5rem; top: auto; bottom: 0.75rem; transform: none; }
  .il-lb-prev { left: 1rem; }
  .il-lb-next { right: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .il-lb, .il-lb-img { animation: none; }
}

/* Bottone outline bianco → pieno bianco con testo blu (batte .text-white !important di Bootstrap) */
.il-btn-white-fill:hover, .il-btn-white-fill:focus-visible { background-color: #fff !important; color: var(--primary) !important; }

/* Hero home: slideshow crossfade con leggero Ken Burns (assets/js/custom.js) */
.il-hero-slides .il-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(1);
  transition: opacity 1.2s ease-in-out, transform 8s linear;
  will-change: opacity, transform;
}
.il-hero-slides .il-hero-slide.is-active { opacity: 1; transform: scale(1.05); }
/* la prima slide parte da 1 e cresce: .is-running arriva dal JS dopo il primo frame */
.il-hero-slides:not(.is-running) .il-hero-slide.is-active { transform: scale(1); }
@media (prefers-reduced-motion: reduce) {
  .il-hero-slides .il-hero-slide { transition: opacity 0.3s; }
  .il-hero-slides .il-hero-slide.is-active { transform: none; }
}

/* Responsive: elementi decorativi che su schermi stretti uscivano dal bordo */
@media (max-width: 89.99rem) {
  .il-about-deco { top: -0.75rem !important; left: -0.75rem !important; }
}
@media (max-width: 61.99rem) {
  .il-about-badge { right: 0.75rem !important; bottom: -1.5rem !important; }
  /* Azienda: su mobile/tablet la citazione scende sotto le foto invece di coprirle */
  .il-storia-quote { position: relative !important; left: auto !important; bottom: auto !important; margin: -2rem 1rem 0; max-width: none !important; }
}

/* Touch (niente hover): i titoli delle card portfolio restano visibili */
@media (hover: none) {
  .il-hover-zoom .over,
  .post-type-archive-portfolio .group .over { opacity: 1 !important; }
  .post-type-archive-portfolio .group .info-box { transform: none !important; }
}
/* Archivio portfolio fino al tablet: card 4:5 e box testo compatti (a 16:9 il testo veniva tagliato);
   su tablet due colonne uguali invece della griglia 8/4 */
@media (min-width: 48rem) and (max-width: 61.98rem) {
  .post-type-archive-portfolio .row > [class*="col-md-"] { flex: 0 0 50%; max-width: 50%; margin-top: 0 !important; }
}
@media (max-width: 61.98rem) {
  .post-type-archive-portfolio .group { aspect-ratio: 4 / 5 !important; }
  .post-type-archive-portfolio .group .over,
  .post-type-archive-portfolio .group > .position-absolute.bottom-0 { padding: 1.5rem !important; }
  .post-type-archive-portfolio .group .info-box { padding: 1.25rem !important; transform: none !important; }
  .post-type-archive-portfolio .group h3 { font-size: 1.375rem !important; margin-bottom: 0.75rem !important; }
  .post-type-archive-portfolio .group .over.justify-content-end { background: linear-gradient(to top, rgba(0,62,111,0.95), rgba(0,62,111,0.6) 55%, transparent) !important; }
}

/* Tablet: colonne strette, i titoli si spezzavano a metà parola */
@media (min-width: 48rem) and (max-width: 74.98rem) {
  .il-service-card,
  .il-pilastro { padding: 1.75rem !important; }
  .il-service-card h3,
  .il-pilastro h3 { font-size: 1.25rem !important; }
  .il-hover-zoom .over { padding: 1.75rem !important; }
  .il-hover-zoom .over h4 { font-size: 1.375rem !important; }
}
/* Archivio servizi su tablet: una colonna (a 4/12 i titoli si spezzavano e "25+" andava in verticale) */
@media (min-width: 48rem) and (max-width: 61.98rem) {
  .post-type-archive-servizi .row > section[class*="col-md-"] { flex: 0 0 100%; max-width: 100%; margin-top: 0 !important; }
}

/* Azienda: certificazioni. Pannello SOA su "carta da progetto" con le categorie in riquadri + card ISO col
   numero della norma in outline (si riempie all'hover). Solo dati scritti nei documenti. */
.il-cert-head h2 > span:not(.il-w) { color: transparent; -webkit-text-stroke: 1.5px var(--primary); }

.il-soa {
  position: relative;
  padding: clamp(2rem, 4vw, 3.5rem);
  border-radius: 0.5rem;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(40rem 24rem at 100% 0%, rgba(255, 183, 122, 0.16), transparent 65%),
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px) 0 0 / 2.5rem 2.5rem,
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px) 0 0 / 2.5rem 2.5rem,
    linear-gradient(145deg, var(--on-primary-fixed) 0%, var(--primary) 70%, var(--primary-container) 100%);
  box-shadow: 0 2rem 4rem -1.5rem rgba(0, 28, 55, 0.5);
}
.il-soa__top { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; }
.il-soa__id { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem 1.5rem; }
.il-soa__title {
  margin: 0;
  font-family: "Manrope", sans-serif;
  font-weight: 900;
  font-size: clamp(4rem, 8vw, 6.5rem);
  line-height: 0.85;
  letter-spacing: -0.05em;
  color: var(--tertiary-fixed-dim);
}
.il-soa__label { display: block; font-weight: 700; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.2em; }
.il-soa__meta { display: block; margin-top: 0.375rem; font-size: 0.8125rem; color: rgba(255, 255, 255, 0.6); }
.il-soa__desc { max-width: 30rem; margin: 0; font-size: 1.125rem; line-height: 1.6; color: rgba(255, 255, 255, 0.8); }

.il-soa__cats { margin: 3rem 0 2.5rem; }
.il-soa__legend {
  display: block;
  padding-bottom: 0.75rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.55);
}
.il-soa__cats ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.il-soa__cat {
  display: flex;
  flex-direction: column;
  padding: 1.25rem 1.25rem 1.125rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.375rem;
  background: rgba(255, 255, 255, 0.04);
}
.il-soa__cat.il-done { transition: border-color 0.4s, background-color 0.4s; }
.il-soa__cat:hover { border-color: rgba(255, 183, 122, 0.6); background: rgba(255, 183, 122, 0.08); }
.il-soa__code { font-family: "Manrope", sans-serif; font-weight: 800; font-size: 1.125rem; white-space: nowrap; }
.il-soa__class-label { margin-top: 1.5rem; font-size: 0.625rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255, 255, 255, 0.5); }
.il-soa__class { font-family: "Manrope", sans-serif; font-weight: 900; font-size: clamp(1.5rem, 2.4vw, 2.25rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--tertiary-fixed-dim); white-space: nowrap; }

.il-soa__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; margin-top: auto; }
.il-soa__note { font-size: 0.8125rem; color: rgba(255, 255, 255, 0.6); max-width: 22rem; }
.il-soa__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.5rem;
  border-radius: 0.25rem;
  background: #fff;
  color: var(--primary);
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.3s, transform 0.3s var(--il-ease);
}
.il-soa__btn:hover, .il-soa__btn:focus-visible { background: var(--tertiary-fixed-dim); color: var(--on-tertiary-fixed); transform: translateY(-0.125rem); }

.il-cert-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 2rem 2rem 1.5rem;
  border: 1px solid rgba(193, 199, 210, 0.45);
  border-radius: 0.5rem;
  background: var(--surface-container-lowest);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  container-type: inline-size;
  transition: transform 0.5s var(--il-ease), box-shadow 0.5s var(--il-ease), border-color 0.5s;
}
.il-cert-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.25rem;
  background: linear-gradient(var(--tertiary-fixed-dim), var(--tertiary-container));
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.6s var(--il-ease);
}
a.il-cert-card:hover, a.il-cert-card:focus-visible { transform: translateY(-0.25rem); border-color: transparent; box-shadow: 0 1.5rem 3.5rem -0.75rem rgba(0, 62, 111, 0.2); color: inherit; }
a.il-cert-card:hover::before, a.il-cert-card:focus-visible::before { transform: scaleY(1); }
.il-cert-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.il-cert-card__iso { display: block; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.25em; color: var(--secondary); }
.il-cert-card__norm { display: flex; align-items: baseline; font-family: "Manrope", sans-serif; line-height: 1; white-space: nowrap; }
.il-cert-card__num {
  font-weight: 900;
  font-size: clamp(2rem, 18cqi, 3.5rem);
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--primary);
  transition: color 0.5s var(--il-ease);
}
.il-cert-card__num--text { font-size: clamp(1.5rem, 12cqi, 2.25rem); color: var(--primary); -webkit-text-stroke: 0; }
.il-cert-card__year { margin-left: 0.125rem; font-weight: 800; font-size: 1rem; color: var(--primary); }
a.il-cert-card:hover .il-cert-card__num, a.il-cert-card:focus-visible .il-cert-card__num { color: var(--primary); }
.il-cert-card__icon {
  display: flex;
  flex: 0 0 3rem;
  align-items: center;
  justify-content: center;
  height: 3rem;
  border-radius: 50%;
  background: var(--primary-fixed);
  color: var(--primary);
  transition: background-color 0.5s, color 0.5s;
}
a.il-cert-card:hover .il-cert-card__icon, a.il-cert-card:focus-visible .il-cert-card__icon { background: var(--primary); color: #fff; }
.il-cert-card__label { margin-bottom: 0.75rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; color: var(--tertiary-container); }
.il-cert-card__caption { margin-bottom: 0.375rem; font-size: 0.6875rem; font-weight: 600; color: var(--outline); }
.il-cert-card__desc { flex-grow: 1; margin: 0 0 1.5rem; font-size: 0.9375rem; line-height: 1.6; color: var(--on-surface-variant); }
.il-cert-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(193, 199, 210, 0.45);
}
.il-cert-card__meta { font-size: 0.75rem; color: var(--outline); }
.il-cert-card__dl { display: inline-flex; flex-shrink: 0; align-items: center; gap: 0.25rem; font-size: 0.8125rem; font-weight: 700; color: var(--primary); }
.il-cert-card__dl .material-symbols-outlined { font-size: 1.25rem; transition: transform 0.4s var(--il-ease); }
a.il-cert-card:hover .il-cert-card__dl .material-symbols-outlined { transform: translateY(0.1875rem); }

/* Tablet: tre card ISO affiancate, più strette */
@media (min-width: 48rem) and (max-width: 61.98rem) {
  .il-cert-card { padding: 1.5rem 1.5rem 1.25rem; }
  .il-cert-card__icon { display: none; } /* a 1/3 di tablet il numero della norma non ci starebbe */
  .il-cert-card__foot { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
}
/* Mobile: categorie SOA in righe, sigla a sinistra e classifica a destra */
@media (max-width: 47.98rem) {
  .il-soa__cats ul { grid-template-columns: 1fr; gap: 0.5rem; }
  .il-soa__cat { flex-direction: row; align-items: center; gap: 0.75rem; padding: 0.875rem 1rem; }
  .il-soa__class-label { margin: 0 0 0 auto; }
  .il-soa__class { font-size: 1.5rem; }
}
