/**
 * Contact Page CSS — Página de contacto (shadcn/ui aligned)
 *
 * Structure: Hero → Channels (Schedule | Phone | WA+Email) → Budget Hero (sticky) + Form
 * 100% design tokens, 0 Bootstrap, BEM naming with cz- prefix.
 *
 * @package ClimaZona
 * @version 3.0.0
 */

/* ========================================
   LAYOUT
   ======================================== */

.cz-contact {
    padding: var(--spacing-xl, 2rem) 0 var(--spacing-2xl, 3rem);
}

.cz-contact__container {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 var(--spacing-md, 1rem);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xl, 3rem);
}

/* ========================================
   HERO
   ======================================== */

.cz-contact__hero {
    text-align: center;
    max-width: 40rem;
    margin: 0 auto;
    padding: var(--spacing-xl, 2rem) 0 0;
}

.cz-contact__title {
    font-size: var(--font-size-3xl, 2.25rem);
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: var(--tracking-tight, -0.025em);
    line-height: var(--line-height-tight, 1.25);
    color: var(--foreground, #09090b);
    margin: 0 0 var(--spacing-sm, 0.5rem);
}

.cz-contact__subtitle {
    font-size: var(--font-size-base, 1rem);
    line-height: var(--line-height-relaxed, 1.75);
    color: var(--muted-foreground, #71717a);
    margin: 0 0 var(--spacing-lg, 1.5rem);
}

.cz-contact__hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm, 0.5rem);
    flex-wrap: wrap;
}

/* ── CTAs ── */

.cz-contact__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: var(--line-height-normal, 1.5);
    border-radius: var(--border-radius-sm, 0.375rem);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease),
                color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
}

