/* ---- Paleta de marca · Campaña «Sí, quiero» / IMDECO ---- */
:root{
  --imd-primary:#014693;        /* Azul corporativo de campaña */
  --imd-primary-600:#0A4E9E;
  --imd-primary-700:#013A7A;
  --imd-primary-050:#EAF1FA;
  --imd-accent:#FFB113;         /* Dorado energético (acento «Apúntate») */
  --imd-accent-600:#EAA00A;
  --imd-accent-700:#8A5A00;     /* Dorado para TEXTO sobre claro (AA) */
  --imd-accent-050:#FFF4DD;
  /* Neutros fríos */
  --imd-ink:#13233B;            /* Texto principal (azul tinta) */
  --imd-body:#4A5A6E;           /* Texto secundario (pizarra) */
  --imd-bg:#FFFFFF;
  --imd-bg-soft:#F4F7FB;        /* Fondo de sección alterna */
  --imd-surface:#FFFFFF;        /* Tarjetas */
  --imd-border:#E2E8F0;
  --imd-focus:#014693;
  /* Mapeo a tokens de Bootstrap */
  --bs-body-color:var(--imd-ink);
  --bs-body-font-family:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-link-color:var(--imd-primary);
  --bs-link-hover-color:var(--imd-primary-700);
  --bs-border-color:var(--imd-border);
}
[data-bs-theme="dark"]{
  --imd-primary:#3D7DD0;
  --imd-primary-600:#5590DC;
  --imd-primary-700:#2E6FC2;
  --imd-primary-050:#10233D;
  --imd-accent:#FFB827;
  --imd-accent-600:#EAA714;
  --imd-accent-700:#FFC861;     /* Dorado para texto sobre oscuro */
  --imd-accent-050:#2A2110;
  --imd-ink:#EAF1FA;
  --imd-body:#AEBED2;
  --imd-bg:#0B1320;
  --imd-bg-soft:#111B2C;
  --imd-surface:#13203A;
  --imd-border:#27344C;
  --imd-focus:#FFC861;
  --bs-body-bg:var(--imd-bg);
  --bs-body-color:var(--imd-body);
  --bs-emphasis-color:var(--imd-ink);
  --bs-link-color:var(--imd-accent-700);
  --bs-link-hover-color:#FFC489;
}

body{font-family:var(--bs-body-font-family);background:var(--imd-bg);color:var(--imd-ink);}
h1,h2,h3,h4,h5,.display-3,.display-4,.display-5{color:var(--imd-ink);font-weight:800;letter-spacing:-.01em;}
.lead-muted{color:var(--imd-body);}
.text-accent{color:var(--imd-accent-700);}

/* Respetar preferencia de movimiento reducido */
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;animation:none !important;}
}

/* Anclas por debajo del navbar fijo */
section[id]{scroll-margin-top:86px;}

/* ---- Botones re-tematizados (siguen siendo .btn de Bootstrap) ---- */
.btn-primary{
  --bs-btn-bg:var(--imd-primary);--bs-btn-border-color:var(--imd-primary);
  --bs-btn-hover-bg:var(--imd-primary-700);--bs-btn-hover-border-color:var(--imd-primary-700);
  --bs-btn-active-bg:var(--imd-primary-700);--bs-btn-active-border-color:var(--imd-primary-700);
  --bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff;
  --bs-btn-disabled-bg:var(--imd-primary);--bs-btn-disabled-border-color:var(--imd-primary);
}
.btn-accent{                                    /* CTA energético: texto oscuro = AA en cualquier tamaño */
  --bs-btn-bg:var(--imd-accent);--bs-btn-border-color:var(--imd-accent);
  --bs-btn-hover-bg:var(--imd-accent-600);--bs-btn-hover-border-color:var(--imd-accent-600);
  --bs-btn-active-bg:var(--imd-accent-600);--bs-btn-active-border-color:var(--imd-accent-600);
  --bs-btn-color:#11233D;--bs-btn-hover-color:#11233D;--bs-btn-active-color:#11233D;
  font-weight:700;
}
.btn-outline-primary{
  --bs-btn-color:var(--imd-primary);--bs-btn-border-color:var(--imd-primary);
  --bs-btn-hover-bg:var(--imd-primary);--bs-btn-hover-border-color:var(--imd-primary);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--imd-primary);--bs-btn-active-border-color:var(--imd-primary);--bs-btn-active-color:#fff;
}

