@font-face { font-family: "Inter"; font-weight: 400; font-display: swap; src: url(fonts/inter-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 600; font-display: swap; src: url(fonts/inter-latin-600-normal.woff2) format("woff2"); }

/* Paleta derivada del logo (guinda #6B1515) */
:root {
  --uilc-guinda: #6b1515;
  --uilc-guinda-oscuro: #4f0f0f;
  --uilc-tinte: rgba(107, 21, 21, .06);
  --uilc-borde: rgba(107, 21, 21, .15);
  --bs-primary: #6b1515;
  --bs-primary-rgb: 107, 21, 21;
  --bs-link-color: #6b1515;
  --bs-link-color-rgb: 107, 21, 21;
  --bs-link-hover-color: #4f0f0f;
  --bs-link-hover-color-rgb: 79, 15, 15;
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: #2a1f1f;
  --bs-body-color-rgb: 42, 31, 31;
  --bs-body-bg: #faf7f6;
  --bs-border-radius: .5rem;
  --bs-border-radius-lg: .75rem;
  --bs-border-color: var(--uilc-borde);
  --bs-focus-ring-color: rgba(107, 21, 21, .25);
}

body { -webkit-text-size-adjust: 100%; }
h1, h2, h3, .h1, .h2, .h3, .h4, .h5, .h6, .titulo-marca { font-family: inherit; font-weight: 600; letter-spacing: -.01em; line-height: 1.15; }
.titulo-marca { font-size: clamp(1.75rem, 5.5vw, 2.25rem); }
.titulo-marca em { font-style: normal; color: var(--uilc-guinda); }
.acento { font-weight: 600; color: var(--uilc-guinda); }

.btn { border-radius: .5rem; min-height: 44px; font-weight: 600; }
.btn-primary {
  --bs-btn-bg: var(--uilc-guinda); --bs-btn-border-color: var(--uilc-guinda);
  --bs-btn-hover-bg: var(--uilc-guinda-oscuro); --bs-btn-hover-border-color: var(--uilc-guinda-oscuro);
  --bs-btn-active-bg: var(--uilc-guinda-oscuro); --bs-btn-active-border-color: var(--uilc-guinda-oscuro);
  --bs-btn-focus-shadow-rgb: 107, 21, 21;
}
.btn-outline-primary {
  --bs-btn-color: var(--uilc-guinda); --bs-btn-border-color: var(--uilc-guinda);
  --bs-btn-hover-bg: var(--uilc-guinda); --bs-btn-hover-border-color: var(--uilc-guinda);
  --bs-btn-active-bg: var(--uilc-guinda-oscuro); --bs-btn-active-border-color: var(--uilc-guinda-oscuro);
  --bs-btn-focus-shadow-rgb: 107, 21, 21;
}
.form-control, .form-control-lg { font-size: 1rem; min-height: 48px; }
.form-control:focus { border-color: var(--uilc-guinda); box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }
.card { border-radius: .75rem; border-color: var(--uilc-borde); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }

/* Encabezado blanco: el logo es el protagonista */
.encabezado { background: #fff; border-top: 3px solid var(--uilc-guinda); border-bottom: 1px solid var(--uilc-borde); padding-top: env(safe-area-inset-top); }
.logo { height: auto; width: 140px; }
@media (min-width: 576px) { .logo { width: 180px; } }

/* Portada */
.hero { text-align: center; padding: 1rem 0 1.75rem; }
.hero p { max-width: 34rem; margin-inline: auto; }

/* Tarjetas de sede */
.sede-card { position: relative; transition: transform .15s, box-shadow .15s; color: inherit; }
.sede-card:hover, .sede-card:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(107, 21, 21, .15); }
.sede-card .avatar { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 50%; background: var(--uilc-guinda); color: #fff; display: grid; place-items: center; }
.sede-card .flecha { color: var(--uilc-guinda); font-size: 1.5rem; }
.sede-destacada .insignia { position: absolute; top: -.7rem; right: 1rem; background: var(--uilc-guinda); color: #fff; font-size: .75rem; font-weight: 600; padding: .15rem .7rem; border-radius: 50rem; }

/* Resultados */
.card-img-top { object-fit: cover; aspect-ratio: 4 / 3; background: var(--uilc-tinte); border-radius: .75rem .75rem 0 0; }
.chip { display: inline-block; background: var(--uilc-tinte); color: var(--uilc-guinda); border: 1px solid var(--uilc-borde); border-radius: 50rem; padding: .15rem .8rem; font-size: .85rem; font-weight: 600; }

/* Visor de imágenes */
.visor-cuerpo { touch-action: pan-y pinch-zoom; background: #111; }
.visor-cuerpo img { max-height: 72vh; width: auto; max-width: 100%; user-select: none; -webkit-user-drag: none; }
.visor-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .5rem; }
.visor-nav #visor-descarga { grid-column: 1 / -1; }
.visor-nav #visor-sig { justify-self: end; }
.visor-nav #visor-ant { justify-self: start; }
.visor-contador { font-variant-numeric: tabular-nums; color: var(--bs-secondary-color); }
@media (max-width: 575.98px) { .visor-cuerpo img { max-height: 62vh; } }

/* reCAPTCHA (304 px) en pantallas angostas */
.captcha-caja { display: flex; justify-content: center; overflow: hidden; }
@media (max-width: 359.98px) { .captcha-caja .g-recaptcha { transform: scale(.88); transform-origin: center top; } }

/* WhatsApp flotante */
.wa-flotante { position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom)); z-index: 1030; width: 48px; height: 48px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.wa-flotante:hover { color: #fff; filter: brightness(.92); }
main { padding-bottom: 4rem; }

.pie { background: var(--uilc-guinda-oscuro); color: #ecdcdc; }
.pie a { color: #fff; }
.pie .container { padding-right: 4.5rem; }
.pie .lema { font-weight: 600; color: #fff; margin-bottom: .15rem; }

@media (max-width: 575.98px) { .btn-descarga { width: 100%; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Tarjetas y formularios (estilo de referencia, color del logo) */
.card-uilc { background: #fff; border: 0; border-top: 4px solid var(--uilc-guinda); border-radius: 1rem; box-shadow: 0 1rem 2.5rem rgba(107, 21, 21, .12); }
.card-uilc.angosta { max-width: 420px; width: 100%; margin-inline: auto; }
.card-uilc .card-cuerpo { padding: 1.75rem; }
@media (min-width: 576px) { .card-uilc .card-cuerpo { padding: 2rem; } }
.sub-mayus { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #4a3f3f; }
.etiqueta { display: block; margin-bottom: .35rem; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #3b3030; }
.campo { display: block; width: 100%; min-height: 44px; padding: .55rem .9rem; font: inherit; font-size: 1rem; color: inherit; background: #fff; border: 1px solid rgba(107, 21, 21, .18); border-radius: .65rem; }
.campo:focus { outline: 0; border-color: var(--uilc-guinda); box-shadow: 0 0 0 .2rem rgba(107, 21, 21, .2); }
.was-validated .campo:invalid { border-color: #b02a37; }
.btn-uilc { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; min-height: 46px; border: 1px solid var(--uilc-guinda); border-radius: .5rem; background: var(--uilc-guinda); color: #fff; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.btn-uilc:hover, .btn-uilc:focus-visible { background: var(--uilc-guinda-oscuro); border-color: var(--uilc-guinda-oscuro); color: #fff; }
.pagina-centrada { min-height: 55vh; display: flex; flex-direction: column; justify-content: center; }
.dato { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.dato .valor { font-weight: 600; font-size: 1.1rem; }
.sede-destacada { border-top: 4px solid var(--uilc-guinda); }
