/*
 * modcontactoCRV v1.6.0
 * Diseñado por Cristian Rojas Veas — https://cristianrojas.cl
 * CSS completamente aislado de las versiones 1.0–1.5 para evitar conflictos
 * con hojas antiguas, overrides de YOOtheme y reglas heredadas.
 */

.crv160-contact {
    --crv160-accent: #e31d2b;
    --crv160-text: #f7f7f7;
    --crv160-muted: #a9adb5;
    --crv160-field-bg: #17191d;
    --crv160-field-border: #343840;
    --crv160-button: #e31d2b;
    --crv160-container-radius: 20px;
    --crv160-field-radius: 12px;
    --crv160-button-radius: 12px;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    color: var(--crv160-text);
    font: inherit;
    box-sizing: border-box;
    container-type: inline-size;
}

.crv160-contact,
.crv160-contact *,
.crv160-contact *::before,
.crv160-contact *::after {
    box-sizing: border-box;
}

.crv160-contact .crv160-shell {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    border-radius: var(--crv160-container-radius) !important;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

/* PRESETS */
.crv160-contact.crv160-preset-transparent_dark .crv160-shell {
    background:
        radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--crv160-accent) 15%, transparent), transparent 34%),
        linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 24px 55px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.crv160-contact.crv160-preset-glass .crv160-shell {
    background: rgba(23,25,29,.54);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 24px 60px rgba(0,0,0,.28);
    backdrop-filter: blur(20px) saturate(125%);
    -webkit-backdrop-filter: blur(20px) saturate(125%);
}

.crv160-contact.crv160-preset-solid_dark .crv160-shell {
    background: #111317;
    border: 1px solid #272b32;
    box-shadow: 0 22px 52px rgba(0,0,0,.34);
}

.crv160-contact.crv160-preset-outline .crv160-shell {
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--crv160-accent) 46%, transparent);
    box-shadow: none;
}

.crv160-contact.crv160-preset-minimal .crv160-shell {
    background: transparent;
    border: 0;
    border-radius: 0 !important;
    box-shadow: none;
}

.crv160-contact.crv160-preset-light {
    --crv160-text: #111317;
    --crv160-muted: #676d76;
    --crv160-field-bg: #ffffff;
    --crv160-field-border: #d9dde4;
}

.crv160-contact.crv160-preset-light .crv160-shell {
    background: #fff;
    border: 1px solid #e8ebef;
    box-shadow: 0 18px 50px rgba(0,0,0,.10);
}

.crv160-contact.crv160-custom-background .crv160-shell {
    background: var(--crv160-custom-background) !important;
}

.crv160-contact.crv160-shadow-none .crv160-shell { box-shadow: none !important; }
.crv160-contact.crv160-shadow-soft .crv160-shell { box-shadow: 0 12px 32px rgba(0,0,0,.18) !important; }
.crv160-contact.crv160-shadow-medium .crv160-shell { box-shadow: 0 24px 55px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.05) !important; }
.crv160-contact.crv160-shadow-strong .crv160-shell { box-shadow: 0 30px 78px rgba(0,0,0,.38), 0 0 0 1px rgba(255,255,255,.035), inset 0 1px 0 rgba(255,255,255,.06) !important; }

/* CABECERA */
.crv160-contact .crv160-intro {
    position: relative !important;
    width: 100% !important;
    padding: 28px 28px 16px !important;
    margin: 0 !important;
}

.crv160-contact .crv160-icon {
    width: 46px !important;
    height: 46px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 14px !important;
    margin: 0 0 16px !important;
    color: #fff !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--crv160-accent) 82%, #fff 8%), var(--crv160-accent)) !important;
    box-shadow: 0 12px 26px color-mix(in srgb, var(--crv160-accent) 24%, transparent), inset 0 1px 0 rgba(255,255,255,.28) !important;
}

.crv160-contact .crv160-icon svg { width: 23px !important; height: 23px !important; fill: currentColor !important; }

.crv160-contact .crv160-title {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--crv160-text) !important;
    font-size: clamp(1.3rem, 2.2vw, 2rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.02em !important;
    font-weight: 800 !important;
}

.crv160-contact .crv160-subtitle {
    max-width: 52ch !important;
    margin: 9px 0 0 !important;
    color: var(--crv160-muted) !important;
    font-size: .95rem !important;
    line-height: 1.55 !important;
}

.crv160-contact .crv160-accent {
    width: 82px !important;
    height: 3px !important;
    margin-top: 16px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, var(--crv160-accent), color-mix(in srgb, var(--crv160-accent) 30%, transparent)) !important;
    box-shadow: 0 0 18px color-mix(in srgb, var(--crv160-accent) 26%, transparent) !important;
}

