/* =========================================================
   MCD LLANOMOTOR SAS — capa de marca
   Se carga despues de main.css y sobrescribe lo necesario.
   ========================================================= */

:root {
	--lm-amarillo:       #f5b002;
	--lm-amarillo-claro: #fdc803;
	--lm-negro:          #111111;
	--lm-negro-suave:    #1c1a17;
}

/* ---------- Barra de navegacion con el logo ---------- */
/* Version negativa del logo: el wordmark viene en blanco para que se
   lea sobre la barra negra, y el taxi conserva su amarillo. */
.main-menu {
	padding: 20px 40px;
}

.lm-logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	flex-shrink: 0;
}

.lm-logo img {
	display: block;
	width: auto;
	height: 96px;
	transition: height .4s ease;
}

/* Al hacer scroll la barra se compacta pero el logo sigue mandando */
#header.header-scrolled {
	height: 86px;
}

#header.header-scrolled .main-menu {
	padding: 11px 40px;
}

#header.header-scrolled .lm-logo img {
	height: 62px;
}

@media (max-width: 991px) {
	.main-menu { padding: 14px 25px; }
	.lm-logo img { height: 64px; }
	#header.header-scrolled { height: 72px; }
	#header.header-scrolled .main-menu { padding: 10px 25px; }
	#header.header-scrolled .lm-logo img { height: 50px; }
}

@media (max-width: 480px) {
	.lm-logo img { height: 50px; }
	#header.header-scrolled .lm-logo img { height: 44px; }
}

/* ---------- Logo dentro de la tarjeta del formulario ---------- */
.lm-logo-heroe {
	display: block;
	width: 100%;
	max-width: 250px;
	height: auto;
	margin: 0 auto 22px;
}

/* ---------- Galeria ---------- */
/* Las cuatro fotos de la galeria son 3:2, asi que se muestran completas
   y las dos columnas quedan a la misma altura sin recortar nada. */
.single-gallery img {
	width: 100%;
	height: auto;
}

/* Convenios quedo justo encima y tambien es #f9f9ff: sin esto las dos
   secciones se leen como un unico bloque gris continuo. */
.image-gallery-area {
	background-color: #fff;
}

/* ---------- Logo en el pie de pagina ---------- */
.footer-logo {
	display: inline-block;
	max-width: 230px;
	height: auto;
	margin-bottom: 22px;
}

/* ---------- Franja superior a cuadros de taxi ---------- */
.header-top {
	background: repeating-linear-gradient(
		45deg,
		var(--lm-negro) 0 14px,
		var(--lm-amarillo) 14px 28px
	);
	background-size: auto;
}

/* ---------- Acentos de marca ---------- */
.primary-btn:hover,
.genric-btn.primary:hover {
	background: var(--lm-amarillo-claro) !important;
	color: var(--lm-negro) !important;
}

/* =========================================================
   Heroe: fondo con el mismo ambar del logo
   (degradado tomado del banner de marca: claro al centro,
   mas quemado hacia los bordes)
   ========================================================= */
