/* Reserva Calendario — formulario público */
/*
 * Escala fluida: --u vale 1px en móvil/tablet y crece suavemente con el ancho de la pantalla
 * (≈1,1px a 1440px, ≈1,2px a 1750px, máx. 1,25px). Todas las medidas usan calc(N * var(--u)).
 * Los estilos no llevan !important: cualquier CSS propio con la misma especificidad o mayor los sustituye.
 */
.rcal-root { --u: clamp(1px, calc(0.6625px + 0.0307vw), 1.25px); --rcal-primary: #4f46e5; --rcal-secondary: #06b6d4; --rcal-text: #0f172a; --rcal-on-primary: #fff; --rcal-radius: 18px; --rcal-font: inherit; --rcal-muted: color-mix(in srgb, var(--rcal-text) 55%, #fff); --rcal-line: color-mix(in srgb, var(--rcal-text) 10%, #fff); --rcal-soft: color-mix(in srgb, var(--rcal-primary) 7%, #fff); --rcal-soft-2: color-mix(in srgb, var(--rcal-primary) 14%, #fff); --rcal-grad: linear-gradient(135deg, var(--rcal-primary), var(--rcal-secondary)); --rcal-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 32px -12px rgba(15, 23, 42, .14); --rcal-ring: 0 0 0 3px color-mix(in srgb, var(--rcal-primary) 28%, transparent); --rcal-r-sm: calc(var(--rcal-radius) * .6); font-family: var(--rcal-font); color: var(--rcal-text); line-height: 1.5; font-size: calc(16 * var(--u)); max-width: calc(1080 * var(--u)); margin: 0 auto; -webkit-font-smoothing: antialiased; container-type: inline-size; container-name: rcal; }
.rcal-root *, .rcal-root *::before, .rcal-root *::after { box-sizing: border-box; }
.rcal-root button { font: inherit; color: inherit; letter-spacing: normal; text-transform: none; line-height: 1.3; margin: 0; }
.rcal-root h2, .rcal-root h3, .rcal-root h4, .rcal-root p { margin: 0; padding: 0; }
.rcal-root a { text-decoration: none; }

.rcal-root .rcal-app { background: #fff; border: 1px solid var(--rcal-line); border-radius: var(--rcal-radius); box-shadow: var(--rcal-shadow); overflow: hidden; position: relative; }

/* ---------- Cabecera ---------- */
.rcal-root .rcal-head { position: relative; padding: calc(28 * var(--u)) calc(32 * var(--u)) calc(22 * var(--u)); background:
		radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--rcal-primary) 16%, transparent), transparent 55%),
		radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--rcal-secondary) 16%, transparent), transparent 55%),
		#fff; border-bottom: 1px solid var(--rcal-line); }
.rcal-root .rcal-head__title { font-size: clamp(calc(22 * var(--u)), 3vw, calc(28 * var(--u))); font-weight: 750; letter-spacing: -.02em; }
.rcal-root .rcal-head__sub { color: var(--rcal-muted); margin-top: calc(4 * var(--u)); font-size: calc(15 * var(--u)); }

.rcal-root .rcal-steps { display: flex; gap: calc(8 * var(--u)); margin-top: calc(20 * var(--u)); list-style: none; padding: 0; counter-reset: s; }
.rcal-root .rcal-steps li { flex: 1; display: flex; flex-direction: column; gap: calc(8 * var(--u)); font-size: calc(13 * var(--u)); font-weight: 600; color: var(--rcal-muted); margin: 0; }
.rcal-root .rcal-steps li::before { content: ""; height: calc(4 * var(--u)); border-radius: 4px; background: var(--rcal-line); transition: background .35s; }
.rcal-root .rcal-steps li.is-done::before, .rcal-root .rcal-steps li.is-active::before { background: var(--rcal-grad); }
.rcal-root .rcal-steps li.is-active { color: var(--rcal-text); }
.rcal-root .rcal-steps li span { white-space: nowrap; }
@container rcal (max-width: 560px) { .rcal-root .rcal-steps li span { display: none; } .rcal-root .rcal-steps li.is-active span { display: inline; } 
}

