/* =============================================================================
   CAPILPROMAX — Premium CSS
   Paleta: Blanco #FFFFFF · Dorado #C9A34A · Negro texto #1a1a1a
   Estética: clínica capilar · formación avanzada · premium
   Mobile-first · Bootstrap 5 override
   ============================================================================= */

/* ── VARIABLES ─────────────────────────────────────────────────────────────── */
:root {
  --black:       #1a1a1a;
  --black-soft:  #2d2d2d;
  --white:       #FFFFFF;
  --cream:       #FDFBF5;
  --light:       #F5F3EE;
  --light2:      #EDE9E0;
  --gold:        #C9A34A;
  --gold-light:  #E8C870;
  --gold-dark:   #A8832A;
  --gold-pale:   rgba(201,163,74,.08);
  --muted:       #6B6866;
  --muted-light: #9B9896;
  --border:      #E8E4DC;
  --shadow-sm:   0 2px 12px rgba(0,0,0,.06);
  --shadow-md:   0 6px 28px rgba(0,0,0,.09);
  --shadow-lg:   0 14px 50px rgba(0,0,0,.12);
  --gold-glow:   0 0 30px rgba(201,163,74,.18);
  --ff-serif:    'Playfair Display', Georgia, serif;
  --ff-sans:     'Inter', system-ui, sans-serif;
  --ease:        cubic-bezier(.4,0,.2,1);
  --trans:       .26s var(--ease);
  --r:           10px;
  --rl:          18px;
}

/* ── RESET ──────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family: var(--ff-sans);
  background: var(--white);
  color: var(--black);
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
@media (max-width:991px) { body { padding-bottom:72px; } }
img { display:block; max-width:100%; }
a   { text-decoration:none; }

/* ── UTILIDADES ─────────────────────────────────────────────────────────────── */
.text-gold  { color:var(--gold) !important; }
.text-muted { color:var(--muted) !important; }
.bg-cream   { background:var(--cream) !important; }

/* Section tags */
.section-tag {
  display:inline-block;
  font-size:.68rem; font-weight:600;
  letter-spacing:3px; text-transform:uppercase;
  color:var(--gold-dark);
  padding:.28rem 1rem;
  border:1px solid rgba(168,131,42,.3);
  border-radius:50px;
  background:rgba(168,131,42,.06);
  margin-bottom:1rem;
}
.section-tag.gold {
  background:var(--gold);
  color:#fff;
  border-color:var(--gold);
}

/* Section titles */
.section-title {
  font-family:var(--ff-serif);
  font-size:clamp(1.65rem,4vw,2.8rem);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.02em;
  margin-bottom:1rem;
  color:var(--black);
}
.section-desc {
  font-size:1rem;
  color:var(--muted);
  max-width:560px;
  margin:0 auto;
  line-height:1.8;
}

/* Sections */
.section-white { background:var(--white); padding:5.5rem 0; }
.section-cream  { background:var(--cream); padding:5.5rem 0; }
.section-light  { background:var(--light); padding:5.5rem 0; }
.section-gold-stripe {
  background:linear-gradient(135deg,#C9A34A 0%,#A8832A 100%);
  color:#fff;
  padding:1.2rem 0;
}
@media (max-width:767px) {
  .section-white, .section-cream, .section-light { padding:3.5rem 0; }
}

/* ── DIVIDER GOLD ────────────────────────────────────────────────────────────── */
.gold-divider {
  width:60px; height:3px;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-dark));
  border-radius:2px;
  margin:1rem auto 1.5rem;
}

/* ── BUTTONS ────────────────────────────────────────────────────────────────── */
.btn-gold {
  background:linear-gradient(135deg,#C9A34A 0%,#E8C870 40%,#C9A34A 80%,#A8832A 100%);
  color:var(--black);
  border:none;
  font-family:var(--ff-sans);
  font-weight:700;
  font-size:.84rem;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:.9rem 2.2rem;
  border-radius:var(--r);
  transition:var(--trans);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  cursor:pointer;
  position:relative;
  overflow:hidden;
}
.btn-gold:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(201,163,74,.35);
  color:var(--black);
}
.btn-gold:active { transform:translateY(0); }

