/**
 * Portada pre-login PDA — alineado con export Stitch / Tailwind Zenith (sin CDN Tailwind).
 * Tokens Material 3 del mockup: primary #4e6073, slate-zenith #2C3E50, background #f9f9f7, etc.
 */
:root {
  --pda-bg: #f9f9f7;
  --pda-slate-zenith: #2c3e50;
  --pda-on-background: #2d3432;
  --pda-on-surface-variant: #5a605e;
  --pda-primary: #4e6073;
  --pda-primary-dim: #425467;
  --pda-on-primary: #f4f8ff;
  --pda-primary-fixed: #d1e4fb;
  --pda-on-primary-fixed: #2f4153;
  --pda-glass-bg: rgba(255, 255, 255, 0.75);
  --pda-glass-border: rgba(255, 255, 255, 0.8);
  --pda-editorial-shadow: 0 20px 50px rgba(45, 52, 50, 0.05);
  --pda-focus: #4e6073;
  --pda-danger-bg: rgba(159, 64, 61, 0.12);
  --pda-danger-border: rgba(159, 64, 61, 0.35);
  --pda-danger-text: #752121;
  --pda-radius-3xl: 1.5rem;
  --pda-radius-xl: 0.75rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body.prelogin {
  margin: 0;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow-x: hidden;
  font-family: Inter, system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--pda-slate-zenith);
  background-color: var(--pda-bg);
}

/*
 * Con el aviso de cookies visible: margen bajo el bloque principal (no en el footer) para poder hacer scroll
 * y que el pie no quede tapado, sin inflar la franja glass del pie.
 */
