/**
 * Encargos360: botón flotante y ventana.
 *
 * El botón va abajo a la izquierda: a la derecha y abajo ya están el
 * menú flotante del sitio y el botón de WhatsApp, y tres cosas en la
 * misma esquina no dejan leer.
 */

/*
 * El botón: círculo coral con el paquete dentro del giro.
 *
 * Redondo y sin texto en el celular: es el sitio donde menos sobra. En
 * pantallas anchas el nombre aparece al pasar el mouse, para que no
 * compita con lo que la persona está leyendo.
 */
.rio360-enc-boton {
	align-items: center;
	background: #ef4444;
	border: 0;
	border-radius: 999px;
	/*
	 * Por encima del menú flotante del sitio y separado de él.
	 *
	 * El menú va en la capa 99990 y ocupa casi todo el ancho abajo: si
	 * se tocaban, en el teléfono el botón quedaba escondido detrás.
	 */
	bottom: calc( 112px + env( safe-area-inset-bottom, 0px ) );
	box-shadow: 0 6px 18px -4px rgba( 239, 68, 68, 0.5 ), 0 2px 6px rgba( 22, 19, 15, 0.18 );
	color: #16130f;
	cursor: pointer;
	display: inline-flex;
	gap: 0;
	height: 58px;
	justify-content: center;
	left: 16px;
	padding: 0;
	position: fixed;
	transition: transform 0.2s ease, box-shadow 0.2s ease, width 0.2s ease;
	width: 58px;
	z-index: 99995;
}

.rio360-enc-boton:hover {
	box-shadow: 0 10px 26px -4px rgba( 239, 68, 68, 0.6 ), 0 2px 8px rgba( 22, 19, 15, 0.2 );
	transform: translateY( -2px );
}

.rio360-enc-boton:active {
	transform: translateY( 0 );
}

.rio360-enc-icono {
	flex: none;
}

/* El giro da una vuelta al pasar el mouse: enseña de qué se trata. */
.rio360-enc-boton:hover .rio360-enc-icono {
	animation: rio360-enc-giro 0.9s ease-in-out;
}

@keyframes rio360-enc-giro {
	to { transform: rotate( 360deg ); }
}

@media ( prefers-reduced-motion: reduce ) {

	.rio360-enc-boton:hover .rio360-enc-icono {
		animation: none;
	}

}

/* El nombre, solo al pasar el mouse y donde hay ratón. */
.rio360-enc-boton__txt {
	display: none;
}

@media ( hover: hover ) and ( min-width: 700px ) {

	.rio360-enc-boton {
		border-radius: 999px;
		justify-content: flex-start;
		padding: 0 14px;
		width: 58px;
	}

	.rio360-enc-boton:hover {
		padding-right: 20px;
		width: 208px;
	}

	.rio360-enc-boton__txt {
		display: block;
		font-family: inherit;
		font-size: 15px;
		font-weight: 800;
		margin-left: 10px;
		max-width: 0;
		opacity: 0;
		overflow: hidden;
		transition: max-width 0.2s ease, opacity 0.2s ease;
		white-space: nowrap;
	}

	.rio360-enc-boton:hover .rio360-enc-boton__txt {
		max-width: 140px;
		opacity: 1;
	}

}

/*
 * Por encima de todo lo demás del sitio.
 *
 * El aviso de la portada vive en la capa 100002 y se abre solo a los
 * pocos segundos: si alguien estaba llenando su encargo, le caía encima
 * y no dejaba ni pulsar.
 */
.rio360-enc {
	align-items: flex-end;
	background: rgba( 12, 10, 8, 0.6 );
	display: flex;
	inset: 0;
	justify-content: center;
	position: fixed;
	z-index: 100010;
}

.rio360-enc[hidden] {
	display: none;
}

.rio360-enc__panel {
	background: #fff;
	/* Ancla de la pantalla de carga, que se pinta encima de la ventana. */
	position: relative;
	border-radius: 20px 20px 0 0;
	box-sizing: border-box;
	color: #16130f;
	font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
	max-height: 92vh;
	max-width: 460px;
	overflow-y: auto;
	padding: 22px 20px calc( 24px + env( safe-area-inset-bottom, 0px ) );
	position: relative;
	width: 100%;
}