/* ---- Foco visible accesible (teclado) ---- */
:focus-visible{outline:3px solid var(--imd-focus);outline-offset:2px;border-radius:.25rem;}
.btn:focus-visible,.nav-link:focus-visible,.dropdown-item:focus-visible{outline:3px solid var(--imd-focus);outline-offset:2px;}
.form-control:focus,.form-select:focus,.form-check-input:focus{
  border-color:var(--imd-primary);
  box-shadow:0 0 0 .25rem rgba(1,70,147,.22);
}
[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus,
[data-bs-theme="dark"] .form-check-input:focus{box-shadow:0 0 0 .25rem rgba(255,184,39,.30);}
.form-check-input:checked{background-color:var(--imd-primary);border-color:var(--imd-primary);}

/* ---- Enlace de salto (skip link) ---- */
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:1080;background:var(--imd-primary);color:#fff;
  padding:.6rem 1rem;border-radius:.5rem;font-weight:600;transition:top .15s ease;}
.skip-link:focus{top:1rem;color:#fff;}

/* ---- Navbar ---- */
.imd-nav{background:var(--imd-bg);border-bottom:1px solid var(--imd-border);transition:box-shadow .2s ease;}
.imd-nav.scrolled{box-shadow:0 .25rem 1.1rem rgba(0,0,0,.08);}
.imd-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;}
.imd-brand .brand-mark{background:#fff;border:1px solid var(--imd-border);border-radius:.6rem;
  padding:.2rem .3rem;display:inline-flex;}
.imd-brand .brand-mark img{height:34px;width:auto;display:block;}
.imd-brand .wordmark{font-weight:800;font-size:1.3rem;line-height:1;color:var(--imd-primary);}
[data-bs-theme="dark"] .imd-brand .wordmark{color:var(--imd-ink);}
.imd-brand .subbrand{display:block;font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--imd-body);font-weight:600;margin-top:2px;}
.imd-nav .nav-link{font-weight:600;color:var(--imd-body);padding-inline:.85rem;position:relative;}
.imd-nav .nav-link:hover,.imd-nav .nav-link.active{color:var(--imd-primary);}
[data-bs-theme="dark"] .imd-nav .nav-link:hover,
[data-bs-theme="dark"] .imd-nav .nav-link.active{color:var(--imd-accent-700);}
.imd-nav .nav-link.active::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:-.15rem;
  height:3px;border-radius:3px;background:var(--imd-accent);}
.btn-icon{width:2.6rem;height:2.6rem;display:inline-flex;align-items:center;justify-content:center;
  border-radius:.6rem;border:1px solid var(--imd-border);background:transparent;color:var(--imd-body);
  font-size:1.15rem;line-height:1;text-decoration:none;}
.btn-icon:hover{color:var(--imd-primary);border-color:var(--imd-primary);}
.btn-icon.lang{width:auto;gap:.35rem;padding:0 .7rem;font-weight:700;font-size:.95rem;}

/* ---- Hero ---- */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(120deg,var(--imd-primary-700),var(--imd-primary));}
.hero .hero-media{position:absolute;inset:0;background-image:
  repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 14px, rgba(255,255,255,0) 14px 28px);}