body.prelogin:has(#pda-cookie-banner:not([hidden])) :is(.prelogin-main, .prelogin-simple-wrap, main.pda-private-main),
body.prelogin:has(#pda-cookie-rejected-bar:not([hidden])) :is(.prelogin-main, .prelogin-simple-wrap, main.pda-private-main) {
  margin-bottom: 5.5rem;
}

body.prelogin ::selection {
  background: var(--pda-primary-fixed);
  color: var(--pda-on-primary-fixed);
}

.skip-link {
  position: absolute;
  left: -9999px;
  z-index: 100;
  padding: 0.5rem 1rem;
  background: var(--pda-glass-bg);
  color: var(--pda-slate-zenith);
  text-decoration: underline;
  border-radius: 0.25rem;
}
.skip-link:focus {
  left: 1rem;
  top: 1rem;
  outline: 2px solid var(--pda-focus);
  outline-offset: 2px;
}

/* Fondo Stitch: malla + ruido */
.mesh-gradient {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  background:
    radial-gradient(circle at 0% 0%, #f9f9f7 0%, transparent 50%),
    radial-gradient(circle at 100% 0%, #e2e8e0 0%, transparent 50%),
    radial-gradient(circle at 100% 100%, #d1d9e6 0%, transparent 50%),
    radial-gradient(circle at 0% 100%, #4e6073 0%, transparent 50%);
  opacity: 0.6;
  pointer-events: none;
}

.noise-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0.04;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

.material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

/* Main centrado (equivalente flex-grow + items-center) */
.prelogin-main {
  position: relative;
  z-index: 1;
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}

@media (min-width: 48rem) {
  .prelogin-main {
    padding: 3rem 5rem;
  }
}

.prelogin-main__center {
  width: 100%;
  max-width: min(100%, 72rem);
}

@media (min-width: 80rem) {
  .prelogin-main__center {
    max-width: min(100%, 85rem);
  }
}

@media (min-width: 100rem) {
  .prelogin-main__center {
    max-width: min(100%, 96rem);
  }
}

.prelogin-grid {
  --prelogin-auth-max: min(100%, 28rem);
  display: grid;
  gap: 3rem;
  align-items: center;
}

@media (min-width: 48rem) {
  .prelogin-grid {
    --prelogin-auth-max: min(100%, 32rem);
  }
}

@media (min-width: 80rem) {
  .prelogin-grid {
    --prelogin-auth-max: min(100%, 36rem);
  }
}

@media (min-width: 100rem) {
  .prelogin-grid {
    --prelogin-auth-max: min(100%, 40rem);
  }
}

@media (min-width: 64rem) {
  .prelogin-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 6rem;
  }
}

.glass-panel {
  background: var(--pda-glass-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--pda-glass-border);
  border-radius: var(--pda-radius-3xl);
}

.editorial-shadow {
  box-shadow: var(--pda-editorial-shadow);
}

/* Columna narrativa */
.prelogin-intro {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem 1.5rem;
}

@media (min-width: 48rem) {
  .prelogin-intro {
    padding: 3rem;
    gap: 2rem;
  }
}

.prelogin-intro__head {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.prelogin-intro__title {
  margin: 0 0 1rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--pda-slate-zenith);
}

.prelogin-intro__accent {
  width: 3rem;
  height: 0.375rem;
  background: var(--pda-primary);
  margin-bottom: 1.5rem;
  border-radius: 0.125rem;
}

.prelogin-intro__subtitle {
  margin: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 500;
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  line-height: 1.35;
  color: rgba(44, 62, 80, 0.8);
  max-width: min(100%, 36rem);
}

@media (min-width: 64rem) {
  .prelogin-intro__subtitle {
    max-width: min(100%, 42rem);
  }
}

@media (min-width: 80rem) {
  .prelogin-intro__subtitle {
    max-width: min(100%, 48rem);
  }
}

@media (min-width: 100rem) {
  .prelogin-intro__subtitle {
    max-width: min(100%, 56rem);
  }
}

.prelogin-intro__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: min(100%, 36rem);
}

@media (min-width: 64rem) {
  .prelogin-intro__body {
    max-width: min(100%, 42rem);
  }
}

@media (min-width: 80rem) {
  .prelogin-intro__body {
    max-width: min(100%, 48rem);
  }
}

@media (min-width: 100rem) {
  .prelogin-intro__body {
    max-width: min(100%, 56rem);
  }
}

.prelogin-intro__body p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: rgba(44, 62, 80, 0.7);
}

.prelogin-intro__institutional {
  padding-top: 2rem;
  margin-top: auto;
  border-top: 1px solid rgba(44, 62, 80, 0.1);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.prelogin-intro__institutional-label {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(44, 62, 80, 0.6);
}

.prelogin-intro__disclaimer {
  margin: 0;
  max-width: 100%;
  font-size: 0.6875rem;
  line-height: 1.35;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(44, 62, 80, 0.5);
}

/* Columna acceso */
.prelogin-auth-wrap {
  display: flex;
  justify-content: center;
}

@media (min-width: 64rem) {
  .prelogin-auth-wrap {
    justify-content: flex-end;
  }
}

.prelogin-auth-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: var(--prelogin-auth-max);
}

.prelogin-auth-logo {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-bottom: 1.25rem;
}

.prelogin-auth-logo__img {
  width: clamp(5.5rem, 14vw, 7.75rem);
  height: auto;
  display: block;
  filter: drop-shadow(0 14px 28px rgba(44, 62, 80, 0.22));
  transform: translateY(0.125rem);
}

.prelogin-auth-card {
  width: 100%;
  max-width: var(--prelogin-auth-max);
  padding: 2rem 1.5rem;
  border-radius: var(--pda-radius-3xl);
}

@media (min-width: 48rem) {
  .prelogin-auth-card {
    padding: 2.5rem 2.25rem;
  }
}

.prelogin-auth__head {
  margin-bottom: 2.25rem;
  text-align: left;
}

.prelogin-auth__title {
  margin: 0 0 0.5rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--pda-slate-zenith);
}

.prelogin-auth__lead {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(44, 62, 80, 0.6);
}

.prelogin-alert {
  padding: 0.75rem 1rem;
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--pda-danger-text);
  background: var(--pda-danger-bg);
  border: 1px solid var(--pda-danger-border);
  border-radius: var(--pda-radius-xl);
}

.prelogin-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.prelogin-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.prelogin-field--password .prelogin-password-wrap {
  position: relative;
}

.prelogin-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(44, 62, 80, 0.7);
}

