/* Página /contacto/ y /gracias/: formulario propio y puertas de entrada. */
.ct-sec { padding: 3.5rem 1.5rem 4.5rem; background: #f7f7fb; }
.ct-wrap { max-width: 72rem; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start; }
@media (min-width: 960px) { .ct-wrap { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 2.5rem; } }

.ct-card { background: #fff; border: 1px solid rgba(10, 10, 110, .1); border-radius: 1.5rem; padding: 1.75rem; box-shadow: 0 30px 60px -40px rgba(10, 10, 110, .35); }
@media (min-width: 640px) { .ct-card { padding: 2.25rem; } }
.ct-card h2 { font: 700 1.35rem/1.25 Satoshi, Inter, sans-serif; color: var(--wu-navy); margin: 0 0 .35rem; }
.ct-card > p { margin: 0 0 1.5rem; color: var(--wu-text-dark-muted); font-size: .95rem; line-height: 1.55; }

.ct-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 1.1rem; }
@media (min-width: 640px) { .ct-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ct-f--full { grid-column: 1 / -1; } }
.ct-f { display: flex; flex-direction: column; gap: .35rem; }
.ct-f label { font: 600 .85rem/1.3 Inter, sans-serif; color: var(--wu-text-dark); }
.ct-f label small { font-weight: 400; color: var(--wu-text-dark-muted); }
.ct-f input, .ct-f select, .ct-f textarea {
    width: 100%; min-height: 46px; padding: .7rem .85rem; border: 1px solid #d4d4de; border-radius: .75rem; background: #fff;
    font: 400 1rem/1.4 Inter, sans-serif; color: var(--wu-text-dark); transition: border-color .15s, box-shadow .15s;
}
.ct-f textarea { min-height: 7rem; resize: vertical; }
.ct-f input:focus, .ct-f select:focus, .ct-f textarea:focus { outline: none; border-color: var(--wu-navy); box-shadow: 0 0 0 3px rgba(10, 10, 110, .15); }
.ct-f [aria-invalid="true"] { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.ct-err { font-size: .8rem; color: #b91c1c; min-height: 0; }
.ct-err:empty { display: none; }

.ct-ok { display: flex; gap: .65rem; align-items: flex-start; font-size: .85rem; line-height: 1.5; color: var(--wu-text-dark-muted); }
.ct-ok input { width: 1.2rem; height: 1.2rem; min-height: 0; padding: 0; margin-top: .15rem; flex: none; accent-color: var(--wu-navy); }
.ct-ok a { color: var(--wu-navy); font-weight: 600; text-decoration: underline; }

.ct-trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.ct-send { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 50px; padding: .85rem 1.75rem; border: 0; border-radius: 999px;
    background: var(--wu-accent); color: #fff; font: 700 1rem/1 Inter, sans-serif; cursor: pointer; transition: transform .15s, box-shadow .15s, opacity .15s; }
.ct-send:hover { transform: translateY(-1px); box-shadow: 0 12px 24px -12px rgba(255, 61, 0, .6); }
.ct-send:focus-visible { outline: 3px solid var(--wu-navy); outline-offset: 3px; }
.ct-send[disabled] { opacity: .6; cursor: progress; transform: none; box-shadow: none; }
.ct-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.5rem; }
.ct-note { font-size: .8rem; color: var(--wu-text-dark-muted); }
.ct-status { margin-top: 1rem; padding: .85rem 1rem; border-radius: .75rem; font-size: .9rem; line-height: 1.5; }
.ct-status:empty { display: none; }
.ct-status--error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.ct-status a { color: inherit; font-weight: 700; text-decoration: underline; }

/* Otras puertas de entrada */
.ct-doors { display: flex; flex-direction: column; gap: .75rem; }
.ct-doors h2 { font: 700 1.1rem/1.3 Satoshi, Inter, sans-serif; color: var(--wu-navy); margin: 0 0 .25rem; }
.ct-door { display: flex; gap: .9rem; align-items: center; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid rgba(10, 10, 110, .1);
    color: var(--wu-text-dark); text-decoration: none; transition: border-color .15s, transform .15s, box-shadow .15s; }
.ct-door:hover { border-color: var(--wu-accent); transform: translateY(-1px); box-shadow: 0 14px 28px -20px rgba(10, 10, 110, .4); }
.ct-door:focus-visible { outline: 3px solid var(--wu-navy); outline-offset: 2px; }
.ct-door-ic { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: .8rem; background: var(--wu-navy-soft); color: var(--wu-navy); flex: none; }
.ct-door strong { display: block; font: 700 .95rem/1.25 Inter, sans-serif; color: var(--wu-navy); }
.ct-door small { display: block; font-size: .8rem; line-height: 1.4; color: var(--wu-text-dark-muted); margin-top: .1rem; }
.ct-door > i:last-child, .ct-door > svg:last-child { margin-left: auto; color: var(--wu-text-dark-muted); flex: none; }

/* Gracias */
.ct-thanks { max-width: 46rem; margin: 0 auto; text-align: center; }
.ct-thanks-ic { display: inline-grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; background: var(--wu-success); color: #fff; margin-bottom: 1.25rem; }
.ct-next { max-width: 60rem; margin: 2.5rem auto 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; text-align: left; }
@media (min-width: 720px) { .ct-next { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

@media (prefers-reduced-motion: reduce) { .ct-send, .ct-door { transition: none; } .ct-send:hover, .ct-door:hover { transform: none; } }

/* Páginas legales: texto largo, cómodo de leer */
.lg-prose { max-width: 46rem; margin: 0 auto; background: #fff; border: 1px solid rgba(10, 10, 110, .1); border-radius: 1.5rem; padding: 1.75rem; color: var(--wu-text-dark); font-size: 1rem; line-height: 1.7; }
@media (min-width: 640px) { .lg-prose { padding: 2.75rem 3rem; } }
.lg-prose h2 { font: 700 1.2rem/1.3 Satoshi, Inter, sans-serif; color: var(--wu-navy); margin: 2rem 0 .6rem; }
.lg-prose h2:first-of-type { margin-top: 1.25rem; }
.lg-prose p, .lg-prose ul { margin: 0 0 1rem; }
.lg-prose ul { padding-left: 1.25rem; list-style: disc; }
.lg-prose li { margin: .35rem 0; }
.lg-prose a { color: var(--wu-navy); font-weight: 600; text-decoration: underline; }
