/* ==========================================================================
   Contacto — Pencil rebuild (node zA8fQ)
   Scoped to page-templates/template-contact.php only. Uses its own
   `cst-pc-*` namespace so it never collides with the shared cst-contact-*
   rules in custom.css / home-modern.css.
   ========================================================================== */

/* --- Contact section: info cards (left) + CF7 form card (right) --- */

.cst-pc-contact {
    background: var(--cst-color-white);
    padding-block: 72px;
}

.cst-pc-contact__inner {
    max-width: var(--cst-container-max);
    margin-inline: auto;
    padding-inline: 64px;
    display: grid;
    grid-template-columns: 400px 1fr;
    align-items: start;
    gap: 48px;
}

/* --- Info column --- */

.cst-pc-info {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cst-pc-info__title {
    font-family: var(--cst-font-heading);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--cst-color-navy);
    margin: 0;
}

.cst-pc-card {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    box-sizing: border-box;
    border-radius: 14px;
    background: #F4F7FC;
    border: 1px solid #E3E9F4;
    padding: 20px;
}

.cst-pc-card__icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: #EAF0FB;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cst-color-blue-primary);
}

.cst-pc-card__icon svg {
    display: block;
}

.cst-pc-card__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 auto;
}

.cst-pc-card__label {
    font-family: var(--cst-font-body);
    font-size: 13px;
    font-weight: 600;
    color: #8791A8;
}

.cst-pc-card__value {
    font-family: var(--cst-font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--cst-color-navy);
    text-decoration: none;
    word-break: break-word;
}

a.cst-pc-card__value:hover,
a.cst-pc-card__value:focus-visible {
    text-decoration: underline;
    color: var(--cst-color-blue-primary);
}

a.cst-pc-card__value:focus-visible {
    outline: 3px solid var(--cst-color-blue);
    outline-offset: 2px;
}

.cst-pc-socials {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 8px;
}

.cst-pc-socials__btn {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: #F4F7FC;
    border: 1px solid #E3E9F4;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cst-color-blue-primary);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.cst-pc-socials__btn:hover {
    background: var(--cst-color-blue-primary);
    border-color: var(--cst-color-blue-primary);
    color: var(--cst-color-white);
}

.cst-pc-socials__btn:focus-visible {
    outline: 3px solid var(--cst-color-blue);
    outline-offset: 2px;
}

/* --- Form card (real Contact Form 7 form, restyled) --- */

.cst-pc-form {
    background: var(--cst-color-white);
    border-radius: 18px;
    border: 1px solid #E3E9F4;
    padding: 36px;
    box-shadow: 0 14px 36px -10px rgba(31, 46, 84, 0.09);
}

.cst-pc-form__title {
    font-family: var(--cst-font-heading);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--cst-color-navy);
    margin: 0 0 20px;
}

.cst-pc-form .wpcf7-form p {
    margin: 0 0 20px;
}

.cst-pc-form .wpcf7-form p:last-of-type {
    margin-bottom: 0;
}

.cst-pc-form .wpcf7-form label {
    display: block;
    font-family: var(--cst-font-body);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--cst-color-navy);
}

.cst-pc-form .wpcf7-form-control-wrap {
    display: block;
    margin-top: 8px;
}

