
/* Columna centrada: la web no tiene la clase «container» (usa «shell»), asi que el centrado y los margenes laterales van aqui. */
.contact-wrap { box-sizing: border-box; width: 100%; max-width: 844px; margin-inline: auto; padding: 70px 20px 60px; }
@media (min-width: 768px) { .contact-wrap { padding-inline: 32px; } }
.contact-wrap .section-head { margin-inline: auto; text-align: center; }
.contact-wrap .section-head h1 { font-size: clamp(38px, 5vw, 62px); margin: 14px 0 0; }
.contact-wrap .section-head > p:not(.eyebrow) { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; color: var(--color-muted); margin: 14px 0 0; }
.contact-form { display: grid; gap: 12px; padding: clamp(20px,4vw,40px); border: 1px solid var(--line-soft); border-radius: 20px; background: #101b35; }
.contact-form input:not([type=checkbox]), .contact-form textarea { width: 100%; box-sizing: border-box; background: #080f20; color: #fff; border: 1px solid #526184; border-radius: 8px; padding: 12px; font: inherit; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { outline: 2px solid #9abaff; outline-offset: 2px; }
.contact-form textarea { resize: vertical; }
.contact-privacy { display: flex; gap: 10px; align-items: baseline; margin: 12px 0; }
.contact-check { display: flex; gap: 10px; align-items: center; margin: 2px 0 6px; cursor: pointer; }
.contact-hint { color: var(--color-muted); font-size: .9em; }
.contact-notice { padding: 20px; border: 1px solid #9abaff; border-radius: 12px; }
.contact-notice[hidden] { display: none; }
.contact-success { background: #103b30; border: 2px solid #65dfab; color: #e5fff3; font-weight: 600; }
.contact-error { background: #4a2028; border: 2px solid #ff93a0; color: #fff0f2; font-weight: 600; }
.contact-form [aria-invalid="true"] { border-color: #ff93a0; outline: 2px solid #ff93a0; }
.contact-form a, .contact-notice a { text-decoration: underline; }
.contact-names { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-names > div { display: grid; gap: 12px; }
.contact-form select { width: 100%; min-height: 48px; background: #080f20; color: #fff; border: 1px solid #526184; border-radius: 8px; padding: 12px; font: inherit; }
.contact-form select:focus-visible { outline: 2px solid #9abaff; outline-offset: 2px; }
@media (max-width: 540px) { .contact-names { grid-template-columns: 1fr; } }
/* Vega de la portada (21/10/2026): llega desde arriba, saluda, flota y se balancea con el mismo halo. En pantallas
   anchas va a la derecha del título, fuera de la columna; en las demás, centrada encima. */
.contact-wrap { position: relative; }
.contact-mascot { position: relative; width: clamp(120px, 32vw, 170px); aspect-ratio: 1; margin: -36px auto 4px; pointer-events: none; animation: contact-vega-in 1.5s cubic-bezier(.2, .8, .2, 1) .4s both; }
.contact-mascot::before { content: ""; position: absolute; inset: 14% 16% 10%; border-radius: 50%; background: radial-gradient(closest-side, rgba(90, 130, 242, .5), rgba(90, 130, 242, .14) 60%, rgba(90, 130, 242, 0)); animation: vega-glow 4.6s ease-in-out infinite; }
.contact-mascot video, .contact-mascot .mascot-anim { position: relative; display: block; width: 100%; height: 100%; object-fit: contain; animation: vega-bob 5.2s ease-in-out infinite, vega-sway 8.4s ease-in-out infinite; filter: drop-shadow(0 12px 34px rgba(61, 99, 216, .55)); }
@media (min-width: 1300px) { .contact-mascot { position: absolute; top: 46px; right: -215px; width: 200px; margin: 0; } }
@media (min-width: 1600px) { .contact-mascot { top: 30px; right: -290px; width: 260px; } }
@keyframes contact-vega-in { from { opacity: 0; transform: translateY(-80px) scale(.82); } }
@media (prefers-reduced-motion: reduce) {
    .contact-mascot { animation: none; }
    .contact-mascot::before { animation-duration: 7s; }
    .contact-mascot video, .contact-mascot .mascot-anim { animation: vega-bob-soft 8s ease-in-out infinite, vega-sway-soft 12s ease-in-out infinite; }
}
