/* ================================================================
   TEZZAROL BRANDBOOK CSS
   Paleta:
     --tz-verde-gris:   #596B63
     --tz-amarillo:     #F3FF95
     --tz-verde-oscuro: #091E1A
     --tz-blanco:       #FFFFFF
     --tz-gris-calido:  #D7D3C5
   Fuentes: Oxanium (headings/UI) | Space Grotesk (body)

   NOTA: el CSS del modal del catálogo (#tz-modal) vive únicamente en
   el shortcode `catalogo_tezzarol` dentro de functions.php. No agregar
   reglas para #tz-modal aquí: con !important + selector de ID pisan
   silenciosamente el diseño del shortcode (overlay, alto, colores).
================================================================ */

/* ── VARIABLES ─────────────────────────────────────────────────── */
:root {
    --tz-verde-gris:   #596B63;
    --tz-amarillo:     #F3FF95;
    --tz-verde-oscuro: #091E1A;
    --tz-blanco:       #FFFFFF;
    --tz-gris-calido:  #D7D3C5;
    --tz-font-heading: 'Oxanium', sans-serif;
    --tz-font-body:    'Space Grotesk', sans-serif;
}

/* ── TIPOGRAFÍA GLOBAL ─────────────────────────────────────────── */
body,
p,
li,
td,
label,
input,
textarea,
select {
    font-family: var(--tz-font-body) !important;
    font-weight: 300 !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title {
    font-family: var(--tz-font-heading) !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    line-height: 1.1 !important;
}

h1, .elementor-heading-title.elementor-size-xxl,
.elementor-heading-title.elementor-size-xl {
    font-weight: 700 !important;
    letter-spacing: 2px !important;
}

h2, .elementor-heading-title.elementor-size-large {
    font-weight: 200 !important;
    letter-spacing: 8px !important;
}

h3, h4, h5, h6,
.elementor-heading-title.elementor-size-medium,
.elementor-heading-title.elementor-size-small {
    font-weight: 400 !important;
    letter-spacing: 1.5px !important;
}

/* ── HEADER ASTRA ──────────────────────────────────────────────── */
.site-header,
#masthead,
.ast-primary-header-bar {
    background: var(--tz-blanco) !important;
    border-bottom: 1px solid var(--tz-gris-calido) !important;
}

.site-title a,
.ast-site-identity .site-title a {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 3px !important;
    text-transform: uppercase !important;
    color: var(--tz-verde-oscuro) !important;
    font-size: 16px !important;
}

.ast-header-custom-item a,
.menu-item a[href*="contact"],
header .ast-custom-button,
.ast-masthead-custom-menu-items a {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
}

.ast-custom-button-link .ast-custom-button,
header .elementor-button,
.ast-header-custom-item .elementor-button {
    background: var(--tz-verde-oscuro) !important;
    color: var(--tz-amarillo) !important;
    border: none !important;
    border-radius: 4px !important;
}
.ast-custom-button-link .ast-custom-button:hover,
header .elementor-button:hover {
    background: var(--tz-verde-gris) !important;
    color: var(--tz-amarillo) !important;
}

/* ── HERO ───────────────────────────────────────────────────────── */
.elementor-location-header ~ *:first-of-type,
.elementor-section:first-of-type,
section.elementor-section:first-child {
    background: var(--tz-blanco) !important;
}

.elementor-widget-heading .elementor-widget-container::before {
    background: var(--tz-verde-gris) !important;
}

/* ── SECCIONES ──────────────────────────────────────────────────── */
.elementor-section.elementor-section-boxed .elementor-container,
section.has-light-bg,
.tz-section-light {
    background: var(--tz-gris-calido) !important;
}

/* ── STATS ──────────────────────────────────────────────────────── */
.elementor-counter-number-wrapper,
.elementor-counter .elementor-counter-number,
.elementor-counter .elementor-counter-number-prefix,
.elementor-counter .elementor-counter-number-suffix {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    color: var(--tz-verde-oscuro) !important;
    letter-spacing: 2px !important;
}

.elementor-counter .elementor-counter-title {
    font-family: var(--tz-font-heading) !important;
    font-weight: 400 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--tz-verde-gris) !important;
    font-size: 11px !important;
}

/* ── SERVICIOS NUMERADOS ────────────────────────────────────────── */
.elementor-number,
.tz-numero {
    font-family: var(--tz-font-heading) !important;
    font-weight: 200 !important;
    color: var(--tz-verde-gris) !important;
    letter-spacing: 4px !important;
}