.btn-outline-gold {
  background:transparent;
  color:var(--gold-dark);
  border:1.5px solid var(--gold);
  font-family:var(--ff-sans);
  font-weight:600;
  font-size:.84rem;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:.9rem 2.2rem;
  border-radius:var(--r);
  transition:var(--trans);
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.btn-outline-gold:hover {
  background:var(--gold);
  color:#fff;
  border-color:var(--gold);
}

/* CTA agenda button */
.btn-agenda {
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  background:var(--black);
  color:var(--white) !important;
  border:none;
  border-radius:var(--r);
  padding:.8rem 1.4rem;
  text-decoration:none;
  font-family:var(--ff-sans);
  transition:var(--trans);
  cursor:pointer;
  white-space:nowrap;
}
.btn-agenda:hover { background:var(--black-soft); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-agenda-icon  { font-size:1.3rem; }
.btn-agenda-text  { display:flex; flex-direction:column; line-height:1.2; }
.btn-agenda-title { font-weight:700; font-size:.78rem; letter-spacing:1.5px; text-transform:uppercase; }
.btn-agenda-sub   { font-size:.68rem; color:rgba(255,255,255,.5); }
.btn-agenda-arrow { font-size:1rem; margin-left:.25rem; color:var(--gold); }
.btn-agenda-sm    { padding:.6rem 1rem; }
.btn-agenda-sm .btn-agenda-title { font-size:.7rem; }

/* Visita button */
.btn-visita {
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  background:var(--white);
  color:var(--black) !important;
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:.8rem 1.4rem;
  text-decoration:none;
  font-family:var(--ff-sans);
  transition:var(--trans);
  cursor:pointer;
  white-space:nowrap;
}
.btn-visita:hover { border-color:var(--gold); box-shadow:0 4px 16px rgba(201,163,74,.12); }

/* ── NAVBAR ─────────────────────────────────────────────────────────────────── */
#navbar {
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  padding:.75rem 0;
  transition:box-shadow .3s;
}
#navbar.scrolled { box-shadow:var(--shadow-md); }
.navbar-brand img { height:42px; }
.navbar-toggler { border:1.5px solid var(--border); border-radius:8px; }
.navbar-toggler-icon { filter:invert(.6); }
.nav-link-cpm {
  font-size:.78rem; font-weight:600; letter-spacing:.8px; text-transform:uppercase;
  color:var(--muted) !important; padding:.4rem .6rem !important;
  transition:color .2s;
}
.nav-link-cpm:hover { color:var(--gold-dark) !important; }

/* ── HERO ────────────────────────────────────────────────────────────────────── */
.hero-section {
  min-height:100vh;
  padding:7rem 0 4rem;
  background:var(--white);
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.hero-section::before {
  content:'';
  position:absolute;
  top:0; right:0;
  width:45%;
  height:100%;
  background:radial-gradient(ellipse at top right, rgba(201,163,74,.06) 0%, transparent 65%);
  pointer-events:none;
}

.hero-eyebrow {
  font-size:.7rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--gold-dark);
  margin-bottom:1rem;
  display:flex; align-items:center; gap:.5rem;
}
.hero-eyebrow::before {
  content:'';
  display:inline-block;
  width:30px; height:2px;
  background:var(--gold);
}

.hero-title {
  font-family:var(--ff-serif);
  font-size:clamp(1.9rem,5vw,3.4rem);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.03em;
  color:var(--black);
  margin-bottom:1.25rem;
}
.hero-title .text-gold { color:var(--gold) !important; }

.hero-subtitle {
  font-size:1.05rem;
  color:var(--muted);
  line-height:1.8;
  max-width:520px;
  margin-bottom:1.75rem;
}

/* Trust pills */
.hero-trust { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.75rem; }
.trust-pill {
  font-size:.75rem; font-weight:500;
  padding:.35rem .85rem;
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:50px;
  color:var(--black);
  display:flex; align-items:center; gap:.35rem;
}
.trust-pill-check { color:var(--gold); font-weight:700; }

/* Hero buttons */
.hero-buttons { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1.75rem; }

/* Hero video */
.hero-video-col { display:flex; align-items:center; justify-content:center; }
.hero-video-wrap {
  width:100%;
  max-width:340px;
  border-radius:var(--rl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--border);
  position:relative;
}
.hero-video-wrap::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:var(--rl);
  border:2px solid rgba(201,163,74,.2);
  pointer-events:none;
}
.hero-video {
  width:100%;
  display:block;
  aspect-ratio:9/16;
  object-fit:cover;
}