.crv160-contact .crv160-body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 12px 28px 28px !important;
    margin: 0 !important;
}

.crv160-contact .crv160-form {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    transform: none !important;
}

/* CAMPOS BASE */
.crv160-contact .crv160-grid {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 14px 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
    grid-auto-flow: row dense !important;
}

.crv160-contact .crv160-field {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
}

.crv160-contact .crv160-field label {
    display: block !important;
    margin: 0 0 7px !important;
    padding: 0 !important;
    color: var(--crv160-text) !important;
    font-size: .80rem !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
}

.crv160-contact .crv160-field input,
.crv160-contact .crv160-field select,
.crv160-contact .crv160-field textarea {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    border: 1px solid var(--crv160-field-border) !important;
    border-radius: var(--crv160-field-radius) !important;
    outline: none !important;
    color: var(--crv160-text) !important;
    background: color-mix(in srgb, var(--crv160-field-bg) 86%, transparent) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 8px 18px rgba(0,0,0,.08) !important;
    font: inherit !important;
    font-size: .92rem !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
}

.crv160-contact .crv160-field input,
.crv160-contact .crv160-field select {
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 13px !important;
}

.crv160-contact .crv160-field textarea {
    min-height: 132px !important;
    height: 132px;
    padding: 12px 13px !important;
    resize: vertical !important;
}

.crv160-contact .crv160-field input::placeholder,
.crv160-contact .crv160-field textarea::placeholder {
    color: color-mix(in srgb, var(--crv160-muted) 75%, transparent) !important;
    opacity: 1 !important;
}

.crv160-contact .crv160-field input:focus,
.crv160-contact .crv160-field select:focus,
.crv160-contact .crv160-field textarea:focus {
    border-color: color-mix(in srgb, var(--crv160-accent) 74%, #fff 8%) !important;
    background: color-mix(in srgb, var(--crv160-field-bg) 93%, transparent) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--crv160-accent) 16%, transparent), 0 10px 26px rgba(0,0,0,.12) !important;
}

/* FOOTER DEL FORMULARIO: siempre aislado para que privacidad y botón no “floten” */
.crv160-contact .crv160-footer {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 14px 18px !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 16px 0 0 !important;
    padding: 0 !important;
    position: static !important;
    transform: none !important;
}

.crv160-contact .crv160-privacy {
    display: flex !important;
    gap: 9px !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--crv160-muted) !important;
    font-size: .78rem !important;
    line-height: 1.45 !important;
    cursor: pointer !important;
    position: static !important;
    transform: none !important;
}

.crv160-contact .crv160-privacy input {
    display: block !important;
    flex: 0 0 17px !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    margin: 1px 0 0 !important;
    padding: 0 !important;
    accent-color: var(--crv160-accent) !important;
}

.crv160-contact .crv160-privacy span { min-width: 0 !important; }
.crv160-contact .crv160-privacy a { color: var(--crv160-text) !important; text-decoration: underline !important; text-underline-offset: 3px !important; }

.crv160-contact .crv160-actions {
    display: flex !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: flex-start !important;
    position: static !important;
    transform: none !important;
}

.crv160-contact.crv160-button-left:not(.crv160-layout-center_wide) .crv160-actions { justify-content: flex-start !important; }
.crv160-contact.crv160-button-center:not(.crv160-layout-center_wide) .crv160-actions { justify-content: center !important; }
.crv160-contact.crv160-button-right:not(.crv160-layout-center_wide) .crv160-actions { justify-content: flex-end !important; }
.crv160-contact.crv160-button-full:not(.crv160-layout-center_wide) .crv160-actions { width: 100% !important; }
.crv160-contact.crv160-button-full:not(.crv160-layout-center_wide) .crv160-button { width: 100% !important; justify-content: center !important; }

.crv160-contact .crv160-button {
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 19px !important;
    border: 1px solid color-mix(in srgb, var(--crv160-button) 72%, #fff 12%) !important;
    border-radius: var(--crv160-button-radius) !important;
    color: #fff !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--crv160-button) 84%, #fff 8%), var(--crv160-button)) !important;
    box-shadow: 0 14px 30px color-mix(in srgb, var(--crv160-button) 20%, transparent), inset 0 1px 0 rgba(255,255,255,.24) !important;
    font: inherit !important;
    font-size: .88rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transform: none !important;
}

.crv160-contact .crv160-button svg { width: 18px !important; height: 18px !important; fill: currentColor !important; flex: 0 0 auto !important; }
.crv160-contact .crv160-button:hover { filter: brightness(1.06) !important; transform: translateY(-2px) !important; }

/* =========================
   LOS 9 DISEÑOS — v1.6.0
   ========================= */

/* 01 · Equilibrado 2×2
   Nombre | Correo
   Teléfono | Motivo
   Asunto completo
   Mensaje completo
   Pie normal (privacidad arriba del botón según alineación). */
.crv160-contact.crv160-layout-balanced .crv160-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-template-areas:
        "name email"
        "phone reason"
        "subject subject"
        "message message" !important;
}
.crv160-contact.crv160-layout-balanced .crv160-footer {
    grid-template-columns: 1fr !important;
}
.crv160-contact.crv160-layout-balanced .crv160-actions { width: 100% !important; }