.prelogin-label--smallcaps {
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.prelogin-input--stitch {
  width: 100%;
  padding: 0.75rem 1rem;
  font-family: inherit;
  font-size: 1rem;
  color: var(--pda-slate-zenith);
  background: rgba(44, 62, 80, 0.05);
  border: none;
  border-bottom: 1px solid rgba(44, 62, 80, 0.2);
  border-radius: var(--pda-radius-xl);
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.prelogin-input--stitch::placeholder {
  color: rgba(44, 62, 80, 0.4);
}

.prelogin-input--stitch:hover {
  border-bottom-color: rgba(44, 62, 80, 0.35);
}

.prelogin-input--stitch:focus {
  border-bottom-color: var(--pda-primary);
  box-shadow: 0 1px 0 0 var(--pda-primary);
}

.prelogin-input--with-toggle {
  padding-right: 3rem;
}

.prelogin-password-toggle {
  position: absolute;
  right: 0.25rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  color: rgba(44, 62, 80, 0.4);
  background: transparent;
  border: none;
  border-radius: var(--pda-radius-xl);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease;
}

.prelogin-password-toggle:hover {
  color: var(--pda-primary);
}

.prelogin-password-toggle:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 2px;
}

.prelogin-password-toggle__icon {
  font-size: 1.35rem;
  line-height: 1;
}

.prelogin-input--stitch.prelogin-input--invalid {
  border-bottom-color: var(--pda-danger-border);
  box-shadow: 0 1px 0 0 var(--pda-danger-border);
}

.prelogin-field-error {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--pda-danger-text);
}

/* Contenedor de burbuja glass (private.css) dentro de tarjetas prelogin */
.prelogin-inline-notify:not([hidden]) {
  display: block;
  margin-bottom: 0.25rem;
}

@keyframes prelogin-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes prelogin-progress-indeterminate {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(350%);
  }
}

.prelogin-loader-spinner {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid rgba(78, 96, 115, 0.15);
  border-top-color: var(--pda-primary);
  border-radius: 50%;
  animation: prelogin-loader-spin 0.85s linear infinite;
}

.prelogin-send-progress:not([hidden]) {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: 100%;
  margin-top: 0.35rem;
}

.prelogin-send-progress__label {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.prelogin-send-progress__text {
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(44, 62, 80, 0.75);
}

.prelogin-progress-track--indeterminate {
  width: 100%;
  height: 0.25rem;
  border-radius: 9999px;
  background: rgba(44, 62, 80, 0.08);
  overflow: hidden;
}

.prelogin-progress-track--indeterminate::after {
  content: "";
  display: block;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: var(--pda-primary);
  opacity: 0.85;
  animation: prelogin-progress-indeterminate 1.15s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .prelogin-loader-spinner {
    animation: none;
    border-top-color: rgba(78, 96, 115, 0.45);
  }

  .prelogin-progress-track--indeterminate::after {
    animation: none;
    width: 100%;
    opacity: 0.3;
  }
}

.prelogin-submit:disabled {
  opacity: 0.72;
  cursor: wait;
  transform: none;
  box-shadow: 0 6px 16px rgba(78, 96, 115, 0.12);
}

.prelogin-submit-wrap {
  padding-top: 0.5rem;
}

.prelogin-submit {
  width: 100%;
  padding: 1rem 1.25rem;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--pda-on-primary);
  background: var(--pda-primary);
  border: none;
  border-radius: var(--pda-radius-xl);
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(78, 96, 115, 0.2);
  transition: background 0.25s ease, transform 0.1s ease, box-shadow 0.25s ease;
}

.prelogin-submit:hover {
  background: var(--pda-slate-zenith);
  box-shadow: 0 12px 28px rgba(44, 62, 80, 0.22);
}

.prelogin-submit:active {
  transform: translateY(1px);
}

.prelogin-submit:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 3px;
}

.prelogin-auth__footer {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.prelogin-forgot-link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--pda-primary);
  text-decoration: none;
  text-underline-offset: 4px;
}

.prelogin-forgot-link:hover {
  text-decoration: underline;
}

.prelogin-note {
  margin: 0;
  font-size: 0.6875rem;
  font-style: italic;
  line-height: 1.4;
  text-align: center;
  color: rgba(44, 62, 80, 0.4);
}

.prelogin-note code {
  font-family: ui-monospace, "Cascadia Code", monospace;
  font-size: 0.95em;
  font-style: normal;
  color: rgba(44, 62, 80, 0.55);
}

/* Aviso legal junto al envío del formulario de acceso */
.prelogin-legal-consent {
  margin: 0 0 0.85rem;
  font-size: 0.6875rem;
  line-height: 1.45;
  text-align: center;
  color: rgba(44, 62, 80, 0.58);
}