/* ---------- Cuerpo ---------- */
.rcal-root .rcal-body { display: grid; grid-template-columns: minmax(0, 1fr); min-height: calc(420 * var(--u)); }
.rcal-root .rcal-main { padding: calc(24 * var(--u)) calc(20 * var(--u)) calc(28 * var(--u)); min-width: 0; container-type: inline-size; container-name: rcalmain; }
.rcal-root .rcal-side { border-top: 1px solid var(--rcal-line); background: color-mix(in srgb, var(--rcal-primary) 3%, #fafbfc); padding: calc(22 * var(--u)) calc(20 * var(--u)); }
.rcal-root .rcal-head { padding-left: calc(20 * var(--u)); padding-right: calc(20 * var(--u)); }
@container rcal (min-width: 860px) {
	.rcal-root .rcal-body { grid-template-columns: minmax(0, 1fr) calc(320 * var(--u)); }
	.rcal-root .rcal-side { border-top: 0; border-left: 1px solid var(--rcal-line); padding: calc(36 * var(--u)) calc(30 * var(--u)); }
	.rcal-root .rcal-main { padding: calc(36 * var(--u)) calc(44 * var(--u)) calc(44 * var(--u)); }
	.rcal-root .rcal-head { padding: calc(36 * var(--u)) calc(44 * var(--u)) calc(28 * var(--u)); }
	.rcal-root .rcal-section-title { font-size: calc(20 * var(--u)); }
	.rcal-root .rcal-section-sub { margin-bottom: calc(24 * var(--u)); }
	.rcal-root .rcal-grid { gap: calc(20 * var(--u)); }
}
@container rcal (min-width: 1100px) {
	.rcal-root .rcal-body { grid-template-columns: minmax(0, 1fr) calc(340 * var(--u)); }
	.rcal-root .rcal-main { padding: calc(44 * var(--u)) calc(56 * var(--u)) calc(52 * var(--u)); }
	.rcal-root .rcal-head { padding: calc(44 * var(--u)) calc(56 * var(--u)) calc(32 * var(--u)); }
	.rcal-root .rcal-side { padding: calc(44 * var(--u)) calc(36 * var(--u)); }
	.rcal-root .rcal-grid { grid-template-columns: repeat(auto-fill, minmax(calc(240 * var(--u)), 1fr)); gap: calc(24 * var(--u)); }
	.rcal-root .rcal-slot-list { gap: calc(10 * var(--u)); }

}

.rcal-root .rcal-section-title { font-size: calc(18 * var(--u)); font-weight: 700; letter-spacing: -.01em; margin-bottom: calc(4 * var(--u)); display: flex; align-items: center; gap: calc(10 * var(--u)); }
.rcal-root .rcal-section-sub { color: var(--rcal-muted); font-size: calc(14 * var(--u)); margin-bottom: calc(18 * var(--u)); }
.rcal-root .rcal-back { display: inline-flex; align-items: center; gap: calc(6 * var(--u)); background: none; border: 0; padding: calc(6 * var(--u)) 0; cursor: pointer; font-size: calc(14 * var(--u)); font-weight: 600; color: var(--rcal-muted) !important; margin-bottom: calc(10 * var(--u)); }
.rcal-root .rcal-back:hover { color: var(--rcal-primary) !important; }

.rcal-root .rcal-view { animation: rcal-in .35s cubic-bezier(.2, .8, .2, 1); }
@keyframes rcal-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---------- Chips de categoría ---------- */
.rcal-root .rcal-chips { display: flex; flex-wrap: wrap; gap: calc(8 * var(--u)); margin-bottom: calc(18 * var(--u)); }
.rcal-root .rcal-chip { border: 1px solid var(--rcal-line) !important; background: #fff !important; border-radius: 999px !important; padding: calc(7 * var(--u)) calc(14 * var(--u)) !important; font-size: calc(14 * var(--u)); font-weight: 600; cursor: pointer; transition: all .2s; color: var(--rcal-text) !important; }
.rcal-root .rcal-chip:hover { border-color: var(--rcal-primary) !important; }
.rcal-root .rcal-chip.is-on { background: var(--rcal-text) !important; color: #fff !important; border-color: var(--rcal-text) !important; }

/* ---------- Tarjetas de servicio ---------- */
.rcal-root .rcal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, calc(210 * var(--u))), 1fr)); gap: calc(16 * var(--u)); }
.rcal-root .rcal-card { display: flex; flex-direction: column; text-align: left; background: #fff !important; padding: 0 !important; border: 1px solid var(--rcal-line) !important; border-radius: var(--rcal-radius) !important; overflow: hidden; cursor: pointer; transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, border-color .25s; color: var(--rcal-text) !important; box-shadow: none; }
.rcal-root .rcal-card:hover { transform: translateY(-3px); box-shadow: var(--rcal-shadow); border-color: color-mix(in srgb, var(--rcal-primary) 40%, var(--rcal-line)) !important; }
.rcal-root .rcal-card:focus-visible { outline: none; box-shadow: var(--rcal-ring); }
.rcal-root .rcal-card.is-on { border-color: var(--rcal-primary) !important; box-shadow: var(--rcal-ring); }
.rcal-root .rcal-card__img { aspect-ratio: 16 / 10; width: 100%; background: var(--rcal-grad); position: relative; overflow: hidden; }
.rcal-root .rcal-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.rcal-root .rcal-card:hover .rcal-card__img img { transform: scale(1.04); }
.rcal-root .rcal-card__initial { position: absolute; inset: 0; display: grid; place-items: center; font-size: calc(44 * var(--u)); font-weight: 800; color: rgba(255,255,255,.9); letter-spacing: -.04em; }
.rcal-root .rcal-card__tag { position: absolute; left: calc(12 * var(--u)); top: calc(12 * var(--u)); background: rgba(255,255,255,.92); backdrop-filter: blur(6px); padding: calc(4 * var(--u)) calc(10 * var(--u)); border-radius: 999px; font-size: calc(12 * var(--u)); font-weight: 700; color: var(--rcal-text); }
.rcal-root .rcal-card__body { padding: calc(14 * var(--u)) calc(16 * var(--u)) calc(16 * var(--u)); display: flex; flex-direction: column; gap: calc(6 * var(--u)); flex: 1; }
.rcal-root .rcal-card__name { font-weight: 700; font-size: calc(16 * var(--u)); letter-spacing: -.01em; }
.rcal-root .rcal-card__desc { color: var(--rcal-muted); font-size: calc(13.5 * var(--u)); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rcal-root .rcal-card__desc p { margin: 0; }
.rcal-root .rcal-card__foot { margin-top: auto; padding-top: calc(8 * var(--u)); display: flex; justify-content: space-between; align-items: center; font-size: calc(14 * var(--u)); }
.rcal-root .rcal-card__price { font-weight: 700; color: var(--rcal-primary); }
.rcal-root .rcal-card__price small { color: var(--rcal-muted); font-weight: 500; }
.rcal-root .rcal-card__go { width: calc(30 * var(--u)); height: calc(30 * var(--u)); border-radius: 50%; display: grid; place-items: center; background: var(--rcal-soft); color: var(--rcal-primary); transition: all .25s; }
.rcal-root .rcal-card:hover .rcal-card__go { background: var(--rcal-grad); color: var(--rcal-on-primary); transform: translateX(2px); }

/* ---------- Opciones (precio/duración, localización, pago) ---------- */
.rcal-root .rcal-options { display: grid; gap: calc(10 * var(--u)); grid-template-columns: minmax(0, 1fr); margin-bottom: calc(26 * var(--u)); }
@container rcalmain (min-width: 520px) { .rcal-root .rcal-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(12 * var(--u)); } 
}
.rcal-root .rcal-opt { display: flex; align-items: center; gap: calc(12 * var(--u)); text-align: left; cursor: pointer; width: 100%; padding: calc(14 * var(--u)) calc(16 * var(--u)) !important; background: #fff !important; border: 1.5px solid var(--rcal-line) !important; border-radius: var(--rcal-r-sm) !important; transition: all .2s; color: var(--rcal-text) !important; }
.rcal-root .rcal-opt:hover { border-color: color-mix(in srgb, var(--rcal-primary) 50%, var(--rcal-line)) !important; }
.rcal-root .rcal-opt.is-on { border-color: var(--rcal-primary) !important; background: var(--rcal-soft) !important; }
.rcal-root .rcal-opt__radio { width: calc(20 * var(--u)); height: calc(20 * var(--u)); border-radius: 50%; border: 2px solid var(--rcal-line); flex: none; position: relative; transition: all .2s; }
.rcal-root .rcal-opt.is-on .rcal-opt__radio { border-color: var(--rcal-primary); }
.rcal-root .rcal-opt.is-on .rcal-opt__radio::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--rcal-primary); }
.rcal-root .rcal-opt__txt { flex: 1; min-width: 0; }
.rcal-root .rcal-opt__title { font-weight: 650; font-size: calc(15 * var(--u)); display: block; }
.rcal-root .rcal-opt__meta { color: var(--rcal-muted); font-size: calc(13 * var(--u)); display: block; }
.rcal-root .rcal-opt__meta a { color: var(--rcal-primary); }
.rcal-root .rcal-opt__price { font-weight: 700; white-space: nowrap; }