.hero .container{position:relative;z-index:2;}
.hero h1.hero-title{color:#fff;font-size:clamp(2.8rem,8.5vw,6rem);line-height:.9;letter-spacing:-.025em;font-weight:800;}
.hero .hero-claim{color:#fff;font-weight:700;font-size:clamp(1.35rem,3.2vw,2.05rem);line-height:1.1;letter-spacing:-.01em;}
.hero .hero-sub{color:rgba(255,255,255,.9);font-size:1.15rem;max-width:46ch;}
.hero .hero-url{font-size:1.12rem;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;}
.hero .hero-url .apuntate{color:var(--imd-accent);font-weight:800;display:inline-flex;align-items:center;gap:.25rem;}
.hero .hero-url .url-chip{background:#fff;color:#014693;font-weight:800;padding:.1em .55em;border-radius:.35rem;text-decoration:none;}
.hero .hero-url .url-chip:hover{background:var(--imd-accent);color:#11233D;}
.hero .daisy{display:inline-block;line-height:0;}
.hero .daisy svg{filter:drop-shadow(0 4px 10px rgba(0,0,0,.18));}

/* ---- Etiqueta "eyebrow" de sección ---- */
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--imd-accent-700);background:var(--imd-accent-050);
  padding:.35rem .8rem;border-radius:50rem;}

/* ---- Secciones ---- */
.section{padding:clamp(3.5rem,7vw,5.5rem) 0;}
.section-soft{background:var(--imd-bg-soft);}

/* ---- Chips de icono ---- */
.icon-chip{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;
  border-radius:1rem;font-size:1.55rem;flex:none;}
.icon-chip--primary{background:var(--imd-primary);color:#fff;}
.icon-chip--accent{background:var(--imd-accent);color:#11233D;}
.icon-chip--soft{background:var(--imd-primary-050);color:var(--imd-primary);}

/* ---- Tarjetas ---- */
.imd-card{background:var(--imd-surface);border:1px solid var(--imd-border);border-radius:1rem;height:100%;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.imd-card:hover{transform:translateY(-4px);box-shadow:0 1rem 2rem rgba(0,0,0,.09);border-color:var(--imd-accent);}
.event-card{border-top:4px solid var(--imd-accent);}
.event-card .role-tag{font-size:.82rem;color:var(--imd-body);}

/* ---- Listas con check ---- */
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:.9rem;}
.check-list li{display:flex;gap:.7rem;align-items:flex-start;}
.check-list li i{color:var(--imd-primary);font-size:1.35rem;line-height:1.35;flex:none;}
[data-bs-theme="dark"] .check-list li i{color:var(--imd-accent-700);}

/* ---- Placeholder de imagen ---- */
.img-ph{position:relative;border-radius:1rem;overflow:hidden;border:1px solid var(--imd-border);
  background:
    repeating-linear-gradient(135deg, var(--imd-primary-050) 0 16px, var(--imd-bg-soft) 16px 32px);
  display:flex;align-items:center;justify-content:center;min-height:320px;}
.img-ph span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--imd-body);
  background:var(--imd-surface);border:1px solid var(--imd-border);padding:.4rem .8rem;border-radius:.5rem;}

/* ---- Figura del cartel de campaña ---- */
.campaign-figure{border-radius:1rem;overflow:hidden;border:1px solid var(--imd-border);
  box-shadow:0 1rem 2.5rem rgba(1,70,147,.18);max-width:400px;margin-inline:auto;}
.campaign-figure img{display:block;width:100%;height:auto;}
.campaign-figure figcaption{font-size:.8rem;color:var(--imd-body);text-align:center;
  padding:.6rem .8rem;background:var(--imd-bg-soft);border-top:1px solid var(--imd-border);}

/* ---- Acordeón FAQ ---- */
.accordion{--bs-accordion-active-bg:var(--imd-primary-050);--bs-accordion-active-color:var(--imd-primary);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(1,70,147,.22);--bs-accordion-border-color:var(--imd-border);
  --bs-accordion-btn-color:var(--imd-ink);}
[data-bs-theme="dark"] .accordion{--bs-accordion-active-color:var(--imd-accent-700);}
.accordion-button{font-weight:700;}

/* ---- Sección inscripción ---- */
.inscribe-head{background:var(--imd-primary-050);border-top:1px solid var(--imd-border);border-bottom:1px solid var(--imd-border);}
.form-card{background:var(--imd-surface);border:1px solid var(--imd-border);border-radius:1.25rem;}
.fieldset-legend{font-size:1.05rem;font-weight:800;color:var(--imd-primary);display:flex;align-items:center;gap:.55rem;}
[data-bs-theme="dark"] .fieldset-legend{color:var(--imd-accent-700);}
.fieldset-legend .step{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;
  border-radius:.55rem;background:var(--imd-primary);color:#fff;font-size:.85rem;}
.req{color:var(--imd-accent-700);font-weight:700;}
.event-card-open{border:1px solid var(--imd-border);border-left:6px solid var(--imd-accent);border-radius:.9rem;background:var(--imd-surface);}

/* ---- Footer ---- */
.imd-footer{background:#04183A;color:#D6E2F0;}
[data-bs-theme="dark"] .imd-footer{background:#070E1A;}
.imd-footer h2,.imd-footer h3{color:#fff;}
.imd-footer a{color:#D6E2F0;text-decoration:none;}
.imd-footer a:hover{color:#fff;text-decoration:underline;}
.imd-footer .footer-mark{height:46px;width:auto;filter:brightness(0) invert(1);}
.imd-footer .footer-bottom{border-top:1px solid rgba(255,255,255,.14);}

/* ---- Ajustes específicos para móvil ---- */
@media (max-width: 575.98px){
  .hero h1.hero-title{font-size:clamp(2.6rem,16vw,3.6rem);}
  .hero .hero-claim{font-size:1.3rem;}
  .hero .hero-sub{font-size:1.05rem;}
  .icon-chip{width:2.9rem;height:2.9rem;font-size:1.35rem;}
  .form-card{border-radius:1rem;}
  section[id]{scroll-margin-top:72px;}
  .eyebrow{font-size:.72rem;}
  .imd-brand .wordmark{font-size:1.15rem;}
}

/* ---- Tarjetas de elección de modo de inscripción (evento vs bolsa) ---- */
.modo-card{cursor:pointer;transition:border-color .15s ease, box-shadow .15s ease;}
.modo-card .form-check-input{cursor:pointer;}
.modo-card.selected{border-color:var(--imd-primary) !important;box-shadow:0 0 0 .2rem rgba(1,70,147,.15);}
