:root{
  --ink:#192d53;
  --ink-soft:#3a4c6e;
  --paper:#eef1f7;
  --paper-panel:#f4f6fb;
  --accent:#304288;
  --accent-soft:#5b74c4;
  --line:#c7cee0;
  --line-soft:#dde3ef;
  --muted:#8fa0c0;
  --error:#a33d2e;
  --ok:#5c7a4e;
  --white:#ffffff;
  --radius:4px;
  --radius-card:10px;
  --control-h:46px;
  --rail-w:274px;
  --gutter:clamp(26px, 4.5vw, 88px);
  --card-pad:clamp(28px, 3vw, 46px);
}

*{box-sizing:border-box; margin:0; padding:0;}
html, body{ height:100%; height:100dvh; }
body{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.topbar{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 26px;
  background:var(--white);
  border-bottom:1px solid var(--line-soft);
  box-shadow:0 1px 12px -8px rgba(22,35,61,0.3);
  z-index:20;
  max-height:120px;
  overflow:hidden;
  transition:opacity .9s ease, max-height .9s ease, padding .9s ease;
}
.brand{ display:flex; align-items:center; gap:12px; }
.brand-logo{ width:39px; height:39px; display:block; }
.brand-name{ font-size:15.5px; letter-spacing:.05em; color:var(--ink-soft); line-height:1.15; }
.brand-name strong{ display:block; color:var(--ink); font-weight:600; letter-spacing:.03em; }
.topbar-reloj{
  display:none;
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  padding:7px 15px;
  border:1px solid var(--line-soft);
  border-radius:999px;
  white-space:nowrap;
}
.topbar-social{
  display:none;
  flex:0 0 auto;
  align-items:center;
  gap:7px;
}
.topbar-soc{
  flex:0 0 auto;
  width:36px; height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--accent);
  background:var(--paper);
  border:1px solid var(--line-soft);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.topbar-soc svg{ width:18px; height:18px; fill:currentColor; stroke:none; }
@media (hover: hover){
  .topbar-soc:hover{ background:var(--ink); color:var(--white); transform:translateY(-2px); }
}
.topbar-soc:active{ transform:scale(.94); }

.stage{
  flex:1 1 auto;
  min-height:0;
  position:relative;
  display:grid;
  grid-template-columns:var(--rail-w) 1fr;
  grid-template-rows:minmax(0, 1fr);
}
.stage-bg{
  position:absolute; inset:0;
  overflow:hidden;
  background:#10182a;
  pointer-events:none;
}
.stage-slide{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0;
  transform:scale(1.08);
  transition:opacity 1.8s linear, transform 8s ease-out;
  will-change:opacity, transform;
}
.stage-slide.on{
  opacity:1;
  transform:scale(1);
  z-index:1;
}
.stage-bg::before{
  content:"";
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(118deg,
    rgba(11,16,28,.86) 0%,
    rgba(16,25,42,.68) 34%,
    rgba(22,34,56,.44) 68%,
    rgba(28,42,68,.34) 100%);
  transition:opacity .9s ease;
}

.idle-veil{
  position:absolute; inset:0; z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .9s ease, visibility .9s;
}
.idle-marca{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(16px, 2vw, 30px);
  filter:drop-shadow(0 2px 30px rgba(0,0,0,.5));
  animation:idlePulse 6s ease-in-out infinite;
}
.idle-logo{
  width:clamp(140px, 15vw, 260px);
  height:auto;
}
.idle-nombre{
  font-family:'SF Compact Display', 'SF Compact Text', -apple-system, ui-sans-serif, 'IBM Plex Sans', system-ui, sans-serif;
  font-size:clamp(26px, 3.2vw, 54px);
  font-weight:500;
  line-height:1.15;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--white);
  text-align:center;
}
.idle-nombre strong{
  display:block;
  font-weight:600;
  font-size:1.3em;
  letter-spacing:.08em;
}
@keyframes idlePulse{
  0%, 100%{ opacity:.45; transform:scale(1); }
  50%{ opacity:.68; transform:scale(1.03); }
}
body.idle .idle-veil{ opacity:1; visibility:visible; pointer-events:auto; }
body.idle .topbar{ opacity:0; pointer-events:none; max-height:0; padding-block:0; }
body.idle .rail,
body.idle .panel{ opacity:0; pointer-events:none; }
body.idle .stage-bg::before{ opacity:.4; }