.cst-pc-form .wpcf7-form-control {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    padding: 13px 15px;
    border: 1px solid #CBD6EC;
    border-radius: 10px;
    background: var(--cst-color-white);
    font-family: var(--cst-font-body);
    font-size: 15px;
    font-weight: 400;
    color: var(--cst-color-navy);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cst-pc-form .wpcf7-form-control::placeholder {
    color: #8791A8;
    opacity: 1;
}

.cst-pc-form textarea.wpcf7-form-control {
    height: 120px;
    min-height: 120px;
    resize: vertical;
}

/* Nombre/Apellidos side-by-side row, matching Pencil's 2-col "Row" group. */
.cst-pc-form-row {
    display: flex;
    gap: 16px;
}

.cst-pc-form-row p {
    flex: 1 1 0;
    min-width: 0;
}

@media (max-width: 480px) {
    .cst-pc-form-row { flex-direction: column; gap: 0; }
}

/* Asunto renders as a native <select> — style it like the other inputs
   with a trailing chevron-down, matching Pencil's dropdown treatment. */
.cst-pc-form select.wpcf7-form-control {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%238791A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
    padding-right: 40px;
    cursor: pointer;
}

.cst-pc-form .wpcf7-form-control:focus {
    outline: none;
    border-color: var(--cst-color-blue-primary);
    box-shadow: 0 0 0 3px rgba(62, 100, 222, 0.15);
}

.cst-pc-form .wpcf7-form-control.wpcf7-not-valid {
    border-color: var(--cst-color-red);
}

.cst-pc-form .wpcf7-not-valid-tip {
    display: block;
    margin-top: 6px;
    font-family: var(--cst-font-body);
    font-size: 13px;
    color: var(--cst-color-red);
}

.cst-pc-form input.wpcf7-form-control[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 15px 54px 15px 28px;
    background-color: var(--cst-color-blue-primary);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'/%3E%3Cpath d='m21.854 2.147-10.94 10.939'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 24px center;
    background-size: 17px 17px;
    color: var(--cst-color-white);
    border: none;
    border-radius: 10px;
    font-family: var(--cst-font-body);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .2s ease;
}

.cst-pc-form input.wpcf7-form-control[type="submit"]:hover,
.cst-pc-form input.wpcf7-form-control[type="submit"]:focus-visible {
    background-color: var(--cst-color-blue-dark);
}

.cst-pc-form input.wpcf7-form-control[type="submit"]:focus-visible {
    outline: 3px solid var(--cst-color-blue);
    outline-offset: 2px;
}

.cst-pc-form .wpcf7-spinner {
    margin-left: 10px;
}

.cst-pc-form .wpcf7-response-output {
    margin: 20px 0 0;
    border-radius: 10px;
    padding: 12px 16px;
    font-family: var(--cst-font-body);
    font-size: 14px;
}

.cst-pc-form form.sent .wpcf7-response-output {
    border-color: #1E8E5A;
    background: #EAF7EF;
    color: #1E8E5A;
}

.cst-pc-form form.invalid .wpcf7-response-output,
.cst-pc-form form.failed .wpcf7-response-output,
.cst-pc-form form.aborted .wpcf7-response-output,
.cst-pc-form form.spam .wpcf7-response-output,
.cst-pc-form form.payment-required .wpcf7-response-output {
    border-color: var(--cst-color-red);
    background: #FDEAEA;
    color: var(--cst-color-red);
}

/* --- Map section --- */

.cst-pc-map {
    background: #F4F7FC;
    border-top: 1px solid #E3E9F4;
    padding-block: 56px;
}

.cst-pc-map__inner {
    max-width: var(--cst-container-max);
    margin-inline: auto;
    padding-inline: 64px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cst-pc-map__title {
    font-family: var(--cst-font-heading);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--cst-color-navy);
    margin: 0;
}

.cst-pc-map__frame {
    width: 100%;
    height: 300px;
    box-sizing: border-box;
    border-radius: 16px;
    background: #EAF0FB;
    border: 1px solid #E3E9F4;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.cst-pc-map__pin {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--cst-color-blue-primary);
    color: var(--cst-color-white);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cst-pc-map__addr {
    font-family: var(--cst-font-body);
    font-size: 15px;
    font-weight: 600;
    color: #5B6680;
    margin: 0;
    text-align: center;
    padding-inline: 24px;
}

.cst-pc-map__frame--embed {
    padding: 0;
    background: var(--cst-color-gray-100, #F8F9FA);
}

.cst-pc-map__frame--embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.cst-pc-map__directions {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--cst-font-body);
    font-size: 14px;
    font-weight: 700;
    color: var(--cst-color-blue-dark);
    text-decoration: none;
}

.cst-pc-map__directions:hover,
.cst-pc-map__directions:focus-visible {
    text-decoration: underline;
}

/* --- Responsive --- */

@media (max-width: 900px) {
    .cst-pc-contact__inner {
        grid-template-columns: 1fr;
        padding-inline: 32px;
        gap: 32px;
    }
}

@media (max-width: 560px) {
    .cst-pc-contact {
        padding-block: 48px;
    }

    .cst-pc-contact__inner {
        padding-inline: 20px;
    }

    .cst-pc-map__inner {
        padding-inline: 20px;
    }

    .cst-pc-form {
        padding: 24px;
    }

    .cst-pc-card {
        padding: 16px;
    }
}

/* --- Reduced motion --- */

@media (prefers-reduced-motion: reduce) {
    .cst-pc-socials__btn,
    .cst-pc-form .wpcf7-form-control,
    .cst-pc-form input.wpcf7-form-control[type="submit"] {
        transition: none;
    }
}

/* --- High contrast / forced colors --- */

@media (prefers-contrast: high) {
    .cst-pc-card,
    .cst-pc-form,
    .cst-pc-map__frame {
        border-width: 2px;
        border-color: var(--cst-color-black);
    }

    .cst-pc-card__icon,
    .cst-pc-socials__btn {
        border: 2px solid currentColor;
        background: transparent;
    }

    .cst-pc-form .wpcf7-form-control:not([type="submit"]) {
        border: 2px solid var(--cst-color-black);
        box-shadow: none;
    }

    .cst-pc-form input.wpcf7-form-control[type="submit"] {
        border: 3px solid var(--cst-color-black);
    }
}

@media (forced-colors: active) {
    .cst-pc-card__icon,
    .cst-pc-socials__btn,
    .cst-pc-map__pin {
        background: Canvas;
        border: 2px solid CanvasText;
        color: CanvasText;
        forced-color-adjust: none;
    }

    .cst-pc-form .wpcf7-form-control:not([type="submit"]) {
        background: Field;
        color: FieldText;
        border: 1px solid CanvasText;
    }

    .cst-pc-form input.wpcf7-form-control[type="submit"] {
        background: ButtonFace;
        color: ButtonText;
        border: 2px solid ButtonText;
        background-image: none;
    }
}
