.rv { padding: clamp(24px, 4vw, 56px) 0 clamp(40px, 6vw, 80px); background: var(--green-50, #F1FAF5); min-height: 70vh; }
.rv__wrap { width: min(760px, 100% - 2rem); margin-inline: auto; background: #fff; border-radius: 22px; padding: clamp(20px, 4vw, 40px); box-shadow: 0 10px 40px rgba(24, 88, 58, .12); position: relative; }
.rv__head h1 { margin: 0 0 .4rem; font-size: clamp(1.7rem, 1.2rem + 2vw, 2.4rem); font-weight: 800; letter-spacing: -.02em; }
.rv__head p { margin: 0 0 1.2rem; color: #4b5a52; }
.rv__pasos { display: flex; gap: 8px; list-style: none; padding: 0; margin: 0 0 1.6rem; }
.rv__pasos li { flex: 1; height: 8px; border-radius: 99px; background: #dcebe2; transition: background .25s; }
.rv__pasos li.is-on { background: var(--green-600, #2A8250); }
.rv__panel[hidden], .rv [hidden] { display: none !important; }
.rv__panel h2 { margin: 0 0 1rem; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.8rem); font-weight: 750; }
.rv__input { width: 100%; font: inherit; font-size: 1.25rem; padding: 16px 18px; border: 2px solid #c5d6cc; border-radius: 14px; background: #fff; color: #17221c; }
.rv__input:focus { outline: none; border-color: var(--green-600, #2A8250); box-shadow: 0 0 0 4px rgba(42, 130, 80, .18); }
.rv__input--dni { font-size: 2rem; letter-spacing: .25em; text-align: center; font-weight: 700; }
.rv__label { display: block; margin: 1.1rem 0 .4rem; font-weight: 650; }
.rv__label small { font-weight: 400; color: #5b6a62; }
.rv__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.rv__opt, .rv__btn { font: inherit; font-size: 1.1rem; font-weight: 650; min-height: 64px; padding: 14px 18px; border-radius: 16px; border: 2px solid #c5d6cc; background: #fff; color: #17221c; cursor: pointer; text-align: center; transition: transform .08s, background .15s, border-color .15s; }
.rv__opt:hover, .rv__btn:hover { background: var(--green-50, #F1FAF5); border-color: var(--green-brand, #2E8B57); }
.rv__opt:active, .rv__btn:active { transform: scale(.98); }
.rv__opt--suave { background: #f4f6f5; border-style: dashed; }
.rv__btn--main, .rv__btn--ok { background: var(--green-600, #2A8250); border-color: var(--green-600, #2A8250); color: #fff; min-width: 200px; }
.rv__btn--main:hover, .rv__btn--ok:hover { background: var(--green-700, #1F6B43); color: #fff; }
.rv__btn--grande { min-width: 150px; min-height: 80px; font-size: 1.6rem; }
.rv__fila { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 1rem; }
.rv__fila--fin { justify-content: flex-end; }
.rv__fila--centro { justify-content: center; }
.rv__conocido { margin-top: 1.2rem; padding: 18px; border-radius: 16px; background: var(--green-50, #F1FAF5); text-align: center; font-size: 1.2rem; }
.rv__conocido .rv__fila { justify-content: center; }
.rv__atras { margin-top: 1.4rem; background: none; border: 0; font: inherit; color: #3c5247; cursor: pointer; padding: 12px 6px; text-decoration: underline; }
.rv__error { margin: .9rem 0 0; padding: 12px 14px; border-radius: 12px; background: #fdecec; color: #8a1c1c; font-weight: 600; }
.rv__ok { margin: .9rem 0 0; padding: 12px 14px; border-radius: 12px; background: #e3f4ea; color: #18583A; font-weight: 700; }
.rv__listo { text-align: center; }
.rv__listo p { font-size: 1.15rem; margin: .4rem 0; }
.rv__aviso { color: #4b5a52; font-size: 1rem !important; }
.rv__check { width: 96px; height: 96px; margin: 0 auto 1rem; border-radius: 50%; background: var(--green-600, #2A8250); color: #fff; font-size: 3.4rem; line-height: 96px; font-weight: 800; }
.rv__listo .rv__btn { margin-top: 1.2rem; }
.rv__pie { margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid #e3ece6; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.rv__pie small { color: #5b6a62; max-width: 46ch; }
.rv__salida { font: inherit; font-weight: 650; padding: 12px 20px; border-radius: 99px; border: 2px solid var(--green-brand, #2E8B57); background: #fff; color: var(--green-700, #1F6B43); cursor: pointer; }
.rv__salida:hover { background: var(--green-50, #F1FAF5); }
.rv__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
@media (max-width: 520px) { .rv__grid { grid-template-columns: 1fr; } .rv__btn--main { width: 100%; } .rv__input--dni { font-size: 1.6rem; } }
.rv__opt.is-sel{background:var(--green-600,#2A8250);border-color:var(--green-600,#2A8250);color:#fff}
textarea.rv__input{resize:vertical;min-height:120px}
.rv__opt.is-sel:hover{background:var(--green-700,#1F6B43);border-color:var(--green-700,#1F6B43);color:#fff}