.banner-area {
	/* Portada de marca. El degradado ambar queda debajo como respaldo
	   y rellena los lados si la foto no cubre la pantalla completa. */
	background-image:
		url(../img/foto4.jpg),
		radial-gradient(ellipse at 50% 30%, #fdc60c 0%, #f5b002 48%, #e29f02 100%);
	/* La foto es casi de la misma proporcion que el heroe, asi que el
	   recorte lateral es minimo y va centrada. */
	background-position: center center, center center;
	background-repeat: no-repeat, no-repeat;
	background-size: cover, cover;
}

/* Velo oscuro que se desvanece hacia la derecha: asienta la tarjeta negra
   del formulario sobre la foto sin apagar el resto de la imagen. */
.banner-area .overlay-bg {
	background-color: transparent;
	background-image: linear-gradient(to right,
		rgba(0, 0, 0, .60) 0%,
		rgba(0, 0, 0, .30) 34%,
		rgba(0, 0, 0, 0) 62%);
}

/* Texto del heroe: negro, que es como se lee la marca sobre ambar */
.banner-content h1 {
	color: var(--lm-negro);
}

.banner-content h6.text-white,
.banner-content p.text-white {
	color: var(--lm-negro) !important;
}

/* Boton principal invertido: negro sobre ambar */
.banner-content .primary-btn,
.banner-content .primary-btn span {
	background-color: var(--lm-negro);
	color: var(--lm-amarillo);
}

.banner-content .primary-btn span {
	background: none;
}

.banner-content .primary-btn:hover {
	background-color: #000;
	color: #fff;
}

.banner-content .primary-btn:hover span {
	color: #fff;
}

/* Tarjeta de reserva en negro para que contraste con el ambar */
.header-right {
	background-color: var(--lm-negro);
	border: 1px solid rgba(0, 0, 0, .45);
}

.header-right h4 {
	color: #fff;
}

.header-right .form-control,
.header-right .default-select .nice-select {
	border: 1px solid rgba(245, 176, 2, .35);
}

.header-right .form-control::placeholder,
.header-right .default-select .nice-select {
	color: #9a9186;
}

.header-right .btn-lg {
	background-color: var(--lm-amarillo);
	color: var(--lm-negro);
	font-weight: 600;
}

.header-right .btn-lg:hover {
	background-color: var(--lm-amarillo-claro);
	color: var(--lm-negro);
}

@media (max-width: 991px) {
	.banner-area {
		background-position: center center, center center;
	}
}

/* =========================================================
   Secciones propias del sitio de Llanomotor
   ========================================================= */

/* ---------- Franja de datos bajo el heroe ---------- */
.lm-datos {
	background: var(--lm-negro);
	padding: 45px 0;
}

.lm-dato {
	text-align: center;
	padding: 18px 15px;
}

.lm-dato + .lm-dato {
	border-left: 1px solid rgba(255, 255, 255, .10);
}

@media (max-width: 991px) {
	.lm-dato + .lm-dato { border-left: none; }
}

.lm-dato .lnr {
	font-size: 30px;
	color: var(--lm-amarillo);
	display: block;
	margin-bottom: 12px;
}

.lm-dato h3 {
	font-size: 24px;
	font-weight: 600;
	color: #fff;
	margin-bottom: 6px;
}

.lm-dato h3 a { color: #fff; }
.lm-dato h3 a:hover { color: var(--lm-amarillo); }

.lm-dato p {
	font-size: 13px;
	color: #9a9186;
	margin: 0;
}

/* ---------- Por que elegirnos ---------- */
.lm-razones { background: var(--lm-offwhite, #f9f9ff); }

.lm-razon {
	text-align: center;
	padding: 30px 20px;
}

.lm-razon .lnr {
	font-size: 34px;
	color: var(--lm-negro);
	background: var(--lm-amarillo);
	width: 76px;
	height: 76px;
	line-height: 76px;
	border-radius: 50%;
	display: inline-block;
	margin-bottom: 22px;
}

.lm-razon h4 {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 12px;
}

.lm-razon p { font-size: 14px; }

/* ---------- Como pedir tu taxi ---------- */
.lm-paso {
	text-align: center;
	padding: 20px 25px;
	position: relative;
}

.lm-paso-num {
	display: inline-block;
	width: 64px;
	height: 64px;
	line-height: 60px;
	border: 2px solid var(--lm-amarillo);
	border-radius: 50%;
	font-size: 26px;
	font-weight: 700;
	color: var(--lm-negro);
	margin-bottom: 22px;
}

.lm-paso h4 {
	font-size: 18px;
	font-weight: 600;
	margin-bottom: 12px;
}

.lm-paso p { font-size: 14px; }

/* Linea punteada que une los tres pasos en escritorio */
@media (min-width: 768px) {
	.lm-paso:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 52px;
		right: -32px;
		width: 64px;
		border-top: 2px dashed rgba(245, 176, 2, .55);
	}
}

/* ---------- Convenios empresariales ---------- */
.lm-convenios { background: #f9f9ff; }

.lm-convenios-txt h2 {
	font-size: 34px;
	font-weight: 600;
	margin-bottom: 18px;
}

.lm-convenios-txt ul {
	list-style: none;
	padding: 0;
	margin: 22px 0 30px;
}

.lm-convenios-txt li {
	position: relative;
	padding-left: 32px;
	margin-bottom: 12px;
	color: #777;
	font-size: 15px;
}

.lm-convenios-txt li .lnr {
	position: absolute;
	left: 0;
	top: 3px;
	color: var(--lm-amarillo);
	font-size: 18px;
}

@media (max-width: 991px) {
	.lm-convenios-img { margin-bottom: 35px; }
}

/* ---------- Preguntas frecuentes ---------- */
.lm-faq-item {
	border: none;
	border-bottom: 1px solid #eaeaea;
	border-radius: 0;
	background: transparent;
}

.lm-faq-item .card-header {
	background: transparent;
	border: none;
	padding: 0;
}

.lm-faq-item .btn-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 22px 5px;
	text-align: left;
	font-size: 17px;
	font-weight: 600;
	color: var(--lm-negro);
	text-decoration: none;
	white-space: normal;
}

.lm-faq-item .btn-link:hover,
.lm-faq-item .btn-link:focus {
	color: var(--lm-amarillo);
	text-decoration: none;
	box-shadow: none;
}

.lm-faq-item .btn-link .lnr {
	font-size: 16px;
	color: var(--lm-amarillo);
	transition: transform .3s ease;
	flex-shrink: 0;
	margin-left: 15px;
}

.lm-faq-item .btn-link[aria-expanded="true"] .lnr {
	transform: rotate(180deg);
}

.lm-faq-item .card-body {
	padding: 0 5px 24px;
	color: #777;
	font-size: 15px;
}

/* =========================================================
   Tipografia: Montserrat, mas ancha y con mayor altura de x
   que Poppins, y toda la escala subida un escalon.
   ========================================================= */

body,
.nav-menu a,
input, select, textarea, button,
h1, h2, h3, h4, h5, h6,
.btn, .primary-btn, .genric-btn {
	font-family: 'Montserrat', 'Poppins', sans-serif;
}

body {
	font-size: 17px;
	font-weight: 400;
	line-height: 1.75;
}

p { font-size: 17px; }

h1, .h1 { font-size: 44px; }
h2, .h2 { font-size: 40px; }
h3, .h3 { font-size: 28px; }
h4, .h4 { font-size: 22px; }
h5, .h5 { font-size: 19px; }
h6, .h6 { font-size: 17px; }

/* ---------- Menu ---------- */
.nav-menu a {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .5px;
	padding: 0 12px 0 26px;
}

/* ---------- Titulos de seccion ---------- */
.section-title h1,
.section-title h2 {
	font-size: 44px;
	font-weight: 700;
	line-height: 1.2;
}

.section-title p {
	font-size: 18px;
}

@media (max-width: 767px) {
	h1, .h1, h2, .h2, .section-title h1, .section-title h2 { font-size: 32px; }
	body, p { font-size: 16px; }
}

/* ---------- Formulario del heroe ---------- */
.header-right h4 { font-size: 24px; }

.header-right .form-control,
.header-right .default-select .nice-select,
.header-right .dates {
	font-size: 16px;
	height: auto;
	padding: 0.75rem 0.9rem;
}

.header-right .btn-lg { font-size: 16px; }

/* ---------- Botones ---------- */
.primary-btn,
.genric-btn {
	font-size: 16px;
	line-height: 50px;
	padding-left: 36px;
	padding-right: 36px;
}

/* ---------- Bloques propios ---------- */
.lm-dato h3 { font-size: 28px; }
.lm-dato p  { font-size: 15px; }
.lm-dato .lnr { font-size: 34px; }

.single-service h4,
.lm-razon h4,
.lm-paso h4 { font-size: 21px; }

.single-service p,
.lm-razon p,
.lm-paso p { font-size: 16px; }

.lm-paso-num { font-size: 30px; }

.lm-convenios-txt h2 { font-size: 40px; }
.lm-convenios-txt p  { font-size: 18px; }
.lm-convenios-txt li { font-size: 17px; }

.lm-faq-item .btn-link  { font-size: 20px; }
.lm-faq-item .card-body { font-size: 17px; }

/* ---------- Pie de pagina reducido al copyright ---------- */
.footer-area {
	padding: 55px 0 45px;
	position: relative;
}

.footer-area .footer-text {
	margin: 0;
	text-align: center;
	font-size: 16px;
	color: #b9b2a8;
}

.footer-area .footer-text a {
	color: var(--lm-amarillo);
}

.footer-area .footer-text a:hover {
	color: var(--lm-amarillo-claro);
}

/* Con la tipografia mas grande el formulario mide ~610px: en portatiles
   de pantalla baja el heroe no puede encogerse por debajo de eso ni
   dejar que la tarjeta se meta bajo la barra negra. */
@media (min-width: 768px) {
	.banner-area .row.fullscreen {
		min-height: 800px;
		padding-top: 150px;
		padding-bottom: 30px;
	}
}

/* ---------- Formulario del heroe: pedido por WhatsApp ---------- */
.header-right textarea.form-control {
	resize: vertical;
	min-height: 110px;
	line-height: 1.5;
}

.header-right #lm-wa-btn {
	display: block;
	line-height: 1.2;
	padding: 16px 12px;
	border: none;
}

.header-right #lm-wa-btn .fa-whatsapp {
	font-size: 20px;
	margin-right: 8px;
	vertical-align: -2px;
}

.lm-form-aviso {
	display: none;
	margin: -6px 0 14px;
	font-size: 14px;
	color: var(--lm-amarillo);
	text-align: left;
}

.lm-form-aviso.visible {
	display: block;
}

/* =========================================================
   Nuestras mascotas: fotos redondas escalonadas sobre negro
   ========================================================= */
.lm-mascotas {
	background: var(--lm-negro);
	overflow: hidden;
}

.lm-mascotas .section-title h1,
.lm-mascotas .section-title h2 { color: #fff; }
.lm-mascotas .section-title p  { color: #9a9186; }

/* La fila se alinea arriba para que el escalonado se note */
.lm-mascotas-fila {
	align-items: flex-start;
}

.lm-mascota-foto {
	position: relative;
	width: 100%;
	max-width: 240px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	border: 5px solid rgba(245, 176, 2, .85);
	box-shadow: 0 18px 40px rgba(0, 0, 0, .55);
	transition: transform .35s ease, border-color .35s ease;
}

/* Respaldo para navegadores sin aspect-ratio */
@supports not (aspect-ratio: 1 / 1) {
	.lm-mascota-foto { height: 0; padding-bottom: 100%; }
}

.lm-mascota-foto img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	display: block;
}

/* Cada foto trae al animal a distinta altura del encuadre: son verticales
   y el recorte circular es cuadrado, asi que se ajusta una por una. */
.lm-mascota:nth-child(1) .lm-mascota-foto img { object-position: center 22%; }
.lm-mascota:nth-child(2) .lm-mascota-foto img { object-position: center 24%; }
.lm-mascota:nth-child(3) .lm-mascota-foto img { object-position: center 38%; }
.lm-mascota:nth-child(4) .lm-mascota-foto img { object-position: center 48%; }

.lm-mascota-foto:hover {
	transform: translateY(-8px) scale(1.03);
	border-color: var(--lm-amarillo-claro);
}

/* Escalonado tipo ola: cada circulo cae un poco distinto */
@media (min-width: 992px) {
	.lm-mascota:nth-child(1) .lm-mascota-foto { margin-top: 0; }
	.lm-mascota:nth-child(2) .lm-mascota-foto { margin-top: 62px; }
	.lm-mascota:nth-child(3) .lm-mascota-foto { margin-top: 118px; }
	.lm-mascota:nth-child(4) .lm-mascota-foto { margin-top: 48px; }

	/* El desnivel deja hueco abajo: se lo devolvemos a la seccion */
	.lm-mascotas-fila { margin-bottom: -118px; }
	.lm-mascotas { padding-bottom: 240px; }
}

/* En dos columnas el escalonado se reduce para que no quede hueco grande */
@media (min-width: 576px) and (max-width: 991px) {
	.lm-mascota:nth-child(even) .lm-mascota-foto { margin-top: 45px; }
	.lm-mascota { margin-bottom: 30px; }
}

@media (max-width: 575px) {
	.lm-mascota-foto { max-width: 150px; border-width: 4px; }
	.lm-mascota { margin-bottom: 25px; }
}

/* El boton de menu movil venia fijado a 16px del borde: con la barra mas
   alta quedaba pegado arriba en vez de centrado con el logo. */
@media (max-width: 991px) {
	#mobile-nav-toggle {
		top: 26px;
	}
}

@media (max-width: 480px) {
	#mobile-nav-toggle {
		top: 20px;
	}
}