/* ── PROMO STRIP ─────────────────────────────────────────────────────────────── */
.promo-banner {
  background:var(--black);
  padding:.85rem 0;
}
.promo-inner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.promo-label {
  font-size:.65rem; letter-spacing:2.5px; text-transform:uppercase;
  background:var(--gold);
  color:var(--black);
  padding:.2rem .7rem;
  border-radius:4px;
  font-weight:700;
}
.promo-items { display:flex; gap:1.2rem; flex-wrap:wrap; justify-content:center; }
.promo-item { font-size:.82rem; color:rgba(255,255,255,.75); font-weight:500; }
.promo-sep  { color:rgba(255,255,255,.2); }

/* ── BENEFIT CARDS ───────────────────────────────────────────────────────────── */
.benefit-card {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--rl);
  padding:1.75rem 1.5rem;
  height:100%;
  transition:var(--trans);
  position:relative;
  overflow:hidden;
}
.benefit-card::before {
  content:'';
  position:absolute;
  bottom:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.benefit-card:hover { box-shadow:var(--shadow-md); border-color:rgba(201,163,74,.3); }
.benefit-card:hover::before { transform:scaleX(1); }
.benefit-icon {
  width:52px; height:52px;
  background:var(--gold-pale);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem;
  margin-bottom:1rem;
  border:1px solid rgba(201,163,74,.15);
}
.benefit-title { font-family:var(--ff-serif); font-size:1.1rem; font-weight:700; margin-bottom:.5rem; }
.benefit-desc  { font-size:.9rem; color:var(--muted); line-height:1.7; }

/* ── COURSE CARDS ────────────────────────────────────────────────────────────── */
.course-card {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--rl);
  overflow:hidden;
  height:100%;
  transition:var(--trans);
  display:flex;
  flex-direction:column;
}
.course-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:rgba(201,163,74,.4); }
.course-card.featured {
  border-color:var(--gold);
  box-shadow:0 0 0 1px var(--gold), var(--shadow-lg);
}

.course-badge-wrap { position:relative; }
.course-badge {
  position:absolute;
  top:1rem; right:1rem;
  background:var(--gold);
  color:var(--black);
  font-size:.62rem; font-weight:800;
  letter-spacing:1.5px; text-transform:uppercase;
  padding:.25rem .7rem;
  border-radius:4px;
}
.course-header {
  background:var(--black);
  padding:1.75rem 1.5rem;
  color:var(--white);
}
.course-days {
  font-size:.65rem; letter-spacing:2.5px; text-transform:uppercase;
  color:rgba(201,163,74,.7);
  margin-bottom:.4rem;
}
.course-name {
  font-family:var(--ff-serif);
  font-size:1.5rem;
  font-weight:700;
  color:var(--white);
  line-height:1.2;
  margin-bottom:.25rem;
}
.course-sub {
  font-size:.85rem;
  color:rgba(255,255,255,.5);
}

.course-body { padding:1.5rem; flex:1; display:flex; flex-direction:column; }

.course-includes-label {
  font-size:.65rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--muted-light); margin-bottom:.75rem; font-weight:600;
}
.course-includes { list-style:none; margin-bottom:1.25rem; }
.course-includes li {
  font-size:.88rem; color:var(--muted);
  padding:.3rem 0;
  border-bottom:1px solid var(--border);
  display:flex; align-items:center; gap:.5rem;
}
.course-includes li:last-child { border:none; }
.course-includes li::before { content:'✓'; color:var(--gold); font-weight:700; flex-shrink:0; }