.rail{
  position:relative;
  z-index:2;
  min-height:0;
  overflow-y:auto;
  background:var(--ink);
  color:var(--paper);
  display:flex;
  flex-direction:column;
  padding:22px 0 18px;
  transition:opacity .9s ease;
}
.rail::after{
  content:"";
  position:absolute;
  top:0; right:0; bottom:0;
  width:1px;
  background:linear-gradient(180deg, transparent, var(--accent-soft) 18%, var(--accent-soft) 82%, transparent);
}
.rail-head{
  flex:0 0 auto;
  padding:0 22px 16px;
  margin-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.rail-title{ font-family:'Fraunces', serif; font-size:24px; font-weight:600; color:var(--white); line-height:1.1; }
.rail-head .rail-progress{ margin-top:14px; }
.rail-nav{ flex:0 0 auto; display:flex; flex-direction:column; }
.rail-item{
  flex:0 0 auto;
  font-family:inherit;
  font-size:15px;
  text-align:left;
  background:none;
  border:none;
  border-left:3px solid transparent;
  color:var(--muted);
  padding:11px 22px;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:12px;
  cursor:pointer;
  transition:color .2s ease, background .2s ease, border-color .2s ease;
}
.rail-item .ico{
  width:20px; height:20px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round;
}
.rail-item span{ flex:1 1 auto; }
.rail-item .tick{
  width:16px; height:16px; flex:0 0 auto;
  fill:none; stroke:var(--accent-soft); stroke-width:2.4;
  stroke-linecap:round; stroke-linejoin:round;
  opacity:0; transform:scale(.6);
  transition:opacity .3s ease, transform .3s ease;
}
@media (hover: hover){ .rail-item:hover{ color:var(--white); } }
.rail-item.locked{ color:#5d6c8c; cursor:default; }
.rail-item[disabled]{ cursor:default; pointer-events:none; }
.rail-item.done{ color:#c9d2e6; }
.rail-item.done .tick{ opacity:1; transform:scale(1); }
.rail-item.active{ color:var(--white); background:rgba(255,255,255,0.07); border-left-color:var(--accent-soft); }

.rail-foot{ flex:0 0 auto; margin-top:auto; padding:20px 22px 0; }
.rail-social-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:10.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  text-align:center;
  margin-bottom:12px;
}
.rail-social{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding-bottom:20px;
  margin-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.rail-soc{
  flex:0 0 auto;
  width:44px; height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--white);
  background:rgba(255,255,255,0.2);
  border:1px solid rgba(255,255,255,0.3);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
  transition:background .2s ease, transform .2s ease;
}
.rail-soc svg{ width:21px; height:21px; fill:currentColor; stroke:none; }
@media (hover: hover){ .rail-soc:hover{ background:rgba(255,255,255,0.3); transform:translateY(-2px); } }
.rail-progress{ height:3px; border-radius:2px; background:rgba(255,255,255,0.14); overflow:hidden; }
.rail-progress span{
  display:block; height:100%; width:0%;
  background:var(--accent-soft); border-radius:2px;
  transition:width .4s ease;
}
.rail-progress-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  color:var(--muted);
  margin-top:8px;
}
.rail-help{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:16px;
  padding:11px 14px;
  border:1px solid rgba(255,255,255,0.22);
  border-radius:999px;
  color:#dbe2f2;
  font-size:13.5px;
  text-decoration:none;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.rail-help .ico{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; }
@media (hover: hover){ .rail-help:hover{ background:rgba(255,255,255,0.08); border-color:var(--accent-soft); color:var(--white); } }

.panel{
  position:relative;
  z-index:2;
  min-height:0;
  padding:22px var(--gutter);
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:clamp(20px, 2vw, 34px);
  transition:opacity .9s ease;
}

.context{
  display:none;
  flex:0 0 330px;
  align-self:start;
  max-height:100%;
  overflow-y:auto;
  padding:20px 20px 22px;
  border-radius:var(--radius-card);
  background:rgba(9,18,38,.46);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.15);
  color:#dbe2f2;
}
.context-head{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#aebbdb;
  padding-bottom:12px;
  margin-bottom:4px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.context-list{ list-style:none; }
.context-list li{
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.09);
}
.context-list li:last-child{ border-bottom:none; }
.context-k{
  display:block;
  font-size:11.5px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
}
.context-v{
  display:block;
  font-size:15px;
  line-height:1.4;
  color:#7f8dad;
  font-style:italic;
}
.context-list li.set .context-v{ color:var(--white); font-style:normal; font-weight:500; }
.context-note{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:12.5px;
  line-height:1.5;
  color:#aebbdb;
}
.context-note .ico{
  width:16px; height:16px; flex:0 0 auto; margin-top:1px;
  fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round;
}

@media (min-width: 1400px){
  .context{ display:block; }
}
.card{
  width:100%;
  max-width:clamp(760px, 68vw, 1120px);
  max-height:100%;
  display:flex;
  flex-direction:column;
  background:var(--white);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-card);
  box-shadow:0 30px 60px -24px rgba(6,13,28,0.55), 0 2px 10px -4px rgba(6,13,28,0.3);
  overflow:hidden;
}
.card-progress{ flex:0 0 auto; height:4px; background:var(--paper); }
.card-progress span{
  display:block; height:100%; width:20%;
  background:linear-gradient(90deg, var(--accent), var(--accent-soft));
  transition:width .45s cubic-bezier(.4,0,.2,1);
}
.card-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:26px var(--card-pad) 22px;
}
.card-body::-webkit-scrollbar{ width:9px; }
.card-body::-webkit-scrollbar-thumb{ background:var(--line); border-radius:8px; border:3px solid var(--white); }
.card-head{ margin-bottom:20px; }
.card-eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:9px;
}
.card-head h1{
  font-family:'Fraunces', serif;
  font-size:29px;
  font-weight:600;
  line-height:1.14;
  color:var(--ink);
  text-wrap:balance;
}
.card-head p{
  margin-top:8px;
  font-size:15.5px;
  line-height:1.55;
  color:var(--ink-soft);
  max-width:58ch;
}

