/* ===================================================
   MotorHeritage — Asistente de solicitud (solicitud.html)
   =================================================== */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.wz-section { padding: 3rem 0 5rem; }

/* Pasos */
.wz-stepper { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; margin: 0 0 .9rem; padding: 0; list-style: none; }
.wz-stepper li { list-style: none; }
.wz-stepper button {
  width: 100%; display: flex; align-items: center; gap: .6rem; padding: .55rem .7rem; border-radius: 12px;
  background: transparent; border: 1px solid transparent; color: var(--color-text-subtle); cursor: pointer;
  font: 500 .88rem var(--font-body); text-align: left; transition: color .25s, background .25s, border-color .25s;
}
.wz-stepper button:disabled { cursor: default; }
.wz-stepper .n {
  flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  font-size: .8rem; font-weight: 700; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.03);
  transition: all .35s var(--mh-ease, ease);
}
.wz-stepper li.done .n { background: rgba(43,184,148,.2); border-color: rgba(123,224,195,.5); color: #7be0c3; }
.wz-stepper li.done .n { font-size: 0; }
.wz-stepper li.done .n::before { content: "✓"; font-size: .85rem; }
.wz-stepper li.done button { color: var(--color-text-muted); }
.wz-stepper li.current button { color: #fff; background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
.wz-stepper li.current .n { background: var(--mh-grad, #1F6F5E); color: #04110d; border-color: transparent; box-shadow: 0 0 0 5px rgba(43,184,148,.15); }
.wz-bar { height: 3px; border-radius: 3px; background: rgba(255,255,255,.06); overflow: hidden; margin-bottom: 2rem; }
.wz-bar span { display: block; height: 100%; width: 0; background: var(--mh-grad, #2bb894); transition: width .6s var(--mh-ease, ease); box-shadow: 0 0 12px rgba(43,184,148,.5); }
@media (max-width: 760px) {
  .wz-stepper .l { display: none; }
  .wz-stepper button { justify-content: center; padding: .4rem; }
  .wz-stepper li.current .l { display: none; }
}

/* Distribución */
.wz-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.5rem; align-items: start; }
@media (max-width: 980px) { .wz-layout { grid-template-columns: 1fr; } .wz-side { order: 2; } }
.wz-card { padding: 2rem; border-radius: var(--radius-xl, 24px); }
@media (max-width: 600px) { .wz-card { padding: 1.25rem; } }
.wz-count { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mh-accent-2, #7be0c3); margin: 0 0 .5rem; }
.wz-step { border: 0; padding: 0; margin: 0; min-width: 0; animation: wz-in .45s var(--mh-ease, ease); }
@keyframes wz-in { from { opacity: 0; transform: translateX(14px); } }
.wz-step.back { animation-name: wz-in-back; }
@keyframes wz-in-back { from { opacity: 0; transform: translateX(-14px); } }
.wz-title { font-family: var(--font-heading); font-size: 1.6rem; color: #fff; margin: 0 0 .35rem; padding: 0; }
.wz-sub { color: var(--color-text-muted); margin: 0 0 1.5rem; font-size: .95rem; }
.wz-hint { display: block; margin-top: .4rem; font-size: .78rem; color: var(--color-text-subtle); min-height: 1em; }
.wz-age { color: var(--mh-accent-2, #7be0c3); }
.wz-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; letter-spacing: .06em; text-transform: uppercase; }
.form-group input.wz-invalid, .form-group textarea.wz-invalid { border-color: rgba(255,107,107,.75) !important; box-shadow: 0 0 0 4px rgba(255,107,107,.12) !important; }

/* Tarjetas de anexo */
.wz-anexos { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 700px) { .wz-anexos { grid-template-columns: 1fr; } }
.wz-anexo {
  position: relative; display: flex; flex-direction: column; gap: .6rem; padding: 1.2rem 1.2rem 1rem;
  border-radius: 16px; cursor: pointer; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.09);
  transition: border-color .25s, background .25s, transform .25s var(--mh-ease, ease), box-shadow .25s;
}
.wz-anexo:hover { border-color: rgba(123,224,195,.35); transform: translateY(-2px); }
.wz-anexo input { position: absolute; opacity: 0; pointer-events: none; }
.wz-anexo:has(input:focus-visible) { outline: 2px solid #7be0c3; outline-offset: 3px; }
.wz-anexo.selected { border-color: rgba(123,224,195,.8); background: linear-gradient(160deg, rgba(43,184,148,.14), rgba(216,180,106,.05)); box-shadow: 0 12px 40px rgba(43,184,148,.15); }
.wz-anexo.recommended::before {
  content: attr(data-rec); position: absolute; top: -10px; right: 14px; font-size: .68rem; font-weight: 700; letter-spacing: .06em;
  padding: .25rem .55rem; border-radius: 999px; color: #04110d; background: var(--mh-grad, #2bb894);
}
.wz-anexo-head { display: flex; align-items: center; gap: .75rem; }
.wz-anexo-ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #7be0c3; background: rgba(43,184,148,.1); border: 1px solid rgba(123,224,195,.2); }
.wz-anexo-head .tx { flex: 1; min-width: 0; }
.wz-anexo-head small { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mh-accent-2, #7be0c3); font-weight: 600; }
.wz-anexo-head strong { display: block; color: #fff; font-size: 1rem; line-height: 1.3; }
.wz-radio { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid rgba(255,255,255,.25); display: grid; place-items: center; transition: all .25s; }
.wz-anexo.selected .wz-radio { border-color: #7be0c3; }
.wz-anexo.selected .wz-radio::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #7be0c3; box-shadow: 0 0 10px #2bb894; }
.wz-anexo p { margin: 0; font-size: .87rem; color: var(--color-text-muted); line-height: 1.55; }
.wz-mode { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; color: var(--color-text-muted); }
.wz-mode svg { width: 14px; height: 14px; color: #7be0c3; }
.wz-more { align-self: flex-start; background: none; border: 0; padding: .2rem 0; color: #7be0c3; font: 600 .8rem var(--font-body); cursor: pointer; display: inline-flex; gap: .3rem; align-items: center; }
.wz-more svg { width: 14px; height: 14px; transition: transform .3s; }
.wz-more[aria-expanded="true"] svg { transform: rotate(180deg); }
.wz-details { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--mh-ease, ease); }
.wz-details.open { grid-template-rows: 1fr; }
.wz-details > div { overflow: hidden; }
.wz-details h4 { font-family: var(--font-body); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-subtle); margin: .8rem 0 .4rem; }
.wz-details ul { margin: 0; padding: 0; }
.wz-details li { list-style: none; position: relative; padding-left: 1.1rem; font-size: .84rem; color: var(--color-text); margin: .25rem 0; line-height: 1.5; }
.wz-details li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 2px; background: #2bb894; }

/* Asistente de elección */
.wz-helper { margin-top: 1.5rem; padding: 1.1rem 1.2rem; border-radius: 16px; border: 1px dashed rgba(123,224,195,.3); background: rgba(43,184,148,.04); }
.wz-helper-head { display: flex; align-items: center; gap: 1rem; }
.wz-helper-head > div:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.wz-helper-head strong { color: #fff; }
.wz-helper-ic { flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #d8b46a; background: rgba(216,180,106,.1); border: 1px solid rgba(216,180,106,.25); }
.wz-helper-ic svg { width: 22px; height: 22px; }
.wz-helper-body { margin-top: 1.1rem; }
.wz-q { animation: wz-in .35s var(--mh-ease, ease); }
.wz-q-trail { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .8rem; }
.wz-q-trail span { font-size: .72rem; padding: .2rem .55rem; border-radius: 999px; background: rgba(255,255,255,.05); color: var(--color-text-muted); }
.wz-q p.q { color: #fff; font-weight: 600; margin: 0 0 .8rem; font-size: 1rem; }
.wz-q-opts { display: flex; flex-wrap: wrap; gap: .6rem; }
.wz-q-opts button {
  padding: .6rem 1.1rem; border-radius: 12px; cursor: pointer; font: 500 .9rem var(--font-body); color: var(--color-text);
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); transition: all .2s;
}
.wz-q-opts button:hover, .wz-q-opts button:focus-visible { border-color: #7be0c3; background: rgba(43,184,148,.12); color: #fff; }
.wz-rec { padding: 1rem 1.1rem; border-radius: 14px; background: linear-gradient(140deg, rgba(43,184,148,.14), rgba(216,180,106,.06)); border: 1px solid rgba(123,224,195,.3); }
.wz-rec .k { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #7be0c3; }
.wz-rec h4 { margin: .25rem 0 .4rem; font-size: 1.15rem; color: #fff; }
.wz-rec p { margin: 0 0 .9rem; font-size: .88rem; color: var(--color-text-muted); }
.wz-rec .acts { display: flex; flex-wrap: wrap; gap: .6rem; }
.wz-link { background: none; border: 0; padding: 0; color: var(--color-text-muted); font: 500 .82rem var(--font-body); text-decoration: underline; cursor: pointer; margin-top: .8rem; }

/* Archivos */
.wz-checklist { margin-bottom: 1.2rem; padding: 1rem 1.15rem; border-radius: 14px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); }
.wz-checklist strong { display: block; font-size: .82rem; color: #fff; margin-bottom: .5rem; }
.wz-checklist ul { margin: 0; padding: 0; display: grid; gap: .3rem; }
.wz-checklist li { list-style: none; font-size: .85rem; color: var(--color-text-muted); display: flex; gap: .5rem; }
.wz-checklist li::before { content: "◇"; color: #d8b46a; }
.wz-drop {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; text-align: center;
  padding: 2.2rem 1rem; border-radius: 18px; cursor: pointer; border: 1.5px dashed rgba(255,255,255,.2); background: rgba(255,255,255,.02);
  transition: border-color .25s, background .25s, transform .25s;
}
.wz-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.wz-drop svg { width: 38px; height: 38px; color: #7be0c3; transition: transform .35s var(--mh-ease, ease); }
.wz-drop strong { color: #fff; font-size: .95rem; }
.wz-drop small { color: var(--color-text-subtle); font-size: .78rem; }
.wz-drop:hover, .wz-drop.drag { border-color: #7be0c3; background: rgba(43,184,148,.07); }
.wz-drop.drag { transform: scale(1.01); }
.wz-drop.drag svg, .wz-drop:hover svg { transform: translateY(-4px); }
.wz-drop:has(input:focus-visible) { outline: 2px solid #7be0c3; outline-offset: 3px; }
.wz-files { margin: 1rem 0 0; padding: 0; display: grid; gap: .6rem; }
.wz-files li { list-style: none; display: flex; align-items: center; gap: .8rem; padding: .6rem .7rem; border-radius: 12px; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.07); animation: wz-in .3s ease; }
.wz-thumb { flex: none; width: 44px; height: 44px; border-radius: 9px; overflow: hidden; display: grid; place-items: center; background: rgba(43,184,148,.12); color: #7be0c3; font: 700 .65rem var(--font-body); letter-spacing: .05em; }
.wz-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wz-files .meta { flex: 1; min-width: 0; }
.wz-files .meta span { display: block; font-size: .87rem; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-files .meta small { color: var(--color-text-subtle); font-size: .75rem; }
.wz-files button { flex: none; background: none; border: 1px solid rgba(255,255,255,.12); color: var(--color-text-muted); border-radius: 8px; padding: .35rem .6rem; font: 500 .78rem var(--font-body); cursor: pointer; }
.wz-files button:hover { color: #ff8a8a; border-color: rgba(255,107,107,.5); }

/* Revisión */
.wz-summary { display: grid; gap: .8rem; margin-bottom: 1.5rem; }
.wz-sum-block { padding: 1rem 1.1rem; border-radius: 14px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); }
.wz-sum-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.wz-sum-head strong { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: #7be0c3; }
.wz-sum-head button { background: none; border: 0; color: var(--color-text-muted); font: 500 .8rem var(--font-body); cursor: pointer; text-decoration: underline; }
.wz-sum-block dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; font-size: .88rem; }
.wz-sum-block dt { color: var(--color-text-subtle); }
.wz-sum-block dd { margin: 0; color: var(--color-text); word-break: break-word; }
@media (max-width: 520px) { .wz-sum-block dl { grid-template-columns: 1fr; gap: .1rem; } .wz-sum-block dd { margin-bottom: .4rem; } }
.wz-consents { display: grid; gap: .8rem; padding: 1.1rem 1.1rem; border-radius: 14px; border: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.2); }
.wz-consents .form-check { margin: 0; }
.wz-consents .wz-optional span { color: var(--color-text-muted); font-size: .88rem; }
.wz-consents .wz-invalid-check span { color: #ffb3b3; }

/* Navegación */
.wz-nav { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.07); }
.wz-nav #wz-next, .wz-nav #wz-submit { margin-left: auto; min-width: 180px; justify-content: center; }
.wz-nav #wz-back[hidden] + .wz-draft { margin-left: 0; }
.wz-draft { font-size: .75rem; color: var(--color-text-subtle); display: inline-flex; align-items: center; gap: .35rem; }
.wz-draft::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #2bb894; }
@media (max-width: 520px) { .wz-nav { flex-wrap: wrap; } .wz-draft { order: 3; width: 100%; } .wz-nav #wz-next, .wz-nav #wz-submit { min-width: 0; flex: 1; } }
.btn.loading { pointer-events: none; opacity: .85; }
.btn.loading::before { content: ""; width: 16px; height: 16px; margin-right: .6rem; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; animation: wz-spin .8s linear infinite; display: inline-block; vertical-align: -3px; }
@keyframes wz-spin { to { transform: rotate(360deg); } }

/* Lateral */
.wz-side { padding: 1.5rem; border-radius: var(--radius-xl, 24px); position: sticky; top: calc(var(--header-h) + 20px); }
.wz-side h3 { font-size: 1.15rem; margin: 0 0 1rem; }
.wz-side-list { margin: 0 0 1.2rem; display: grid; gap: .75rem; }
.wz-side-list > div { padding-bottom: .75rem; border-bottom: 1px solid rgba(255,255,255,.06); }
.wz-side-list dt { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-subtle); }
.wz-side-list dd { margin: .2rem 0 0; color: #fff; font-size: .9rem; word-break: break-word; transition: color .3s; }
.wz-side-list dd.flash { color: #7be0c3; }
.wz-secure { display: flex; gap: .55rem; align-items: flex-start; font-size: .78rem; color: var(--color-text-muted); margin: 0 0 1rem; }
.wz-secure svg { width: 16px; height: 16px; flex: none; color: #7be0c3; margin-top: .1rem; }
.wz-side .enac-notice { margin: 0; }

/* Éxito */
.wz-success { max-width: 640px; margin: 0 auto; padding: 3rem 2rem; text-align: center; border-radius: var(--radius-xl, 24px); }
.wz-success:focus { outline: none; }
.wz-check svg { width: 84px; height: 84px; margin: 0 auto 1rem; display: block; }
.wz-check circle { fill: none; stroke: #2bb894; stroke-width: 2; stroke-dasharray: 151; stroke-dashoffset: 151; animation: wz-draw .8s .1s var(--mh-ease, ease) forwards; }
.wz-check path { fill: none; stroke: #7be0c3; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: wz-draw .5s .75s ease forwards; }
@keyframes wz-draw { to { stroke-dashoffset: 0; } }
.wz-ref-label { margin: 1.25rem 0 .2rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-text-subtle); }
.wz-ref { font: 700 1.6rem ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .06em; margin: 0 0 1.2rem; background: var(--mh-grad, #2bb894); -webkit-background-clip: text; background-clip: text; color: transparent; }
.wz-ok-actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: 1.75rem; }

/* ---------- Desistimiento (desistimiento.html) ---------- */
.ds-wrap { padding: 3rem 0 5rem; }
.ds-head { max-width: 760px; margin: 0 auto 2rem; text-align: center; }
.ds-head h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin: .4rem 0 1rem; }
.ds-head p { color: var(--color-text-muted); }
.ds-card { max-width: 760px; margin: 0 auto; padding: 2rem; border-radius: var(--radius-xl, 24px); }
@media (max-width: 600px) { .ds-card { padding: 1.25rem; } }
.ds-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds-main-btn { width: 100%; justify-content: center; margin-top: .5rem; font-size: 1.05rem; }
.ds-step h2 { font-size: 1.5rem; margin: 0 0 1rem; }
.ds-decl { padding: 1rem 1.1rem; border-radius: 12px; background: rgba(43,184,148,.08); border: 1px solid rgba(123,224,195,.25); color: #fff; }
.ds-summary { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 1.25rem 0; font-size: .92rem; }
.ds-summary dt { color: var(--color-text-subtle); }
.ds-summary dd { margin: 0; color: var(--color-text); word-break: break-word; }
@media (max-width: 520px) { .ds-summary { grid-template-columns: 1fr; } }
.ds-actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: flex-end; }
.ds-done { text-align: center; }
.ds-done:focus { outline: none; }
.mh-footer-withdraw { color: var(--mh-accent-2, #7be0c3) !important; font-weight: 600; }