/* 02 · Una columna */
.crv160-contact.crv160-layout-single .crv160-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas:
        "name"
        "email"
        "phone"
        "reason"
        "subject"
        "message" !important;
}
.crv160-contact.crv160-layout-single .crv160-footer { grid-template-columns: 1fr !important; }
.crv160-contact.crv160-layout-single .crv160-field-message textarea { min-height: 150px !important; height: 150px; }

/* 03 · Compacto 3 columnas
   Nombre | Correo | Teléfono
   Motivo | Asunto | Asunto
   Mensaje completo */
.crv160-contact.crv160-layout-compact3 .crv160-grid {
    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    grid-template-areas:
        "name email phone"
        "reason subject subject"
        "message message message" !important;
    gap: 11px 12px !important;
}
.crv160-contact.crv160-layout-compact3 .crv160-field input,
.crv160-contact.crv160-layout-compact3 .crv160-field select { height: 43px !important; min-height: 43px !important; padding-inline: 10px !important; font-size: .86rem !important; }
.crv160-contact.crv160-layout-compact3 .crv160-field label { font-size: .74rem !important; }
.crv160-contact.crv160-layout-compact3 .crv160-field-message textarea { min-height: 112px !important; height: 112px; }

/* 04 · Mensaje grande a la derecha
   Columna izquierda: Nombre / Correo / Teléfono / Motivo / Asunto
   Columna derecha: Mensaje protagonista */
.crv160-contact.crv160-layout-message_right .crv160-grid {
    grid-template-columns: minmax(0,.92fr) minmax(0,1.18fr) !important;
    grid-template-areas:
        "name message"
        "email message"
        "phone message"
        "reason message"
        "subject message" !important;
    align-items: stretch !important;
}
.crv160-contact.crv160-layout-message_right .crv160-field-message textarea { min-height: 100% !important; height: 100% !important; }

/* 05 · Mensaje grande a la izquierda */
.crv160-contact.crv160-layout-message_left .crv160-grid {
    grid-template-columns: minmax(0,1.18fr) minmax(0,.92fr) !important;
    grid-template-areas:
        "message name"
        "message email"
        "message phone"
        "message reason"
        "message subject" !important;
    align-items: stretch !important;
}
.crv160-contact.crv160-layout-message_left .crv160-field-message textarea { min-height: 100% !important; height: 100% !important; }

/* 06 · Editorial asimétrico 5/7 */
.crv160-contact.crv160-layout-editorial .crv160-grid {
    grid-template-columns: repeat(12, minmax(0,1fr)) !important;
    grid-template-areas:
        "name name name name name email email email email email email email"
        "phone phone phone phone reason reason reason reason subject subject subject subject"
        "message message message message message message message message message message message message" !important;
}
.crv160-contact.crv160-layout-editorial .crv160-field-message textarea { min-height: 122px !important; height: 122px; }

/* 07 · Footer ultracompacto */
.crv160-contact.crv160-layout-footer_strip .crv160-grid {
    grid-template-columns: repeat(12, minmax(0,1fr)) !important;
    grid-template-areas:
        "name name name email email email phone phone phone reason reason reason"
        "subject subject subject subject message message message message message message message message" !important;
    gap: 9px 10px !important;
}
.crv160-contact.crv160-layout-footer_strip .crv160-field label { font-size: .70rem !important; margin-bottom: 5px !important; }
.crv160-contact.crv160-layout-footer_strip .crv160-field input,
.crv160-contact.crv160-layout-footer_strip .crv160-field select { height: 39px !important; min-height: 39px !important; padding-inline: 9px !important; font-size: .80rem !important; }
.crv160-contact.crv160-layout-footer_strip .crv160-field textarea { min-height: 86px !important; height: 86px; padding: 9px !important; font-size: .82rem !important; }
.crv160-contact.crv160-layout-footer_strip .crv160-footer { margin-top: 11px !important; }
.crv160-contact.crv160-layout-footer_strip .crv160-button { min-height: 40px !important; padding-inline: 15px !important; font-size: .80rem !important; }