@media ( min-width: 600px ) {

	.rio360-enc {
		align-items: center;
	}

	.rio360-enc__panel {
		border-radius: 20px;
	}

}

.rio360-enc__cerrar {
	background: rgba( 0, 0, 0, 0.06 );
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	font-size: 22px;
	height: 32px;
	line-height: 1;
	position: absolute;
	right: 16px;
	top: 16px;
	width: 32px;
}

/*
 * El color, escrito.
 *
 * El tema pinta los encabezados y las etiquetas a su manera —en Divi,
 * blancos— y aquí el fondo es blanco: el título desaparecía.
 */
.rio360-enc__panel h3,
.rio360-enc__panel label,
.rio360-enc__panel label span {
	color: #16130f !important;
	-webkit-text-fill-color: #16130f;
}

/* El nombre con su marca al lado, como en la propuesta. */
.rio360-enc__titulo {
	align-items: center;
	display: flex;
	font-family: inherit;
	gap: 10px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 6px;
	padding-right: 40px;
}

.rio360-enc__marca {
	align-items: center;
	background: #ef4444;
	border-radius: 14px;
	color: #16130f;
	display: inline-flex;
	flex: none;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.rio360-enc__lema {
	color: #ef4444 !important;
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 12px;
}

.rio360-enc__panel .rio360-enc__texto,
.rio360-enc__panel .rio360-enc__aviso,
.rio360-enc__panel .rio360-enc__nota,
.rio360-enc__panel .rio360-enc__check span,
.rio360-enc__panel small {
	color: #60594f !important;
	-webkit-text-fill-color: #60594f;
}

.rio360-enc__texto,
.rio360-enc__nota,
.rio360-enc__aviso {
	color: #60594f;
	font-size: 13.5px;
	line-height: 1.45;
	margin: 0 0 14px;
}

.rio360-enc__nota {
	font-size: 12px;
	margin: 10px 0 0;
}

.rio360-enc__listo {
	background: #e7f6ec;
	border-radius: 12px;
	color: #1a7f37;
	font-size: 14px;
	margin: 0 0 14px;
	padding: 12px 14px;
}

.rio360-enc__mal {
	background: #fdecea;
	border-radius: 12px;
	color: #b3261e;
	font-size: 13.5px;
	margin: 0 0 12px;
	padding: 11px 13px;
}

.rio360-enc__form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.rio360-enc__form label {
	display: flex;
	flex-direction: column;
	font-size: 13px;
	font-weight: 700;
	gap: 5px;
}

.rio360-enc__form input,
.rio360-enc__form select {
	background: #fff;
	border: 1px solid rgba( 0, 0, 0, 0.16 );
	border-radius: 12px;
	box-sizing: border-box;
	color: #16130f;
	-webkit-text-fill-color: #16130f;
	font: inherit;
	font-size: 15px;
	font-weight: 400;
	padding: 12px 13px;
	width: 100%;
}

/* ¿Cuándo? «Ya» o «Para más tarde» como dos botones; el día y la hora aparecen al elegir lo segundo. */
.rio360-enc__cuando {
	border: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	min-width: 0;
	padding: 0;
}

.rio360-enc__cuando legend {
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 6px;
	padding: 0;
}

.rio360-enc__cuando-opciones {
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 1fr;
}

.rio360-enc__form .rio360-enc__cuando-opciones label {
	align-items: center;
	border: 1px solid rgba( 0, 0, 0, 0.16 );
	border-radius: 12px;
	cursor: pointer;
	flex-direction: row;
	font-size: 14px;
	gap: 8px;
	justify-content: center;
	padding: 11px 10px;
}

.rio360-enc__form .rio360-enc__cuando-opciones input {
	accent-color: #16130f;
	margin: 0;
	padding: 0;
	width: auto;
}

.rio360-enc__cuando-opciones label:has( input:checked ) {
	background: #16130f;
	border-color: #16130f;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
}

.rio360-enc__cuando-opciones label:has( input:checked ) input {
	accent-color: #ffcc00;
}

.rio360-enc__form .rio360-enc__horario {
	color: #7a736a;
	font-size: 12.5px;
	line-height: 1.4;
	margin: -2px 0 2px;
	padding: 0;
}

.rio360-enc__form .rio360-enc__cerrado,
.rio360-enc__form .rio360-enc__hora-nota {
	line-height: 1.4;
	background: #fff4d6;
	border-radius: 10px;
	color: #8a4b00;
	font-size: 13px;
	font-weight: 600;
	margin: 0;
	padding: 8px 11px;
}

.rio360-enc__cerrado[hidden],
.rio360-enc__hora-nota[hidden] {
	display: none;
}

.rio360-enc__cuando-opciones label:has( input:disabled ) {
	cursor: not-allowed;
	opacity: 0.4;
}

.rio360-enc__cuando-fecha {
	display: grid;
	gap: 8px;
	grid-template-columns: 1fr 1fr;
}

.rio360-enc__cuando-fecha[hidden] {
	display: none;
}

.rio360-enc__form small {
	color: #7a736a;
	font-size: 11.5px;
	font-weight: 400;
}

.rio360-enc__cuenta {
	background: #f4f1ec;
	color: #16130f !important;
	-webkit-text-fill-color: #16130f;
	border-radius: 12px;
	font-size: 13.5px;
	font-weight: 700;
	margin: 0;
	padding: 11px 13px;
}

.rio360-enc__check {
	align-items: flex-start;
	flex-direction: row !important;
	font-weight: 400 !important;
	gap: 10px !important;
}

.rio360-enc__check input {
	flex: none;
	height: 20px;
	margin-top: 2px;
	width: 20px !important;
}

.rio360-enc__check span {
	color: #60594f;
	font-size: 12.5px;
	line-height: 1.4;
}

.rio360-enc__enviar {
	background: #ef4444;
	border: 0;
	border-radius: 999px;
	color: #fff !important;
	cursor: pointer;
	display: block;
	font: inherit;
	font-weight: 800;
	padding: 14px 20px;
	text-align: center;
	text-decoration: none !important;
}

.rio360-enc__enviar.is-breb {
	background: #16130f;
	margin-top: 4px;
}

.rio360-enc__cancelar {
	background: none;
	border: 1px solid rgba( 0, 0, 0, 0.18 );
	border-radius: 999px;
	color: #b3261e !important;
	-webkit-text-fill-color: #b3261e;
	cursor: pointer;
	display: block;
	font: inherit;
	font-weight: 700;
	margin-top: 10px;
	padding: 11px 18px;
	width: 100%;
}

.rio360-enc__cancelar:disabled {
	opacity: 0.5;
}

/* La pantalla de carga, dentro de la ventana y no en toda la página. */
.rio360-enc__cargando {
	align-items: center;
	background: rgba( 255, 252, 247, 0.94 );
	border-radius: inherit;
	display: flex;
	flex-direction: column;
	gap: 14px;
	inset: 0;
	justify-content: center;
	position: absolute;
	z-index: 5;
}

.rio360-enc__cargando[hidden] {
	display: none;
}

.rio360-enc__cargando .rio360-cargando__rueda {
	animation: rio360-enc-girar 0.7s linear infinite;
	border: 3px solid rgba( 0, 0, 0, 0.14 );
	border-radius: 50%;
	border-top-color: #ef4444;
	height: 44px;
	width: 44px;
}

.rio360-enc__cargando .rio360-cargando__texto {
	color: #16130f !important;
	-webkit-text-fill-color: #16130f;
	font-size: 15px;
	font-weight: 600;
	margin: 0;
}

@keyframes rio360-enc-girar {
	to { transform: rotate( 360deg ); }
}

@media ( prefers-reduced-motion: reduce ) {

	.rio360-enc__cargando .rio360-cargando__rueda {
		animation: none;
	}

}

.rio360-enc__enviar:disabled {
	cursor: default;
	opacity: 0.45;
}

.rio360-enc__otro {
	background: none;
	border: 1px solid rgba( 0, 0, 0, 0.18 );
	border-radius: 999px;
	color: #16130f !important;
	-webkit-text-fill-color: #16130f;
	cursor: pointer;
	display: block;
	font: inherit;
	font-weight: 700;
	margin-top: 10px;
	padding: 11px 18px;
	width: 100%;
}

/* El dibujo del ícono en blanco sobre el coral; el texto sigue oscuro. */
.rio360-enc-boton .rio360-enc-icono,
.rio360-enc-boton:hover .rio360-enc-icono {
	color: #fff !important;
}

/* «Encargos» en blanco y «360» en el amarillo de Rio360Ya. */
.rio360-enc-boton .rio360-enc-boton__txt {
	color: #fff !important;
}

.rio360-enc-boton .rio360-enc-boton__txt em {
	color: #ffcc00 !important;
	font-style: normal;
}

/*
 * El logo de la ventana como el del botón: las líneas en blanco sobre el
 * coral, y «360» en el amarillo de Rio360Ya. La ventana es blanca y el
 * amarillo solo casi no se lee: lleva el mismo borde oscuro que tienen
 * las letras del logo de Rio360.
 */
.rio360-enc .rio360-enc__marca .rio360-enc-icono {
	color: #fff !important;
}

.rio360-enc .rio360-enc__nombre em {
	color: #ffcc00 !important;
	font-style: normal;
	text-shadow:
		-1.5px -1.5px 0 #16130f, 1.5px -1.5px 0 #16130f,
		-1.5px 1.5px 0 #16130f, 1.5px 1.5px 0 #16130f,
		0 -1.5px 0 #16130f, 0 1.5px 0 #16130f,
		-1.5px 0 0 #16130f, 1.5px 0 0 #16130f;
}

/* El título usa text-fill-color, que se hereda y le gana a color. */
.rio360-enc .rio360-enc__nombre em,
.rio360-enc-boton .rio360-enc-boton__txt em {
	-webkit-text-fill-color: #ffcc00 !important;
}

.rio360-enc-boton .rio360-enc-boton__txt {
	-webkit-text-fill-color: #fff !important;
}

/*
 * Más abajo. En computador el menú flotante va centrado y el botón a
 * la izquierda: no se tocan, así que baja casi al borde. En el celular
 * el menú ocupa todo el ancho abajo (unos 67 px con su margen) y el
 * botón queda justo encima, sin tanto aire como antes.
 */
.rio360-enc-boton {
	bottom: calc( 24px + env( safe-area-inset-bottom, 0px ) ) !important;
}

@media ( max-width: 767px ) {

	.rio360-enc-boton {
		bottom: calc( 74px + env( safe-area-inset-bottom, 0px ) ) !important;
	}

	/* Con la barra del pedido de un catálogo a la vista, se sube encima de ella. */
	body:has( .rio360-catalogo__barra:not( [hidden] ) ) .rio360-enc-boton {
		bottom: calc( 160px + env( safe-area-inset-bottom, 0px ) ) !important;
	}
}

/* ¿Es algo más grande? Va en la camioneta, y se cotiza por WhatsApp. */
.rio360-enc__grande {
	align-items: center;
	background: #f4f1ec;
	border-radius: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	padding: 11px 13px;
}

.rio360-enc .rio360-enc__grande p {
	color: #4a453e !important;
	-webkit-text-fill-color: #4a453e;
	flex: 1 1 100%;
	font-size: 13px !important;
	font-weight: 400;
	line-height: 1.45 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.rio360-enc .rio360-enc__grande strong {
	color: #16130f;
	-webkit-text-fill-color: #16130f;
	display: block;
	font-size: 14px !important;
	margin-bottom: 2px;
}

.rio360-enc .rio360-enc__grande-wa {
	background: #25d366 !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff;
	display: inline-block;
	flex: 0 0 auto;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	margin-left: auto;
	min-height: 0 !important;
	padding: 6px 12px !important;
	text-decoration: none !important;
	white-space: nowrap;
	width: auto !important;
}
