/*!
Theme Name: Ohio-Child
Theme URI: http://ohio.colabr.io/
Author: Colabrio
Author URI: http://colabr.io/
Description: Ohio is a WordPress theme bundled with premium plugins to build a modern and functional website.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: ohio
Text Domain: ohio-child
Tags: ajax, customizer, ecommerce, portfolio, minimal, page builder, responsive, multipurpose, shop, store, woocommerce, wpml

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal http://necolas.github.com/normalize.css/
*/

/* ==========================================================================
   Mobile Menu — match desktop hamburger overlay style
   ========================================================================== */

/* Dark background + fullwidth on the slide-in panel (matches desktop overlay) */
.is-mobile-menu .slide-in-overlay .holder,
.header.-mobile .nav .slide-in-overlay .holder {
  background-color: color-mix(in srgb, var(--clb-color-overlay) 99%, transparent);
  color: var(--clb-color-white);
  width: 100%;
  max-width: 100%;
  box-shadow: none;
}

/* Close button — white */
.header.-mobile .slide-in-overlay .close-bar .icon-button,
.is-mobile-menu .slide-in-overlay .close-bar .icon-button {
  color: var(--clb-color-white);
}

/* Menu items — white, bold, title font, larger size */
.header.-mobile .slide-in-overlay .holder .menu li,
.header.-mobile .slide-in-overlay .holder .menu li a {
  color: var(--clb-color-white);
  font-family: var(--clb-title-font-family);
  font-weight: var(--clb-text-bold);
}

.header.-mobile .slide-in-overlay .holder .menu .mega-menu-item > a,
.header.-mobile .slide-in-overlay .holder .menu .nav-item > a {
  font-size: 3.2vh;
  line-height: var(--clb-h3-line-height);
  font-family: var(--clb-title-font-family);
  font-weight: var(--clb-text-bold);
  color: var(--clb-color-white);
  display: flex;
  align-items: center;
  gap: 0.35em;
}

/* Counter numbers (01, 02, 03...) */
.header.-mobile .slide-in-overlay .holder .menu {
  counter-reset: number;
}

.header.-mobile .slide-in-overlay .holder .menu .mega-menu-item,
.header.-mobile .slide-in-overlay .holder .menu .nav-item {
  counter-increment: number;
  padding: var(--clb-spacer-025) 2.5rem var(--clb-spacer-025) 0;
  list-style-type: none;
}

.header.-mobile .slide-in-overlay .holder .menu .mega-menu-item > a::before,
.header.-mobile .slide-in-overlay .holder .menu .nav-item > a::before {
  content: "0" counter(number);
  display: inline-block;
  font-weight: var(--clb-text-bold);
  font-size: 14px;
  line-height: 20px;
  vertical-align: top;
  align-self: flex-start;
  color: currentColor;
  opacity: 0.5;
  background: transparent;
  position: relative;
}

/* Copyright / footer text in mobile menu — white, pushed to bottom */
.header.-mobile .slide-in-overlay .holder {
  display: flex;
  flex-direction: column;
}

.header.-mobile .slide-in-overlay .holder .nav-container {
  flex: 0 0 auto;
}

.header.-mobile .slide-in-overlay .holder .copyright {
  margin-top: auto;
  padding-bottom: calc(var(--clb-spacer) * 3);
}

.header.-mobile .slide-in-overlay .copyright,
.header.-mobile .slide-in-overlay .copyright p,
.header.-mobile .slide-in-overlay .copyright a {
  color: var(--clb-color-white);
}

/* Social bar icons — white */
.is-mobile-menu .slide-in-overlay > .social-bar *,
.header.-mobile .slide-in-overlay > .social-bar * {
  color: var(--clb-color-white);
}

/* Language dropdown — white */
.header.-mobile .slide-in-overlay .lang-dropdown {
  color: var(--clb-color-white);
}

/* Menu chevron/arrow for submenus — white */
.header.-mobile .slide-in-overlay .menu-chevron {
  color: var(--clb-color-white);
}

