.portada { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 4rem; align-items: center; padding: 4rem 0 4.5rem; }
.portada h1 { max-width: 19ch; font-size: clamp(2.2rem, 4vw, 3.4rem); }
.buscador { margin-top: 2.2rem; }
.buscador label { display: block; font-weight: 500; margin-bottom: .55rem; }
.buscador-fila { display: flex; align-items: center; gap: .6rem; border: 1px solid var(--linea-2); border-radius: 4px; padding: .35rem .35rem .35rem .9rem; background: #fff; }
.buscador-fila:focus-within { border-color: var(--tinta); }
.buscador-fila svg { width: 16px; height: 16px; fill: var(--verde); flex: none; }
.buscador-fila input { flex: 1; min-width: 0; border: 0; padding: .6rem 0; font-size: 16px; background: transparent; }
.buscador-fila input:focus { outline: none; }
.buscador-fila .btn { height: 44px; }
.buscador p { margin: .55rem 0 0; }
.atajos { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin-top: 2rem; padding-top: 1.1rem; border-top: 1px solid var(--linea); }
.atajos a { text-decoration: none; font-weight: 500; }
.atajos a span { color: var(--gris); font-weight: 400; }
.atajos a:hover { color: var(--verde); }
.portada-foto { margin: 0; }
.portada-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
.portada-foto figcaption { font-size: 14px; color: var(--gris); margin-top: .55rem; }
.portada-foto figcaption a { color: var(--tinta); }

.bloque { padding: 3.5rem 0; }
.bloque-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1.8rem; }

.tasar { background: var(--papel); padding: 5rem 0; margin-top: 2rem; }
.tasar-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4.5rem; align-items: start; }
.lead { font-size: 1.15rem; margin-top: 1.1rem; }
.pasos { background: #fff; border: 1px solid var(--linea); border-radius: 3px; padding: 1.8rem; }
.indicador { list-style: none; display: flex; gap: 1.2rem; padding: 0 0 1rem; margin: 0 0 1.4rem; border-bottom: 1px solid var(--linea); font-size: 14px; color: var(--gris); counter-reset: paso; }
.indicador li { counter-increment: paso; }
.indicador li::before { content: counter(paso) ". "; }
.indicador li.activo { color: var(--tinta); font-weight: 500; }
.indicador li.hecho { color: var(--verde); }
fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: .9rem; }
legend { font-weight: 500; font-size: 1.05rem; margin-bottom: .2rem; padding: 0; }
legend.seg { margin-top: .8rem; }
fieldset label { display: grid; gap: .3rem; font-size: 14px; color: var(--gris); }
.opciones { display: flex; flex-wrap: wrap; gap: .5rem; }
.opciones label { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--linea-2); border-radius: 3px; padding: .5rem .8rem; color: var(--tinta); font-size: 15px; cursor: pointer; }
.opciones label:has(input:checked) { border-color: var(--verde); background: var(--verde-f); }
.opciones input { accent-color: var(--verde); }
.dos { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.pasos-botones { display: flex; justify-content: space-between; gap: .6rem; margin-top: 1.4rem; }
.pasos-botones .btn:last-child { margin-left: auto; }
.error { color: #9b2c1c; font-size: 14px; margin: .8rem 0 0; }
.listo h3 { font-size: 1.3rem; margin-bottom: .4rem; }

.oficina { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4rem; padding-top: 5rem; }
.ficha-of { margin: 0; border-top: 1px solid var(--tinta); }
.ficha-of div { display: grid; grid-template-columns: 12rem 1fr; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--linea); }
.ficha-of dt { color: var(--gris); }
.ficha-of dd { margin: 0; }

@media (max-width: 1000px) {
  .portada, .tasar-in, .oficina { grid-template-columns: 1fr; gap: 2.4rem; }
  .portada { padding-top: 2.4rem; }
  .portada-foto img { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) {
  .buscador-fila { flex-wrap: wrap; padding: .5rem; }
  .buscador-fila input { width: calc(100% - 30px); }
  .buscador-fila .btn { width: 100%; }
  .ficha-of div { grid-template-columns: 1fr; gap: .1rem; }
  .pasos { padding: 1.2rem; }
  .indicador { gap: .7rem; font-size: 13px; }
}