.course-pricing {
  margin-top:auto;
  background:var(--cream);
  border-radius:var(--r);
  padding:1rem 1.25rem;
  margin-top:1.25rem;
}
.price-main {
  display:flex; align-items:baseline; gap:.3rem; margin-bottom:.3rem;
}
.price-num {
  font-family:var(--ff-serif);
  font-size:2.25rem; font-weight:800;
  color:var(--black);
}
.price-eur { font-size:1rem; color:var(--muted); }
.price-note {
  font-size:.75rem; color:var(--muted-light);
  margin-bottom:.75rem;
}
.price-reserva {
  font-size:.8rem;
  color:var(--gold-dark);
  font-weight:600;
  background:rgba(201,163,74,.1);
  border-radius:6px;
  padding:.3rem .6rem;
  display:inline-flex; align-items:center; gap:.3rem;
}

/* Progressive indicator */
.course-prog-badge {
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.72rem; font-weight:600; letter-spacing:.5px;
  color:var(--gold-dark);
  background:rgba(201,163,74,.08);
  border:1px solid rgba(201,163,74,.2);
  border-radius:50px;
  padding:.2rem .75rem;
  margin-bottom:.75rem;
}

/* ── CONVOCATORIAS ───────────────────────────────────────────────────────────── */
.conv-grid { display:flex; flex-direction:column; gap:.65rem; }
.conv-item {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:1rem 1.25rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  cursor:pointer;
  transition:var(--trans);
  user-select:none;
}
.conv-item:hover   { border-color:rgba(201,163,74,.4); box-shadow:var(--shadow-sm); }
.conv-item.active  {
  border-color:var(--gold);
  background:var(--cream);
  box-shadow:0 0 0 2px var(--gold), var(--shadow-sm);
}
.conv-item.completo { opacity:.55; cursor:not-allowed; }

.conv-date {
  font-family:var(--ff-serif);
  font-size:1rem; font-weight:700;
  color:var(--black);
  line-height:1.2;
}
.conv-date-sub { font-size:.75rem; color:var(--muted); margin-top:2px; }

