/* ============================================================
 * Cancun100 Booking Modal · CSS · v0.1.0-fase1
 *
 * TODO el CSS está namespaced bajo `.c100bm-*` para evitar
 * colisiones con Woodmart, Elementor o cualquier otro plugin.
 * Variables CSS prefijadas con --c100bm- por el mismo motivo.
 *
 * Estructura:
 *   1. Reset y variables base (V1 default)
 *   2. Overrides V2 (caribeño premium)
 *   3. Overrides V3 (aventura vibrante)
 *   4. Botón trigger
 *   5. Overlay y modal
 *   6. Header + progress
 *   7. Steps
 *   8. Options (add-ons)
 *   9. Calendar
 *  10. Counters (person types)
 *  11. Promo
 *  12. Hint
 *  13. Summary + total + trust
 *  14. Footer + CTAs
 *  15. Responsive mobile
 * ============================================================ */

/* ============================================================
 * 1. RESET + VARIABLES BASE (V1 = default)
 * ============================================================ */
.c100bm-overlay, .c100bm-overlay *,
.c100bm-button-wrap, .c100bm-button-wrap * {
	box-sizing: border-box;
}

/* Reset preventivo: vence reglas heredadas de Woodmart sobre botones e inputs
 * (text-transform: uppercase, letter-spacing exagerado, min-height: 50px, etc.) */
.c100bm-overlay button,
.c100bm-button-wrap button {
	text-transform: none !important;
	letter-spacing: normal;
	min-height: auto;
	min-width: 0;
	line-height: 1.2;
	box-shadow: none;
	font-family: inherit;
}
.c100bm-overlay button:focus,
.c100bm-button-wrap button:focus { outline: none; }
.c100bm-overlay input[type="text"],
.c100bm-overlay input[type="email"],
.c100bm-overlay input[type="tel"] {
	box-shadow: none !important;
	min-height: auto !important;
	background: #fff;
}
.c100bm-overlay svg,
.c100bm-button-wrap svg {
	display: inline-block;
	vertical-align: middle;
}

.c100bm-overlay,
.c100bm-button-wrap {
	font-family: 'Metropolis', 'Manrope', system-ui, -apple-system, sans-serif;
	font-size: 14px;
	line-height: 1.55;
	color: var(--c100bm-text-body);

	--c100bm-brand-primary:      #f74780;
	--c100bm-brand-primary-soft: #fde8f0;
	--c100bm-brand-primary-dark: #d63973;
	--c100bm-cta:                #FF6B35;
	--c100bm-cta-hover:          #E85D3C;
	--c100bm-cta-soft:           #FFE9DC;
	--c100bm-whatsapp:           #25D366;
	--c100bm-whatsapp-hover:     #1da851;
	--c100bm-success:            #10B981;
	--c100bm-error:              #EF4444;
	--c100bm-text-primary:       #0E3A4D;
	--c100bm-text-body:          #445463;
	--c100bm-text-muted:         #7A8290;
	--c100bm-bg:                 #FFFFFF;
	--c100bm-bg-soft:            #FAF7F2;
	--c100bm-bg-info:            #FFF4E8;
	--c100bm-border:             #E7E2D9;
	--c100bm-border-strong:      #d4ccc0;
	--c100bm-shadow-modal:       0 24px 70px rgba(14, 58, 77, 0.18);
	--c100bm-shadow-card:        0 2px 8px rgba(14, 58, 77, 0.05);
	--c100bm-shadow-cta:         0 6px 18px rgba(255, 107, 53, 0.35);
	--c100bm-radius-modal:       20px;
	--c100bm-radius-card:        14px;
	--c100bm-radius-btn:         10px;
	--c100bm-radius-pill:        999px;
	--c100bm-accent-gold:        transparent; /* no se usa en V1 */
	--c100bm-accent-pink:        transparent; /* no se usa en V1 */
	--c100bm-accent-yellow:      transparent; /* no se usa en V1 */
}

/* ============================================================
 * 2. OVERRIDES V2 — Caribeño Premium
 * ============================================================ */
