/* ===========================================================
   La Fundición — modal de reserva (fondo CLARO)
   =========================================================== */
:root{
	--lfr-green:#0f6f62;
	--lfr-green-d:#0b5850;
	--lfr-gold:#c9a24b;
	--lfr-ink:#1d2b28;
	--lfr-line:#e4e7e3;
	--lfr-soft:#f4f6f2;
}

.lfr-modal{
	position:fixed;inset:0;z-index:99999;display:none;
	align-items:center;justify-content:center;padding:20px;
}
.lfr-modal.is-open{display:flex;}

/* Fondo CLARO (no oscuro) — velo blanco translúcido con desenfoque */
.lfr-modal__overlay{
	position:absolute;inset:0;
	background:rgba(244,246,242,.72);
	-webkit-backdrop-filter:blur(6px);
	backdrop-filter:blur(6px);
}

.lfr-modal__dialog{
	position:relative;width:100%;max-width:520px;
	max-height:calc(100vh - 40px);overflow:auto;
	background:#fff;border:1px solid var(--lfr-line);
	border-radius:20px;
	box-shadow:0 30px 70px -25px rgba(15,111,98,.35), 0 8px 24px rgba(0,0,0,.08);
	padding:30px 30px 24px;
	animation:lfr-pop .28s cubic-bezier(.2,.8,.2,1);
}
@keyframes lfr-pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lfr-modal__dialog{animation:none}}

.lfr-modal__x{
	position:absolute;top:14px;right:16px;border:0;background:transparent;
	font-size:30px;line-height:1;color:#9aa39d;cursor:pointer;padding:4px 8px;border-radius:8px;
}
.lfr-modal__x:hover{color:var(--lfr-green);background:var(--lfr-soft);}

.lfr-modal__head{margin-bottom:18px;}
.lfr-modal__eyebrow{
	display:inline-block;font-size:11px;letter-spacing:.14em;font-weight:700;
	color:var(--lfr-green);text-transform:uppercase;margin-bottom:8px;
}
.lfr-modal__title{margin:0;font-size:24px;line-height:1.15;color:var(--lfr-ink);}
.lfr-modal__course{margin:6px 0 0;font-size:14px;color:#5c665f;font-weight:600;}
.lfr-modal__bar{margin-top:16px;height:6px;border-radius:99px;background:var(--lfr-soft);overflow:hidden;}
.lfr-modal__bar-fill{display:block;height:100%;width:33%;border-radius:99px;
	background:linear-gradient(90deg,var(--lfr-green),var(--lfr-gold));transition:width .35s ease;}

/* pasos */
.lfr-step{display:none;}
.lfr-step.is-active{display:block;animation:lfr-fade .3s ease;}
@keyframes lfr-fade{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
.lfr-step__intro{margin:0 0 12px;font-weight:700;color:var(--lfr-ink);font-size:15px;}

.lfr-field{margin-bottom:14px;}
.lfr-field label{display:block;font-size:13px;font-weight:600;color:var(--lfr-ink);margin-bottom:6px;}
.lfr-req{color:#c0392b;}
.lfr-opt{color:#9aa39d;font-weight:500;}
.lfr-field input,.lfr-field textarea{
	width:100%;box-sizing:border-box;border:1.5px solid var(--lfr-line);border-radius:12px;
	padding:12px 14px;font-size:15px;color:var(--lfr-ink);background:#fff;font-family:inherit;
	transition:border-color .18s,box-shadow .18s;
}
.lfr-field input:focus,.lfr-field textarea:focus{
	outline:0;border-color:var(--lfr-green);box-shadow:0 0 0 3px rgba(15,111,98,.14);
}
.lfr-field textarea{resize:vertical;}

/* horarios (radios como tarjetas) */
.lfr-horarios{display:flex;flex-direction:column;gap:10px;}
.lfr-horario{
	display:flex;align-items:center;gap:12px;border:1.5px solid var(--lfr-line);
	border-radius:12px;padding:13px 15px;cursor:pointer;transition:border-color .16s,background .16s;
}
.lfr-horario:hover{border-color:var(--lfr-green);background:var(--lfr-soft);}
.lfr-horario input{accent-color:var(--lfr-green);width:18px;height:18px;flex:0 0 auto;}
.lfr-horario.is-sel{border-color:var(--lfr-green);background:rgba(15,111,98,.06);}
.lfr-horario span{font-size:14px;color:var(--lfr-ink);font-weight:600;}
.lfr-horario-tag{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;color:var(--lfr-green);background:rgba(15,111,98,.1);border-radius:99px;padding:2px 10px;white-space:nowrap;}
.lfr-horario-tag.is-full{color:#c0392b;background:rgba(192,57,43,.1);}
.lfr-horario.is-disabled{opacity:.6;cursor:not-allowed;}
.lfr-horario.is-disabled:hover{border-color:var(--lfr-line);background:transparent;}
.lfr-horarios__empty{color:#5c665f;font-size:14px;padding:8px 0;}

/* resumen */
.lfr-summary{background:var(--lfr-soft);border-radius:14px;padding:16px 18px;margin-bottom:16px;}
.lfr-summary dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;}
.lfr-summary dt{font-size:12px;color:#7a847d;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.lfr-summary dd{margin:0;font-size:14px;color:var(--lfr-ink);font-weight:600;word-break:break-word;}

.lfr-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:#5c665f;line-height:1.45;cursor:pointer;}
.lfr-consent input{margin-top:2px;accent-color:var(--lfr-green);width:17px;height:17px;flex:0 0 auto;}
.lfr-consent a{color:var(--lfr-green);text-decoration:underline;}

.lfr-error{color:#c0392b;font-size:13px;font-weight:600;margin:12px 0 0;min-height:0;}
.lfr-error:empty{margin:0;}

.lfr-modal__foot{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;padding-top:18px;border-top:1px solid var(--lfr-line);}
.lfr-btn{
	border:0;border-radius:99px;padding:12px 26px;font-size:14px;font-weight:700;cursor:pointer;
	font-family:inherit;transition:transform .12s,box-shadow .16s,background .16s;
}
.lfr-btn:active{transform:translateY(1px);}
.lfr-btn--primary{background:var(--lfr-green);color:#fff;box-shadow:0 8px 18px -8px rgba(15,111,98,.7);}
.lfr-btn--primary:hover{background:var(--lfr-green-d);}
.lfr-btn--ghost{background:transparent;color:#5c665f;border:1.5px solid var(--lfr-line);}
.lfr-btn--ghost:hover{border-color:var(--lfr-green);color:var(--lfr-green);}

/* confirmación */
.lfr-done{text-align:center;padding:22px 6px 8px;animation:lfr-fade .3s ease;}
.lfr-done__ico{
	width:66px;height:66px;border-radius:50%;margin:0 auto 16px;
	display:flex;align-items:center;justify-content:center;
	background:rgba(15,111,98,.1);color:var(--lfr-green);font-size:32px;font-weight:700;
}
.lfr-done__title{margin:0 0 8px;font-size:22px;color:var(--lfr-ink);}
.lfr-done__msg{margin:0 auto 20px;max-width:360px;color:#5c665f;font-size:15px;line-height:1.5;}

@media (max-width:520px){
	.lfr-modal__dialog{padding:24px 20px 20px;border-radius:16px;}
	.lfr-modal__foot{flex-wrap:wrap;}
	.lfr-btn{flex:1 1 auto;}
}