.prelogin-legal-consent a {
  font-weight: 600;
  color: var(--pda-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.prelogin-legal-consent a:hover {
  color: var(--pda-slate-zenith);
}

/* Pie estilo franja glass Stitch */
.glass-footer {
  position: relative;
  z-index: 2;
  width: 100%;
  margin-top: 0;
  background: var(--pda-glass-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--pda-glass-border);
  border-bottom: none;
  border-radius: 0;
  border-top-left-radius: var(--pda-radius-3xl);
  border-top-right-radius: var(--pda-radius-3xl);
}

.prelogin-footer__row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem 1.5rem;
  max-width: min(100%, 72rem);
  margin: 0 auto;
}

@media (min-width: 80rem) {
  .prelogin-footer__row {
    max-width: min(100%, 85rem);
  }
}

@media (min-width: 100rem) {
  .prelogin-footer__row {
    max-width: min(100%, 96rem);
  }
}

@media (min-width: 48rem) {
  .prelogin-footer__row {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 2rem 2.5rem;
    gap: 1rem;
  }
}

.prelogin-footer__brand-block {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.prelogin-footer__brand {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--pda-slate-zenith);
}

.prelogin-footer__brand-rule {
  display: none;
  width: 1.5rem;
  height: 1px;
  background: rgba(44, 62, 80, 0.2);
}

@media (min-width: 48rem) {
  .prelogin-footer__brand-rule {
    display: block;
  }
}

.prelogin-footer__rest {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

@media (min-width: 48rem) {
  .prelogin-footer__rest {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 2rem;
  }
}

.prelogin-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
}

.prelogin-footer__nav a {
  color: rgba(44, 62, 80, 0.7);
  text-decoration: none;
  transition: color 0.2s ease;
}

.prelogin-footer__nav a:hover {
  color: var(--pda-primary);
}

.prelogin-footer__legal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  text-align: center;
  color: rgba(44, 62, 80, 0.5);
  font-weight: 500;
}

@media (min-width: 48rem) {
  .prelogin-footer__legal {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    text-align: right;
  }
}

.prelogin-footer__sep {
  display: none;
  color: rgba(44, 62, 80, 0.2);
}

@media (min-width: 48rem) {
  .prelogin-footer__sep {
    display: inline;
  }
}

.prelogin-footer__copy {
  font-weight: 400;
}

/* Páginas auxiliares: mismo fondo (requiere .mesh-gradient + .noise-overlay en HTML) */
.prelogin-simple-wrap {
  position: relative;
  z-index: 1;
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.prelogin-simple-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 26rem;
}

a.prelogin-simple-brand {
  text-decoration: none;
  color: inherit;
}

a.prelogin-simple-brand:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 4px;
  border-radius: var(--pda-radius-xl);
}

.prelogin-simple-card {
  width: 100%;
  max-width: 26rem;
  padding: 2rem 1.75rem;
  background: var(--pda-glass-bg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid var(--pda-glass-border);
  border-radius: var(--pda-radius-3xl);
  box-shadow: var(--pda-editorial-shadow);
}

.prelogin-simple-card h1 {
  margin: 0 0 0.75rem;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--pda-slate-zenith);
}

/* /login: el H1 usa la misma escala que la tarjeta de acceso de la portada */
.prelogin-simple-card h1.prelogin-auth__title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
  line-height: 1.2;
}

.prelogin-simple-card p {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  color: rgba(44, 62, 80, 0.7);
}

.prelogin-simple-card p a {
  color: var(--pda-primary);
  font-weight: 500;
  text-decoration: none;
}

.prelogin-simple-card p a:hover {
  color: var(--pda-slate-zenith);
  text-decoration: underline;
}

.prelogin-simple-lede {
  margin: -0.25rem 0 1rem;
  font-size: 0.875rem;
  color: rgba(44, 62, 80, 0.6);
}

.prelogin-simple-card p:last-child {
  margin-bottom: 0;
}

.prelogin-back {
  display: inline-block;
  margin-top: 1.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--pda-primary);
  text-decoration: none;
}

.prelogin-back:hover {
  color: var(--pda-slate-zenith);
  text-decoration: underline;
}

/* Formulario en /login: reutiliza campos stitch */
.prelogin-simple-card .prelogin-form {
  margin-top: 0.5rem;
}

.prelogin-simple-card .prelogin-auth__head {
  margin-bottom: 1.5rem;
}

/* Páginas legales /acceso/* (mismo lenguaje glass + tipografía legal de private.css) */
body.prelogin.prelogin--legal .pda-private-main {
  padding-top: 1.5rem;
}