/* En movil la tarjeta del formulario arrancaba pegada al borde y la barra
   negra le tapaba el logo: se le deja el alto de la barra libre. */
@media (max-width: 767px) {
	.banner-area .row.fullscreen {
		padding-top: 105px;
		padding-bottom: 45px;
	}
}

/* ---------- Nombre de cada mascota ---------- */
.lm-mascota-nombre {
	margin: 20px 0 0;
	text-align: center;
	font-size: 21px;
	font-weight: 700;
	letter-spacing: .5px;
	color: var(--lm-amarillo);
}

@media (max-width: 575px) {
	.lm-mascota-nombre {
		font-size: 18px;
		margin-top: 14px;
	}
}

/* =========================================================
   Banner de paginas internas (Contacto)
   Comparte la clase .banner-area con el heroe del inicio, asi
   que hereda su foto y su velo lateral. Aqui el texto va
   centrado, de modo que necesita velo parejo y dejar libre la
   barra de navegacion, que ahora es mas alta.
   ========================================================= */
.about-banner .overlay-bg {
	background-image: none;
	background-color: rgba(0, 0, 0, .62);
}

.about-banner .about-content {
	margin-top: 190px;
	padding: 0 0 70px;
}

.about-content h1 {
	font-size: 46px;
	font-weight: 700;
}