/* Bloques "Advanced Heading" de Spectra (01./02./03.) que traían el
   verde lima por defecto de Astra (--ast-global-color-0) en vez de la
   paleta de marca. */
.wp-block-uagb-advanced-heading .uagb-heading-text {
    color: var(--tz-verde-gris) !important;
}

/* ── SECCIÓN CTA FINAL ──────────────────────────────────────────── */
.elementor-section[data-element_type="section"] .elementor-background-overlay,
section[style*="#2d5a27"],
section[style*="#3a6b2e"],
section[style*="#4a7c3f"],
section[style*="rgb(42, 78, 35)"] {
    background: var(--tz-verde-oscuro) !important;
}

.elementor-section.tz-cta-section,
.elementor-section:has(> .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-element > .elementor-widget-container > a[href*="contact"]) {
    background-color: var(--tz-verde-oscuro) !important;
}

.elementor-section[style*="background"] h1,
.elementor-section[style*="background"] h2,
.elementor-section[style*="background"] h3,
.elementor-section[style*="background"] p {
    color: var(--tz-blanco) !important;
}

/* ── BOTONES ELEMENTOR GLOBALES ─────────────────────────────────── */
.elementor-button,
.elementor-button-wrapper .elementor-button,
a.elementor-button {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    border-radius: 4px !important;
    transition: all 0.15s !important;
}

.elementor-button.elementor-size-sm,
.elementor-button.elementor-size-md,
.elementor-button:not([class*="outline"]) {
    background: var(--tz-amarillo) !important;
    color: var(--tz-verde-oscuro) !important;
    border: none !important;
}
.elementor-button:not([class*="outline"]):hover {
    background: var(--tz-verde-gris) !important;
    color: var(--tz-amarillo) !important;
}

/* ── FOOTER ─────────────────────────────────────────────────────── */
.site-footer,
#colophon,
.ast-small-footer {
    background: var(--tz-verde-oscuro) !important;
    border-top: 2px solid var(--tz-verde-gris) !important;
}

.site-footer *,
#colophon *,
.ast-small-footer * {
    font-family: var(--tz-font-heading) !important;
    font-weight: 400 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
}

.site-footer a, 
#colophon a,
.ast-small-footer a {
    color: var(--tz-gris-calido) !important;
    text-decoration: none !important;
}
.site-footer a:hover,
#colophon a:hover,
.ast-small-footer a:hover {
    color: var(--tz-amarillo) !important;
}

.site-footer .ast-footer-copyright,
.ast-small-footer .ast-footer-copyright {
    color: var(--tz-verde-gris) !important;
}

/* ── SCROLL TO TOP ──────────────────────────────────────────────── */
#scroll-to-top,
.ast-scroll-to-top {
    background: var(--tz-verde-oscuro) !important;
    color: var(--tz-amarillo) !important;
    border: 1px solid var(--tz-verde-gris) !important;
}

/* ── DIVISORES ──────────────────────────────────────────────────── */
.elementor-divider-separator {
    border-color: var(--tz-verde-gris) !important;
}

.elementor-widget-divider .elementor-divider-separator {
    border-top-color: var(--tz-verde-gris) !important;
}

/* ── IMÁGENES PLACEHOLDER ───────────────────────────────────────── */
.elementor-widget-image img[alt]:not([src]),
.elementor-widget-image img[src=""] {
    background: var(--tz-gris-calido);
    min-height: 300px;
    display: block;
}

/* ── PÁGINA CATÁLOGO ────────────────────────────────────────────── */
.page-title,
.entry-title {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--tz-verde-oscuro) !important;
}

/* ── FORMULARIOS ────────────────────────────────────────────────── */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
input[type="text"],
input[type="email"],
input[type="tel"],
textarea {
    font-family: var(--tz-font-body) !important;
    font-weight: 300 !important;
    border: 1px solid var(--tz-verde-gris) !important;
    border-radius: 4px !important;
    color: var(--tz-verde-oscuro) !important;
    background: var(--tz-blanco) !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
    outline: none !important;
    border-color: var(--tz-verde-oscuro) !important;
    box-shadow: 0 0 0 2px rgba(243,255,149,0.3) !important;
}

.wpcf7 input[type="submit"],
input[type="submit"] {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    background: var(--tz-verde-oscuro) !important;
    color: var(--tz-amarillo) !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 12px 28px !important;
    cursor: pointer !important;
    transition: opacity 0.15s !important;
}
.wpcf7 input[type="submit"]:hover,
input[type="submit"]:hover {
    opacity: 0.85 !important;
}