.step{ display:none; }
.step.is-active{ display:block; animation:stepIn .34s cubic-bezier(.4,0,.2,1); }
@keyframes stepIn{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:none; }
}

.block + .block{ margin-top:18px; }
.block-label{
  display:block;
  font-size:14px;
  font-weight:600;
  color:var(--ink-soft);
  margin-bottom:10px;
}
.block-error{
  display:none;
  margin-top:9px;
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  color:var(--error);
}
.block-error.show{ display:block; }

.reveal{
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .4s ease, opacity .3s ease, margin .3s ease;
}
.reveal.open{ max-height:1600px; opacity:1; margin-top:20px; }

.choice-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(168px, 1fr)); gap:12px; }
.choice-grid.two{ grid-template-columns:repeat(2, 1fr); }
.choice-grid.three{ grid-template-columns:repeat(auto-fit, minmax(150px, 230px)); justify-content:start; }
.choice{
  font-family:inherit;
  text-align:center;
  background:var(--white);
  border:1px solid var(--line-soft);
  border-radius:var(--radius-card);
  padding:16px 14px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
}
@media (hover: hover){
  .choice:hover{ border-color:var(--accent-soft); transform:translateY(-2px); box-shadow:0 12px 22px -18px rgba(22,35,61,.7); }
}
.choice-ico{
  width:44px; height:44px;
  border-radius:50%;
  background:var(--paper);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:2px;
  color:var(--accent);
  transition:background .2s ease, color .2s ease;
}
.choice-ico svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.choice-title{ font-family:'Fraunces', serif; font-size:17.5px; font-weight:600; color:var(--ink); line-height:1.25; }
.choice-desc{ font-size:13px; line-height:1.45; color:var(--ink-soft); }
.choice.small{ padding:14px 13px; }
.choice.small .choice-ico{ width:37px; height:37px; }
.choice.small .choice-ico svg{ width:18px; height:18px; }
.choice.small .choice-title{ font-size:15.5px; }
.choice.selected{
  border-color:var(--ink);
  background:var(--paper-panel);
  box-shadow:0 0 0 2px rgba(25,45,83,.16);
}
.choice.selected .choice-ico{ background:var(--ink); color:var(--white); }
.choice-grid.invalid .choice{ border-color:var(--error); }

