/**
 * Netxa Reserva Horaria — estilos públicos.
 * Diseño genérico y neutro pensado para ser sobreescrito por el diseñador
 * del tema. Todos los elementos llevan clase con prefijo nrh- y los estados
 * se expresan con modificadores is-* .
 */

/* ---- Contenedor general ---- */
.nrh-booking {
	margin: 0 0 1.5em;
	max-width: 420px;
}

.nrh-booking-title {
	font-weight: 600;
	margin: 0 0 0.5em;
}

/* ---- Calendario ---- */
.nrh-calendar {
	border: 1px #e5e7eb solid;
	border-radius: 10px;
	padding: 10px;
	background: #fafafa;
	box-shadow:0px 20px 20px 2px rgba(0, 0, 0, 0.09);
-webkit-box-shadow:0px 20px 20px 2px rgba(0, 0, 0, 0.09);
}

.nrh-cal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}

.nrh-cal-month-label {
	font-weight: 600;
	color: #fff;
    background: #212121;
    padding: 3px 20px;
    text-align: center;
    border-radius: 100px;
    margin: auto 15px;
}

.nrh-cal-nav {
	border: 1px solid #ccc;
	background: #ffffff;
	color: #333;
	border-radius: 6px;
	width: 32px;
	height: 32px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.nrh-cal-nav:hover:not(:disabled) {
	background: #eee;
}

.nrh-cal-nav:disabled {
	opacity: 0.35;
	cursor: default;
}

.nrh-cal-weekdays,
.nrh-cal-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.nrh-cal-weekdays {
	margin-bottom: 4px;
margin-bottom: 4px;
background: #ffffff;
border-radius: 6px;
border: #e5e7eb 1px solid;
}

.nrh-cal-weekday {
	text-align: center;
	font-size: 0.8em;
	font-weight: 600;
	color: #777;
	text-transform: uppercase;
}

.nrh-cal-cell {
	min-height: 36px;
}

.nrh-cal-cell.is-empty {
	visibility: hidden;
}

.nrh-cal-day {
	border: 1px solid #e0e0e0;
	background: #fff;
	color: #333;
	font-weight: 600;
	border-radius: 8px;
	cursor: pointer;
	text-align: center;
	padding: 0;
	font-size: 0.9em;
	-o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.nrh-cal-day:hover:not(:disabled) {
	background: #C89C66FF;
	border: 1px solid #C89C66FF;
	color: #fff!important;
}

.nrh-cal-day.is-today {
	font-weight: 700;
}

.nrh-cal-day.is-disabled {
	background: #f5f5f5;
	color: #bbb;
	border-color: #eee;
	cursor: default;
	text-decoration: line-through;
}

.nrh-cal-day.is-selected {
	background: #333;
	border-color: #333;
	color: #fff;
}

/* ---- Horarios del día seleccionado ---- */
.nrh-slots {
	margin-top: 1em;
}

.nrh-slots-title {
	font-weight: 600;
	margin: 0 0 0.5em;
}

.nrh-slots-loading,
.nrh-slots-empty,
.nrh-slots-error {
	color: #777;
	font-style: italic;
	margin: 0;
}

.nrh-slots-error {
	color: #b32d2e;
}

.nrh-slot-list {
	display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: space-evenly;
background: #fafafa;
padding: 20px 10px;
border: 1px #e5e7eb solid;
border-radius: 10px;
}

.nrh-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	border: 1px solid #ccc;
	background: #fff;
	color: #333;
	border-radius: 10px;
	padding: 8px 14px;
	cursor: pointer;
	-o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}

.nrh-slot:hover:not(:disabled) {
	color: #fff;
	background: #C89C66FF;
	border:1px solid #C89C66FF;
}

.nrh-slot:hover .nrh-slot-remaining {
	color: #fff!important;
}

.nrh-slot-time {
	font-weight: 600;
}

.nrh-slot-remaining {
	font-size: 0.75em;
	color: #777;
}
.nrh-slot-remaining:hover {
	font-size: 0.75em;
	color: #fff;
}

.nrh-slot.is-selected {
	background: #333;
	border-color: #333;
	color: #fff;
}

.nrh-slot.is-selected .nrh-slot-remaining {
	color: #ddd;
}

.nrh-slot.is-full {
	background: #f5f5f5;
	color: #bbb;
	border-color: #eee;
	cursor: default;
}

.nrh-slot.is-full .nrh-slot-remaining {
	color: #bbb;
}

/* ---- Resumen de la selección ---- */
.nrh-selection {
	margin: 0.8em 0 0;
    font-weight: 600;
    background: #000;
    padding: 5px;
    color: #fff;
    border-radius: 8px;
    text-align: center;
}

/* Aviso del precio aplicado en días especiales. */
.nrh-price-notice {
	margin: 10px 0 0;
	padding: 12px 16px;
	border: 1px solid #b91c1c;
	border-radius: 8px;
	background: #fef2f2;
	color: #991b1b;
	font-weight: 600;
	text-align: center;
}

.nrh-price-notice[hidden] {
	display: none !important;
}

/* ---------- Producto variable: cantidades por variación ---------- */

/* Con el selector propio activo, se oculta la UI nativa de variaciones. */
form.cart.nrh-multi-mode table.variations,
form.cart.nrh-multi-mode .woocommerce-variation.single_variation,
form.cart.nrh-multi-mode .woocommerce-variation-add-to-cart > .quantity,
form.cart.nrh-multi-mode .single_add_to_cart_button,
form.cart.nrh-multi-mode .reset_variations {
	display: none !important;
}

.nrh-variations {
	margin-top: 18px;
}

.nrh-variations-title {
	font-weight: 700;
	margin: 0 0 10px;
}

.nrh-variation {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	padding: 10px 0;
	border-bottom: 1px dotted #ccc;
}

.nrh-variation-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.nrh-variation-name {
	font-size: 1.05em;
}

.nrh-variation-price {
	font-size: 0.88em;
	color: #6b7280;
}

.nrh-variation-price del {
	margin-right: 6px;
}

.nrh-variation-soldout {
	font-size: 0.88em;
	color: #b32d2e;
	font-weight: 600;
}
.nrh-stepper {
	display: flex;
	align-items: center;
    gap: 0px;
    border: 1px solid #000;
    border-radius: 4px;
    padding: 0;
}
/*.nrh-stepper {
	display: flex;
	align-items: center;
	gap: 0;
	border: 1px solid #000;
    border-radius: 4px;
    padding: 4px 0;
}*/

/* Círculo perfecto: se fuerzan las medidas contra los estilos de botón
   del tema (padding, min-width/min-height y radios propios). */
.nrh-stepper-btn {
	/*max-height: 34px !important;
    flex: 0 0 34px;
    padding: 0 !important;
    margin: 0;
    border: 0;
    background: transparent;
    color: inherit;
	font-size: 22px;
	line-height: 1 !important;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	-o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;*/
	border: 0;
    color: inherit;
    cursor: pointer;
    background: transparent;
    height: 35px;
    width: 35px;
    display: inline-block;
    padding: 0;
}

/*.nrh-stepper-btn:hover {
	border-color:1px solid #000;
	background: #000;
	color:#fff;
}*/

.nrh-stepper-qty {
	min-width: 35px;
	text-align: center;
	font-size: 1.1em;
	font-variant-numeric: tabular-nums;
	border-left: 1px solid #000;
    border-right: 1px solid #000;
    min-height: 30px;
    padding: 0px;
    margin: 5px 0px;
}

.nrh-variation.has-qty .nrh-stepper-qty {
	font-weight: 700;
}

/* ---------- Botón y mensajes propios (variables y shortcode) ---------- */

.nrh-submit {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 8px 20px;
	border: 0;
	border-radius: 50px;
	background: #000000!important;
	color: #fff;
	font-size: 1.15em;
	font-weight: 700;
	cursor: pointer;
	-o-transition: all 0.3s;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
}
.nrh-submit:hover {
	background: #C89C66FF!important;
	color: #fff;
}

.nrh-submit.nrh-submit-locked {
	opacity: 0.45;
	cursor: not-allowed;
}

.nrh-submit.is-loading {
	opacity: 0.7;
	cursor: progress;
}

.nrh-error {
	color: #b32d2e;
	font-weight: 600;
	margin: 10px 0 0;
}

.nrh-success {
	color: #1e7a3c;
	font-weight: 600;
	margin: 10px 0 0;
}

/* ---------- Bloque autónomo del shortcode [netxa_reserva] ---------- */

.nrh-single {
	margin-top: 18px;
}

.nrh-qty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 0;
}