/* Overlay backdrop */
.is-mobile-menu .slide-in-overlay .overlay {
  background-color: color-mix(in srgb, var(--clb-color-overlay) 90%, transparent);
}

/* ==========================================================================
   Dark mode — fix menu visibility
   ========================================================================== */

.dark-scheme .header:not(.-mobile) .menu li > a,
.dark-scheme .header:not(.-mobile) .menu li > a span,
.dark-scheme .header:not(.-mobile) .nav .menu-link,
.dark-scheme .header:not(.-mobile) .menu .mega-menu-item > a {
  color: var(--clb-color-white-dark-mode);
}

.dark-scheme .header:not(.-mobile) .menu .mega-menu-item > a::before {
  color: var(--clb-color-white-dark-mode);
  opacity: 0.5;
}

/* ==========================================================================
   Preloader — TRAMA GROUP SVG letter animation
   ========================================================================== */

#trama-preloader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

#trama-preloader.fade-out {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.trama-logo-svg {
  width: clamp(220px, 50vw, 480px);
  height: auto;
}

.trama-logo-svg .logo-letter {
  opacity: 0;
  transform-origin: center center;
  transform: translateY(40px) scale(0.8);
  transition: opacity 0.4s cubic-bezier(0.23, 1, 0.32, 1),
              transform 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.trama-logo-svg .logo-letter.visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ==========================================================================
   Modello TRAMA — stili ora inline nel widget (trama-model-widget.php)
   ========================================================================== */

/* ==========================================================================
   Contact form — services grid (4 per row)
   ========================================================================== */

.services-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px 20px;
}

.service-item {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}

.service-item input[type="checkbox"] {
  width: 28px;
  height: 28px;
  margin-bottom: 8px;
  cursor: pointer;
}

.service-name {
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 6px;
}

.service-subtitle {
  font-size: 13px;
  opacity: 0.6;
}

.service-label {
  font-size: 16px;
  font-weight: 600;
}

@media (max-width: 991px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   TRAMA Servizi — Elementor widget (fasi + card griglia)
   ========================================================================== */

.trama-services {
  background-color: #f8f5f0;
  padding: 60px 40px 80px;
}

/* ── Riga fasi (header) ── */
.trama-services__phases {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px;
  margin-bottom: 32px;
}

.trama-services__phase {
  flex: 1 1 0% !important;
  border-radius: 12px;
  padding: 18px 24px;
  text-align: center;
}

.trama-services__phase-label {
  font-size: clamp(14px, 1.4vw, 18px);
  font-weight: 700;
  white-space: nowrap;
}

/* ── Griglia servizi (4 colonne allineate alle fasi) ── */
.trama-services__grid {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px;
  align-items: flex-start;
}

.trama-services__column {
  flex: 1 1 0% !important;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.trama-services__card {
  border: 2px solid currentColor;
  border-radius: 12px;
  padding: 20px 16px;
  text-align: center;
  background: transparent;
}

.trama-services__card-name {
  display: block;
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 800;
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}

.trama-services__card-desc {
  display: block;
  font-size: clamp(12px, 1vw, 15px);
  font-weight: 500;
  opacity: 0.85;
}

/* ── Responsive ── */

@media (max-width: 991px) {
  .trama-services__phases {
    flex-wrap: wrap !important;
    gap: 12px;
  }

  .trama-services__phase {
    flex: 0 0 calc(50% - 6px) !important;
  }

  .trama-services__grid {
    flex-wrap: wrap !important;
    gap: 12px;
  }

  .trama-services__column {
    flex: 0 0 calc(50% - 6px) !important;
  }
}

@media (max-width: 575px) {
  .trama-services {
    padding: 40px 20px 56px;
  }

  .trama-services__phase {
    flex: 0 0 100% !important;
  }

  .trama-services__column {
    flex: 0 0 100% !important;
  }
}