/* ── BOTÓN FORMULARIO ELEMENTOR FORMS ───────────────────────────── */
.elementor-widget-form .elementor-field-group .elementor-button,
.elementor-widget-form .elementor-field-group .elementor-button span,
.elementor-widget-form .elementor-button-wrapper .elementor-button {
    font-family: 'Oxanium', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    color: #F3FF95 !important;
    background-color: #091E1A !important;
}

/* ── BOTÓN SRFM (SureForms) ─────────────────────────────────────── */
.srfm-submit-button,
button.srfm-btn-frontend,
#srfm-submit-btn {
    font-family: 'Oxanium', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    color: #F3FF95 !important;
    background-color: #091E1A !important;
    border: none !important;
    border-radius: 4px !important;
    padding: 12px 28px !important;
}
.srfm-submit-button:hover,
button.srfm-btn-frontend:hover {
    opacity: 0.8 !important;
    color: #F3FF95 !important;
}
.srfm-submit-wrap {
    font-family: 'Oxanium', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
    color: #F3FF95 !important;
}

/* ── TARJETAS DE CONTACTO ───────────────────────────────────────── */
.elementor-icon-box-wrapper,
.elementor-widget-icon-box .elementor-icon-box-wrapper {
    border: 1px solid var(--tz-verde-gris) !important;
    border-radius: 8px !important;
    padding: 20px !important;
    background: var(--tz-blanco) !important;
}

.elementor-icon-box-title,
.elementor-icon-box-title * {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: var(--tz-verde-oscuro) !important;
}

.elementor-icon-box-description,
.elementor-icon-box-description * {
    font-family: var(--tz-font-heading) !important;
    font-weight: 400 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--tz-verde-gris) !important;
    font-size: 10px !important;
}

.elementor-widget-social-icons .elementor-icon {
    color: var(--tz-verde-gris) !important;
    background: transparent !important;
}
.elementor-widget-social-icons .elementor-icon:hover {
    color: var(--tz-amarillo) !important;
    background: var(--tz-verde-oscuro) !important;
}

/* ── OVERRIDES SPECTRA (bloques que usan el verde lima por defecto
   de Astra, var(--ast-global-color-0), en vez de la paleta Tezzarol) ── */

/* Números 01, 02, 03 — sección "Servicios integrales" */
.uagb-block-6241311c .uagb-heading-text,
.uagb-block-ed6841c7 .uagb-heading-text,
.uagb-block-3afef8a1 .uagb-heading-text {
    color: var(--tz-verde-gris) !important;
}

/* Líneas divisorias entre filas de esa misma sección */
.uagb-block-db0b5e62,
.uagb-block-9d58695e {
    border-bottom-color: var(--tz-gris-calido) !important;
}

/* Rayitas separadoras (border-top) sobre títulos */
.uagb-block-847f0174 .uagb-separator,
.uagb-block-4de6aee5 .uagb-separator {
    border-color: var(--tz-verde-gris) !important;
}

/* ── FIX SPECTRA FULL WIDTH ──────────────────────────────────────── */
.uagb-is-root-container.alignfull {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
}

/* ── FIX HERO IMAGES HEIGHT ──────────────────────────────────────── */
.uagb-block-083e68ed {
    align-items: center !important;
    overflow: visible !important;
    padding-bottom: 40px !important;
}

.uagb-block-083e68ed .wp-block-uagb-image__figure img {
    max-height: 300px !important;
    height: 300px !important;
    width: 100% !important;
    object-fit: cover !important;
}

.uagb-block-b9ecca73 {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
}

/* ── BRANDBOOK TYPOGRAPHY SPECTRA ───────────────────────────────── */
.uagb-heading-text {
    letter-spacing: 8px !important;
    line-height: 1 !important;
}

h1.uagb-heading-text {
    letter-spacing: 2px !important;
    font-weight: 700 !important;
}

.uagb-ifb-title {
    letter-spacing: 8px !important;
    font-weight: 200 !important;
    line-height: 1 !important;
}

.uagb-ifb-desc,
.uagb-desc-text {
    font-family: var(--tz-font-body) !important;
    font-weight: 300 !important;
    letter-spacing: 0.4px !important;
    line-height: 1.5 !important;
}

.uagb-counter-block-number,
.uagb-counter-block-suffix {
    font-family: var(--tz-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
}

.wp-block-uagb-counter__title {
    font-family: var(--tz-font-heading) !important;
    font-weight: 400 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    font-size: 11px !important;
}