.about-content .link-nav {
	font-size: 16px;
}

.about-content a {
	font-size: 16px;
	color: #fff;
}

.about-content a:hover {
	color: var(--lm-amarillo);
}

@media (max-width: 991px) {
	.about-banner .about-content {
		margin-top: 130px;
		padding-bottom: 55px;
	}
	.about-content h1 { font-size: 34px; }
}

/* ---------- Mapa y datos de contacto ---------- */
.map-wrap iframe {
	display: block;
	width: 100%;
	border: 0;
}

.contact-details h5 a {
	color: inherit;
}

.contact-details h5 a:hover {
	color: var(--lm-amarillo);
}

/* Boton de indicaciones bajo el mapa */
.map-wrap {
	position: relative;
	margin-bottom: 45px;
}

.lm-comollegar {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 18px;
	padding: 12px 26px;
	background: var(--lm-amarillo);
	color: var(--lm-negro);
	font-size: 16px;
	font-weight: 600;
	border-radius: 3px;
	transition: background .3s ease;
}

.lm-comollegar:hover {
	background: var(--lm-amarillo-claro);
	color: var(--lm-negro);
}

/* =========================================================
   Botones flotantes de contacto rapido
   Fijos abajo a la derecha, siempre visibles. En reposo son
   circulos; al pasar el raton se despliegan mostrando la
   etiqueta hacia la izquierda.
   ========================================================= */