.nrh-qty-label {
	font-weight: 600;
}

.nrh-soldout {
	color: #b32d2e;
	font-weight: 600;
	margin: 0;
}

/* Aviso de configuración del shortcode: solo lo ven los administradores. */
.nrh-shortcode-notice {
	border: 1px dashed #b32d2e;
	border-radius: 6px;
	padding: 10px 14px;
	color: #b32d2e;
	background: #fff6f6;
}

/* ------ ASIENTOS ------*/
.nrh-seats {
    margin: 18px 0;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fafafa;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
p.nrh-seats-title {
    font-weight: bold;
    margin-bottom: 0;
    text-align: center;
    padding: 0;
    grid-column: 1 / -1;
}
.nrh-seat-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    margin-bottom: 0;
    text-align: center;
    width: 100%;
    background: #fff;
    border-radius: 15px;
    padding: 20px 0;
    border: #e5e7eb 1px solid;
}
.nrh-error {
    font-weight: 600;
    margin: 10px 0 0;
    grid-column: 1 / -1;
    font-size: 13px;
    color: #b91c1c;
    margin-top: 0;
    min-height: 16px;
    text-align: center;
}
p.nrh-seats-help {
    grid-column: 1 / -1;
    font-size: 13px;
    color: #666;
    line-height: 1.4em;
    margin: 0;
    text-align: center;
}


