/* ensoul-blocks css vars overrides */

:root {
  --color-primary-50: #e1f6f7;
  --color-primary-100: #c4e3e4;
  --color-primary-200: #b3e0e2;
  --color-primary-300: #86cbcf;
  --color-primary-400: #6bb6ba;
  --color-primary-500: #00a2ab;
  --color-primary-600: #38898e;
  --color-primary-700: #246063;
  --color-primary-800: #174043;
  --color-primary-900: #0b2123;
  --color-secondary-50: #f0f2f3;
  --wp--preset--color--secondary-50: #f0f2f3;
  --color-secondary-100: #d0d5d7;
  --color-secondary-200: #b1b8bc;
  --color-secondary-300: #919ba0;
  --color-secondary-400: #727e85;
  --color-secondary-500: #405559;
  --color-secondary-600: #424e54;
  --color-secondary-700: #313a3f;
  --color-secondary-800: #21272a;
  --color-secondary-900: #101315;

  /* video-slider */
  --color-slide-background: var(--color-primary-700);

  /* Font weight (mancante dal plugin) */
  --font-weight-extrabold: 800;

  /* Button */
  --spacing-button-icon-width: 8px;

  /* slider */
  --slider-arrow-icon-size-mobile: 19px;

  --spacing-0: 0;
  --spacing-xxs: 4px;
  --spacing-xs: 8px;
  --spacing-s: 16px;
  --spacing-m: 24px;
  --spacing-l: 32px;
  --spacing-xl: 40px;
  --spacing-2xl: 48px;
  --spacing-3xl: 56px;
  --spacing-4xl: 64px;
  --spacing-5xl: 72px;
  --spacing-6xl: 80px;
  --spacing-7xl: 88px;
  --spacing-8xl: 128px;

  --mobile-lateral-padding: 30px !important;

  --spacing-group: 0;

  --wp--style--global--content-size: 96rem;
  --spacing-content-padding-left: 0px;
  --spacing-container-heading: 100%;
}

/* Ensure minimum lateral padding on wp-site-blocks at all viewport sizes.
   The plugin formula max(--spacing-content-padding-left, calc((100vw-96rem)/2))
   drops to 0 when viewport < 96rem. This guarantees a 30px floor.
   Fullwidth sections break out with 100vw so they're unaffected. */
.wp-site-blocks {
  padding-inline: max(var(--mobile-lateral-padding, 30px), calc((100vw - var(--spacing-container-content)) / 2)) !important;
}

/* Lateral padding for inner content of top-level full-width blocks */
/* Mobile: structural padding variable for combined-padding groups (calc uses this) */
@media (max-width: 767px) {
  :root {
    --spacing-content-padding-left: var(--mobile-lateral-padding, 30px);
  }
  .mobile-content-padding {
    padding-left: var(--mobile-lateral-padding, 30px) !important;
    padding-right: var(--mobile-lateral-padding, 30px) !important;
  }
}
/* Tablet+: padding on the fullwidth section WRAPPER (outside max-w-container-content)
   so content width isn't reduced by stepped max-width breakpoints.
   Uses :where() for zero specificity — per-block Tailwind classes override when present. */
@media (min-width: 768px) {
  :where(section[class*="fullwidth-section-"]) > :where([class*="ensoul-"]) {
    padding-left: var(--mobile-lateral-padding, 30px);
    padding-right: var(--mobile-lateral-padding, 30px);
  }
  /* Nested fullwidth sections are constrained (not 100vw), don't need wrapper padding */
  :where(
      section[class*="fullwidth-section-"] section[class*="fullwidth-section-"]
    )
    > :where([class*="ensoul-"]) {
    padding-left: 0;
    padding-right: 0;
  }
}

.wp-block-ensoul-filter {
  --text-paragraph-base: var(--text-paragraph-xs);
  --text-paragraph-base--line-height: var(--text-paragraph-xs--line-height);
  --text-filter-size: var(--text-paragraph-xs);
  font-weight: 600;
}
/* Fix: nested fullwidth sections inside query loops.
   WordPress core blocks (query, post-template) don't propagate ensoul/* context,
   so nested groups incorrectly use the 100vw technique and get mobile-content-padding.
   Reset fullwidth and remove double padding for blocks inside query loops within padded parents. */