.lm-flotantes {
	position: fixed;
	right: 22px;
	bottom: 26px;
	z-index: 996;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 14px;
}

.lm-flotante {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	height: 60px;
	width: 60px;
	padding: 0;
	border-radius: 30px;
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .32);
	transition: width .32s cubic-bezier(.4, 0, .2, 1),
	            box-shadow .32s ease,
	            transform .2s ease;
}

.lm-flotante .fa {
	flex: 0 0 60px;
	width: 60px;
	text-align: center;
	font-size: 27px;
	line-height: 60px;
}

.lm-flotante-texto {
	white-space: nowrap;
	font-size: 16px;
	font-weight: 600;
	padding-right: 24px;
	opacity: 0;
	transition: opacity .22s ease;
}

.lm-flotante:hover,
.lm-flotante:focus-visible {
	width: 178px;
	color: #fff;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .42);
}

.lm-flotante:hover .lm-flotante-texto,
.lm-flotante:focus-visible .lm-flotante-texto {
	opacity: 1;
}

.lm-flotante:active {
	transform: scale(.94);
}

/* Telefono en el amarillo de la marca */
.lm-flotante-tel {
	background: var(--lm-amarillo);
	color: var(--lm-negro);
}

.lm-flotante-tel:hover,
.lm-flotante-tel:focus-visible {
	background: var(--lm-amarillo-claro);
	color: var(--lm-negro);
}

/* WhatsApp en su verde: es el color que la gente reconoce de un vistazo */
.lm-flotante-wa {
	background: #25d366;
}

.lm-flotante-wa:hover,
.lm-flotante-wa:focus-visible {
	background: #1ebe5a;
}

.lm-flotante-wa .fa {
	font-size: 32px;
}

/* Latido suave para que el de WhatsApp se note sin molestar */
@media (prefers-reduced-motion: no-preference) {
	.lm-flotante-wa::after {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: 30px;
		box-shadow: 0 0 0 0 rgba(37, 211, 102, .6);
		animation: lm-latido 2.6s ease-out infinite;
		pointer-events: none;
	}

	.lm-flotante-wa {
		position: relative;
	}

	.lm-flotante-wa:hover::after {
		animation: none;
	}
}

@keyframes lm-latido {
	0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); }
	70%  { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
	100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

@media (max-width: 575px) {
	.lm-flotantes {
		right: 15px;
		bottom: 18px;
		gap: 12px;
	}

	.lm-flotante {
		height: 54px;
		width: 54px;
		border-radius: 27px;
	}

	.lm-flotante .fa {
		flex-basis: 54px;
		width: 54px;
		font-size: 24px;
		line-height: 54px;
	}

	.lm-flotante-wa .fa { font-size: 28px; }

	/* En movil no hay hover: el circulo se queda como esta */
	.lm-flotante:hover { width: 54px; }
	.lm-flotante:hover .lm-flotante-texto { opacity: 0; }
	.lm-flotante-wa::after { border-radius: 27px; }
}

/* h1 de la pagina: fuera de la vista pero disponible para buscadores
   y lectores de pantalla. El heroe es solo imagen y formulario. */
.lm-h1-seo {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