.conv-plazas {
  display:flex; align-items:center; gap:.5rem;
  font-size:.8rem; font-weight:600; white-space:nowrap;
}
.conv-dot {
  width:9px; height:9px; border-radius:50%; flex-shrink:0;
}
.conv-dot.verde { background:#27ae60; }
.conv-dot.naranja { background:#e67e22; }
.conv-dot.rojo   { background:#c0392b; }
.conv-dot.gris   { background:#bbb; }

.conv-plazas-txt { color:var(--muted); }
.conv-plazas-txt.pocas { color:#e67e22; }
.conv-plazas-txt.lleno { color:#c0392b; }

.conv-radio { width:18px; height:18px; border:2px solid var(--border); border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:var(--trans); }
.conv-item.active .conv-radio { border-color:var(--gold); background:var(--gold); }
.conv-item.active .conv-radio::after { content:''; width:7px; height:7px; border-radius:50%; background:#fff; }

/* Seat progress bar */
.seat-bar {
  height:4px;
  background:var(--border);
  border-radius:2px;
  margin-top:.4rem;
  overflow:hidden;
}
.seat-bar-fill { height:100%; background:var(--gold); border-radius:2px; transition:width .4s; }

/* ── BOOKING (citas) ─────────────────────────────────────────────────────────── */
.bk-card {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--rl);
  padding:2rem 2rem 1.75rem;
  box-shadow:var(--shadow-md);
}
.bk-section { margin-bottom:1.75rem; }
.bk-label {
  font-size:.7rem; letter-spacing:2px; text-transform:uppercase;
  font-weight:700; color:var(--muted);
  margin-bottom:.85rem;
  display:flex; align-items:center; gap:.6rem;
}
.bk-num {
  width:22px; height:22px; border-radius:50%;
  background:var(--gold);
  color:var(--black);
  font-size:.68rem; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}

.bk-tipo-row { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.bk-tipo {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:1rem;
  text-align:center;
  cursor:pointer;
  transition:var(--trans);
  font-family:var(--ff-sans);
  display:flex; flex-direction:column; align-items:center; gap:.35rem;
}
.bk-tipo:hover { border-color:rgba(201,163,74,.4); }
.bk-tipo.active { border-color:var(--gold); background:var(--cream); }
.bk-tipo-icon { font-size:1.5rem; }
.bk-tipo-txt  { font-size:.84rem; font-weight:700; color:var(--black); }
.bk-tipo-sub  { font-size:.72rem; color:var(--muted); }

/* Days */
.bk-days { display:flex; flex-wrap:wrap; gap:.4rem; }
.bk-day {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:8px;
  padding:.5rem .75rem;
  cursor:pointer;
  transition:var(--trans);
  text-align:center;
  min-width:78px;
  font-family:var(--ff-sans);
}
.bk-day:hover { border-color:rgba(201,163,74,.4); }
.bk-day.active { border-color:var(--gold); background:var(--cream); }
.bk-day-dow { font-size:.62rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); }
.bk-day-num { font-size:1.1rem; font-weight:700; color:var(--black); }
.bk-day-mon { font-size:.65rem; color:var(--muted-light); }

/* Slots */
.bk-slots-grid { display:flex; flex-wrap:wrap; gap:.4rem; }
.bk-slot {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:8px;
  padding:.4rem .8rem;
  font-size:.82rem; font-weight:600;
  cursor:pointer; transition:var(--trans);
  font-family:var(--ff-sans);
}
.bk-slot:hover  { border-color:rgba(201,163,74,.4); }
.bk-slot.active { border-color:var(--gold); background:var(--gold); color:var(--black); }
.bk-slots-empty { font-size:.85rem; color:var(--muted); font-style:italic; }

/* ── MODALS ──────────────────────────────────────────────────────────────────── */
.modal-premium {
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--rl);
  box-shadow:0 24px 60px rgba(0,0,0,.14);
}
.modal-premium .modal-header {
  background:var(--cream);
  border-bottom:1px solid var(--border);
  border-radius:var(--rl) var(--rl) 0 0;
  padding:1.5rem;
}
.modal-premium .modal-title { font-family:var(--ff-serif); font-size:1.25rem; color:var(--black); }
.modal-premium .modal-body  { padding:1.5rem; }
.btn-close { filter:invert(0) !important; opacity:.6; }

/* Input fields */
.input-field {
  width:100%;
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:8px;
  padding:.75rem 1rem;
  font-family:var(--ff-sans);
  font-size:.9rem;
  color:var(--black);
  transition:var(--trans);
  appearance:none;
}
.input-field::placeholder { color:var(--muted-light); }
.input-field:focus {
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,163,74,.12);
}
select.input-field { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23999' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }

/* ── PLAZA WIZARD ────────────────────────────────────────────────────────────── */
.wizard-step { display:none; }
.wizard-step.active { display:block; }

.wizard-prog {
  display:flex; gap:.5rem; margin-bottom:1.5rem;
}
.wiz-step-dot {
  flex:1; height:4px; border-radius:2px;
  background:var(--border); transition:background .3s;
}
.wiz-step-dot.done { background:var(--gold); }

.wizard-step-title {
  font-family:var(--ff-serif);
  font-size:1.05rem; font-weight:700;
  color:var(--black); margin-bottom:1rem;
}

/* Course selector in wizard */
.wiz-curso-grid { display:grid; grid-template-columns:1fr; gap:.5rem; margin-bottom:1rem; }
.wiz-curso-btn {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:.9rem 1.1rem;
  cursor:pointer; transition:var(--trans);
  font-family:var(--ff-sans);
  text-align:left;
  display:flex; align-items:center; justify-content:space-between;
}
.wiz-curso-btn:hover { border-color:rgba(201,163,74,.4); }
.wiz-curso-btn.active { border-color:var(--gold); background:var(--cream); }
.wiz-curso-name { font-weight:700; font-size:.9rem; color:var(--black); }
.wiz-curso-price { font-size:.82rem; color:var(--gold-dark); font-weight:600; }

/* Wizard — selector modalidad de pago */
.wiz-pay-opt {
  width:100%;
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  padding:1rem .85rem;
  cursor:pointer;
  font-family:var(--ff-sans);
  text-align:center;
  transition:var(--trans);
  display:flex; flex-direction:column; align-items:center; gap:.3rem;
}
.wiz-pay-opt:hover { border-color:rgba(201,163,74,.5); background:var(--cream); }
.wiz-pay-opt.active { border-color:var(--gold); background:var(--cream); box-shadow:0 0 0 3px rgba(201,163,74,.12); }
.wiz-pay-opt-title { font-size:.88rem; font-weight:700; color:var(--black); }
.wiz-pay-opt-amount { font-size:1.1rem; font-weight:800; color:var(--gold-dark); line-height:1; }
.wiz-pay-opt-sub { font-size:.7rem; color:var(--muted); line-height:1.35; }

/* Wizard conv list */
.wiz-conv-list { display:flex; flex-direction:column; gap:.5rem; }

/* Wizard success */
.wizard-success-icon {
  width:60px; height:60px; border-radius:50%;
  background:var(--gold);
  color:var(--black);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; font-weight:700;
  margin:0 auto 1rem;
}
.wizard-success-detail {
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:1rem 1.25rem;
  text-align:left;
  font-size:.85rem;
}
.wsd-row { display:flex; justify-content:space-between; padding:5px 0; border-bottom:1px solid var(--border); color:var(--muted); }
.wsd-row:last-child { border:none; }
.wsd-row strong { color:var(--black); }

/* Privacy note */
.privacy-note { font-size:.72rem; color:var(--muted-light); text-align:center; margin-top:.6rem; }

/* ── PROGRESIVE STEPS ────────────────────────────────────────────────────────── */
.prog-steps {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  position:relative;
}
.prog-steps::before {
  content:'';
  position:absolute;
  top:36px; left:calc(16.66% + 1.5rem); right:calc(16.66% + 1.5rem);
  height:2px;
  background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-dark));
  z-index:0;
}
@media (max-width:767px) {
  .prog-steps { grid-template-columns:1fr; }
  .prog-steps::before { display:none; }
}
.prog-step {
  text-align:center;
  position:relative; z-index:1;
}
.prog-step-num {
  width:72px; height:72px;
  border-radius:50%;
  background:var(--black);
  color:var(--gold);
  font-family:var(--ff-serif);
  font-size:1.5rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1rem;
  border:2px solid var(--gold);
}
.prog-step-title { font-family:var(--ff-serif); font-size:1.1rem; font-weight:700; margin-bottom:.4rem; }
.prog-step-desc  { font-size:.85rem; color:var(--muted); line-height:1.6; }
.prog-step-tag {
  display:inline-block;
  font-size:.62rem; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  background:var(--gold);
  color:var(--black);
  padding:.15rem .55rem; border-radius:4px;
  margin-bottom:.5rem;
}
.prog-step-includes {
  font-size:.75rem; color:var(--muted);
  background:var(--cream); border:1px solid var(--border);
  border-radius:8px; padding:.5rem .75rem;
  margin-top:.5rem;
}

/* ── FAQ ─────────────────────────────────────────────────────────────────────── */
.faq-item {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--r);
  margin-bottom:.5rem;
  overflow:hidden;
}
.faq-item .accordion-button {
  background:var(--white);
  color:var(--black);
  font-weight:600;
  font-size:.95rem;
  padding:1.1rem 1.25rem;
  border:none;
  box-shadow:none;
}
.faq-item .accordion-button:not(.collapsed) {
  background:var(--cream);
  color:var(--gold-dark);
  box-shadow:none;
}
.faq-item .accordion-button::after {
  filter:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M2 5l6 6 6-6' fill='none' stroke='%23C9A34A' stroke-width='2'/%3E%3C/svg%3E");
}
.faq-item .accordion-body { font-size:.9rem; color:var(--muted); line-height:1.8; padding:1rem 1.25rem 1.25rem; background:var(--cream); border-top:1px solid var(--border); }

/* ── AUTORIDAD ────────────────────────────────────────────────────────────────── */
.authority-card {
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--rl);
  padding:2rem;
  box-shadow:var(--shadow-sm);
}
.authority-name {
  font-family:var(--ff-serif);
  font-size:1.5rem; font-weight:700;
  color:var(--black);
  margin-bottom:.25rem;
}
.authority-role { font-size:.78rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dark); margin-bottom:1rem; }
.authority-stat { display:flex; align-items:center; gap:.6rem; margin-bottom:.6rem; font-size:.9rem; color:var(--muted); }
.authority-stat-icon { color:var(--gold); font-size:1rem; flex-shrink:0; }

