/* YMO Reservas — estilos frontend */
.ymo-app{max-width:760px;margin:0 auto;font-size:16px;line-height:1.5}
.ymo-app *,.ymo-app *::before,.ymo-app *::after{box-sizing:border-box}
.ymo-productos{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}
.ymo-producto{flex:1 1 220px;border:2px solid #e3e3e3;border-radius:12px;padding:18px;text-align:center;transition:border-color .15s}
.ymo-producto.sel{border-color:#c62828;box-shadow:0 2px 12px rgba(198,40,40,.15)}
.ymo-producto h3{margin:0 0 6px;font-size:1.15em}
.ymo-producto .ymo-btn{width:100%;margin-top:8px}
.ymo-precio{font-size:1.5em;font-weight:700;margin:4px 0;color:#c62828}
.ymo-dur{color:#666;font-size:.92em;margin:4px 0 12px}
.ymo-btn{display:inline-block;background:#c62828;color:#fff!important;border:0;border-radius:8px;padding:11px 20px;font-size:1em;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.3}
.ymo-btn:hover{background:#a51f1f}
.ymo-btn:disabled{opacity:.6;cursor:wait}
.ymo-btn2{background:#1565c0}
.ymo-btn2:hover{background:#0f4c92}
.ymo-grande{width:100%;padding:14px;font-size:1.08em;margin-top:8px}
.ymo-cal{border:1px solid #e3e3e3;border-radius:12px;padding:14px;margin-top:18px;width:100%}
.ymo-cal-cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:1.15em}
.ymo-nav{border:1px solid #ccc!important;background:#fff!important;color:#333!important;border-radius:8px;width:38px;height:38px;min-width:38px;padding:0!important;font-size:1.3em;cursor:pointer;line-height:1}
.ymo-nav:disabled{opacity:.3;cursor:default}
table.ymo-cal-tabla{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px;margin:0!important;border:0!important;background:transparent!important}
.ymo-cal-tabla tr,.ymo-cal-tabla td,.ymo-cal-tabla th{border:0!important;background:transparent!important;padding:0!important;margin:0!important}
.ymo-cal-tabla th{text-align:center!important;font-weight:700;color:#888!important;font-size:.85em;padding:4px 0!important}
.ymo-cal-tabla .ymo-dia{min-height:48px;height:48px;min-width:0;width:100%;margin:0;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.95em;border:0;padding:2px;line-height:1.15;box-shadow:none;text-transform:none}
.ymo-dia span{font-size:.66em;line-height:1.1;font-weight:400}
.ymo-cal-tabla .ymo-libre{background:#e8f5e9!important;color:#1b5e20!important;cursor:pointer;border:1px solid #c8e6c9!important;font-weight:700}
.ymo-cal-tabla .ymo-libre:hover{background:#c8e6c9!important}
.ymo-cal-tabla .ymo-lleno{background:#f5f5f5!important;color:#bbb!important}
.ymo-leyenda{color:#777;font-size:.85em;margin:10px 0 0}
.ymo-sub-tit{margin:18px 0 8px}
.ymo-slots{display:flex;flex-wrap:wrap;gap:8px}
.ymo-slots .ymo-slot{border:2px solid #1565c0!important;color:#1565c0!important;background:#fff!important;border-radius:8px;padding:9px 14px;margin:0;font-weight:700;cursor:pointer;min-width:0;box-shadow:none}
.ymo-slots .ymo-slot:hover,.ymo-slots .ymo-slot.sel{background:#1565c0!important;color:#fff!important}
.ymo-dec{margin-top:18px;border-top:1px dashed #ddd;padding-top:14px}
.ymo-dec-tit{font-size:1.05em}
.ymo-o{text-align:center;color:#999;margin:8px 0}
.ymo-form{border:1px solid #e3e3e3;border-radius:12px;padding:20px;margin-top:18px}
.ymo-form h3{margin-top:0}
.ymo-resumen{background:#f4f8ff;border:1px solid #cfe0ff;border-radius:8px;padding:10px 14px}
.ymo-label{display:block;margin:12px 0;font-weight:600}
.ymo-label input,.ymo-label textarea{display:block;width:100%;margin-top:5px;padding:11px;border:1px solid #ccc;border-radius:8px;font-size:1em;font-weight:400;box-sizing:border-box}
.ymo-nota{color:#666;font-size:.88em}
.ymo-hr{border:0;border-top:1px dashed #ddd;margin:18px 0}
.ymo-check{display:block;margin-top:10px;font-weight:700}
.ymo-check input{margin-right:8px;transform:scale(1.3)}
.ymo-alert{border-radius:10px;padding:14px 16px;margin:14px 0}
.ymo-ok{background:#e8f5e9;border:1px solid #a5d6a7;color:#1b5e20}
.ymo-warn{background:#fff8e1;border:1px solid #ffe082;color:#7a5c00}
.ymo-err{background:#fdecea;border:1px solid #f5c6c2;color:#8a1f16}
.ymo-cargando{display:flex;align-items:center;gap:10px;color:#666;padding:18px 0}
.ymo-spin{width:20px;height:20px;border:3px solid #ddd;border-top-color:#c62828;border-radius:50%;animation:ymospin .8s linear infinite;display:inline-block}
@keyframes ymospin{to{transform:rotate(360deg)}}
.ymo-canje-form{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.ymo-canje-form input{flex:1 1 220px;padding:12px;border:2px solid #ccc;border-radius:8px;font-size:1.1em;text-transform:uppercase;letter-spacing:1px}
@media(max-width:520px){
	.ymo-cal{padding:8px}
	table.ymo-cal-tabla{border-spacing:2px}
	.ymo-cal-tabla .ymo-dia{min-height:42px;height:42px;font-size:.85em;border-radius:6px}
	.ymo-dia span{display:none}
	.ymo-sub-tit{font-size:1.1em}
	.ymo-slots .ymo-slot{flex:1 1 28%;text-align:center;padding:10px 4px}
}

/* Navegación guiada: margen para cabeceras fijas + animación de aparición */
.ymo-cal,.ymo-form,.ymo-dec,#ymo-sub,#ymo-panel,.ymo-alert{scroll-margin-top:90px}
.ymo-cal,.ymo-form,.ymo-dec,.ymo-slots{animation:ymoin .35s ease}
@keyframes ymoin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