.search{ position:relative; }
.search-ico{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:18px; height:18px;
  fill:none; stroke:var(--muted); stroke-width:1.7; stroke-linecap:round;
  pointer-events:none;
}
.search input[type=text]{
  width:100%;
  height:var(--control-h);
  padding:9px 14px 9px 43px;
  font-family:inherit;
  font-size:15.5px;
  color:var(--ink);
  background:var(--paper-panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  outline:none;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.search input:focus{ border-color:var(--accent); background:var(--white); box-shadow:0 0 0 3px rgba(48,66,136,.15); }
.search input:disabled{ color:#6b7593; cursor:default; }

.career-list{
  margin-top:12px;
  max-height:min(52vh, 560px);
  overflow-y:auto;
  border:1px solid var(--line-soft);
  border-radius:var(--radius-card);
  background:var(--white);
}
.career-list.colapsada{ flex:0 0 auto; min-height:0; overflow:hidden; }
.career-list.colapsada .career-item:not(.selected){ display:none; }
.career-list.colapsada .career-item.selected{ border-bottom:none; }
.career-list.colapsada .career-item .arrow{ display:none; }
.career-list.colapsada .career-item.selected::after{
  content:"Cambiar";
  margin-left:auto;
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.7;
}
.career-list::-webkit-scrollbar{ width:8px; }
.career-list::-webkit-scrollbar-thumb{ background:var(--line); border-radius:8px; }
.career-item{
  width:100%;
  font-family:inherit;
  text-align:left;
  background:none;
  border:none;
  border-bottom:1px solid var(--line-soft);
  padding:13px 17px;
  display:flex;
  align-items:center;
  gap:11px;
  cursor:pointer;
  color:var(--ink);
  font-size:15.5px;
  line-height:1.35;
  transition:background .18s ease, color .18s ease;
}
.career-item:last-child{ border-bottom:none; }
.career-item .arrow{
  margin-left:auto;
  width:17px; height:17px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
  opacity:0;
  transition:opacity .18s ease, transform .18s ease;
}
@media (hover: hover){
  .career-item:hover{ background:var(--paper-panel); }
  .career-item:hover .arrow{ opacity:.7; transform:translateX(3px); }
}
.career-item.selected{ background:var(--ink); color:var(--white); }
.career-item.selected .arrow{ opacity:1; }
.career-list.invalid{ border-color:var(--error); }
.loading{ padding:16px; font-size:14.5px; color:var(--muted); }

.grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.grid-dir{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:2.4fr 1fr 1.8fr;
  gap:14px 16px;
}
.field.cond{ display:none; }
.field.cond.open{ display:flex; }
label{ font-size:14px; font-weight:600; color:var(--ink-soft); }
label .hint{ font-weight:400; color:#6b7593; font-size:12.5px; }
input[type=text], input[type=tel], input[type=email], select, textarea{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:15.5px;
  line-height:1.45;
  padding:10px 13px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper-panel);
  color:var(--ink);
  outline:none;
  width:100%;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
input[type=text], input[type=tel], input[type=email], select{ height:var(--control-h); }
input::placeholder, textarea::placeholder{ color:#8a93ad; }
select{
  appearance:none; -webkit-appearance:none;
  cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23304288' stroke-width='1.6' fill='none' fill-rule='evenodd'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:34px;
}
select option{ color:var(--ink-soft); }
select option:disabled{ color:#8a93ad; }
select:disabled{ color:#6b7593; -webkit-text-fill-color:#6b7593; opacity:1; cursor:default; }
input:focus, select:focus, textarea:focus{
  border-color:var(--accent);
  background-color:var(--white);
  box-shadow:0 0 0 3px rgba(48,66,136,.15);
}
textarea{ background:var(--white); resize:vertical; min-height:80px; }
input.invalid, select.invalid, textarea.invalid{ border-color:var(--error); background-color:#fbecea; }
input.valid-ok{ border-color:var(--ok); }
.date-wrap{ position:relative; display:block; }
.date-wrap input[type=text]{ padding-right:44px; }
.date-pick{
  position:absolute;
  top:0;
  right:0;
  height:var(--control-h);
  width:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:none;
  color:var(--accent);
  cursor:pointer;
  border-radius:var(--radius);
}
.date-pick .ico{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media (hover: hover){ .date-pick:hover{ color:var(--ink); } }
.date-pick:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }
#nacimientoPicker{
  position:absolute;
  right:10px;
  bottom:0;
  width:1px;
  height:1px;
  padding:0;
  border:0;
  opacity:0;
  pointer-events:none;
}
.field-error{
  font-size:12.5px;
  color:var(--error);
  font-family:'IBM Plex Mono', monospace;
  min-height:15px;
  display:none;
}
.field-error.show{ display:block; }
.field-sug{
  display:none;
  font-size:12.5px;
  color:var(--ink-soft);
  margin-top:2px;
}
.field-sug.show{ display:block; }
.field-sug button{
  font-family:'IBM Plex Sans', sans-serif;
  font-size:12.5px;
  font-weight:600;
  color:var(--accent);
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
  text-decoration:underline;
}
@media (hover: hover){ .field-sug button:hover{ color:var(--ink); } }

.check-card{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:15px 17px;
  background:var(--paper-panel);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  transition:border-color .15s ease;
}
.check-card + .check-card{ margin-top:10px; }
@media (hover: hover){ .check-card:hover{ border-color:var(--line); } }
.check-card input[type=checkbox]{
  margin-top:2px;
  width:17px; height:17px;
  accent-color:var(--accent);
  flex:0 0 auto;
  cursor:pointer;
}
.check-card label{ font-size:15px; font-weight:400; color:var(--ink); line-height:1.45; cursor:pointer; }

.summary{
  margin-top:20px;
  border:1px solid var(--line-soft);
  border-radius:var(--radius-card);
  background:var(--paper-panel);
  overflow:hidden;
}
.summary-head{
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  padding:11px 16px;
  border-bottom:1px solid var(--line-soft);
  background:var(--white);
}
.summary dl{ display:grid; grid-template-columns:1fr 1fr; }
.summary dl > div{ padding:10px 16px; border-bottom:1px solid var(--line-soft); }
.summary dl > div:nth-child(odd){ border-right:1px solid var(--line-soft); }
.summary dt{ font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:3px; }
.summary dd{ font-size:15px; color:var(--ink); line-height:1.4; }

.form-done{
  display:none;
  align-items:center;
  gap:14px;
  padding:22px 20px;
  background:#eef4ea;
  border:1px solid #b9ccad;
  border-radius:var(--radius-card);
}
.form-done.show{ display:flex; }
.done-check{
  width:37px; height:37px;
  border-radius:50%;
  background:var(--ok);
  display:flex; align-items:center; justify-content:center;
  flex:0 0 auto;
}
.done-check svg{ width:20px; height:20px; fill:none; stroke:#fff; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.done-title{ font-family:'Fraunces', serif; font-size:19.5px; font-weight:600; color:#33482a; }
.done-text{ font-size:15px; color:var(--ok); margin-top:3px; }
.form-prueba{
  display:none;
  align-items:center;
  gap:11px;
  margin-top:12px;
  padding:15px 18px;
  background:#fbecea;
  border:1px solid #dfaea6;
  border-radius:var(--radius-card);
  font-size:15px;
  font-weight:500;
  line-height:1.4;
  color:var(--error);
}
.form-prueba.show{ display:flex; }
.btn-reiniciar{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:var(--radius);
  cursor:pointer;
  display:none;
  align-items:center;
  gap:8px;
  background:none;
  border:1px solid var(--line);
  color:var(--ink-soft);
  padding:12px 18px;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .1s ease;
}
.btn-reiniciar.show{ display:inline-flex; }
.btn-reiniciar .ico{
  width:17px; height:17px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round;
}
@media (hover: hover){ .btn-reiniciar:hover{ color:var(--ink); border-color:var(--ink); } }
.btn-reiniciar:active{ transform:translateY(1px); }
.form-prueba svg{
  width:22px; height:22px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round;
}

.card-nav{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px var(--card-pad) 16px;
  border-top:1px solid var(--line-soft);
  background:var(--paper-panel);
}
.card-nav.final{
  border-top-color:transparent;
  background:var(--white);
}
.btn-ghost, .btn-main{
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:var(--radius);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .1s ease, opacity .2s ease;
}
.btn-ghost .ico, .btn-main .ico{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.btn-ghost{
  background:none;
  border:1px solid transparent;
  color:var(--ink-soft);
  padding:12px 16px;
}
@media (hover: hover){ .btn-ghost:hover{ color:var(--ink); border-color:var(--line); } }
.btn-ghost[disabled]{ opacity:.35; cursor:default; }
@media (hover: hover){ .btn-ghost[disabled]:hover{ color:var(--ink-soft); border-color:transparent; } }
.btn-main{
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--ink);
  padding:14px 30px;
  font-weight:500;
}
@media (hover: hover){ .btn-main:hover{ background:var(--accent); border-color:var(--accent); } }
.btn-main:active{ transform:translateY(1px); }
.btn-main[disabled]{ opacity:.6; cursor:default; transform:none; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

@media (min-width: 981px) and (pointer: fine){
  .topbar-reloj{ display:block; }
  .card-body{ display:flex; flex-direction:column; }
  .step.is-active{ flex:1 1 auto; min-height:0; }
  .step[data-step="2"].is-active{ display:flex; flex-direction:column; }
  .step[data-step="2"] > .block{ flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
  .step[data-step="2"] > .block.colapsada{ flex:0 0 auto; }
  .career-list{ flex:1 1 auto; min-height:120px; max-height:none; }
}

@media (max-height: 820px){
  .card-head{ margin-bottom:16px; }
  .card-head h1{ font-size:25px; }
  .card-head p{ font-size:14.5px; }
  .card-body{ padding-block:20px 18px; }
  .card-nav{ padding-block:12px 14px; }
  .choice{ padding:13px 12px; }
  .choice-ico{ width:39px; height:39px; margin-bottom:0; }
  .choice-ico svg{ width:20px; height:20px; }
  .panel{ padding-block:16px; }
}

@media (max-width: 1279px){
  :root{ --rail-w:230px; }
  .rail-head{ padding:0 18px 14px; }
  .rail-item{ padding:10px 18px; }
  .rail-foot{ padding:20px 18px 0; }
  .rail-social{ gap:9px; }
  .rail-soc{ width:40px; height:40px; }
  .rail-soc svg{ width:19px; height:19px; }
}

@media (max-width: 980px), (pointer: coarse){
  :root{ --control-h:50px; }
  .topbar{ padding-inline:14px; gap:10px; }
  .topbar-social{ display:flex; gap:6px; }
  .topbar-soc{ width:34px; height:34px; }
  .topbar-soc svg{ width:17px; height:17px; }
  html, body{ height:auto; }
  body{ overflow:auto; min-height:100vh; min-height:100dvh; background:#10182a; }
  .stage{ grid-template-columns:1fr; grid-template-rows:auto 1fr; }
  .stage-bg{ position:fixed; }
  .idle-veil{ position:fixed; }
  .rail{
    overflow:visible;
    padding:0;
    position:sticky;
    top:0;
    min-width:0;
    z-index:6;
    background:var(--ink);
    transition:transform .28s ease, box-shadow .28s ease;
  }
  .rail.compacta{ box-shadow:0 6px 18px rgba(6,12,26,.34); }
  .rail.oculta{ transform:translateY(-102%); }
  .rail::after{ display:none; }
  .rail-head, .rail-foot{ display:none; }
  .rail-nav{
    flex-direction:row;
    overflow-x:auto;
    padding:8px 10px;
    gap:4px;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-mask-image:linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
    mask-image:linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
  }
  .rail-nav::-webkit-scrollbar{ display:none; }
  .rail-item{
    border-left:none;
    border-bottom:3px solid transparent;
    white-space:nowrap;
    padding:11px 16px;
    min-height:46px;
    font-size:14px;
  }
  .rail-item span{ flex:0 0 auto; }
  .rail-item.active{ border-bottom-color:var(--accent-soft); }
  .panel{ padding:20px 14px 32px; min-width:0; }
  .card{ max-width:none; max-height:none; }
  .card-body{ overflow:visible; padding:22px 20px 18px; }
  .card-nav{ padding:14px 20px 18px; }
  .grid{ grid-template-columns:1fr; }
  .grid-dir{ grid-template-columns:1fr; }
  .choice-grid, .choice-grid.two, .choice-grid.three{ grid-template-columns:1fr; }
  .summary dl{ grid-template-columns:1fr; }
  .summary dl > div:nth-child(odd){ border-right:none; }

  input[type=text], input[type=tel], input[type=email],
  select, textarea{
    font-size:16.5px;
    padding:11px 13px;
  }
  .search input[type=text]{ font-size:16.5px; padding:11px 13px 11px 40px; }

  .btn-main, .btn-ghost{ min-height:50px; font-size:14px; }
  .btn-main{ flex:1 1 auto; justify-content:center; padding:12px 20px; }
  .btn-ghost{ padding:12px 18px; }
  .check-card{ padding:15px; }
  .check-card input[type=checkbox]{ width:22px; height:22px; margin-top:1px; }
  .career-item{ min-height:50px; }
  .choice{ min-height:50px; }
  label{ font-size:15px; }

  .reveal, .field.cond, .card{ scroll-margin-top:74px; }
}

@media (max-width: 380px){
  .brand-logo{ width:34px; height:34px; }
  .brand-name{ font-size:14px; }
  .topbar-social{ gap:5px; }
  .topbar-soc{ width:31px; height:31px; }
  .topbar-soc svg{ width:16px; height:16px; }
}

@media (pointer: coarse) and (min-width: 700px){
  .panel{ padding:24px 22px 40px; }
  .card{ max-width:860px; }
  .grid{ grid-template-columns:1fr 1fr; }
  .grid-dir{ grid-template-columns:2.4fr 1fr 1.8fr; }
  .choice-grid.two{ grid-template-columns:repeat(2, 1fr); }
  .choice-grid.three{ grid-template-columns:repeat(auto-fit, minmax(150px, 230px)); }
  .summary dl{ grid-template-columns:1fr 1fr; }
  .summary dl > div:nth-child(odd){ border-right:1px solid var(--line-soft); }
}

@media (prefers-reduced-motion: reduce){
  .step.is-active{ animation:none; }
  .idle-marca{ animation:none; opacity:.55; }
  .stage-slide, .stage-slide.on{ transition:opacity .01s linear; transform:none; }
  *{ transition-duration:.01s !important; }
}

body.embed .topbar{ display:none; }
body.embed .panel{ padding:18px 16px; }
body.embed .card{ box-shadow:none; }