/* ---------- Calendario ---------- */
.rcal-root .rcal-cal { display: grid; grid-template-columns: minmax(0, 1fr); gap: calc(24 * var(--u)); align-items: start; }
@container rcalmain (min-width: 600px) { .rcal-root .rcal-cal { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: calc(32 * var(--u)); } 
}
@container rcalmain (min-width: 760px) { .rcal-root .rcal-cal { gap: calc(44 * var(--u)); } .rcal-root .rcal-month { padding: calc(22 * var(--u)); } 
}
.rcal-root .rcal-month { border: 1px solid var(--rcal-line); border-radius: var(--rcal-radius); padding: calc(16 * var(--u)); background: #fff; }
.rcal-root .rcal-month__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: calc(12 * var(--u)); }
.rcal-root .rcal-month__title { font-weight: 750; font-size: calc(17 * var(--u)); text-transform: capitalize; letter-spacing: -.01em; }
.rcal-root .rcal-nav { width: calc(36 * var(--u)); height: calc(36 * var(--u)); border-radius: 50% !important; border: 1px solid var(--rcal-line) !important; background: #fff !important; display: grid; place-items: center; cursor: pointer; transition: all .2s; padding: 0 !important; color: var(--rcal-text) !important; }
.rcal-root .rcal-nav:hover:not(:disabled) { background: var(--rcal-soft) !important; border-color: var(--rcal-primary) !important; color: var(--rcal-primary) !important; }
.rcal-root .rcal-nav:disabled { opacity: .35; cursor: not-allowed; }
.rcal-root .rcal-wd, .rcal-root .rcal-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: calc(4 * var(--u)); }
.rcal-root .rcal-wd span { text-align: center; font-size: calc(11 * var(--u)); font-weight: 700; color: var(--rcal-muted); text-transform: uppercase; letter-spacing: .02em; padding: calc(6 * var(--u)) 0; overflow: hidden; }
.rcal-root .rcal-day { aspect-ratio: 1; border: 0 !important; background: transparent !important; border-radius: var(--rcal-r-sm) !important; cursor: default; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(2 * var(--u)); font-size: calc(15 * var(--u)); font-weight: 500; color: color-mix(in srgb, var(--rcal-text) 30%, #fff) !important; position: relative; padding: 0 !important; transition: all .18s; }
.rcal-root .rcal-day.is-empty { visibility: hidden; }
.rcal-root .rcal-day.is-avail { color: var(--rcal-text) !important; font-weight: 700; cursor: pointer; background: var(--rcal-soft) !important; }
.rcal-root .rcal-day.is-avail::after { content: ""; width: calc(5 * var(--u)); height: calc(5 * var(--u)); border-radius: 50%; background: var(--rcal-primary); }
.rcal-root .rcal-day.is-few::after { background: #f59e0b; }
.rcal-root .rcal-day.is-avail:hover { background: var(--rcal-soft-2) !important; transform: scale(1.06); }
.rcal-root .rcal-day.is-today { box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--rcal-text) 25%, transparent); }
.rcal-root .rcal-day.is-sel, .rcal-root .rcal-day.is-sel:hover { background: var(--rcal-grad) !important; color: var(--rcal-on-primary) !important; box-shadow: 0 8px 18px -8px var(--rcal-primary); }
.rcal-root .rcal-day.is-sel::after { background: var(--rcal-on-primary); }
.rcal-root .rcal-legend { display: flex; gap: calc(14 * var(--u)); flex-wrap: wrap; margin-top: calc(12 * var(--u)); font-size: calc(12.5 * var(--u)); color: var(--rcal-muted); }
.rcal-root .rcal-legend i { display: inline-block; width: calc(8 * var(--u)); height: calc(8 * var(--u)); border-radius: 50%; margin-right: calc(6 * var(--u)); vertical-align: middle; background: var(--rcal-primary); }
.rcal-root .rcal-legend i.few { background: #f59e0b; }
.rcal-root .rcal-legend i.none { background: var(--rcal-line); }
.rcal-root .rcal-month.is-loading .rcal-days { opacity: .45; pointer-events: none; }

.rcal-root .rcal-slots__head { font-weight: 700; margin-bottom: calc(4 * var(--u)); }
.rcal-root .rcal-slots__date { color: var(--rcal-muted); font-size: calc(14 * var(--u)); margin-bottom: calc(14 * var(--u)); }
.rcal-root .rcal-slot-group { margin-bottom: calc(16 * var(--u)); }
.rcal-root .rcal-slot-group h4 { font-size: calc(12 * var(--u)); text-transform: uppercase; letter-spacing: .06em; color: var(--rcal-muted); font-weight: 700; margin-bottom: calc(8 * var(--u)); }
.rcal-root .rcal-slot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(84 * var(--u)), 1fr)); gap: calc(8 * var(--u)); }
.rcal-root .rcal-slot { padding: calc(10 * var(--u)) calc(6 * var(--u)) !important; border: 1.5px solid var(--rcal-line) !important; background: #fff !important; border-radius: 999px !important; font-weight: 650; font-size: calc(14.5 * var(--u)); cursor: pointer; transition: all .18s; font-variant-numeric: tabular-nums; color: var(--rcal-text) !important; }
.rcal-root .rcal-slot:hover { border-color: var(--rcal-primary) !important; color: var(--rcal-primary) !important; }
.rcal-root .rcal-slot.is-on { background: var(--rcal-grad) !important; border-color: transparent !important; color: var(--rcal-on-primary) !important; box-shadow: 0 8px 18px -10px var(--rcal-primary); }
.rcal-root .rcal-placeholder { border: 1.5px dashed var(--rcal-line); border-radius: var(--rcal-radius); padding: calc(36 * var(--u)) calc(20 * var(--u)); text-align: center; color: var(--rcal-muted); font-size: calc(14.5 * var(--u)); }
.rcal-root .rcal-placeholder svg { color: var(--rcal-primary); opacity: .6; margin-bottom: calc(8 * var(--u)); }
.rcal-root .rcal-season { display: inline-block; font-size: calc(12 * var(--u)); font-weight: 700; padding: calc(3 * var(--u)) calc(10 * var(--u)); border-radius: 999px; background: var(--rcal-soft); color: var(--rcal-primary); margin-left: calc(6 * var(--u)); }

/* ---------- Formulario ---------- */
.rcal-root .rcal-form { display: grid; grid-template-columns: 1fr; gap: calc(14 * var(--u)); }
@container rcalmain (min-width: 520px) { .rcal-root .rcal-form { grid-template-columns: 1fr 1fr; } 
}
.rcal-root .rcal-field { display: flex; flex-direction: column; gap: calc(6 * var(--u)); }
.rcal-root .rcal-field--full { grid-column: 1 / -1; }
.rcal-root .rcal-field label { font-size: calc(13.5 * var(--u)); font-weight: 650; }
.rcal-root .rcal-field label em { color: var(--rcal-muted); font-style: normal; font-weight: 500; }
.rcal-root .rcal-input { width: 100%; padding: calc(12 * var(--u)) calc(14 * var(--u)) !important; border: 1.5px solid var(--rcal-line) !important; border-radius: var(--rcal-r-sm) !important; font: inherit; font-size: calc(15 * var(--u)); background: #fff !important; color: var(--rcal-text) !important; transition: border-color .2s, box-shadow .2s; box-shadow: none !important; margin: 0; }
.rcal-root .rcal-input:focus { outline: none; border-color: var(--rcal-primary) !important; box-shadow: var(--rcal-ring) !important; }
.rcal-root .rcal-input.is-error { border-color: #ef4444 !important; }
.rcal-root textarea.rcal-input { min-height: calc(88 * var(--u)); resize: vertical; }
.rcal-root .rcal-hp { position: absolute !important; left: -9999px !important; opacity: 0; }
.rcal-root .rcal-subhead { font-weight: 700; font-size: calc(15 * var(--u)); margin: calc(24 * var(--u)) 0 calc(10 * var(--u)); }
.rcal-root .rcal-pay { display: grid; gap: calc(10 * var(--u)); }
.rcal-root .rcal-terms { display: flex; gap: calc(10 * var(--u)); align-items: flex-start; font-size: calc(14 * var(--u)); margin-top: calc(18 * var(--u)); color: var(--rcal-muted); cursor: pointer; }
.rcal-root .rcal-terms input { margin-top: calc(3 * var(--u)); accent-color: var(--rcal-primary); width: calc(16 * var(--u)); height: calc(16 * var(--u)); }
.rcal-root .rcal-terms a { color: var(--rcal-primary); text-decoration: underline; }

.rcal-root .rcal-actions { display: flex; justify-content: flex-end; gap: calc(10 * var(--u)); margin-top: calc(24 * var(--u)); flex-wrap: wrap; }
.rcal-root .rcal-btn { display: inline-flex; align-items: center; justify-content: center; gap: calc(8 * var(--u)); cursor: pointer; padding: calc(13 * var(--u)) calc(22 * var(--u)) !important; border-radius: 999px !important; font-weight: 700; font-size: calc(15 * var(--u)); border: 0 !important; background: var(--rcal-grad) !important; color: var(--rcal-on-primary) !important; box-shadow: 0 10px 24px -12px var(--rcal-primary); transition: transform .2s, box-shadow .2s, opacity .2s; text-decoration: none !important; }
.rcal-root .rcal-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px -12px var(--rcal-primary); }
.rcal-root .rcal-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.rcal-root .rcal-btn--ghost { background: #fff !important; color: var(--rcal-text) !important; border: 1.5px solid var(--rcal-line) !important; box-shadow: none; }
.rcal-root .rcal-btn--ghost:hover { border-color: var(--rcal-primary) !important; color: var(--rcal-primary) !important; box-shadow: none; }
.rcal-root .rcal-btn.is-busy { pointer-events: none; }
.rcal-root .rcal-btn.is-busy::before { content: ""; width: calc(16 * var(--u)); height: calc(16 * var(--u)); border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: rcal-spin .7s linear infinite; }
@keyframes rcal-spin { to { transform: rotate(360deg); } }

.rcal-root .rcal-alert { padding: calc(12 * var(--u)) calc(16 * var(--u)); border-radius: var(--rcal-r-sm); background: #fef2f2; color: #b91c1c; font-size: calc(14 * var(--u)); font-weight: 600; margin-top: calc(16 * var(--u)); }

/* ---------- Resumen lateral ---------- */
.rcal-root .rcal-sum__title { font-size: calc(12 * var(--u)); text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--rcal-muted); margin-bottom: calc(16 * var(--u)); }
.rcal-root .rcal-sum__item { display: flex; gap: calc(12 * var(--u)); align-items: flex-start; padding: calc(12 * var(--u)) 0; border-bottom: 1px dashed var(--rcal-line); }
.rcal-root .rcal-sum__item:last-of-type { border-bottom: 0; }
.rcal-root .rcal-sum__ico { width: calc(34 * var(--u)); height: calc(34 * var(--u)); flex: none; border-radius: 10px; display: grid; place-items: center; background: #fff; border: 1px solid var(--rcal-line); color: var(--rcal-primary); }
.rcal-root .rcal-sum__item.is-empty .rcal-sum__ico { color: var(--rcal-muted); }
.rcal-root .rcal-sum__k { font-size: calc(12 * var(--u)); color: var(--rcal-muted); font-weight: 600; }
.rcal-root .rcal-sum__v { font-weight: 650; font-size: calc(14.5 * var(--u)); }
.rcal-root .rcal-sum__item.is-empty .rcal-sum__v { color: color-mix(in srgb, var(--rcal-text) 35%, #fff); font-weight: 500; }
.rcal-root .rcal-sum__v a { color: var(--rcal-primary); font-size: calc(13 * var(--u)); font-weight: 600; }
.rcal-root .rcal-total { margin-top: calc(16 * var(--u)); padding: calc(16 * var(--u)); border-radius: var(--rcal-r-sm); background: var(--rcal-grad); color: var(--rcal-on-primary); display: flex; justify-content: space-between; align-items: center; }
.rcal-root .rcal-total span { font-size: calc(13 * var(--u)); font-weight: 600; opacity: .9; }
.rcal-root .rcal-total strong { font-size: calc(22 * var(--u)); letter-spacing: -.02em; }

/* ---------- Confirmación ---------- */
.rcal-root .rcal-done { text-align: center; padding: calc(12 * var(--u)) 0 calc(4 * var(--u)); max-width: calc(520 * var(--u)); margin: 0 auto; animation: rcal-in .4s ease; }
.rcal-root .rcal-done__icon { width: calc(72 * var(--u)); height: calc(72 * var(--u)); border-radius: 50%; margin: 0 auto calc(16 * var(--u)); display: grid; place-items: center; background: var(--rcal-grad); color: var(--rcal-on-primary); box-shadow: 0 16px 32px -14px var(--rcal-primary); animation: rcal-pop .55s cubic-bezier(.2, 1.4, .4, 1); }
@keyframes rcal-pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
.rcal-root .rcal-done__title { font-size: calc(24 * var(--u)); font-weight: 800; letter-spacing: -.02em; }
.rcal-root .rcal-done__sub { color: var(--rcal-muted); margin-top: calc(6 * var(--u)); }
.rcal-root .rcal-ticket { text-align: left; margin: calc(22 * var(--u)) 0; border: 1px solid var(--rcal-line); border-radius: var(--rcal-radius); padding: calc(6 * var(--u)) calc(18 * var(--u)); background: #fff; }
.rcal-root .rcal-ticket__row { display: flex; justify-content: space-between; gap: calc(16 * var(--u)); padding: calc(11 * var(--u)) 0; border-bottom: 1px dashed var(--rcal-line); font-size: calc(14.5 * var(--u)); }
.rcal-root .rcal-ticket__row:last-child { border-bottom: 0; }
.rcal-root .rcal-ticket__row span { color: var(--rcal-muted); }
.rcal-root .rcal-ticket__row strong { text-align: right; }
.rcal-root .rcal-maplink { display: block; font-weight: 500; font-size: calc(13 * var(--u)); color: var(--rcal-primary) !important; }
.rcal-root .rcal-pill { font-style: normal; font-size: calc(11.5 * var(--u)); font-weight: 700; padding: calc(2 * var(--u)) calc(8 * var(--u)); border-radius: 999px; background: var(--rcal-soft); color: var(--rcal-primary); margin-left: calc(4 * var(--u)); }
.rcal-root .rcal-bank { text-align: left; background: var(--rcal-soft); border-radius: var(--rcal-r-sm); padding: calc(16 * var(--u)) calc(18 * var(--u)); margin-bottom: calc(20 * var(--u)); font-size: calc(14.5 * var(--u)); }
.rcal-root .rcal-bank p { margin-top: calc(6 * var(--u)); }
.rcal-root .rcal-addcal__label { display: block; font-size: calc(13 * var(--u)); font-weight: 700; color: var(--rcal-muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: calc(10 * var(--u)); }
.rcal-root .rcal-addcal__btns { display: flex; gap: calc(10 * var(--u)); justify-content: center; flex-wrap: wrap; }
.rcal-root.rcal-thankyou { margin: calc(24 * var(--u)) 0; }
.rcal-root.rcal-thankyou .rcal-done { background: #fff; border: 1px solid var(--rcal-line); border-radius: var(--rcal-radius); padding: calc(28 * var(--u)) calc(24 * var(--u)); margin-bottom: calc(16 * var(--u)); max-width: none; }

/* ---------- Estados ---------- */
.rcal-root .rcal-empty { padding: calc(32 * var(--u)); text-align: center; color: var(--rcal-muted); border: 1.5px dashed var(--rcal-line); border-radius: var(--rcal-radius); }
.rcal-root .rcal-loading { min-height: calc(240 * var(--u)); display: grid; place-items: center; }
.rcal-root .rcal-loading span, .rcal-root .rcal-spinner { width: calc(28 * var(--u)); height: calc(28 * var(--u)); border-radius: 50%; border: 3px solid var(--rcal-soft-2); border-top-color: var(--rcal-primary); animation: rcal-spin .8s linear infinite; display: inline-block; }
.rcal-root .rcal-skel { display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(84 * var(--u)), 1fr)); gap: calc(8 * var(--u)); }
.rcal-root .rcal-skel i { height: calc(42 * var(--u)); border-radius: 999px; background: linear-gradient(90deg, var(--rcal-soft) 25%, var(--rcal-soft-2) 50%, var(--rcal-soft) 75%); background-size: 200% 100%; animation: rcal-shim 1.2s infinite; }
@keyframes rcal-shim { to { background-position: -200% 0; } }

@media (prefers-reduced-motion: reduce) {
	.rcal-root * { animation: none !important; transition: none !important; }

}

.rcal-root .rcal-slot { display: flex; flex-direction: column; align-items: center; gap: calc(1 * var(--u)); }
.rcal-root .rcal-slot__left { font-size: calc(11 * var(--u)); font-weight: 600; color: var(--rcal-muted); line-height: 1.1; }
.rcal-root .rcal-slot__left.is-few { color: #d97706; }
.rcal-root .rcal-slot.is-on .rcal-slot__left { color: var(--rcal-on-primary); opacity: .85; }
.rcal-root .rcal-slot:has(.rcal-slot__left) { border-radius: var(--rcal-r-sm) !important; padding: calc(7 * var(--u)) calc(6 * var(--u)) !important; }

.rcal-root .rcal-captcha { margin-top: calc(18 * var(--u)); min-height: calc(65 * var(--u)); }

.rcal-root .rcal-linkbtn { display: inline !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; cursor: pointer !important; font-weight: 600 !important; color: var(--rcal-primary) !important; }
.rcal-root .rcal-body.rcal-body--full { grid-template-columns: minmax(0, 1fr) !important; }
.rcal-root .rcal-placeholder.rcal-placeholder--sm { margin-top: calc(12 * var(--u)) !important; padding: calc(14 * var(--u)) !important; }
.rcal-root .rcal-alert.rcal-alert--top { margin: 0 0 calc(14 * var(--u)) !important; }
.rcal-root .rcal-slots .rcal-skel { margin-top: calc(14 * var(--u)) !important; }
.rcal-root .rcal-actions.rcal-actions--center { justify-content: center !important; }
.rcal-root .rcal-sum__sub { font-weight: 500 !important; }
