/* ROUSS — formulario de Contacto. Solo se carga en la página que usa [rouss_contacto_formulario].
   Usa los colores del diseño vigente (variables --rk-*) con respaldos, así que sigue la identidad de la tienda. */
.rouss-contacto-datos { margin-bottom: 8px; }
.rouss-contacto-datos a { color: var(--rk-accent, #c2410c); font-weight: 600; text-underline-offset: 3px; }
.rouss-contacto-datos li span:last-child { overflow-wrap: anywhere; }

.rouss-contacto-form { display: grid; gap: 16px; margin-top: 24px; padding: 24px; box-sizing: border-box; background: #fff; border: 1px solid var(--rk-border-soft, #ededed); border-radius: 16px; font-family: inherit; color: var(--rk-ink, #171717); }
.rouss-contacto-form__title { margin: 0; font-size: 20px; line-height: 1.25; font-weight: 800; color: var(--rk-ink, #171717); }
.rouss-contacto-form__field { display: grid; gap: 6px; }
.rouss-contacto-form label { font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--rk-ink, #171717); }
.rouss-contacto-form label span { color: var(--rk-accent, #c2410c); }
.rouss-contacto-form input[type="text"], .rouss-contacto-form textarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 14px; font: inherit; font-size: 16px; color: var(--rk-ink, #171717); background: #fff; border: 1.5px solid var(--rk-border, #d9d9d9); border-radius: 12px; }
.rouss-contacto-form textarea { min-height: 140px; resize: vertical; line-height: 1.5; }
.rouss-contacto-form input[type="text"]:focus, .rouss-contacto-form textarea:focus { outline: 3px solid var(--rk-accent, #c2410c); outline-offset: 1px; border-color: var(--rk-accent, #c2410c); }
.rouss-contacto-form [aria-invalid="true"] { border-color: #b3261e; }
.rouss-contacto-form__err { min-height: 0; font-size: 13px; line-height: 1.35; color: #b3261e; }
.rouss-contacto-form__err:empty { display: none; }
.rouss-contacto-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rouss-contacto-form__submit { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; border: 0; border-radius: 12px; background: var(--rk-accent, #c2410c); color: #fff; font: inherit; font-size: 16px; font-weight: 800; cursor: pointer; }
.rouss-contacto-form__submit:hover { background: var(--rk-accent-dark, #9a3412); }
.rouss-contacto-form__submit:focus-visible { outline: 3px solid var(--rk-ink, #171717); outline-offset: 3px; }
.rouss-contacto-form__submit[disabled] { opacity: .65; cursor: progress; }
.rouss-contacto-form.is-loading .rouss-contacto-form__submit::before { content: ""; width: 16px; height: 16px; border: 2.5px solid rgba(255, 255, 255, .45); border-top-color: #fff; border-radius: 50%; animation: rc-spin .8s linear infinite; }
.rouss-contacto-form__status p { margin: 0; padding: 12px 14px; border-radius: 12px; font-size: 15px; line-height: 1.45; }
.rouss-contacto-form__status .is-ok { background: #e6f5ec; color: #17653f; }
.rouss-contacto-form__status .is-error { background: #fdecea; color: #a3261b; }
.rouss-contacto-form.is-sent .rouss-contacto-form__field, .rouss-contacto-form.is-sent .rouss-contacto-form__submit { display: none; }
@keyframes rc-spin { to { transform: rotate(360deg); } }
@media (max-width: 640px) { .rouss-contacto-form { padding: 18px 16px; } .rouss-contacto-form__submit { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .rouss-contacto-form.is-loading .rouss-contacto-form__submit::before { animation: none; } }