/* 08 · Dos columnas verticales
   Izquierda: Nombre / Teléfono / Asunto
   Derecha: Correo / Motivo / Mensaje */
.crv160-contact.crv160-layout-paired .crv160-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-template-areas:
        "name email"
        "phone reason"
        "subject message" !important;
    align-items: stretch !important;
}
.crv160-contact.crv160-layout-paired .crv160-field-message textarea { min-height: 95px !important; height: 95px; }
.crv160-contact.crv160-layout-paired .crv160-field-subject input { min-height: 95px !important; height: 95px !important; }

/* 09 · PRIORITARIO — 2×2 arriba + Asunto y Mensaje a TODO el ancho
   Nombre | Correo
   Teléfono | Motivo
   Asunto completo
   Mensaje completo
   Privacidad izquierda | Botón derecha */
.crv160-contact.crv160-layout-center_wide .crv160-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-template-areas:
        "name email"
        "phone reason"
        "subject subject"
        "message message" !important;
    gap: 12px 16px !important;
}
.crv160-contact.crv160-layout-center_wide .crv160-field-subject,
.crv160-contact.crv160-layout-center_wide .crv160-field-message {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
.crv160-contact.crv160-layout-center_wide .crv160-field-message textarea {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    min-height: 155px !important;
    height: 155px;
}
.crv160-contact.crv160-layout-center_wide .crv160-footer {
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 16px !important;
    align-items: center !important;
}
.crv160-contact.crv160-layout-center_wide .crv160-privacy { justify-self: start !important; }
.crv160-contact.crv160-layout-center_wide .crv160-actions { justify-self: end !important; justify-content: flex-end !important; }
.crv160-contact.crv160-layout-center_wide .crv160-button { width: auto !important; min-width: max-content !important; }

/* ÁREAS DE GRID COMUNES */
.crv160-contact .crv160-field-name    { grid-area: name !important; }
.crv160-contact .crv160-field-email   { grid-area: email !important; }
.crv160-contact .crv160-field-phone   { grid-area: phone !important; }
.crv160-contact .crv160-field-reason  { grid-area: reason !important; }
.crv160-contact .crv160-field-subject { grid-area: subject !important; }
.crv160-contact .crv160-field-message { grid-area: message !important; }

/* COMPOSICIONES */
.crv160-contact.crv160-composition-split .crv160-shell {
    display: grid !important;
    grid-template-columns: minmax(190px,.62fr) minmax(0,1.38fr) !important;
    align-items: stretch !important;
}
.crv160-contact.crv160-composition-split .crv160-intro {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    border-right: 1px solid rgba(255,255,255,.08) !important;
    padding: 30px !important;
}
.crv160-contact.crv160-composition-split .crv160-body { padding: 30px !important; }

.crv160-contact.crv160-composition-compact .crv160-intro { padding: 20px 24px 8px !important; }
.crv160-contact.crv160-composition-compact .crv160-body { padding: 8px 24px 22px !important; }
.crv160-contact.crv160-composition-compact .crv160-icon { width: 40px !important; height: 40px !important; margin-bottom: 12px !important; }
.crv160-contact.crv160-composition-compact .crv160-title { font-size: clamp(1.15rem, 2vw, 1.65rem) !important; }
.crv160-contact.crv160-composition-compact .crv160-subtitle { font-size: .85rem !important; margin-top: 6px !important; }
.crv160-contact.crv160-composition-compact .crv160-accent { margin-top: 12px !important; }

/* PRESET CLARO */
.crv160-contact.crv160-preset-light .crv160-field input,
.crv160-contact.crv160-preset-light .crv160-field select,
.crv160-contact.crv160-preset-light .crv160-field textarea {
    color: #111317 !important;
    background: #fff !important;
}

/* NOTIFICACIONES */
.crv160-contact .crv160-notice { margin: 0 0 16px !important; padding: 12px 14px !important; border-radius: 11px !important; font-size: .86rem !important; line-height: 1.45 !important; }
.crv160-contact .crv160-notice ul { margin: 6px 0 0 !important; padding-left: 18px !important; }
.crv160-contact .crv160-notice-success { color: #dff8e8 !important; background: rgba(29,138,75,.16) !important; border: 1px solid rgba(79,210,129,.32) !important; }
.crv160-contact .crv160-notice-error { color: #ffe7e7 !important; background: rgba(185,45,45,.16) !important; border: 1px solid rgba(235,80,80,.30) !important; }
.crv160-contact .crv160-notice-debug { color: #dcecff !important; background: rgba(35,103,173,.16) !important; border: 1px solid rgba(88,167,245,.32) !important; font-size: 12px !important; }

.crv160-contact .crv160-hp {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

/* RESPONSIVE POR ANCHO REAL DEL MÓDULO, NO POR VIEWPORT */
@container (max-width: 620px) {
    .crv160-contact.crv160-composition-split .crv160-shell { display: block !important; }
    .crv160-contact.crv160-composition-split .crv160-intro { border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; }

    /* El diseño 07 sigue siendo distinto pero deja de usar 4 columnas diminutas. */
    .crv160-contact.crv160-layout-footer_strip .crv160-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        grid-template-areas:
            "name email"
            "phone reason"
            "subject message" !important;
    }
}

@container (max-width: 430px) {
    .crv160-contact .crv160-intro { padding: 20px 18px 10px !important; }
    .crv160-contact .crv160-body { padding: 10px 18px 20px !important; }
    .crv160-contact.crv160-composition-compact .crv160-intro { padding: 17px 18px 7px !important; }
    .crv160-contact.crv160-composition-compact .crv160-body { padding: 7px 18px 18px !important; }

    /* 03 mantiene identidad compacta: 2 columnas arriba + Asunto/Mensaje emparejados */
    .crv160-contact.crv160-layout-compact3 .crv160-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
        grid-template-areas:
            "name email"
            "phone reason"
            "subject message" !important;
    }
    .crv160-contact.crv160-layout-compact3 .crv160-field-message textarea { min-height: 94px !important; height: 94px; }
    .crv160-contact.crv160-layout-compact3 .crv160-field-subject input { min-height: 94px !important; height: 94px !important; }

    /* 06 pasa de 12 columnas a una asimetría 45/55 conservando personalidad. */
    .crv160-contact.crv160-layout-editorial .crv160-grid {
        grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr) !important;
        grid-template-areas:
            "name email"
            "phone reason"
            "subject subject"
            "message message" !important;
    }

    .crv160-contact .crv160-footer { grid-template-columns: 1fr !important; }
    .crv160-contact .crv160-actions { width: 100% !important; justify-self: stretch !important; }

    /* Excepción 09: mantiene privacidad y botón a los extremos si todavía caben. */
    .crv160-contact.crv160-layout-center_wide .crv160-footer {
        grid-template-columns: minmax(0,1fr) auto !important;
    }
    .crv160-contact.crv160-layout-center_wide .crv160-actions { width: auto !important; justify-self: end !important; }
}

/* Solo en teléfono realmente estrecho se apilan TODOS para legibilidad. */
@container (max-width: 340px) {
    .crv160-contact .crv160-grid,
    .crv160-contact.crv160-layout-balanced .crv160-grid,
    .crv160-contact.crv160-layout-single .crv160-grid,
    .crv160-contact.crv160-layout-compact3 .crv160-grid,
    .crv160-contact.crv160-layout-message_right .crv160-grid,
    .crv160-contact.crv160-layout-message_left .crv160-grid,
    .crv160-contact.crv160-layout-editorial .crv160-grid,
    .crv160-contact.crv160-layout-footer_strip .crv160-grid,
    .crv160-contact.crv160-layout-paired .crv160-grid,
    .crv160-contact.crv160-layout-center_wide .crv160-grid {
        grid-template-columns: 1fr !important;
        grid-template-areas:
            "name"
            "email"
            "phone"
            "reason"
            "subject"
            "message" !important;
    }

    .crv160-contact.crv160-layout-message_right .crv160-field-message textarea,
    .crv160-contact.crv160-layout-message_left .crv160-field-message textarea,
    .crv160-contact.crv160-layout-paired .crv160-field-message textarea,
    .crv160-contact.crv160-layout-compact3 .crv160-field-message textarea {
        height: 135px !important;
        min-height: 135px !important;
    }

    .crv160-contact.crv160-layout-paired .crv160-field-subject input,
    .crv160-contact.crv160-layout-compact3 .crv160-field-subject input {
        height: 46px !important;
        min-height: 46px !important;
    }

    .crv160-contact.crv160-layout-center_wide .crv160-footer { grid-template-columns: 1fr !important; }
    .crv160-contact.crv160-layout-center_wide .crv160-actions { width: 100% !important; justify-self: stretch !important; }
    .crv160-contact.crv160-layout-center_wide .crv160-button { width: 100% !important; min-width: 0 !important; }

    .crv160-contact .crv160-button { width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
    .crv160-contact *,
    .crv160-contact *::before,
    .crv160-contact *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