.c100bm-overlay.theme-v2,
.c100bm-button-wrap.theme-v2 {
	--c100bm-brand-primary:      #0F4C5C;
	--c100bm-brand-primary-soft: #DCE9EC;
	--c100bm-brand-primary-dark: #093641;
	--c100bm-accent-gold:        #C89B3C;
	--c100bm-accent-gold-soft:   #F5E8C8;
	--c100bm-accent-gold-dark:   #A87E25;
	--c100bm-cta:                #E15D44;
	--c100bm-cta-hover:          #C84D36;
	--c100bm-cta-soft:           #FBE5DD;
	--c100bm-text-primary:       #0A2540;
	--c100bm-text-body:          #324558;
	--c100bm-text-muted:         #7A8B99;
	--c100bm-bg-soft:            #F7F1E6;
	--c100bm-bg-info:            #FBF5E8;
	--c100bm-border:             #E8DFD0;
	--c100bm-border-strong:      #C8BC9F;
	--c100bm-shadow-modal:       0 30px 80px rgba(10, 37, 64, 0.24);
	--c100bm-shadow-cta:         0 6px 18px rgba(225, 93, 68, 0.28);
	--c100bm-radius-modal:       14px;
	--c100bm-radius-card:        8px;
	--c100bm-radius-btn:         6px;
}
/* V2 decoración específica: línea dorada en el header */
.c100bm-overlay.theme-v2 .c100bm-header { background: linear-gradient(180deg, var(--c100bm-bg-soft) 0%, #fff 100%); }
.c100bm-overlay.theme-v2 .c100bm-header::after {
	content: ''; position: absolute; left: 26px; right: 26px; bottom: -1px;
	height: 2px;
	background: linear-gradient(90deg, var(--c100bm-accent-gold) 0%, transparent 80%);
	opacity: 0.7;
}
/* V2 progress: detalle dorado en current */
.c100bm-overlay.theme-v2 .c100bm-progress-step { height: 3px; border-radius: 0; }
.c100bm-overlay.theme-v2 .c100bm-progress-step.current::after {
	content: ''; position: absolute; inset: -1px 0; background: var(--c100bm-accent-gold);
}
.c100bm-overlay.theme-v2 .c100bm-progress-step { position: relative; }
.c100bm-overlay.theme-v2 .c100bm-progress-label { letter-spacing: 0.12em; font-weight: 700; }
/* V2 step-subtitle: italic Lato (editorial) */
.c100bm-overlay.theme-v2 .c100bm-step-subtitle { font-family: 'Lato', Georgia, serif; font-style: italic; }
/* V2 counter buttons: cuadrados con accent dorado en hover */
.c100bm-overlay.theme-v2 .c100bm-counter-btn { border-radius: 4px; border-width: 1.5px; }
.c100bm-overlay.theme-v2 .c100bm-counter-btn:hover:not(:disabled) { color: var(--c100bm-accent-gold); }
/* V2 trust badges: bordes con accent dorado */
.c100bm-overlay.theme-v2 .c100bm-trust-row {
	padding-top: 16px; border-top: 1px solid var(--c100bm-accent-gold); position: relative;
}
.c100bm-overlay.theme-v2 .c100bm-trust-row::before {
	content: ''; position: absolute; top: -1px; left: 50%;
	transform: translateX(-50%); width: 30px; height: 2px;
	background: var(--c100bm-accent-gold);
}
.c100bm-overlay.theme-v2 .c100bm-trust-item { border-radius: 6px; border: 1px solid var(--c100bm-border); }
.c100bm-overlay.theme-v2 .c100bm-trust-item svg { color: var(--c100bm-accent-gold-dark); }
.c100bm-overlay.theme-v2 .c100bm-trust-item.c100bm-trust-meta svg { color: #1877F2; }
.c100bm-overlay.theme-v2 .c100bm-trust-item.c100bm-trust-rnt svg { color: #0F6E56; }
.c100bm-overlay.theme-v2 .c100bm-trust-item.c100bm-trust-rnt b { color: #0F6E56; }
/* V2 summary-total: gradiente premium con stripe dorada */
.c100bm-overlay.theme-v2 .c100bm-summary-total {
	background: linear-gradient(135deg, var(--c100bm-brand-primary) 0%, var(--c100bm-brand-primary-dark) 60%, var(--c100bm-cta) 130%);
	padding: 20px 22px;
	position: relative; overflow: hidden;
}
.c100bm-overlay.theme-v2 .c100bm-summary-total::before {
	content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
	background: var(--c100bm-accent-gold);
}
.c100bm-overlay.theme-v2 .c100bm-summary-total-label {
	letter-spacing: 0.12em; font-weight: 700; color: var(--c100bm-accent-gold-soft); opacity: 0.9;
}
.c100bm-overlay.theme-v2 .c100bm-summary-total-value { font-size: 34px; }

/* V2 trigger button: rectangular y elegante */
.c100bm-button-wrap.theme-v2 .c100bm-trigger-btn { border-radius: 6px; letter-spacing: 0.03em; }

/* ============================================================
 * 3. OVERRIDES V3 — Aventura Vibrante
 * ============================================================ */
.c100bm-overlay.theme-v3,
.c100bm-button-wrap.theme-v3 {
	--c100bm-brand-primary:      #06B6D4;
	--c100bm-brand-primary-soft: #CFFAFE;
	--c100bm-brand-primary-dark: #0E7490;
	--c100bm-accent-yellow:      #FCD34D;
	--c100bm-accent-yellow-soft: #FEF3C7;
	--c100bm-accent-pink:        #F472B6;
	--c100bm-accent-pink-soft:   #FCE7F3;
	--c100bm-cta:                #FF5E5B;
	--c100bm-cta-hover:          #E84845;
	--c100bm-cta-soft:           #FFE4E0;
	--c100bm-text-primary:       #0C4A6E;
	--c100bm-text-body:          #475569;
	--c100bm-text-muted:         #94A3B8;
	--c100bm-bg-soft:            #FFF8EC;
	--c100bm-bg-info:            #FEF3C7;
	--c100bm-border:             #FEE7D1;
	--c100bm-border-strong:      #FDBA74;
	--c100bm-shadow-modal:       0 24px 70px rgba(6, 182, 212, 0.22);
	--c100bm-shadow-cta:         0 8px 20px rgba(255, 94, 91, 0.38);
	--c100bm-radius-modal:       28px;
	--c100bm-radius-card:        18px;
	--c100bm-radius-btn:         14px;
}
/* V3 header con gradiente diagonal vibrante */
.c100bm-overlay.theme-v3 .c100bm-header {
	background: linear-gradient(135deg, var(--c100bm-brand-primary-soft) 0%, var(--c100bm-accent-yellow-soft) 50%, var(--c100bm-cta-soft) 100%);
	position: relative; overflow: hidden;
}
.c100bm-overlay.theme-v3 .c100bm-header::before {
	content: ''; position: absolute; top: 0; right: 0;
	width: 60px; height: 60px;
	background: radial-gradient(circle, var(--c100bm-accent-yellow) 0%, transparent 70%);
	opacity: 0.4; pointer-events: none;
}
/* V3 progress más gruesa */
.c100bm-overlay.theme-v3 .c100bm-progress-step { height: 6px; border-radius: 999px; }
.c100bm-overlay.theme-v3 .c100bm-progress-step.current {
	background: linear-gradient(90deg, var(--c100bm-brand-primary) 0%, var(--c100bm-accent-pink) 100%);
}
.c100bm-overlay.theme-v3 .c100bm-progress-label { color: var(--c100bm-brand-primary-dark); font-weight: 800; }
/* V3 step title más grande y bold */
.c100bm-overlay.theme-v3 .c100bm-step-title { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
/* V3 options: shadow vibrante en selected */
.c100bm-overlay.theme-v3 .c100bm-option.selected { box-shadow: 0 4px 16px rgba(6, 182, 212, 0.15); }
.c100bm-overlay.theme-v3 .c100bm-option:hover { transform: translateY(-1px); }
.c100bm-overlay.theme-v3 .c100bm-option-price { font-weight: 800; color: var(--c100bm-accent-pink); }
/* V3 counter buttons grandes y scale en hover */
.c100bm-overlay.theme-v3 .c100bm-counter-btn { width: 36px; height: 36px; font-size: 20px; font-weight: 700; }
.c100bm-overlay.theme-v3 .c100bm-counter-btn:hover:not(:disabled) { transform: scale(1.08); }
.c100bm-overlay.theme-v3 .c100bm-counter-value { font-size: 18px; font-weight: 800; }
/* V3 trust badges con colores por badge */
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(1) { background: var(--c100bm-cta-soft); }
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(1) svg { color: var(--c100bm-cta); }
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(2) { background: #D1FAE5; }
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(2) svg { color: #0F6E56; }
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(2) b { color: #0F6E56; }
.c100bm-overlay.theme-v3 .c100bm-trust-item:nth-child(3) { background: #DBEAFE; }
.c100bm-overlay.theme-v3 .c100bm-trust-item { border-radius: 14px; }
.c100bm-overlay.theme-v3 .c100bm-trust-item b { font-weight: 800; }
/* V3 summary-total con gradiente vibrante */
.c100bm-overlay.theme-v3 .c100bm-summary-total {
	background: linear-gradient(135deg, var(--c100bm-brand-primary) 0%, var(--c100bm-accent-pink) 50%, var(--c100bm-cta) 100%);
	padding: 22px;
	box-shadow: 0 12px 32px rgba(244, 114, 182, 0.25);
}
.c100bm-overlay.theme-v3 .c100bm-summary-total-label { letter-spacing: 0.12em; font-weight: 800; }
.c100bm-overlay.theme-v3 .c100bm-summary-total-value { font-size: 38px; font-weight: 800; }
/* V3 footer total en coral */
.c100bm-overlay.theme-v3 .c100bm-footer-price-value { color: var(--c100bm-cta); font-weight: 800; font-size: 22px; }
/* V3 CTA primary con glow más fuerte en hover */
.c100bm-overlay.theme-v3 .c100bm-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(255, 94, 91, 0.45);
}

/* V3 trigger button: muy redondeado */
.c100bm-button-wrap.theme-v3 .c100bm-trigger-btn { border-radius: 14px; }

/* ============================================================
 * 4. BOTÓN TRIGGER (el más importante del sitio)
 *    - 2 líneas: título grande + subtítulo
 *    - 3 estilos seleccionables (pink_orange, navy_yellow, coral_solid)
 *    - Animaciones: pulse + shine sweep
 *    - Respeta prefers-reduced-motion
 * ============================================================ */

/* WC Bookings default UI: ocultar cuando admin lo pide */
body.c100bm-hide-default-booking-ui form.cart > .wc-bookings-booking-form,
body.c100bm-hide-default-booking-ui form.cart > .wc-bookings-fields-wrap,
body.c100bm-hide-default-booking-ui form.cart > .quantity,
body.c100bm-hide-default-booking-ui form.cart > .wc-bookings-booking-cost,
body.c100bm-hide-default-booking-ui form.cart > .single_add_to_cart_button,
body.c100bm-hide-default-booking-ui form.cart > .woocommerce-grouped-product-list,
body.c100bm-hide-default-booking-ui form.cart .wc-bookings-date-picker,
body.c100bm-hide-default-booking-ui form.cart .wc_bookings_field_persons,
body.c100bm-hide-default-booking-ui form.cart .wc-bookings-booking-cost {
	display: none !important;
}

.c100bm-button-wrap {
	margin: 18px 0 14px;
	max-width: 100%;
}

.c100bm-button-wrap .c100bm-trigger-btn {
	position: relative;
	display: flex !important;
	align-items: center;
	gap: 14px;
	width: 100%;
	max-width: 460px;
	padding: 16px 22px !important;
	border: none !important;
	border-radius: 14px !important;
	color: #fff !important;
	font-family: 'Metropolis', 'Manrope', system-ui, -apple-system, sans-serif !important;
	cursor: pointer;
	overflow: hidden;
	transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.2 !important;
	-webkit-tap-highlight-color: transparent;
}
.c100bm-trigger-btn:focus-visible {
	outline: 3px solid #FFF;
	outline-offset: 2px;
	box-shadow: 0 0 0 6px rgba(247, 71, 128, 0.45) !important;
}

.c100bm-trigger-icon {
	width: 26px;
	height: 26px;
	flex-shrink: 0;
}
.c100bm-trigger-text {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	line-height: 1.15;
}
.c100bm-button-wrap .c100bm-trigger-btn .c100bm-trigger-title {
	font-size: 17px;
	font-weight: 800;
	letter-spacing: 0.005em;
	line-height: 1.1;
	color: inherit !important;
	text-transform: none !important;
}
.c100bm-button-wrap .c100bm-trigger-btn .c100bm-trigger-subtitle {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.015em;
	margin-top: 3px;
	opacity: 0.95;
	color: inherit !important;
	text-transform: none !important;
}
.c100bm-trigger-arrow {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	transition: transform 0.22s ease;
}
.c100bm-trigger-btn:hover .c100bm-trigger-arrow {
	transform: translateX(5px);
}

/* Shine sweep — barra brillante que cruza el botón cada 3.5s */
.c100bm-trigger-shine {
	position: absolute;
	top: 0;
	left: -120%;
	width: 60%;
	height: 100%;
	background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.35) 50%, transparent 100%);
	transform: skewX(-20deg);
	pointer-events: none;
}
.c100bm-button-wrap.is-animated .c100bm-trigger-shine {
	animation: c100bmShine 3.5s ease-in-out infinite;
}

@keyframes c100bmShine {
	0%   { left: -120%; }
	60%  { left: 120%; }
	100% { left: 120%; }
}

@media (prefers-reduced-motion: reduce) {
	.c100bm-trigger-shine { animation: none !important; display: none; }
	.c100bm-trigger-btn,
	.c100bm-button-wrap.is-animated .c100bm-trigger-btn { animation: none !important; }
}

/* ---- ESTILO 1: Gradiente Rosa → Naranja (default, brand) ---- */
.c100bm-button-wrap.style-pink_orange .c100bm-trigger-btn {
	background: linear-gradient(135deg, #f74780 0%, #FF6B35 100%);
	box-shadow: 0 8px 24px rgba(247, 71, 128, 0.40),
	            0 2px 6px  rgba(255, 107, 53, 0.25);
}
.c100bm-button-wrap.style-pink_orange.is-animated .c100bm-trigger-btn {
	animation: c100bmPulsePinkOrange 2.8s ease-in-out infinite;
}
.c100bm-button-wrap.style-pink_orange .c100bm-trigger-btn:hover {
	background: linear-gradient(135deg, #fb558e 0%, #ff7c4b 100%);
	transform: translateY(-2px) scale(1.025);
	box-shadow: 0 14px 32px rgba(247, 71, 128, 0.55),
	            0 4px 10px  rgba(255, 107, 53, 0.35);
	animation: none;
}
@keyframes c100bmPulsePinkOrange {
	0%, 100% {
		box-shadow: 0 8px 24px rgba(247, 71, 128, 0.40),
		            0 2px 6px  rgba(255, 107, 53, 0.25);
	}
	50% {
		box-shadow: 0 12px 36px rgba(247, 71, 128, 0.60),
		            0 4px 12px  rgba(255, 107, 53, 0.40);
	}
}

/* ---- ESTILO 2: Navy con borde Amarillo pulse (contraste máximo) ---- */
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-btn {
	background: linear-gradient(135deg, #0E3A4D 0%, #1a5468 100%);
	color: #FCD34D;
	border: 2.5px solid #FCD34D;
	box-shadow: 0 8px 22px rgba(14, 58, 77, 0.40),
	            0 0 0 0    rgba(252, 211, 77, 0);
}
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-title { color: #FCD34D; }
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-subtitle { color: #fff; }
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-icon,
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-arrow { color: #FCD34D; }
.c100bm-button-wrap.style-navy_yellow.is-animated .c100bm-trigger-btn {
	animation: c100bmPulseNavyYellow 2.6s ease-in-out infinite;
}
.c100bm-button-wrap.style-navy_yellow .c100bm-trigger-btn:hover {
	background: linear-gradient(135deg, #15536c 0%, #1f6480 100%);
	transform: translateY(-2px) scale(1.025);
	box-shadow: 0 14px 30px rgba(14, 58, 77, 0.55),
	            0 0 0 6px   rgba(252, 211, 77, 0.25);
	animation: none;
}
@keyframes c100bmPulseNavyYellow {
	0%, 100% {
		box-shadow: 0 8px 22px rgba(14, 58, 77, 0.40),
		            0 0 0 0    rgba(252, 211, 77, 0);
	}
	50% {
		box-shadow: 0 10px 28px rgba(14, 58, 77, 0.50),
		            0 0 0 8px   rgba(252, 211, 77, 0.20);
	}
}

/* ---- ESTILO 3: Coral sólido tipo Dolphin ---- */
.c100bm-button-wrap.style-coral_solid .c100bm-trigger-btn {
	background: #FF5E5B;
	box-shadow: 0 10px 26px rgba(255, 94, 91, 0.45),
	            0 4px 10px  rgba(255, 94, 91, 0.30),
	            inset 0 -3px 0 rgba(0, 0, 0, 0.10);
}
.c100bm-button-wrap.style-coral_solid.is-animated .c100bm-trigger-btn {
	animation: c100bmPulseCoral 2.4s ease-in-out infinite;
}
.c100bm-button-wrap.style-coral_solid .c100bm-trigger-btn:hover {
	background: #ff4744;
	transform: translateY(-3px) scale(1.03);
	box-shadow: 0 16px 36px rgba(255, 94, 91, 0.60),
	            0 6px 14px  rgba(255, 94, 91, 0.35),
	            inset 0 -3px 0 rgba(0, 0, 0, 0.12);
	animation: none;
}
@keyframes c100bmPulseCoral {
	0%, 100% {
		transform: scale(1);
		box-shadow: 0 10px 26px rgba(255, 94, 91, 0.45),
		            0 4px 10px  rgba(255, 94, 91, 0.30),
		            inset 0 -3px 0 rgba(0, 0, 0, 0.10);
	}
	50% {
		transform: scale(1.015);
		box-shadow: 0 14px 36px rgba(255, 94, 91, 0.60),
		            0 6px 14px  rgba(255, 94, 91, 0.35),
		            inset 0 -3px 0 rgba(0, 0, 0, 0.12);
	}
}

/* Mobile: botón ocupa todo el ancho */
@media (max-width: 600px) {
	.c100bm-trigger-btn { max-width: 100%; padding: 14px 18px; }
	.c100bm-trigger-title { font-size: 16px; }
	.c100bm-trigger-subtitle { font-size: 11.5px; }
	.c100bm-trigger-icon { width: 22px; height: 22px; }
	.c100bm-trigger-arrow { width: 20px; height: 20px; }
}

/* ============================================================
 * 5. OVERLAY + MODAL
 * ============================================================ */
.c100bm-overlay {
	position: fixed;
	inset: 0;
	background: rgba(14, 58, 77, 0.55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	z-index: 999999;
	opacity: 0;
	transition: opacity 0.25s ease;
}
.c100bm-overlay.active {
	display: flex;
	opacity: 1;
}

/* Cuando el modal está activo, ocultamos chat widgets externos
 * (Kommo, Tawk, Crisp, Tidio, etc.) para no obstruir la reserva.
 * El widget vuelve solo cuando se cierra el modal. */
body.c100bm-modal-open #kommo-livechat,
body.c100bm-modal-open #kommo_chat_button,
body.c100bm-modal-open [id*="kommo"],
body.c100bm-modal-open [class*="kommo"],
body.c100bm-modal-open .crisp-client,
body.c100bm-modal-open #tawk_chat_widget,
body.c100bm-modal-open .tidio-online-chat,
body.c100bm-modal-open iframe[title*="chat"i] {
	visibility: hidden !important;
	pointer-events: none !important;
}

.c100bm-modal {
	background: var(--c100bm-bg);
	width: 100%;
	max-width: 520px;
	max-height: 92vh;
	border-radius: var(--c100bm-radius-modal);
	box-shadow: var(--c100bm-shadow-modal);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: translateY(20px) scale(0.98);
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	outline: none;
}
.c100bm-overlay.active .c100bm-modal {
	transform: translateY(0) scale(1);
}

/* ============================================================
 * 6. HEADER + PROGRESS
 * ============================================================ */
.c100bm-header {
	position: relative;
	padding: 20px 24px 18px;
	border-bottom: 1px solid var(--c100bm-border);
	background: linear-gradient(180deg, var(--c100bm-brand-primary-soft) 0%, #fff 100%);
}
.c100bm-header-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
}
.c100bm-header h2 {
	font-size: 18px;
	font-weight: 600;
	color: var(--c100bm-text-primary);
	line-height: 1.25;
	letter-spacing: -0.005em;
	margin: 0;
}
.c100bm-header-subtitle {
	font-size: 12px;
	color: var(--c100bm-text-muted);
	margin: 3px 0 0;
}
.c100bm-overlay .c100bm-close {
	width: 36px !important;
	height: 36px !important;
	flex: 0 0 36px;
	border: none !important;
	background: rgba(255, 255, 255, 0.95) !important;
	border-radius: 999px !important;
	cursor: pointer;
	display: grid !important;
	place-items: center !important;
	color: var(--c100bm-text-primary) !important;
	transition: background 0.15s, transform 0.15s;
	padding: 0 !important;
	box-shadow: 0 2px 6px rgba(14, 58, 77, 0.18);
}
.c100bm-overlay .c100bm-close:hover { background: #fff !important; transform: scale(1.05); }
.c100bm-overlay .c100bm-close svg {
	width: 16px !important;
	height: 16px !important;
	display: block !important;
	stroke: currentColor !important;
	fill: none !important;
}

.c100bm-progress {
	display: flex;
	gap: 6px;
	margin-bottom: 8px;
}
.c100bm-progress-step {
	flex: 1;
	height: 4px;
	background: var(--c100bm-border);
	border-radius: 2px;
	transition: background 0.25s;
}
.c100bm-progress-step.done,
.c100bm-progress-step.current {
	background: var(--c100bm-brand-primary);
}

.c100bm-progress-label {
	font-size: 11px;
	color: var(--c100bm-text-muted);
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-weight: 600;
}

/* ============================================================
 * 7. STEPS
 * ============================================================ */
.c100bm-body {
	flex: 1;
	overflow-y: auto;
	padding: 22px 24px;
	scrollbar-width: thin;
	scrollbar-color: var(--c100bm-border) transparent;
}
.c100bm-body::-webkit-scrollbar { width: 6px; }
.c100bm-body::-webkit-scrollbar-thumb { background: var(--c100bm-border); border-radius: 3px; }

.c100bm-step { display: none; animation: c100bmStepIn 0.3s ease; }
.c100bm-step.active { display: block; }
@keyframes c100bmStepIn {
	from { opacity: 0; transform: translateX(8px); }
	to   { opacity: 1; transform: translateX(0); }
}

.c100bm-step-title {
	font-size: 19px;
	font-weight: 600;
	color: var(--c100bm-text-primary);
	margin: 0 0 4px;
	letter-spacing: -0.01em;
}
.c100bm-step-subtitle {
	font-size: 13px;
	color: var(--c100bm-text-muted);
	margin: 0 0 20px;
}

.c100bm-group-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c100bm-text-primary);
	margin: 22px 0 10px;
}
.c100bm-group-label:first-of-type { margin-top: 0; }

/* ============================================================
 * 8. OPTIONS (add-ons radio cards)
 * ============================================================ */
.c100bm-option-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.c100bm-option {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px;
	background: var(--c100bm-bg-soft);
	border: 2px solid transparent;
	border-radius: var(--c100bm-radius-card);
	cursor: pointer;
	transition: all 0.15s ease;
}
.c100bm-option:hover {
	background: #fff;
	border-color: var(--c100bm-border-strong);
}
.c100bm-option.selected {
	background: var(--c100bm-brand-primary-soft);
	border-color: var(--c100bm-brand-primary);
}
.c100bm-option-radio {
	width: 20px;
	height: 20px;
	border: 2px solid var(--c100bm-border-strong);
	border-radius: 999px;
	flex: 0 0 20px;
	position: relative;
	transition: all 0.15s;
}
.c100bm-option.selected .c100bm-option-radio {
	border-color: var(--c100bm-brand-primary);
	background: var(--c100bm-brand-primary);
}
.c100bm-option.selected .c100bm-option-radio::after {
	content: '';
	position: absolute;
	inset: 4px;
	background: #fff;
	border-radius: 999px;
}
.c100bm-option-content { flex: 1; min-width: 0; }
.c100bm-option-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--c100bm-text-primary);
	line-height: 1.3;
}
.c100bm-option-sublabel {
	font-size: 12px;
	color: var(--c100bm-text-muted);
	margin-top: 2px;
}
.c100bm-option-price {
	font-size: 13px;
	font-weight: 700;
	color: var(--c100bm-cta);
	white-space: nowrap;
}
.c100bm-option-price.free {
	color: var(--c100bm-success);
	font-weight: 600;
	font-size: 12px;
}

/* ============================================================
 * 9. CALENDAR
 * ============================================================ */
.c100bm-calendar {
	background: var(--c100bm-bg-soft);
	border-radius: var(--c100bm-radius-card);
	padding: 16px;
}
.c100bm-cal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.c100bm-cal-nav {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	border: none !important;
	background: #fff !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	display: grid !important;
	place-items: center !important;
	color: var(--c100bm-text-primary) !important;
	box-shadow: var(--c100bm-shadow-card);
	transition: background 0.15s;
	padding: 0 !important;
	flex: 0 0 auto !important;
	opacity: 1;
}
.c100bm-cal-nav:hover:not(:disabled) { background: var(--c100bm-brand-primary-soft) !important; }
.c100bm-cal-nav:disabled { opacity: 0.4; cursor: not-allowed; }
.c100bm-cal-nav svg {
	width: 16px !important;
	height: 16px !important;
	display: block !important;
	stroke: currentColor !important;
	fill: none !important;
}
.c100bm-cal-month {
	font-size: 14px;
	font-weight: 700;
	color: var(--c100bm-text-primary);
	letter-spacing: -0.005em;
	text-transform: capitalize;
}
.c100bm-cal-grid {
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
	gap: 4px;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}
.c100bm-cal-dow {
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	color: var(--c100bm-text-muted);
	padding: 6px 0;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	min-width: 0;
}
.c100bm-cal-day {
	aspect-ratio: 1;
	border: none !important;
	background: transparent;
	border-radius: 8px !important;
	font-family: inherit !important;
	font-size: 13px;
	font-weight: 500;
	color: var(--c100bm-text-body) !important;
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box;
	padding: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: all 0.12s;
	position: relative;
}
.c100bm-cal-day.empty { cursor: default; }
.c100bm-cal-day:not(.disabled):not(.empty):hover {
	background: var(--c100bm-brand-primary-soft);
	color: var(--c100bm-brand-primary-dark);
}
.c100bm-cal-day.disabled {
	color: #c8c8c8;
	cursor: not-allowed;
	text-decoration: line-through;
}
/* Días restringidos (domingos sin operación) — visualmente distintos a "pasados" */
.c100bm-cal-day.disabled.restricted {
	background: rgba(239, 68, 68, 0.05);
	text-decoration: none;
	color: #d4a4a4;
	position: relative;
}
.c100bm-cal-day.disabled.restricted::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 18%;
	right: 18%;
	height: 1px;
	background: rgba(239, 68, 68, 0.35);
	transform: rotate(-12deg);
}
.c100bm-cal-day.today { font-weight: 700; }
.c100bm-cal-day.today::after {
	content: '';
	position: absolute;
	bottom: 4px;
	left: 50%;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--c100bm-brand-primary);
	transform: translateX(-50%);
}
.c100bm-cal-day.selected {
	background: var(--c100bm-brand-primary) !important;
	color: #fff !important;
	font-weight: 700;
}
.c100bm-cal-day.selected::after { background: #fff !important; }
.c100bm-cal-legend {
	display: flex;
	gap: 16px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--c100bm-border);
	font-size: 11px;
	color: var(--c100bm-text-muted);
}
.c100bm-legend-item { display: flex; align-items: center; gap: 6px; }
.c100bm-legend-dot { width: 10px; height: 10px; border-radius: 50%; }
.c100bm-dot-selected { background: var(--c100bm-brand-primary); }
.c100bm-dot-unavailable { background: #cbd5e0; }

/* ============================================================
 * 10. COUNTERS (person types)
 * ============================================================ */
.c100bm-counter-list { display: flex; flex-direction: column; gap: 8px; }
.c100bm-counter-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px;
	background: var(--c100bm-bg-soft);
	border-radius: var(--c100bm-radius-card);
}
.c100bm-counter-info { flex: 1; min-width: 0; }
.c100bm-counter-name { font-size: 14px; font-weight: 700; color: var(--c100bm-text-primary); }
.c100bm-counter-desc { font-size: 12px; color: var(--c100bm-text-muted); margin-top: 2px; }
.c100bm-counter-price {
	font-size: 12px;
	font-weight: 600;
	color: var(--c100bm-brand-primary-dark);
	margin-top: 4px;
}
.c100bm-counter-price.free { color: var(--c100bm-success); }
.c100bm-counter-controls { display: flex; align-items: center; gap: 10px; }
.c100bm-counter-btn {
	width: 32px;
	height: 32px;
	border: 2px solid var(--c100bm-brand-primary);
	background: #fff;
	color: var(--c100bm-brand-primary);
	border-radius: 999px;
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: all 0.15s;
	font-family: inherit;
	line-height: 1;
}
.c100bm-counter-btn:hover:not(:disabled) {
	background: var(--c100bm-brand-primary);
	color: #fff;
}
.c100bm-counter-btn:disabled {
	border-color: var(--c100bm-border);
	color: var(--c100bm-border-strong);
	cursor: not-allowed;
}
.c100bm-counter-value {
	font-size: 16px;
	font-weight: 700;
	color: var(--c100bm-text-primary);
	min-width: 22px;
	text-align: center;
}

/* ============================================================
 * 11. PROMO
 * ============================================================ */
.c100bm-promo-section { margin-top: 22px; }
.c100bm-promo-row { display: flex; gap: 8px; }
.c100bm-promo-input {
	flex: 1;
	padding: 12px 14px;
	border: 2px solid var(--c100bm-border);
	border-radius: var(--c100bm-radius-btn);
	font-family: inherit;
	font-size: 13px;
	background: #fff;
	color: var(--c100bm-text-body);
	transition: border-color 0.15s;
}
.c100bm-promo-input:focus {
	outline: none;
	border-color: var(--c100bm-brand-primary);
}
.c100bm-promo-btn {
	padding: 0 18px;
	background: var(--c100bm-text-primary);
	color: #fff;
	border: none;
	border-radius: var(--c100bm-radius-btn);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s;
}
.c100bm-promo-btn:hover { background: #0a2a3a; }

/* ============================================================
 * 12. HINT
 * ============================================================ */
.c100bm-hint {
	margin-top: 18px;
	padding: 12px 14px;
	background: var(--c100bm-bg-info);
	border-left: 3px solid var(--c100bm-cta);
	border-radius: 6px;
	font-size: 12.5px;
	color: var(--c100bm-text-body);
}
.c100bm-hint b { color: var(--c100bm-text-primary); font-weight: 700; }

/* ============================================================
 * 13. SUMMARY + TOTAL + TRUST
 * ============================================================ */
.c100bm-summary-card {
	background: var(--c100bm-bg-soft);
	border-radius: var(--c100bm-radius-card);
	padding: 16px 18px;
	border: 1px solid var(--c100bm-border);
}
.c100bm-summary-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 9px 0;
	font-size: 13px;
}
.c100bm-summary-row + .c100bm-summary-row { border-top: 1px dashed var(--c100bm-border); }
.c100bm-summary-row.divider {
	border-top: 1px solid var(--c100bm-border-strong);
	margin-top: 4px;
	padding-top: 12px;
}
.c100bm-summary-label { color: var(--c100bm-text-muted); flex: 0 0 auto; }
.c100bm-summary-value {
	font-weight: 600;
	color: var(--c100bm-text-primary);
	text-align: right;
}

.c100bm-summary-total {
	margin-top: 14px;
	padding: 20px 20px 18px;
	background: linear-gradient(135deg, var(--c100bm-brand-primary) 0%, var(--c100bm-cta) 100%);
	border-radius: var(--c100bm-radius-card);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	overflow: visible;
}
.c100bm-summary-total-main {
	display: flex !important;
	flex-direction: column;
	gap: 6px !important;
	min-height: 50px;
	padding-top: 2px;
}
.c100bm-summary-total-label {
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.85;
	line-height: 1.3;
}
.c100bm-summary-total-value {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.01em;
	display: block;
	padding: 2px 0;
}
.c100bm-summary-total-currency {
	font-size: 13px;
	margin-left: 6px;
	opacity: 0.85;
	font-weight: 500;
}

.c100bm-trust-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	margin-top: 16px;
}
.c100bm-trust-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	text-align: center;
	padding: 12px 8px;
	background: var(--c100bm-bg-soft);
	border-radius: 10px;
	font-size: 11px;
	font-weight: 600;
	color: var(--c100bm-text-body);
	line-height: 1.25;
}
.c100bm-trust-item svg { width: 22px; height: 22px; color: var(--c100bm-brand-primary); }
.c100bm-trust-item.c100bm-trust-meta svg { color: #1877F2; }

/* RNT SECTUR — linkeable, color "gov green" sutil */
a.c100bm-trust-item.c100bm-trust-rnt {
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
a.c100bm-trust-item.c100bm-trust-rnt:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 100, 60, 0.12);
}
a.c100bm-trust-item.c100bm-trust-rnt:focus-visible {
	outline: 2px solid #10B981;
	outline-offset: 2px;
}
.c100bm-trust-item.c100bm-trust-rnt svg { color: #0F6E56; }
.c100bm-trust-item.c100bm-trust-rnt b { color: #0F6E56; }

.c100bm-trust-item b { color: var(--c100bm-text-primary); display: block; font-weight: 700; }
.c100bm-trust-meta::after {
	content: '✓';
	display: inline-block;
	width: 12px;
	height: 12px;
	background: #1877F2;
	color: #fff;
	border-radius: 50%;
	font-size: 9px;
	line-height: 12px;
	text-align: center;
	margin-left: 3px;
	font-weight: 700;
}

/* ============================================================
 * 14. FOOTER + CTAs
 * ============================================================ */
.c100bm-footer {
	border-top: 1px solid var(--c100bm-border);
	background: #fff;
	padding: 14px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.c100bm-footer-price { flex: 0 0 auto; }
.c100bm-footer-price-label {
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c100bm-text-muted);
	font-weight: 700;
}
.c100bm-footer-price-value {
	font-size: 20px;
	font-weight: 700;
	color: var(--c100bm-text-primary);
	letter-spacing: -0.01em;
}
.c100bm-footer-actions {
	display: flex;
	gap: 12px;
	flex: 1;
	justify-content: flex-end;
	align-items: stretch;
}
/* El CTA principal (Reservar Ahora) ocupa más espacio para destacar */
.c100bm-overlay .c100bm-footer .c100bm-btn-primary {
	flex: 0 1 auto;
	min-width: 160px;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary {
	flex: 0 0 auto;
}
/* WhatsApp queda más pequeño/secundario para reducir confusión con el CTA */
.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp {
	flex: 0 0 auto;
	padding: 11px 14px !important;
}

.c100bm-overlay .c100bm-footer .c100bm-btn-secondary,
.c100bm-overlay .c100bm-footer .c100bm-btn-primary,
.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px;
	padding: 11px 18px !important;
	border-radius: var(--c100bm-radius-btn) !important;
	font-family: inherit !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: all 0.15s;
	letter-spacing: 0.01em !important;
	text-transform: none !important;
	line-height: 1.2 !important;
	min-height: auto !important;
	width: auto !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary {
	background: transparent !important;
	color: var(--c100bm-text-body) !important;
	border: 2px solid var(--c100bm-border) !important;
	box-shadow: none !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary:hover:not(:disabled) {
	background: var(--c100bm-bg-soft) !important;
	border-color: var(--c100bm-border-strong) !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary:disabled { opacity: 0.4; cursor: not-allowed; }
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary svg { width: 14px !important; height: 14px !important; }

.c100bm-overlay .c100bm-footer .c100bm-btn-primary {
	background: var(--c100bm-cta) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: var(--c100bm-shadow-cta) !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-primary:hover {
	background: var(--c100bm-cta-hover) !important;
	transform: translateY(-1px);
}
.c100bm-overlay .c100bm-footer .c100bm-btn-primary svg { width: 14px !important; height: 14px !important; }

.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp {
	background: var(--c100bm-whatsapp) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: 0 4px 12px rgba(37, 211, 102, 0.30) !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp:hover { background: var(--c100bm-whatsapp-hover) !important; }
.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp svg { width: 16px !important; height: 16px !important; fill: white !important; }

/* ============================================================
 * 14.6 LOADING & ERROR STATES (v0.5.0 — checkout real)
 * ============================================================ */
.c100bm-overlay .c100bm-footer .c100bm-btn-primary.is-loading {
	opacity: 0.85;
	cursor: progress;
	pointer-events: none;
	position: relative;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-primary.is-loading::after {
	content: '';
	position: absolute;
	right: 14px;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: c100bmSpin 0.6s linear infinite;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-primary.is-loading svg {
	visibility: hidden;
}
@keyframes c100bmSpin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

.c100bm-submit-error {
	display: none;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	padding: 12px 14px;
	background: #FCEBEB;
	border: 1px solid #F09595;
	border-radius: 10px;
	color: #791F1F;
	font-size: 13px;
	line-height: 1.4;
}
.c100bm-submit-error svg {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
}

/* Step error: validación pre-submit (color ámbar para diferenciar de error rojo) */
.c100bm-step-error {
	display: none;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	padding: 10px 14px;
	background: #FFF4E5;
	border: 1px solid #FFB870;
	border-radius: 10px;
	color: #8B4A0A;
	font-size: 13px;
	line-height: 1.4;
}

/* ============================================================
 * 14.5 MULTI-MONEDA (v0.4.0)
 *   - Selector header (toggle_pill o dual_cards)
 *   - Total dual price + badge garantizado
 *   - Step "¿En qué moneda pagar?"
 * ============================================================ */

/* Layout del header — el selector va antes del botón cerrar */
.c100bm-header-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}
.c100bm-header-title-block { flex: 1; min-width: 0; }

/* Selector contenedor */
.c100bm-currency-selector {
	flex: 0 0 auto;
}

/* === ESTILO A: Toggle pill === */
.c100bm-curr-toggle {
	display: inline-flex;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--c100bm-border);
	border-radius: 999px;
	padding: 2px;
	font-size: 11px;
	font-weight: 700;
}
.c100bm-curr-toggle-btn {
	border: none;
	background: transparent;
	padding: 4px 10px;
	border-radius: 999px;
	cursor: pointer;
	color: var(--c100bm-text-muted);
	font-family: inherit;
	font-weight: 700;
	letter-spacing: 0.02em;
	transition: all 0.18s;
	min-width: 36px;
}
.c100bm-curr-toggle-btn:hover { color: var(--c100bm-text-primary); }
.c100bm-curr-toggle-btn.active {
	background: var(--c100bm-cta);
	color: #fff !important;
	box-shadow: 0 2px 6px rgba(255, 107, 53, 0.30);
}
.c100bm-button-wrap.theme-v2 .c100bm-curr-toggle-btn.active,
.c100bm-overlay.theme-v2 .c100bm-curr-toggle-btn.active {
	background: var(--c100bm-brand-primary);
}
.c100bm-overlay.theme-v3 .c100bm-curr-toggle-btn.active {
	background: linear-gradient(135deg, var(--c100bm-brand-primary) 0%, var(--c100bm-cta) 100%);
}

/* === ESTILO B: Cards lado a lado === */
.c100bm-curr-cards {
	display: flex;
	gap: 6px;
}
.c100bm-curr-card {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	background: rgba(255, 255, 255, 0.85);
	border: 2px solid transparent;
	border-radius: 8px;
	padding: 4px 8px;
	cursor: pointer;
	font-family: inherit;
	transition: all 0.18s;
	min-width: 42px;
}
.c100bm-curr-card-symbol {
	font-size: 14px;
	font-weight: 700;
	color: var(--c100bm-text-muted);
	line-height: 1;
}
.c100bm-curr-card-code {
	font-size: 9px;
	font-weight: 700;
	color: var(--c100bm-text-muted);
	letter-spacing: 0.04em;
	line-height: 1;
}
.c100bm-curr-card:hover { border-color: var(--c100bm-border-strong); }
.c100bm-curr-card.active {
	border-color: var(--c100bm-cta);
	background: #fff;
}
.c100bm-curr-card.active .c100bm-curr-card-symbol,
.c100bm-curr-card.active .c100bm-curr-card-code {
	color: var(--c100bm-cta);
}

/* === Card oscura del total con dual price === */
.c100bm-summary-total {
	display: flex !important;
	flex-direction: column;
	align-items: stretch !important;
	gap: 10px;
}
.c100bm-summary-total-main {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.c100bm-summary-total-secondary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 8px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	gap: 12px;
}
.c100bm-summary-total-secondary-label {
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 700;
	opacity: 0.7;
}
.c100bm-summary-total-secondary-value {
	font-family: 'Metropolis', system-ui, sans-serif;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

/* Badge "Precio garantizado 24h" */
.c100bm-summary-total-guaranteed {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 6px;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 999px;
	letter-spacing: 0.04em;
	align-self: flex-start;
	width: max-content;
}

/* === Step "¿En qué moneda quieres pagar?" === */
.c100bm-payment-choice {
	margin-top: 14px;
	padding: 14px 16px;
	background: var(--c100bm-bg-soft);
	border: 1px solid var(--c100bm-border);
	border-radius: var(--c100bm-radius-card);
}
.c100bm-payment-choice-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--c100bm-text-primary);
	margin-bottom: 10px;
}
.c100bm-payment-choice-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.c100bm-payment-option {
	display: flex !important;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 2px solid var(--c100bm-border);
	border-radius: 10px;
	padding: 10px 14px;
	cursor: pointer;
	transition: all 0.15s;
	margin: 0 !important;
}
.c100bm-payment-option:hover { border-color: var(--c100bm-border-strong); }
.c100bm-payment-option.selected {
	border-color: var(--c100bm-brand-primary);
	background: var(--c100bm-brand-primary-soft);
}
.c100bm-payment-option input[type="radio"] { display: none; }
.c100bm-payment-radio {
	width: 18px;
	height: 18px;
	border: 2px solid var(--c100bm-border-strong);
	border-radius: 999px;
	flex: 0 0 18px;
	position: relative;
	transition: all 0.15s;
}
.c100bm-payment-option.selected .c100bm-payment-radio {
	border-color: var(--c100bm-brand-primary);
	background: var(--c100bm-brand-primary);
}
.c100bm-payment-option.selected .c100bm-payment-radio::after {
	content: '';
	position: absolute;
	inset: 3px;
	background: #fff;
	border-radius: 999px;
}
.c100bm-payment-content { flex: 1; min-width: 0; }
.c100bm-payment-amount {
	font-size: 14px;
	font-weight: 700;
	color: var(--c100bm-text-primary);
	line-height: 1.2;
}
.c100bm-payment-note {
	font-size: 11.5px;
	margin-top: 2px;
}
.c100bm-payment-note.success { color: #0F6E56; font-weight: 600; }
.c100bm-payment-note.neutral { color: var(--c100bm-text-muted); }

/* Mobile: ajustes */
@media (max-width: 600px) {
	.c100bm-curr-toggle-btn { padding: 3px 8px; min-width: 32px; font-size: 10.5px; }
	.c100bm-curr-card { padding: 3px 6px; min-width: 36px; }
	.c100bm-curr-card-symbol { font-size: 12px; }
	.c100bm-curr-card-code { font-size: 8.5px; }
	.c100bm-summary-total-secondary-value { font-size: 15px; }
	.c100bm-payment-choice { padding: 12px 14px; }
}

/* ============================================================
 * 15. RESPONSIVE — Mobile bottom sheet
 * v0.9.7 (Fase 3.2): breakpoint 600 -> 979 para que el popup sea
 * bottom-sheet en TODO el rango movil (<980px), igual que la barra
 * fija y el terminal acordeon. Es la "cara movil" reskineada.
 * ============================================================ */
@media (max-width: 979px) {
	.c100bm-overlay {
		padding: 0;
		align-items: flex-end;
	}
	.c100bm-modal {
		max-width: none;
		max-height: 96vh;
		border-radius: var(--c100bm-radius-modal) var(--c100bm-radius-modal) 0 0;
		transform: translateY(100%) scale(1);
	}
	.c100bm-overlay.active .c100bm-modal { transform: translateY(0) scale(1); }
	.c100bm-header { padding: 16px 16px 14px; }
	.c100bm-body { padding: 16px 14px; }
	.c100bm-footer { padding: 12px 14px; }
	.c100bm-header h2 { font-size: 16px; }
	.c100bm-step-title { font-size: 17px; }
	.c100bm-summary-total-value { font-size: 28px; }
	.c100bm-overlay .c100bm-footer .c100bm-btn-secondary span,
	.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp span { display: none; }
	.c100bm-overlay .c100bm-footer .c100bm-btn-secondary,
	.c100bm-overlay .c100bm-footer .c100bm-btn-primary,
	.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp { padding: 10px 14px !important; }
	.c100bm-overlay .c100bm-footer .c100bm-btn-whatsapp {
		width: 44px;
		min-width: 44px;
		padding: 10px !important;
		justify-content: center;
	}
	.c100bm-footer-actions { gap: 10px; }
	/* CTA primary dominante en mobile */
	.c100bm-overlay .c100bm-footer .c100bm-btn-primary {
		min-width: 120px;
		flex: 1;
	}
	.c100bm-overlay .c100bm-footer .c100bm-btn-secondary {
		width: 40px;
		min-width: 40px;
		padding: 10px !important;
		justify-content: center;
	}

	/* CALENDARIO MÓVIL — compacto, ocupa solo lo disponible, no overflow */
	.c100bm-calendar {
		padding: 12px 8px !important;
		margin: 0 -2px;
		box-sizing: border-box;
		max-width: 100%;
		overflow: hidden;
	}
	.c100bm-cal-header { margin-bottom: 10px; }
	.c100bm-cal-month { font-size: 13px; }
	.c100bm-cal-nav { width: 28px; height: 28px; }
	.c100bm-cal-grid {
		gap: 2px !important;
		width: 100%;
		max-width: 100%;
	}
	.c100bm-cal-day {
		font-size: 12px !important;
		border-radius: 6px !important;
		min-width: 0 !important;
		min-height: 0 !important;
		padding: 0 !important;
		width: 100% !important;
	}
	.c100bm-cal-dow {
		font-size: 9.5px !important;
		padding: 4px 0 !important;
		letter-spacing: 0.02em;
	}
	.c100bm-cal-legend { font-size: 10.5px; gap: 12px; padding-top: 10px; }
	.c100bm-cal-day.today::after { width: 3px; height: 3px; bottom: 3px; }
}

/* ============================================================
   v0.6.9 — Banner Opción D bajo CTA: "−20% Aparta hoy · Paga el resto"
   ============================================================ */

.c100bm-deposit-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
	padding: 10px 14px;
	background: #FAC775;
	color: #4A1B0C;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	box-shadow: 0 2px 8px rgba(74, 27, 12, 0.08);
}

.c100bm-deposit-banner-pill {
	flex-shrink: 0;
	background: #4A1B0C;
	color: #FAC775;
	padding: 3px 9px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.c100bm-deposit-banner-text {
	flex: 1;
}

@media (max-width: 480px) {
	.c100bm-deposit-banner {
		font-size: 12px;
		padding: 9px 12px;
		gap: 8px;
	}
	.c100bm-deposit-banner-pill {
		font-size: 10px;
		padding: 2px 7px;
	}
}

/* ============================================================
   v0.7.0 — Aparta con depósito (paso 4): toggle interno por moneda
   + caja de beneficios + balance pendiente + CTA en modo depósito
   ============================================================ */

/* Header de cada tarjeta de moneda (cuando hay toggle interno) */
.c100bm-payment-header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 10px;
	gap: 10px;
}

.c100bm-payment-curr-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--c100bm-text, #1a1a1a);
}

/* Toggle full vs deposit dentro de cada tarjeta */
.c100bm-payment-mode-toggle {
	display: flex;
	gap: 0;
	background: rgba(0,0,0,0.04);
	border-radius: 10px;
	padding: 3px;
	margin-top: 4px;
}

.c100bm-payment-mode-toggle.is-disabled {
	opacity: 0.45;
	pointer-events: none;
}

.c100bm-pm-half {
	flex: 1;
	padding: 8px 6px;
	background: transparent;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	font-family: inherit;
	display: flex;
	flex-direction: column;
	gap: 2px;
	align-items: center;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.c100bm-pm-half.is-off {
	color: rgba(0,0,0,0.55);
}

.c100bm-pm-half.is-on-pink {
	background: #FFFFFF;
	border: 0.5px solid #D4537E;
	box-shadow: 0 1px 3px rgba(212, 83, 126, 0.12);
}

.c100bm-pm-half.is-on-amber {
	background: #FAEEDA;
	border: 0.5px solid #BA7517;
	box-shadow: 0 1px 3px rgba(186, 117, 23, 0.18);
}

.c100bm-pm-tag {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.c100bm-pm-half.is-on-pink .c100bm-pm-tag  { color: #D4537E; }
.c100bm-pm-half.is-on-amber .c100bm-pm-tag { color: #BA7517; }
.c100bm-pm-half.is-off .c100bm-pm-tag      { color: rgba(0,0,0,0.4); }

.c100bm-pm-amt {
	font-size: 14px;
	font-weight: 600;
}

.c100bm-pm-half.is-on-pink .c100bm-pm-amt  { color: #993556; }
.c100bm-pm-half.is-on-amber .c100bm-pm-amt { color: #854F0B; }
.c100bm-pm-half.is-off .c100bm-pm-amt      { color: rgba(0,0,0,0.5); }

.c100bm-pm-half:focus-visible {
	outline: 2px solid #BA7517;
	outline-offset: 1px;
}

/* Caja ámbar con beneficios del apartado (visible solo en modo deposit) */
.c100bm-deposit-info {
	background: #FAEEDA;
	border: 0.5px solid #FAC775;
	border-radius: 10px;
	padding: 11px 13px;
	margin: 12px 0 10px;
}

.c100bm-deposit-info-title {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 10.5px;
	font-weight: 600;
	color: #854F0B;
	letter-spacing: 0.04em;
	margin-bottom: 6px;
}

.c100bm-deposit-info-title svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.c100bm-deposit-info-item {
	font-size: 12px;
	color: #633806;
	line-height: 1.45;
	padding: 2px 0;
}

/* Barra coral "Pendiente al abordar" */
.c100bm-deposit-balance {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #F5C4B3;
	border-radius: 8px;
	padding: 9px 13px;
	margin: 0 0 10px;
	font-size: 12px;
	color: #4A1B0C;
}

.c100bm-deposit-balance strong {
	font-weight: 600;
	font-size: 13px;
}

/* Modo depósito en la tarjeta: borde ámbar en lugar de rosa */
.c100bm-payment-option.selected.deposit-mode {
	border-color: #BA7517;
	background: #FAEEDA;
}

.c100bm-payment-option.selected.deposit-mode .c100bm-payment-radio {
	border-color: #BA7517;
}

/* Botón "Reservar Ahora" en modo depósito: pasa a ámbar */
.c100bm-btn-primary.is-deposit-mode,
button.c100bm-btn-primary.is-deposit-mode {
	background: linear-gradient(135deg, #BA7517 0%, #E78A47 100%);
	box-shadow: 0 4px 12px rgba(186, 117, 23, 0.3);
}

/* Mobile */
@media (max-width: 480px) {
	.c100bm-pm-half          { padding: 7px 4px; }
	.c100bm-pm-amt           { font-size: 13px; }
	.c100bm-pm-tag           { font-size: 8px; }
	.c100bm-deposit-info     { padding: 10px 11px; }
	.c100bm-deposit-info-item{ font-size: 11.5px; }
	.c100bm-deposit-balance  { padding: 8px 11px; font-size: 11.5px; }
	.c100bm-deposit-balance strong { font-size: 12.5px; }
}

/* ============================================================
   v0.8.0 — Barra de pestañas MXN/USD (Plan D)
   ============================================================
   La pestaña activa tiene borde superior+laterales en color verde (MXN)
   o azul (USD) tenue, con grosor uniforme al resto de bordes del modal.
   Visualmente "envuelve" el body del modal sin alterar su contenido.
   ============================================================ */

.c100bm-curtabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 0 16px;
	margin: 14px 0 0;
}

.c100bm-curtab {
	background: #fff;
	border: 1.5px solid #e0ddd2;
	border-radius: 10px 10px 0 0;
	padding: 10px 8px 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	cursor: pointer;
	font-family: inherit;
	color: #5F5E5A;
	opacity: 0.65;
	position: relative;
	z-index: 1;
	margin-bottom: -1.5px;
	transition: opacity 0.15s ease, background 0.15s ease;
}

.c100bm-curtab:hover {
	opacity: 0.85;
}

.c100bm-curtab__flag {
	width: 26px;
	height: 16px;
	border-radius: 2px;
	flex-shrink: 0;
	display: block;
}

.c100bm-curtab__labels {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1.15;
}

.c100bm-curtab__sigla {
	font-size: 14px;
	font-weight: 500;
}

.c100bm-curtab__nombre {
	font-size: 9.5px;
	letter-spacing: 0.03em;
	font-weight: 500;
	margin-top: 1px;
	opacity: 0.8;
}

/* Pestaña ACTIVA — paleta verde (MXN) */
.c100bm-curtab.is-active[data-currency="MXN"] {
	background: #F5F9EE;
	border: 1.5px solid #C0DD97;
	border-bottom: 1.5px solid #F5F9EE;
	opacity: 1;
	z-index: 2;
	color: #173404;
}
.c100bm-curtab.is-active[data-currency="MXN"] .c100bm-curtab__nombre {
	color: #3B6D11;
	opacity: 1;
}

/* Pestaña ACTIVA — paleta azul (USD) */
.c100bm-curtab.is-active[data-currency="USD"] {
	background: #F0F6FB;
	border: 1.5px solid #B5D4F4;
	border-bottom: 1.5px solid #F0F6FB;
	opacity: 1;
	z-index: 2;
	color: #042C53;
}
.c100bm-curtab.is-active[data-currency="USD"] .c100bm-curtab__nombre {
	color: #0C447C;
	opacity: 1;
}

/* La línea de unión bajo las pestañas. Mismo grosor que los bordes del modal. */
.c100bm-curtabs::after {
	display: none;
}

/* Cuando MXN está activa, la línea superior del body es verde tenue */
.c100bm-modal[data-active-currency="MXN"] .c100bm-body {
	border-top: 1.5px solid #C0DD97;
}
.c100bm-modal[data-active-currency="USD"] .c100bm-body {
	border-top: 1.5px solid #B5D4F4;
}

/* Si por alguna razón no hay tabs (solo 1 moneda configurada), ocultar la franja */
.c100bm-curtabs:empty {
	display: none;
}

/* Mobile: pestañas un poco más pequeñas */
@media (max-width: 480px) {
	.c100bm-curtabs {
		padding: 0 12px;
		margin-top: 12px;
		gap: 4px;
	}
	.c100bm-curtab {
		padding: 9px 6px 11px;
		gap: 7px;
	}
	.c100bm-curtab__flag {
		width: 22px;
		height: 14px;
	}
	.c100bm-curtab__sigla {
		font-size: 13px;
	}
	.c100bm-curtab__nombre {
		font-size: 9px;
	}
}

/* ============================================================
   v0.8.0 — Z-index maximo + Kommo escondido al abrir modal
   ============================================================ */

.c100bm-overlay {
	z-index: 2147483646 !important;
}
.c100bm-modal {
	z-index: 2147483647 !important;
}

body.c100bm-modal-open #livechat,
body.c100bm-modal-open #kommo-bot,
body.c100bm-modal-open iframe[id*="kommo"],
body.c100bm-modal-open iframe[src*="kommo"],
body.c100bm-modal-open .kommo-button,
body.c100bm-modal-open .kommo-chat-widget,
body.c100bm-modal-open [class*="kommo-"],
body.c100bm-modal-open #amocrm-container,
body.c100bm-modal-open [id*="livechat-compact"] {
	display: none !important;
	visibility: hidden !important;
}

/* ============================================================
   v0.8.1 — Pestañas con más protagonismo
   ============================================================ */
.c100bm-curtabs {
	margin-top: 18px !important;
	gap: 8px !important;
}
.c100bm-curtab {
	border-width: 2px !important;
	padding: 12px 10px 14px !important;
	gap: 11px !important;
}
.c100bm-curtab__sigla {
	font-size: 16px !important;
	letter-spacing: 0.02em;
}
.c100bm-curtab__nombre {
	font-size: 11px !important;
	margin-top: 2px !important;
}
.c100bm-curtab__flag {
	width: 30px !important;
	height: 19px !important;
}

.c100bm-curtab.is-active[data-currency="MXN"] {
	border: 2px solid #97C459 !important;
	border-bottom: 2px solid #F5F9EE !important;
}
.c100bm-curtab.is-active[data-currency="USD"] {
	border: 2px solid #85B7EB !important;
	border-bottom: 2px solid #F0F6FB !important;
}
.c100bm-modal[data-active-currency="MXN"] .c100bm-body {
	border-top: 2px solid #97C459 !important;
}
.c100bm-modal[data-active-currency="USD"] .c100bm-body {
	border-top: 2px solid #85B7EB !important;
}

@media (max-width: 480px) {
	.c100bm-curtab__sigla { font-size: 15px !important; }
	.c100bm-curtab__nombre { font-size: 10.5px !important; }
	.c100bm-curtab__flag { width: 26px !important; height: 16px !important; }
}

/* ============================================================
   v0.8.1 — Kommo bloqueado con selectores reales + fallback
   ============================================================
   El widget de Kommo se monta vía gso.kommo.com/js/button.js que crea
   variantes según versión. Cubrimos los selectores oficiales documentados.
   ============================================================ */
body.c100bm-modal-open #kommo_crm_plugin,
body.c100bm-modal-open #kommo_chat_wrapper,
body.c100bm-modal-open #kommo-frame,
body.c100bm-modal-open .kommo-button-holder,
body.c100bm-modal-open .kommo-online-chat,
body.c100bm-modal-open [id^="kommo_"],
body.c100bm-modal-open [class^="kommo-"],
body.c100bm-modal-open [class*=" kommo-"],
body.c100bm-modal-open iframe[src*="gso.kommo.com"],
body.c100bm-modal-open iframe[src*=".kommo.com"],
body.c100bm-modal-open iframe[src*="kommo.com/js"] {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* ============================================================
 * 16. CYBER-JUNGLE SKIN (cancunatvs) — v0.9.0
 * ------------------------------------------------------------
 * SKIN ÚNICO y fijo. Remapea las variables base a la paleta
 * neón/oscura de EL ARKI (tokens.md) y tapa los pocos colores
 * claros hardcodeados del cuerpo. NO toca layout ni motor.
 * Fuente: booking-terminal-skin.html + tokens.md (#39FF14).
 * Se declara al FINAL para vencer por orden de origen a V1/V2/V3.
 * ============================================================ */

/* --- Variables base → Cyber-Jungle --- */
.c100bm-overlay,
.c100bm-button-wrap {
	font-family: 'Oswald', system-ui, -apple-system, sans-serif;

	--c100bm-brand-primary:      #39FF14;
	--c100bm-brand-primary-soft: rgba(57, 255, 20, 0.12);
	--c100bm-brand-primary-dark: #32E612;
	--c100bm-cta:                #39FF14;
	--c100bm-cta-hover:          #32E612;
	--c100bm-cta-soft:           rgba(57, 255, 20, 0.10);
	--c100bm-whatsapp:           #25D366;
	--c100bm-whatsapp-hover:     #1da851;
	--c100bm-success:            #39FF14;
	--c100bm-error:              #EF4444;
	--c100bm-text-primary:       #FFFFFF;
	--c100bm-text-body:          #E4E4E7;
	--c100bm-text-muted:         #A1A1AA;
	--c100bm-bg:                 #0B0B0D;
	--c100bm-bg-soft:            rgba(255, 255, 255, 0.04);
	--c100bm-bg-info:            rgba(57, 255, 20, 0.06);
	--c100bm-border:             #2A2A30;
	--c100bm-border-strong:      #3F3F46;
	--c100bm-shadow-modal:       0 24px 70px rgba(0, 0, 0, 0.70);
	--c100bm-shadow-card:        0 2px 8px rgba(0, 0, 0, 0.40);
	--c100bm-shadow-cta:         0 0 0 1px rgba(57, 255, 20, 0.5), 0 8px 24px rgba(57, 255, 20, 0.28);
}

/* Tipografía mono (precios, totales, etiquetas) */
.c100bm-overlay .c100bm-option-price,
.c100bm-overlay .c100bm-counter-price,
.c100bm-overlay .c100bm-counter-value,
.c100bm-overlay .c100bm-progress-label,
.c100bm-overlay .c100bm-group-label,
.c100bm-overlay .c100bm-cal-month,
.c100bm-overlay .c100bm-footer-price-value,
.c100bm-overlay .c100bm-summary-total-value,
.c100bm-overlay .c100bm-summary-total-secondary-value {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
}

/* Panel del modal: borde + hairline neón superior */
.c100bm-overlay .c100bm-modal {
	border: 1px solid var(--c100bm-border);
	position: relative;
}
.c100bm-overlay .c100bm-modal::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(57, 255, 20, 0.7), transparent);
	z-index: 3;
	pointer-events: none;
}

/* Header (quita el gradiente a blanco) */
.c100bm-overlay .c100bm-header {
	background: linear-gradient(180deg, rgba(57, 255, 20, 0.06) 0%, transparent 100%);
	border-bottom-color: var(--c100bm-border);
}

/* Botón cerrar */
.c100bm-overlay .c100bm-close {
	background: rgba(255, 255, 255, 0.06) !important;
	color: #fff !important;
	box-shadow: none;
}
.c100bm-overlay .c100bm-close:hover { background: rgba(57, 255, 20, 0.16) !important; }

/* Inputs oscuros */
.c100bm-overlay input[type="text"],
.c100bm-overlay input[type="email"],
.c100bm-overlay input[type="tel"],
.c100bm-overlay .c100bm-promo-input {
	background: rgba(255, 255, 255, 0.04) !important;
	color: var(--c100bm-text-body);
	border-color: var(--c100bm-border);
}

/* Opciones (tarjetas) */
.c100bm-overlay .c100bm-option:hover {
	background: rgba(57, 255, 20, 0.06);
	border-color: var(--c100bm-border-strong);
}
.c100bm-overlay .c100bm-option.selected .c100bm-option-radio::after { background: #041b00; }

/* Calendario */
.c100bm-overlay .c100bm-cal-nav {
	background: rgba(255, 255, 255, 0.06) !important;
	color: #fff !important;
	box-shadow: none;
}
.c100bm-overlay .c100bm-cal-nav:hover:not(:disabled) { background: rgba(57, 255, 20, 0.16) !important; }
.c100bm-overlay .c100bm-cal-day.selected { background: var(--c100bm-brand-primary) !important; color: #041b00 !important; }
.c100bm-overlay .c100bm-cal-day.selected::after { background: #041b00 !important; }
.c100bm-overlay .c100bm-cal-day.disabled { color: #52525b; }
.c100bm-overlay .c100bm-dot-unavailable { background: #52525b; }

/* Contadores de personas */
.c100bm-overlay .c100bm-counter-btn { background: rgba(255, 255, 255, 0.04); }
.c100bm-overlay .c100bm-counter-btn:hover:not(:disabled) {
	background: var(--c100bm-brand-primary);
	color: #041b00;
}

/* Promo */
.c100bm-overlay .c100bm-promo-btn { background: var(--c100bm-brand-primary); color: #041b00; }
.c100bm-overlay .c100bm-promo-btn:hover { background: var(--c100bm-brand-primary-dark); }

/* Resumen / total (panel oscuro con total neón, en vez de bloque sólido) */
.c100bm-overlay .c100bm-summary-total {
	background: rgba(57, 255, 20, 0.06) !important;
	border: 1px solid rgba(57, 255, 20, 0.30);
	color: #fff;
}
.c100bm-overlay .c100bm-summary-total-value { color: var(--c100bm-brand-primary); }

/* Footer */
.c100bm-overlay .c100bm-footer {
	background: rgba(0, 0, 0, 0.40);
	border-top-color: var(--c100bm-border);
}
.c100bm-overlay .c100bm-footer-price-value { color: #fff; }

/* CTA primario neón con tinta oscura */
.c100bm-overlay .c100bm-footer .c100bm-btn-primary {
	background: var(--c100bm-brand-primary) !important;
	color: #041b00 !important;
	box-shadow: 0 0 0 1px rgba(57, 255, 20, 0.5), 0 8px 22px rgba(57, 255, 20, 0.28) !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-primary:hover { background: var(--c100bm-brand-primary-dark) !important; }
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary {
	color: var(--c100bm-text-body) !important;
	border-color: var(--c100bm-border) !important;
}
.c100bm-overlay .c100bm-footer .c100bm-btn-secondary:hover:not(:disabled) {
	background: rgba(255, 255, 255, 0.05) !important;
	border-color: var(--c100bm-border-strong) !important;
}

/* Selectores de moneda / pago (por si aplican) */
.c100bm-overlay .c100bm-curr-toggle,
.c100bm-overlay .c100bm-curr-card,
.c100bm-overlay .c100bm-payment-option,
.c100bm-overlay .c100bm-curtab {
	background: rgba(255, 255, 255, 0.05) !important;
	border-color: var(--c100bm-border) !important;
	color: var(--c100bm-text-body);
}

/* --- Botón trigger "Reservar Ahora": neón fijo (vence a style-*) --- */
.c100bm-button-wrap .c100bm-trigger-btn {
	background: var(--c100bm-brand-primary) !important;
	color: #041b00 !important;
	font-family: 'Oswald', system-ui, -apple-system, sans-serif !important;
	box-shadow: 0 0 0 1px rgba(57, 255, 20, 0.5), 0 10px 30px rgba(57, 255, 20, 0.30) !important;
}
.c100bm-button-wrap .c100bm-trigger-btn:hover {
	background: var(--c100bm-brand-primary-dark) !important;
	box-shadow: 0 0 0 1px rgba(57, 255, 20, 0.7), 0 14px 36px rgba(57, 255, 20, 0.40) !important;
}
.c100bm-button-wrap.style-jungle.is-animated .c100bm-trigger-btn { animation: c100bmPulseJungle 2.6s ease-in-out infinite; }
@keyframes c100bmPulseJungle {
	0%, 100% { box-shadow: 0 0 0 1px rgba(57, 255, 20, 0.5), 0 10px 30px rgba(57, 255, 20, 0.28); }
	50%      { box-shadow: 0 0 0 1px rgba(57, 255, 20, 0.85), 0 14px 40px rgba(57, 255, 20, 0.50); }
}
@media (prefers-reduced-motion: reduce) {
	.c100bm-button-wrap.style-jungle.is-animated .c100bm-trigger-btn { animation: none !important; }
}
