/* Ruralyss Plataforma */
:root {
	--rur-verde: #2b6a4f;
	--rur-verde-claro: #ecf6f0;
	--rur-rojo: #b42318;
	--rur-rojo-claro: #fde2e1;
	--rur-texto: #1f2d27;
	--rur-gris: #6b7a73;
}

/* Botones */
.rur-boton {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%; padding: 12px 18px; border: 2px solid var(--rur-verde); border-radius: 8px;
	background: var(--rur-verde); color: #fff; font-weight: 600; font-size: 15px; line-height: 1.2;
	cursor: pointer; text-decoration: none; transition: filter .15s;
}
.rur-boton:hover, .rur-boton:focus-visible { filter: brightness(1.1); color: #fff; }
.rur-boton--borde { width: auto; background: #fff; color: var(--rur-verde); }
.rur-boton--borde:hover { color: var(--rur-verde); background: var(--rur-verde-claro); }
.rur-consulta-nota { margin: 6px 0 0; font-size: 12px; color: var(--rur-gris); text-align: center; }

/* Calendario: días completos */
.date-picker-wrapper .day.rur-completo,
.date-picker-wrapper .month-wrapper table .day.rur-completo {
	background: var(--rur-rojo-claro) !important; color: var(--rur-rojo) !important;
	text-decoration: line-through; font-weight: 600;
}
.rur-leyenda { margin: 8px 0 0; font-size: 12px; color: var(--rur-gris); display: flex; align-items: center; gap: 6px; }
.rur-leyenda__rojo { display: inline-block; width: 12px; height: 12px; border-radius: 2px; background: var(--rur-rojo-claro); border: 1px solid var(--rur-rojo); }

/* Punto de encuentro */
.rur-encuentro { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #e3e8e5; }
.rur-encuentro__titulo { margin: 0 0 6px; font-size: 20px; }
.rur-encuentro__dir { margin: 0 0 12px; color: var(--rur-texto); }
.rur-encuentro__mapa { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: #eef1ef; margin-bottom: 12px; }
.rur-encuentro__mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Excursión: salida programada */
.rur-salida { margin: 0 0 14px; padding: 12px 14px; border-radius: 8px; background: var(--rur-verde-claro); color: var(--rur-texto); font-size: 14px; }
.rur-salida p { margin: 0 0 4px; }
.rur-salida__nota { color: var(--rur-gris); font-size: 12px; }
.rur-salida__plazas--agotado { color: var(--rur-rojo); font-weight: 600; }

/* Ventana de mensaje */
.rur-sin-scroll { overflow: hidden; }
.rur-modal[hidden] { display: none; }
.rur-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.rur-modal__fondo { position: absolute; inset: 0; background: rgba(15, 30, 22, .55); }
.rur-modal__caja { position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow: auto; background: #fff; border-radius: 12px; padding: 24px; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.rur-modal__x { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--rur-gris); padding: 4px 8px; }
.rur-modal h3 { margin: 0 0 2px; font-size: 22px; }
.rur-modal__sub { margin: 0 0 16px; color: var(--rur-gris); }
#rur-form-consulta label { display: block; margin: 0 0 12px; font-size: 14px; font-weight: 600; color: var(--rur-texto); }
#rur-form-consulta input[type="text"], #rur-form-consulta input[type="email"], #rur-form-consulta input[type="tel"],
#rur-form-consulta input[type="number"], #rur-form-consulta input[type="date"], #rur-form-consulta textarea {
	display: block; width: 100%; margin-top: 4px; padding: 10px 12px; border: 1px solid #cfd8d3; border-radius: 6px; font: inherit; font-weight: 400;
}
#rur-form-consulta .rur-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
#rur-form-consulta .rur-check { font-weight: 400; font-size: 13px; display: flex; gap: 8px; align-items: flex-start; }
#rur-form-consulta .rur-check input { margin-top: 3px; flex: none; }
.rur-campo--oculto { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rur-form-estado { margin: 10px 0 0; font-size: 14px; }
.rur-ok { color: var(--rur-verde); font-weight: 600; }
.rur-error { color: var(--rur-rojo); font-weight: 600; }
@media (max-width: 520px) {
	#rur-form-consulta .rur-fila { grid-template-columns: 1fr; gap: 0; }
	.rur-modal__caja { padding: 18px; }
}

/* Página de la conversación */
.rur-chat-pagina { padding: 32px 16px 48px; }
.rur-chat { max-width: 760px; margin: 0 auto; }
.rur-chat h1 { font-size: 28px; margin: 0 0 4px; }
.rur-chat__sub { color: var(--rur-gris); margin: 0 0 20px; }
.rur-chat__ok { background: var(--rur-verde-claro); padding: 10px 14px; border-radius: 8px; color: var(--rur-verde); font-weight: 600; }
.rur-chat__error { background: var(--rur-rojo-claro); padding: 10px 14px; border-radius: 8px; color: var(--rur-rojo); font-weight: 600; }
.rur-chat__hilo { display: flex; flex-direction: column; gap: 10px; margin: 0 0 20px; }
.rur-msg { max-width: 85%; padding: 10px 14px; border-radius: 12px; background: #f1f5f9; align-self: flex-start; }
.rur-msg--mio { align-self: flex-end; background: var(--rur-verde-claro); }
.rur-msg--ruralyss { background: #fff7e6; }
.rur-msg__autor { font-size: 12px; color: var(--rur-gris); margin-bottom: 4px; }
.rur-msg__texto { white-space: normal; word-wrap: break-word; }
.rur-chat__form label { display: block; font-weight: 600; margin-bottom: 6px; }
.rur-chat__form textarea { width: 100%; padding: 10px 12px; border: 1px solid #cfd8d3; border-radius: 6px; font: inherit; margin-bottom: 10px; }
.rur-chat__form .rur-boton { width: auto; }
.rur-chat__nota { font-size: 12px; color: var(--rur-gris); margin-top: 16px; }

/* WooCommerce Bookings (la «Actividad para duplicar» usa este sistema): días y franjas completos en rojo */
.wc-bookings-date-picker .ui-datepicker td.fully_booked a,
.wc-bookings-date-picker .ui-datepicker td.fully_booked span,
.wc-bookings-date-picker .ui-datepicker td.fully_booked {
	background: var(--rur-rojo-claro) !important; color: var(--rur-rojo) !important; text-decoration: line-through;
}
.wc-bookings-booking-form .block-picker li.fully_booked a,
.wc-bookings-booking-form .block-picker li a[data-remaining="0"] { background: var(--rur-rojo-claro) !important; color: var(--rur-rojo) !important; text-decoration: line-through; }
.rur-consulta { margin: 14px 0 30px; }
.rur-encuentro__mapa::before { content: "El mapa aparece al aceptar las cookies de terceros (Google Maps). Mientras, usa «Cómo llegar»."; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 16px; text-align: center; font-size: 13px; color: var(--rur-gris); }

/* Calendario propio de reservas */
.rur-reserva { margin: 0 0 12px; width: 100%; }
.rur-reserva__titulo, .rur-reserva__personas { margin: 0 0 6px; font-weight: 600; font-size: 14px; }
.rur-reserva__personas { margin-top: 12px; margin-bottom: 0; }
.rur-cal { border: 1px solid #e3e8e5; border-radius: 10px; padding: 10px; min-height: 250px; }
.rur-cal__cab { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.rur-cal__cab button { width: 36px; height: 36px; border: 1px solid #cfd8d3; border-radius: 8px; background: #fff; color: var(--rur-texto); font-size: 18px; line-height: 1; padding: 0; cursor: pointer; }
.rur-cal__cab button:disabled { opacity: .35; cursor: default; }
.rur-cal__rejilla { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; }
.rur-cal__sem { font-size: 12px; color: var(--rur-gris); padding: 2px 0; }
.rur-dia { aspect-ratio: 1; min-height: 34px; border: 0; border-radius: 6px; padding: 0; background: transparent; color: #a9b3ae; font-size: 14px; cursor: default; }
.rur-dia--libre { background: var(--rur-verde-claro); color: var(--rur-verde); font-weight: 600; cursor: pointer; }
.rur-dia--libre:hover, .rur-dia--libre:focus-visible { background: var(--rur-verde); color: #fff; }
.rur-dia--completo { background: var(--rur-rojo-claro); color: var(--rur-rojo); text-decoration: line-through; font-weight: 600; }
.rur-dia--elegido, .rur-dia--elegido:hover { background: var(--rur-verde); color: #fff; }
.rur-reserva__hora { display: block; margin-top: 10px; font-size: 14px; font-weight: 600; }
.rur-reserva__hora select { display: block; width: 100%; margin-top: 4px; }
.rur-reserva__estado { margin: 6px 0 0; color: var(--rur-rojo); font-size: 14px; font-weight: 600; }
.rur-reserva__estado:empty { display: none; }