.pda-prelogin-legal-top {
  position: relative;
  z-index: 2;
  max-width: 56rem;
  margin: 0 auto;
  padding: 1.25rem 1.5rem 0;
}

@media (min-width: 48rem) {
  .pda-prelogin-legal-top {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.pda-prelogin-legal-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--pda-primary);
  text-decoration: none;
}

.pda-prelogin-legal-back:hover {
  color: var(--pda-slate-zenith);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pda-prelogin-legal-back:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 3px;
  border-radius: 0.25rem;
}

.pda-prelogin-legal-subnav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 1.25rem 0 0;
  padding: 0;
}

.pda-prelogin-legal-subnav a {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--pda-primary);
  text-decoration: none;
}

.pda-prelogin-legal-subnav a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pda-prelogin-legal-subnav a.is-current {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: var(--pda-slate-zenith);
}

.pda-prelogin-legal-subnav a:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 2px;
  border-radius: 0.25rem;
}

.pda-prelogin-legal-subnav__sep {
  font-weight: 700;
  color: rgba(44, 62, 80, 0.35);
  user-select: none;
}

/* Banner cookies — cristal anclado al pie */
.pda-cookie-banner {
  position: fixed;
  z-index: 300;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1rem 1rem 1.35rem;
  pointer-events: none;
}

.pda-cookie-banner__panel {
  pointer-events: auto;
  max-width: 44rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  padding: 1.2rem 1.35rem 1.35rem;
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.5) 0%,
    rgba(255, 255, 255, 0.3) 55%,
    rgba(209, 228, 251, 0.14) 100%
  );
  backdrop-filter: blur(40px) saturate(1.45);
  -webkit-backdrop-filter: blur(40px) saturate(1.45);
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-bottom-color: rgba(255, 255, 255, 0.42);
  border-radius: var(--pda-radius-3xl);
  box-shadow:
    0 -14px 56px rgba(45, 52, 50, 0.14),
    0 -4px 20px rgba(78, 96, 115, 0.08),
    0 1px 0 rgba(255, 255, 255, 0.75) inset,
    0 0 0 1px rgba(78, 96, 115, 0.06) inset;
}

@media (min-width: 40rem) {
  .pda-cookie-banner__panel {
    padding: 1.35rem 1.5rem 1.5rem;
  }
}

.pda-cookie-banner__text {
  width: 100%;
  min-width: 0;
}

.pda-cookie-banner__title {
  margin: 0 0 0.4rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: -0.02em;
  color: var(--pda-slate-zenith);
}

.pda-cookie-banner__lede {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--pda-on-surface-variant);
  max-width: none;
}

.pda-cookie-banner__consent {
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--pda-on-surface-variant);
  max-width: none;
}

.pda-cookie-banner__reject-note {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: rgba(90, 96, 94, 0.88);
  max-width: none;
}

.pda-cookie-banner__link {
  font-weight: 700;
  color: var(--pda-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pda-cookie-banner__link:hover {
  text-decoration-thickness: 2px;
}

.pda-cookie-banner__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: stretch;
  gap: 0.65rem;
  width: 100%;
  margin-top: 0.35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(78, 96, 115, 0.12);
}

.pda-cookie-banner__reject {
  margin: 0;
  flex: 1 1 10rem;
  min-height: 2.85rem;
  padding: 0.65rem 1rem;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--pda-primary);
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(78, 96, 115, 0.35);
  border-radius: var(--pda-radius-xl);
  cursor: pointer;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pda-cookie-banner__reject:hover {
  background: rgba(78, 96, 115, 0.1);
  border-color: rgba(78, 96, 115, 0.45);
}

.pda-cookie-banner__reject:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 2px;
}

.pda-cookie-banner__accept.prelogin-submit {
  margin: 0;
  flex: 1 1 10rem;
  width: auto;
  min-width: 0;
  min-height: 2.85rem;
  padding: 0.65rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Franja cuando las cookies están rechazadas */
.pda-cookie-rejected-bar {
  position: fixed;
  z-index: 299;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.65rem 1rem 1rem;
  pointer-events: none;
}

.pda-cookie-rejected-bar__inner {
  pointer-events: auto;
  max-width: 44rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.85rem 1.15rem;
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.55) 0%,
    rgba(255, 255, 255, 0.38) 100%
  );
  backdrop-filter: blur(28px) saturate(1.25);
  -webkit-backdrop-filter: blur(28px) saturate(1.25);
  border: 1px solid rgba(255, 255, 255, 0.78);
  border-radius: var(--pda-radius-3xl);
  box-shadow: 0 -8px 40px rgba(45, 52, 50, 0.12);
}