.cz-contact__cta:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.cz-contact__cta--phone {
    background-color: var(--foreground, #09090b);
    color: var(--background, #fff);
    border-color: var(--foreground, #09090b);
}

.cz-contact__cta--phone:hover {
    background-color: var(--accent-foreground, #18181b);
    color: var(--background, #fff);
}

.cz-contact__cta--whatsapp {
    background-color: transparent;
    color: #166534;
    border-color: #86efac;
}

.cz-contact__cta--whatsapp:hover {
    background-color: #f0fdf4;
    border-color: #25d366;
    color: #166534;
}

/* ========================================
   CHANNELS ROW (3 columns)
   ======================================== */

.cz-contact__channels {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-md, 1rem);
}

@media (min-width: 768px) {
    .cz-contact__channels {
        grid-template-columns: 1fr 1fr 1fr;
        align-items: start;
    }
}

/* ── Shared Channel Card ── */

.cz-contact__channel {
    padding: var(--spacing-lg, 1.5rem);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    background: var(--card, #fff);
    display: flex;
    flex-direction: column;
    transition: border-color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
}

.cz-contact__channel:hover {
    border-color: var(--foreground, #09090b);
    box-shadow: var(--shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));
}

.cz-contact__channel-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--border-radius-sm, 0.375rem);
    background-color: var(--muted, #f4f4f5);
    color: var(--foreground, #09090b);
    margin-bottom: var(--spacing-sm, 0.5rem);
    font-size: 1.25rem;
    flex-shrink: 0;
}

.cz-contact__channel-title {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 var(--spacing-xs, 0.25rem);
}

.cz-contact__channel-desc {
    font-size: var(--font-size-sm, 0.875rem);
    line-height: var(--line-height-normal, 1.5);
    color: var(--muted-foreground, #71717a);
    margin: 0;
}

/* ========================================
   1. SCHEDULE CARD (simplified)
   ======================================== */

.cz-contact__schedule-compact {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: var(--spacing-xs, 0.25rem);
}

.cz-contact__schedule-block {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    padding: 0.5rem 0;
}

.cz-contact__schedule-block--closed {
    color: var(--muted-foreground, #71717a);
}

.cz-contact__schedule-label {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: var(--font-size-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--muted-foreground, #71717a);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cz-contact__schedule-label i {
    font-size: var(--font-size-xs, 0.75rem);
}

.cz-contact__schedule-value {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--foreground, #09090b);
    font-variant-numeric: tabular-nums;
}

.cz-contact__schedule-block--closed .cz-contact__schedule-value {
    color: var(--muted-foreground, #71717a);
}

.cz-contact__schedule-divider {
    height: 1px;
    background-color: var(--border-color, #e4e4e7);
}

/* ========================================
   2. PHONE CARD
   ======================================== */

.cz-contact__phone-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--foreground, #09090b);
    background-color: var(--muted, #f4f4f5);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: 999px;
    text-decoration: none;
    font-variant-numeric: tabular-nums;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease),
                color var(--transition-base, 0.2s ease);
}

.cz-contact__phone-pill:hover {
    background-color: var(--foreground, #09090b);
    border-color: var(--foreground, #09090b);
    color: var(--background, #fff);
}

.cz-contact__phone-pill:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.cz-contact__phone-pill i {
    font-size: var(--font-size-sm, 0.875rem);
}

/* ── Extensions ── */

.cz-contact__extensions {
    margin-top: var(--spacing-sm, 0.5rem);
    padding-top: var(--spacing-sm, 0.5rem);
    border-top: 1px solid var(--border-color, #e4e4e7);
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.cz-contact__ext {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.25rem 0;
    font-size: var(--font-size-sm, 0.875rem);
}

.cz-contact__ext-name {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--foreground, #09090b);
}

.cz-contact__ext-name i {
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-sm, 0.875rem);
}

.cz-contact__ext-number {
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-xs, 0.75rem);
    font-weight: var(--font-weight-medium, 500);
    font-variant-numeric: tabular-nums;
}

/* ========================================
   3. WHATSAPP + EMAIL STACK
   ======================================== */

.cz-contact__channel-stack {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md, 1rem);
}

/* Stacked cards: horizontal row layout */
.cz-contact__channel-stack .cz-contact__channel {
    padding: var(--spacing-md, 1rem) var(--spacing-lg, 1.5rem);
}

.cz-contact__channel-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-md, 1rem);
}

.cz-contact__channel-row .cz-contact__channel-icon {
    margin-bottom: 0;
}

.cz-contact__channel-body {
    flex: 1;
    min-width: 0;
}

.cz-contact__channel-body .cz-contact__channel-title {
    margin-bottom: 0;
}

.cz-contact__channel-body .cz-contact__channel-desc {
    margin: 0;
}

.cz-contact__channel-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--foreground, #09090b);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    white-space: nowrap;
    flex-shrink: 0;
    transition: text-decoration-color var(--transition-base, 0.2s ease);
}

.cz-contact__channel-link:hover {
    text-decoration-color: var(--foreground, #09090b);
}

.cz-contact__channel-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
    border-radius: var(--border-radius-sm, 0.375rem);
}

.cz-contact__channel-link--whatsapp {
    color: #166534;
    text-decoration-color: #86efac;
}

.cz-contact__channel-link--whatsapp:hover {
    text-decoration-color: #166534;
}

/* WhatsApp icon in stack */
.cz-contact__channel--whatsapp .cz-contact__channel-icon {
    background-color: #dcfce7;
    color: #166534;
}

/* ========================================
   BOTTOM ROW (Budget Hero + Form)
   ======================================== */

.cz-contact__bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl, 2rem);
}

@media (min-width: 1024px) {
    .cz-contact__bottom {
        grid-template-columns: 5fr 7fr;
        gap: var(--spacing-2xl, 3rem);
        align-items: start;
    }
}

/* ========================================
   BUDGET HERO (sticky on desktop)
   ======================================== */

.cz-contact__budget-hero {
    padding: var(--spacing-lg, 1.5rem);
    background-color: var(--muted, #f4f4f5);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    display: flex;
    flex-direction: column;
}

@media (min-width: 1024px) {
    .cz-contact__budget-hero {
        position: sticky;
        top: 5rem;
    }
}

.cz-contact__budget-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--border-radius-sm, 0.375rem);
    background-color: var(--background, #fff);
    border: 1px solid var(--border-color, #e4e4e7);
    color: var(--foreground, #09090b);
    margin-bottom: var(--spacing-md, 1rem);
    font-size: 1.25rem;
}

.cz-contact__budget-title {
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 var(--spacing-sm, 0.5rem);
}

.cz-contact__budget-desc {
    font-size: var(--font-size-sm, 0.875rem);
    line-height: var(--line-height-relaxed, 1.75);
    color: var(--muted-foreground, #71717a);
    margin: 0 0 var(--spacing-md, 1rem);
}

.cz-contact__budget-list {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-lg, 1.5rem);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cz-contact__budget-list li {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--foreground, #09090b);
    line-height: var(--line-height-normal, 1.5);
}

.cz-contact__budget-list li svg {
    color: var(--muted-foreground, #71717a);
    flex-shrink: 0;
}

.cz-contact__budget-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: var(--line-height-normal, 1.5);
    background-color: var(--theme-primary, #2563eb);
    color: var(--theme-text-on-primary, #fff);
    border: 1px solid var(--theme-primary, #2563eb);
    border-radius: var(--border-radius-sm, 0.375rem);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease);
}

.cz-contact__budget-cta:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
    border-color: var(--theme-primary-dark, #1d4ed8);
    color: var(--theme-text-on-primary, #fff);
}

.cz-contact__budget-cta:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

/* Arrow direction: down by default (mobile/stacked), right on desktop (side-by-side) */
.cz-contact__budget-arrow--right {
    display: none;
}

.cz-contact__budget-arrow--down {
    display: inline;
}

@media (min-width: 1024px) {
    .cz-contact__budget-arrow--right {
        display: inline;
    }

    .cz-contact__budget-arrow--down {
        display: none;
    }
}

/* ========================================
   SECTION TITLES & FORM WRAPPER
   ======================================== */

.cz-contact__section-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 var(--spacing-lg, 1.5rem);
}

.cz-contact__section-title i {
    color: var(--muted-foreground, #71717a);
}

.cz-contact__form-wrapper {
    scroll-margin-top: 6rem;
}

.cz-contact__form-hint {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    margin: -0.75rem 0 var(--spacing-lg, 1.5rem);
    line-height: var(--line-height-normal, 1.5);
}

/* ========================================
   CF7 FORM OVERRIDE
   ======================================== */

.cz-contact__form-wrapper .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md, 1rem);
}

.cz-contact__form-wrapper .wpcf7-form p {
    margin: 0;
}

.cz-contact__form-wrapper .wpcf7-form label {
    display: block;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--foreground, #09090b);
    margin-bottom: 0.375rem;
}

.cz-contact__form-wrapper .wpcf7-form input[type="text"],
.cz-contact__form-wrapper .wpcf7-form input[type="email"],
.cz-contact__form-wrapper .wpcf7-form input[type="tel"],
.cz-contact__form-wrapper .wpcf7-form input[type="url"],
.cz-contact__form-wrapper .wpcf7-form input[type="number"],
.cz-contact__form-wrapper .wpcf7-form select,
.cz-contact__form-wrapper .wpcf7-form textarea {
    display: block;
    width: 100%;
    height: 2.5rem;
    padding: 0.5rem 0.75rem;
    font-size: var(--font-size-sm, 0.875rem);
    line-height: var(--line-height-normal, 1.5);
    border: 1px solid var(--input, #e4e4e7);
    border-radius: var(--border-radius-sm, 0.375rem);
    background: var(--background, #fff);
    color: var(--foreground, #09090b);
    font-family: inherit;
    transition: border-color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
}

.cz-contact__form-wrapper .wpcf7-form textarea {
    height: auto;
    min-height: 8rem;
    resize: vertical;
}

.cz-contact__form-wrapper .wpcf7-form input:focus,
.cz-contact__form-wrapper .wpcf7-form select:focus,
.cz-contact__form-wrapper .wpcf7-form textarea:focus {
    outline: none;
    border-color: var(--input-focus, var(--ring, #2563eb));
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

/* Submit button */
.cz-contact__form-wrapper .wpcf7-form input[type="submit"],
.cz-contact__form-wrapper .wpcf7-form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.5rem;
    padding: 0.5rem 1.5rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: var(--line-height-normal, 1.5);
    background-color: var(--theme-primary, #2563eb);
    color: var(--theme-text-on-primary, #fff);
    border: 1px solid var(--theme-primary, #2563eb);
    border-radius: var(--border-radius-sm, 0.375rem);
    cursor: pointer;
    font-family: inherit;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease);
}

.cz-contact__form-wrapper .wpcf7-form input[type="submit"]:hover,
.cz-contact__form-wrapper .wpcf7-form .wpcf7-submit:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
    border-color: var(--theme-primary-dark, #1d4ed8);
}

.cz-contact__form-wrapper .wpcf7-form input[type="submit"]:focus-visible,
.cz-contact__form-wrapper .wpcf7-form .wpcf7-submit:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.cz-contact__form-wrapper .wpcf7-form input[type="submit"]:disabled,
.cz-contact__form-wrapper .wpcf7-form .wpcf7-submit:disabled {
    opacity: 0.5;
    pointer-events: none;
}

/* CF7 validation */
.cz-contact__form-wrapper .wpcf7-not-valid-tip {
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--color-error, #ef4444);
    margin-top: 0.25rem;
}

.cz-contact__form-wrapper .wpcf7-response-output {
    padding: 0.75rem 1rem;
    border-radius: var(--border-radius-sm, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    margin: var(--spacing-sm, 0.5rem) 0 0;
}

.cz-contact__form-wrapper .wpcf7-mail-sent-ok,
.cz-contact__form-wrapper .wpcf7 form.sent .wpcf7-response-output {
    background-color: var(--color-success-light, #dcfce7);
    border: 1px solid var(--color-success, #22c55e);
    color: var(--color-success-foreground, #166534);
}

.cz-contact__form-wrapper .wpcf7-validation-errors,
.cz-contact__form-wrapper .wpcf7 form.invalid .wpcf7-response-output,
.cz-contact__form-wrapper .wpcf7 form.failed .wpcf7-response-output {
    background-color: var(--color-error-light, #fee2e2);
    border: 1px solid var(--color-error, #ef4444);
    color: var(--color-error-foreground, #991b1b);
}

.cz-contact__form-wrapper .wpcf7-spinner {
    margin: 0 0.5rem;
}

/* ========================================
   RESPONSIVE
   ======================================== */

@media (max-width: 767px) {
    .cz-contact {
        padding-top: var(--spacing-md, 1rem);
    }

    .cz-contact__container {
        gap: var(--spacing-xl, 2rem);
    }

    .cz-contact__hero {
        padding-top: var(--spacing-md, 1rem);
    }

    .cz-contact__title {
        font-size: var(--font-size-2xl, 1.875rem);
    }

    .cz-contact__hero-actions {
        flex-direction: column;
    }

    .cz-contact__cta {
        width: 100%;
    }

    /* Stack channel row layout on small screens */
    .cz-contact__channel-row {
        flex-wrap: wrap;
    }

    .cz-contact__channel-link {
        width: 100%;
        justify-content: center;
        padding-top: var(--spacing-sm, 0.5rem);
        border-top: 1px solid var(--border-color, #e4e4e7);
        margin-top: var(--spacing-sm, 0.5rem);
    }
}

@media (max-width: 1023px) {
    /* Budget hero goes above form on tablet/mobile */
    .cz-contact__bottom {
        display: flex;
        flex-direction: column;
    }
}