/* ── INCLUDES SECTION ─────────────────────────────────────────────────────────── */
.include-item {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1rem 1.25rem;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--r);
  transition:var(--trans);
}
.include-item:hover { box-shadow:var(--shadow-sm); border-color:rgba(201,163,74,.3); }
.include-icon { font-size:1.5rem; flex-shrink:0; margin-top:2px; }
.include-title { font-weight:700; font-size:.9rem; margin-bottom:.2rem; }
.include-desc  { font-size:.82rem; color:var(--muted); line-height:1.6; }

/* ── FOOTER ──────────────────────────────────────────────────────────────────── */
.footer-main {
  background:var(--black);
  color:rgba(255,255,255,.65);
  padding:4rem 0 0;
}
.footer-logo { height:44px; margin-bottom:1rem; filter:brightness(0) invert(1); opacity:.85; }
.footer-desc  { font-size:.85rem; line-height:1.8; color:rgba(255,255,255,.85); max-width:280px; margin-bottom:1.25rem; }
.footer-trust-row { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.75rem; }
.trust-chip {
  font-size:.65rem; letter-spacing:.8px; text-transform:uppercase;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:4px;
  padding:.2rem .6rem;
  color:rgba(255,255,255,.45);
}
.footer-heading { font-size:.7rem; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:.85rem; }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:.45rem; }
.footer-links a { font-size:.85rem; color:rgba(255,255,255,.85); transition:color .2s; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom {
  margin-top:3rem;
  padding:1.5rem 0;
  border-top:1px solid rgba(255,255,255,.07);
}
.footer-copy { font-size:.78rem; color:rgba(255,255,255,.65); margin:0; }
.footer-legal-link { font-size:.75rem; color:rgba(255,255,255,.55); transition:color .2s; }
.footer-legal-link:hover { color:rgba(201,163,74,.9); }
.footer-sep { color:rgba(255,255,255,.35); margin:0 .35rem; font-size:.7rem; }

/* ── STICKY CTA MÓVIL ──────────────────────────────────────────────────────── */
.sticky-cta {
  position:fixed; bottom:0; left:0; right:0; z-index:1040;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  border-top:1px solid var(--border);
  padding:.6rem 1rem;
  display:flex; gap:.5rem;
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
}
.sticky-cta .btn-agenda { flex:1; justify-content:center; font-size:.72rem; }
.sticky-cta .btn-gold   { flex:1; justify-content:center; font-size:.72rem; padding:.7rem 1rem; }

/* ── SCROLL REVEAL ───────────────────────────────────────────────────────────── */
.reveal, .reveal-l, .reveal-r {
  opacity:0; transform:translateY(28px); transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.reveal-l { transform:translateX(-28px); }
.reveal-r { transform:translateX(28px); }
.reveal.visible, .reveal-l.visible, .reveal-r.visible { opacity:1; transform:none; }
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }
.delay-4 { transition-delay:.4s; }

/* ── MISC ────────────────────────────────────────────────────────────────────── */
.gold-line { width:56px; height:3px; background:linear-gradient(90deg,var(--gold-dark),var(--gold)); border-radius:2px; }
.text-center .gold-line { margin:0 auto; }

.pm-error { font-size:.8rem; color:#c0392b; display:none; }

@media (max-width:575px) {
  .bk-tipo-row { grid-template-columns:1fr; }
  .hero-buttons { flex-direction:column; }
  .hero-buttons .btn-agenda, .hero-buttons .btn-outline-gold { width:100%; justify-content:center; }
  .prog-steps { gap:1rem; }
}