@media (min-width: 40rem) {
  .pda-cookie-rejected-bar__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }
}

.pda-cookie-rejected-bar__text {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--pda-on-surface-variant);
}

.pda-cookie-rejected-bar__reopen {
  flex-shrink: 0;
  margin: 0;
  min-height: 2.5rem;
  padding: 0.5rem 1rem;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--pda-on-primary);
  background: var(--pda-primary);
  border: none;
  border-radius: var(--pda-radius-xl);
  cursor: pointer;
}

.pda-cookie-rejected-bar__reopen:hover {
  background: var(--pda-primary-dim);
}

.pda-cookie-rejected-bar__reopen:focus-visible {
  outline: 2px solid var(--pda-focus);
  outline-offset: 2px;
}

body.prelogin--cookies-blocked a.prelogin-submit {
  opacity: 0.38;
  pointer-events: none;
  cursor: not-allowed;
  filter: grayscale(0.35);
  box-shadow: none;
  background: rgba(78, 96, 115, 0.28);
  color: rgba(244, 248, 255, 0.75);
  border: 1px solid rgba(78, 96, 115, 0.12);
}

/* Formularios bloqueados por preferencia de cookies (inert): botones claramente desactivados */
body.prelogin--cookies-blocked form.prelogin-form[inert] .prelogin-submit,
body.prelogin--cookies-blocked form.prelogin-form[inert] button[type='submit'] {
  opacity: 1;
  cursor: not-allowed;
  background: rgba(78, 96, 115, 0.22);
  color: rgba(244, 248, 255, 0.55);
  border: 1px solid rgba(78, 96, 115, 0.18);
  box-shadow: none;
  transform: none;
  filter: grayscale(0.45);
}

body.prelogin--cookies-blocked form.prelogin-form[inert] .prelogin-submit:hover,
body.prelogin--cookies-blocked form.prelogin-form[inert] .prelogin-submit:active,
body.prelogin--cookies-blocked form.prelogin-form[inert] button[type='submit']:hover,
body.prelogin--cookies-blocked form.prelogin-form[inert] button[type='submit']:active {
  background: rgba(78, 96, 115, 0.22);
  color: rgba(244, 248, 255, 0.55);
  box-shadow: none;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .pda-cookie-banner__panel {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background: linear-gradient(
      155deg,
      rgba(255, 255, 255, 0.88) 0%,
      rgba(249, 249, 247, 0.92) 100%
    );
  }
}

/* =====================================================================
   ADAPTACIÓN MÓVIL PHONE — landing / pre-login
   ===================================================================== */

@media (max-width: 47.99rem) {

  /* — Portada: columna narrativa con menos padding — */
  .prelogin-intro {
    padding: 1.5rem 1rem;
    gap: 1.5rem;
  }

  /* — Card de acceso: padding reducido — */
  .prelogin-auth-card {
    padding: 1.5rem 1.15rem;
    border-radius: 1.25rem;
  }

  /* — Formularios: targets táctiles — */
  .prelogin-form input[type="email"],
  .prelogin-form input[type="password"],
  .prelogin-form input[type="text"] {
    min-height: 2.75rem;
  }

  /* — Botón submit full-width en pantallas pequeñas — */
  .prelogin-form__submit {
    width: 100%;
  }

  /* — Footer pre-login: apilar en columna — */
  .prelogin-footer__nav {
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    text-align: center;
  }

  .prelogin-footer__inner {
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
    padding: 1.25rem 1rem;
  }

  /* — Páginas simples (recuperar pwd, email confirmación) — */
  .prelogin-simple-wrap {
    padding: 1.5rem 1rem;
  }

  .prelogin-simple-card {
    padding: 1.5rem 1.15rem;
    border-radius: 1.25rem;
  }

  /* — Cookie banner en pantallas muy estrechas — */
  .pda-cookie-banner__actions {
    flex-direction: column;
  }

  .pda-cookie-banner__actions > * {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
}

@media (max-width: 24rem) {
  .prelogin-intro__title {
    font-size: clamp(2rem, 9vw, 2.5rem);
  }
}
