/* Solo los formularios de suscripción. Sin estilos de páginas o del resto del tema. */
.asc-newsletter-celular { width: 100%; min-width: 0; scroll-margin-top: 220px; }
.asc-newsletter-celular *, .asc-newsletter-celular *::before, .asc-newsletter-celular *::after { box-sizing: border-box; }
.asc-newsletter-celular .asc-newsletter-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; }
.asc-newsletter-celular .asc-newsletter-field { min-width: 0; margin: 0; }
.asc-newsletter-celular .form-label { display: block; margin: 0 0 8px; font-size: 14px; line-height: 1.4; }
.asc-newsletter-celular .asc-newsletter-required { font-weight: normal; font-size: 12px; }
.asc-newsletter-celular .form-control { display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 44px; font-size: 16px; border-radius: 4px; }
.asc-newsletter-celular .asc-newsletter-submit { display: block; width: 100%; min-height: 44px; margin: 0; padding: 12px 16px; font-family: inherit; font-size: 15px; line-height: 1.4; border-radius: 4px; white-space: normal; }
.asc-newsletter-celular .asc-newsletter-submit:disabled { cursor: wait; opacity: .7; }
.asc-newsletter-celular .asc-newsletter-error, .asc-newsletter-celular .asc-newsletter-status { font-size: 13px; line-height: 1.4; margin: 8px 0 0; }
.asc-newsletter-celular .asc-newsletter-error:empty, .asc-newsletter-celular .asc-newsletter-status:empty { display: none; }
.asc-newsletter-celular .asc-newsletter-status { margin-top: 12px; }
.asc-newsletter-celular .form-control:focus-visible, .asc-newsletter-celular .asc-newsletter-submit:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* El modal depende de la respuesta real; errores de envío dentro del formulario. */
.asc-newsletter-celular .asc-newsletter-status[data-state="error"] {
    padding: 10px 12px; border: 1px solid #ff8b8b;
    border-radius: 4px; background: #3a1515; color: #ffb3b3;
}
.asc-newsletter-celular .js-news-success,
.asc-newsletter-celular .js-news-failed { display: none !important; }
.asc-newsletter-format-dialog {
    box-sizing: border-box; width: calc(100% - 32px); max-width: 414px;
    max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
    margin: auto; padding: 0; overflow: auto; border: 1px solid #547269;
    border-radius: 22px; background: #123a34; color: #f7f3e9;
    box-shadow: 0 22px 60px rgb(0 0 0 / 30%);
    font-family: Arial, Helvetica, sans-serif; text-align: left;
}
.asc-newsletter-format-dialog::backdrop { background: rgb(0 10 7 / 69%); backdrop-filter: blur(3px); }
.asc-newsletter-format-dialog .asc-ns-content { position: relative; margin: 0; padding: 48px 24px 28px; }
.asc-newsletter-format-dialog .asc-ns-close {
    position: absolute; top: 8px; right: 8px; display: grid; place-items: center;
    width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
    background: transparent; color: #bed0c4;
    font: 400 27px/1 Arial, Helvetica, sans-serif; cursor: pointer;
}
.asc-newsletter-format-dialog .asc-ns-close:hover { background: #20483e; }
.asc-newsletter-format-dialog .asc-ns-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.asc-newsletter-format-dialog .asc-ns-logo {
    display: block; flex: 0 0 auto; width: 40px; height: auto;
    max-width: none; margin: 0; padding: 0; border: 0; object-fit: contain;
}
.asc-newsletter-format-dialog .asc-ns-name {
    min-width: 0; margin: 0; color: #cfddce; font-size: 13px;
    font-weight: 400; line-height: 1.5; text-align: left;
}
.asc-newsletter-format-dialog .asc-ns-name sup { margin-left: 1px; font-size: 10px; line-height: 0; vertical-align: super; }
.asc-newsletter-format-dialog h2 {
    margin: 0 0 28px; color: #f7f3e9; font-family: Georgia, "Times New Roman", serif;
    font-size: 34px; font-weight: 400; line-height: 1.09; letter-spacing: -.85px; text-align: left;
}
.asc-newsletter-format-dialog .asc-ns-continue {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    width: 100%; min-height: 50px; padding: 14px 17px; border: 0; border-radius: 8px;
    background: #ece9db; color: #153d33; font: 500 14px/1.3 Arial, Helvetica, sans-serif;
    text-align: left; cursor: pointer;
}
.asc-newsletter-format-dialog .asc-ns-continue:hover { background: #fffbee; }
.asc-newsletter-format-dialog .asc-ns-continue > :last-child { flex-shrink: 0; font-size: 21px; }
.asc-newsletter-format-dialog button:focus-visible { outline: 2px solid #f7f3e9; outline-offset: 4px; }
@media (min-width: 400px) {
    .asc-newsletter-format-dialog .asc-ns-content { padding: 48px 32px 32px; }
    .asc-newsletter-format-dialog .asc-ns-brand { gap: 12px; }
    .asc-newsletter-format-dialog .asc-ns-name { font-size: 14px; }
    .asc-newsletter-format-dialog h2 { font-size: 37px; }
}

/* Los errores pertenecen a su campo; nunca se muestran como un modal. */
.asc-newsletter-celular .form-control[aria-invalid="true"] {
    border: 2px solid #ff8b8b !important;
    background-color: rgba(80, 0, 0, .35) !important;
    box-shadow: 0 0 0 1px #ff8b8b !important;
}
.asc-newsletter-celular .asc-newsletter-error:not(:empty) {
    padding: 8px 10px; border-left: 3px solid #ff8b8b;
    border-radius: 2px; background: #3a1515; color: #ffb3b3;
}
.asc-newsletter-celular .asc-newsletter-shake { animation: asc-newsletter-shake 280ms ease-in-out; }
@keyframes asc-newsletter-shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-5px); }
    40%, 80% { transform: translateX(5px); }
}
@media (prefers-reduced-motion: reduce) {
    .asc-newsletter-celular .asc-newsletter-shake { animation: none; }
}