section[class*="fullwidth-section-"] section[class*="fullwidth-section-"],
.mobile-content-padding
  .wp-block-post-template
  section[class*="fullwidth-section-"] {
  width: 100% !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.mobile-content-padding .mobile-content-padding {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Sync editor mobile preview lateral padding with child theme value (overrides plugin default 16px) */
html.view-as-mobile
  .editor-styles-wrapper
  .is-root-container.has-global-padding,
html.view-as-mobile .editor-styles-wrapper .is-root-container {
  --mobile-lateral-padding: 30px;
}

.column {
  gap: 0px 20px !important;
}

/* Responsive container breakpoints (matches production) */
.max-w-container-content,
.max-w-container-content-padded {
  width: 100%;
}
@media (width >= 40rem) {
  .max-w-container-content,
  .max-w-container-content-padded {
    max-width: 40rem;
  }
}
@media (width >= 48rem) {
  .max-w-container-content,
  .max-w-container-content-padded {
    max-width: 48rem;
  }
}
@media (width >= 64rem) {
  .max-w-container-content,
  .max-w-container-content-padded {
    max-width: 64rem;
  }
}
@media (width >= 80rem) {
  .max-w-container-content,
  .max-w-container-content-padded {
    max-width: 80rem;
  }
}
@media (width >= 96rem) {
  .max-w-container-content,
  .max-w-container-content-padded {
    max-width: 96rem;
  }
}

.header-wrapper a {
  font-weight: 500 !important;
}

.components-popover {
  z-index: 30;
}
body {
  color: var(--color-text, var(--color-black));
}
h1,
.h1 {
  font-size: var(--text-heading-base);
  line-height: var(--text-heading-base--line-height);
}

h2,
.h2 {
  font-size: var(--text-heading-sm);
  line-height: var(--text-heading-sm--line-height);
}

h3,
.h3 {
  font-size: var(--text-heading-xs);
  line-height: var(--text-heading-xs--line-height);
}

:where(.wp-site-blocks *:focus) {
  outline-offset: 4px;
  outline-color: #fff;
}

.ens-btn svg {
  transition-property: transform, translate, scale, rotate;
  transition-timing-function: ease-in-out;
  transition-duration: 300ms;
}

.ens-btn:hover svg {
  transform: rotate(45deg);
}

.no-default-animation .ens-btn:hover svg,
.download_button .ens-btn:hover svg {
  transform: none;
}

.download_button svg {
  --spacing-button-icon-width: 16px;
}

.animation-arrow-down .ens-btn:hover svg {
  transform: translateY(2px);
}

.wp-block-ensoul-button + .wp-block-ensoul-button .ens-btn.ens-btn-primary {
  border-top-width: 0;
  border-top-style: none;
}

a,
li a,
p a {
  text-decoration-line: none;
}
.ens-btn {
  line-height: 1.4 !important;
}
.ens-btn.ens-btn-primary {
  --spacing-padding-button: 12px 0;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  --border-color-button-color: var(--color-primary-700);
  --border-width-button-width: 1px;
  border-left-style: none;
  border-right-style: none;
  border-top-style: solid;
  border-bottom-style: solid;
  justify-content: space-between;
  --color-button: var(--color-primary-700);
  --color-button-hover: var(--color-primary-700);
  --color-button-background: none;
  --color-button-background-hover: inherit;
  svg {
    margin-right: 2px;
  }
}

.ens-btn.ens-btn-secondary {
  --decoration-button: none;
  --decoration-button-hover: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  justify-content: space-between;
  padding-left: 0;
  padding-right: 0;
  --color-button: var(--color-primary-700);
  --color-button-hover: var(--color-primary-700);
  --color-button-background: none;
  --color-button-background-hover: inherit;
  svg {
    margin-right: 2px;
  }
}

.ens-btn.ens-btn-tertiary {
  --spacing-padding-button: 0 0;
  --decoration-button: none;
  --decoration-button-hover: none;
  border: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  justify-content: space-between;
  --color-button: white;
  --color-button-hover: white;
  --color-button-background: none;
  --color-button-background-hover: inherit;
  svg {
    margin-right: 2px;
  }
}

.ens-btn.ens-btn-quaternary {
  --spacing-padding-button: 8px 16px;
  --decoration-button: none;
  --decoration-button-hover: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  justify-content: space-between;
  --border-color-button-color: var(--color-primary-600);
  --border-width-button-width: 1px;
  --color-button: white;
  --color-button-hover: var(--color-primary-600);
  --color-button-background: var(--color-primary-600);
  --color-button-background-hover: white;
  --radius-button: 9999px;
}

.ens-btn.ens-btn-quinary {
  --spacing-padding-button: 8px 16px;
  --decoration-button: none;
  --decoration-button-hover: none;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
  justify-content: space-between;
  --border-color-button-color: var(--color-primary-600);
  --border-width-button-width: 1px;
  --color-button: var(--color-primary-600);
  --color-button-hover: white;
  --color-button-background: white;
  --color-button-background-hover: var(--color-primary-600);
  --radius-button: 9999px;
}

.ens-btn.ens-btn-sextuary {
  display: none;
}

.cta_back_single_post_type {
  position: absolute;
  z-index: 11;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: 20%;
}

.section_hero_case_study {
  opacity: 0.9;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

.section_rounded_top {
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
  z-index: 10;
}

/* Menu */
.inner-content-wrapper {
  display: flex;
  flex-direction: column;
}
/* Header link */
header .animation-link a,
.nav-button-link {
  transition: all 0.5s ease;
  padding-left: 12px;
  padding-right: 12px;
}
.header-main-row .nav-buttons {
  color: black;
}

.header-menu-open .header-main-row .nav-buttons {
  color: white;
}
header .animation-link a:hover {
  color: var(--color-primary-500);
}
.nav-button-link:hover {
  background-color: var(--color-secondary-50);
}
.header-menu-open .nav-button-link:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

@media (width >= 48rem /* 768px */) {
  :root {
    /* Columns — both vars must match: gap-columns uses --spacing-columns,
       inline column width calcs use --spacing-columns-dk */
    --spacing-columns: 64px;
    --spacing-columns-dk: 64px;
  }
  .footer-list .ensoul-columns-block {
    grid-template-columns: repeat(9, minmax(0, 1fr));
  }
  h1,
  .h1 {
    font-size: var(--text-heading-xl);
    line-height: var(--text-heading-xl--line-height);
  }

  h2,
  .h2 {
    font-size: var(--text-heading-lg);
    line-height: var(--text-heading-lg--line-height);
  }

  h3,
  .h3 {
    font-size: var(--text-heading-sm);
    line-height: var(--text-heading-sm--line-height);
  }
  .main-menu {
    display: flex;
    flex: 1;
    align-items: center;
  }
  .reduce-gap-columns {
    --spacing-columns: 24px;
    --spacing-content-padding-left: 0;
  }
}

/* fix default style */
/* eventualmente modificare da theme.json */
:where(figure) {
  margin-bottom: 0;
}

/* Maps */
.image-location-maps,
.text-location-maps {
  display: none !important;
}
.leaflet-popup-content {
  width: 160px;
}

/* Slider */
@media (width <= 48rem) {
  .content-slider {
    padding-bottom: 60px;
  }
  .content-slider-next,
  .content-slider-prev {
    top: auto;
    bottom: 0;
  }
}
.content-slider.autoscroll .swiper-slide figure {
  max-height: 60vh;
}

@media (max-width: 1024px) {
  .content-slider.autoscrol .swiper-slide figure {
    height: 45vh;
  }
}

/* case study hover fx */
/* aggiungi classe "case-study-wrapper" su blocco ensoul/columns del case study */
/* comprende effetti: */
/* - offset laterale prime due colonne */
/* - scale e fade-in immagine */
/* - colore testi */
@media (width >= 48rem) {
  .case-study-wrapper {
    transition: background 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
  }

  .case-study-wrapper .ensoul-columns-block {
    align-items: center;
  }

  .case-study-wrapper:hover {
    background-color: var(--color-primary-800);
  }

  .case-study-wrapper .ensoul-column-wrapper:nth-child(1),
  .case-study-wrapper .ensoul-column-wrapper:nth-child(2) {
    transition: transform 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
  }

  .case-study-wrapper:hover .ensoul-column-wrapper:nth-child(1),
  .case-study-wrapper:hover .ensoul-column-wrapper:nth-child(2) {
    transform: translate(40px, 0);
  }

  .case-study-wrapper .image-section img {
    transition:
      transform 0.8s cubic-bezier(0.075, 0.82, 0.165, 1),
      opacity 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
    transform-origin: top right;
    transform: scale(0.7);
    opacity: 0;
  }

  .case-study-wrapper:hover .image-section img {
    transform: scale(1);
    opacity: 1;
  }

  /*all texts inside enhance-on-hover*/
  .case-study-wrapper *[class*="has-secondary-"],
  .case-study-wrapper *[class*="has-secondary-"] > *,
  .case-study-wrapper .button-content > * {
    transition: color 0.8s cubic-bezier(0.075, 0.82, 0.165, 1);
  }

  .case-study-wrapper:hover *[class*="has-secondary-"],
  .case-study-wrapper:hover *[class*="has-secondary-"] > * {
    color: var(--color-white) !important;
  }

  .case-study-wrapper:hover .ens-btn {
    --color-button: var(--color-white);
    --border-color-button-color: var(--color-white);
    --color-button-hover: var(--color-white);
    margin-right: 24px;
  }
}
.section_hero_case_study {
  opacity: 0.9;
  border-top-left-radius: 7px;
  border-top-right-radius: 7px;
  padding: 30px 33px;
}

.slide-index-display {
  display: none;
}

.spacing-section-certificazioni {
  margin-top: -12px;
}

.section-news ul {
  gap: 24px;
  li {
    display: flex;
    flex-direction: column;
  }
  @media (width >= 48rem) {
    .wp-block-ensoul-button {
      margin-top: auto;
    }
  }
}
.radius {
  border-radius: 7px;
  overflow: hidden;
}

.section-news .wp-block-post .ens-btn {
  position: relative;
  overflow: hidden;
  border-radius: 0 !important;
}

.section-news .wp-block-post .ens-btn::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background-color: currentColor;
  transition: width 0.3s ease;
}

.section-news .wp-block-post:hover .ens-btn::after {
  width: 100%;
}

@media (width < 48rem) {
  .hero_case_study h1 {
    font-size: var(--text-heading-base);
    line-height: var(--text-heading-base--line-height);
  }
  .content-columns-hero-case-study .ensoul-columns-block {
    grid-template-columns: 5fr 5fr;
  }
}

.aspect-ratio-group {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  iframe {
    height: auto !important;
  }
}

@media (max-width: 767px) {
  .aspect-ratio-group {
    height: auto;
    padding-top: 0;
  }
}

/* Disable aspect-ratio hack in editor — content needs to flow normally */
.editor-styles-wrapper .aspect-ratio-group {
  height: auto !important;
  padding-top: 0 !important;
}

.hero.ensoul-spacing-wrapper h1,
.hero.ensoul-spacing-wrapper p,
.hero.ensoul-group h1,
.hero.ensoul-group p {
  color: var(--color-secondary-500) !important;
  transition: color 1.2s ease-in-out;
}

.hero.ensoul-spacing-wrapper.fade-out h1,
.hero.ensoul-spacing-wrapper.fade-out p,
.hero.ensoul-group.fade-out h1,
.hero.ensoul-group.fade-out p {
  color: var(--color-white) !important;
}

/* Match global.css rule for ensoul-group (new plugin version uses ensoul-group instead of ensoul-spacing-wrapper) */
.ensoul-group.fade-out .video-poster {
  opacity: 0;
}

/* Override global.css zoom on poster fade-out — should be a simple fade, no scale */
.hero.fade-out .video-poster {
  scale: 1 !important;
}

.video_corporate .video-content {
  iframe {
    aspect-ratio: 100 / 41.89;
  }
  .caption {
    text-align: center;
  }
}

@media (width > 48rem) {
  .luogo_contatti {
    min-height: 150px;
  }

  .descrizione_contatti {
    min-height: 100px;
  }
}
@media (min-width: 40rem) and (max-width: 64rem) {
  :root {
    --text-heading-sm: 18px;
  }
}

.data_slider_chi_siamo {
  --text-heading-sm: 60px;
  --text-heading-sm--line-height: 67px;
}

@media (width >= 48rem) {
  .data_slider_chi_siamo {
    --text-heading-2xl: 128px !important;
    --text-heading-2xl--line-height: 128px;
  }
}

/* Header block positioning fix — override WP global layout constraints */
@media (min-width: 1024px) {
  .header-block-wrapper.wp-block-ensoul-header {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    top: 0px;
  }
}

/* Fix iPhone: hamburger icon overlap — hide open icon completely when menu is open */
.header-menu-open .hamburger-open {
  visibility: hidden !important;
  opacity: 0 !important;
}
.header-menu-open .hamburger-close {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Fix iPhone: prevent page content flash during menu open animation.
   The background-stripes container uses fixed positioning with scaleX animation,
   but the innerContent becomes visible before stripes fully expand.
   Use the menu bg color as an immediate backdrop. */
.header-inner-content {
  -webkit-overflow-scrolling: touch;
}
.header-menu-open .header-inner-content {
  background-color: var(--color-secondary-500) !important;
}
