/*
Theme Name: Advia Child
Theme URI: https://advia.keydesign.xyz/
Description: Financial & Business Consulting Elementor WordPress Theme
Author: Key-Design
Author URI: http://themeforest.net/user/Key-Design
Template: advia
Version: 1.0
License: Envato Standard License
License URI: https://themeforest.net/licenses/standard
Tags: one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-menu, featured-images, flexible-header, post-formats, sticky-post, translation-ready
Text Domain: advia-child
*/

/* ==========================================================================
   Ulloa & Company - ajustes sobre Advia
   Paleta: Navy #081B42 | Teal #035977 | Red #D62828 | Light #F3F6FA | White #FFFFFF
   ========================================================================== */

/* Logo en blanco sobre fondos oscuros (footer) */
.ulloa-logo-white img {
	filter: brightness(0) invert(1);
}

/* Hero con video: el video cubre todo el contenedor */
.ulloa-hero .elementor-background-video-container video {
	object-fit: cover;
}

/* Sin desplazamiento horizontal por secciones a todo el ancho */
body {
	overflow-x: hidden;
}

/* El selector de idioma ya está en el menú principal */
.wpml-ls-statics-footer {
	display: none;
}

/* Menú principal en una sola línea */
.site-header .keydesign-nav-menu .menu > li > a,
.site-header .kd-nav-menu .menu > li > a {
	white-space: nowrap;
}

/* Botones de color sólido (rojo, blanco, contorno): sin el degradado del tema */
.ulloa-btn-solid .kd-button {
	background-image: none !important;
}

/* Hero: sombra sutil en el texto para leerse sobre el video sin oscurecerlo más */
.ulloa-hero-text .kd-heading__title,
.ulloa-hero-text .kd-heading__desc,
.ulloa-hero-text h1,
.ulloa-hero-text .elementor-icon-list-text {
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

/* Hero: color de fondo = tono promedio del video, para que no haya salto mientras carga */
body .elementor .ulloa-hero.e-con {
	background-color: #767B91 !important; /* Elementor lo deja en "initial" con una regla más específica */
}

/* Hero: overlay navy en degradado de 3 puntos (Elementor solo permite 2) */
body .elementor .ulloa-hero.e-con::before,
body .elementor .ulloa-hero .elementor-background-video-container::before {
	/* Navy detrás del texto que pasa a un teal suave (mezclado con navy) hacia la derecha */
	background-image: linear-gradient(90deg, rgba(10, 18, 35, 0.68) 0%, rgba(9, 30, 50, 0.50) 45%, rgba(5, 70, 95, 0.32) 100%) !important;
	mix-blend-mode: normal !important;
	pointer-events: none;
}

/* Franja superior: sin el subrayado animado del tema en los enlaces */
.ulloa-topbar a,
.ulloa-topbar a:hover {
	text-decoration: none !important;
}
.ulloa-topbar .elementor-icon-list-text::after,
.ulloa-topbar .elementor-icon-list-text::before {
	display: none !important;
}

/* Facebook: solo la letra "f". Un plugin carga Font Awesome 4.7, que cambia fa-facebook-f
   por el logo en círculo (\f09a); en Font Awesome 5 la "f" sola es \f39e */
.fab.fa-facebook-f::before {
	content: "\f39e" !important;
}

/* Hero: el video retocado es muy azul; se baja un poco la saturación para que se vea natural */
/* Corrección de color del video: más contraste, menos azul, un toque cálido */
.ulloa-hero .elementor-background-video-hosted {
	filter: contrast(1.08) saturate(0.82) sepia(0.12) brightness(0.95);
}

/* Descripción del hero más legible */
.ulloa-hero-text .kd-heading__desc,
.ulloa-hero-text .kd-heading__desc * {
	color: rgba(255, 255, 255, 0.95) !important;
	font-size: 17px;
}

/* Logo: imagen sin la segunda línea + "Accounting & Tax Services" como texto real (más legible).
   Posición = donde estaba la línea original en la imagen (x 307-1192 de 1200, y 166-213 de 245). */
.ulloa-logo {
	position: relative;
	display: inline-block;
	width: 260px;
	line-height: 0;
	text-decoration: none !important;
}
.ulloa-logo img {
	display: block;
	width: 100%;
	height: auto;
}
.ulloa-logo__tag {
	position: absolute;
	left: 25.6%;
	top: 66%;
	width: 73.8%;
	font-family: "Inter", sans-serif;
	font-size: 10.5px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.115em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #035977;
}
.ulloa-logo--white img {
	filter: brightness(0) invert(1);
}
.ulloa-logo--white .ulloa-logo__tag {
	color: rgba(255, 255, 255, 0.85);
}
@media (max-width: 767px) {
	.ulloa-logo {
		width: 210px;
	}
	.ulloa-logo__tag {
		font-size: 8.5px;
	}
}

/* Our Services (Advia Financial Advisor): botón del encabezado en una sola línea */
.ulloa-fa-services .kd-button {
	white-space: nowrap;
}


/* Íconos de Advia: algunos dibujos salen un poco de su caja (arriba a la derecha);
   la caja del tema tiene overflow:hidden y los recortaba */
.ulloa-hr-trust .kd-icon-box,
.ulloa-fa-services .kd-icon-box,
.ulloa-why-choose .kd-icon-box {
	overflow: visible;
}


/* Barra de 3 tarjetas (HR Agency): títulos en una línea en escritorio, sin efecto hover en íconos */
@media (min-width: 1025px) {
	.ulloa-hr-trust .kd-icon-box__title {
		white-space: nowrap;
	}
}
.ulloa-hr-trust .kd-icon-box__icon,
.ulloa-hr-trust .kd-icon-box__icon i {
	transition: none !important;
	transform: none !important;
}

/* Barra de 3 tarjetas: todas del mismo alto y el botón siempre al fondo (aunque la descripción tenga más líneas) */
.ulloa-hr-trust .elementor-widget-keydesign-icon-box,
.ulloa-hr-trust .elementor-widget-keydesign-icon-box > .elementor-widget-container,
.ulloa-hr-trust .kd-widget-container,
.ulloa-hr-trust .kd-icon-box {
	height: 100%;
}
.ulloa-hr-trust .kd-icon-box__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	width: 100%;
}
.ulloa-hr-trust .kd-icon-box__content {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.ulloa-hr-trust .kd-icon-box__actions {
	margin-top: auto;
}

/* Barra de 3 tarjetas: botones de texto sin la línea de subrayado del tema */
.ulloa-hr-trust a,
.ulloa-hr-trust a:hover {
	text-decoration: none !important;
}
.ulloa-hr-trust .kd-button::after,
.ulloa-hr-trust .kd-button::before {
	display: none !important;
}


/* Why It Matters: los 3 contadores no se encogen; número y "+" siempre juntos */
@media (min-width: 768px) {
	.ulloa-fa-why .elementor-widget-counter {
		flex-shrink: 0;
	}
	.ulloa-fa-why .elementor-counter-number-wrapper {
		white-space: nowrap;
	}
}
/* Etiquetas de los contadores en 2 líneas (el salto de línea viene en el texto) */
.ulloa-fa-why .elementor-counter-title {
	white-space: pre-line !important;
}

/* Why It Matters: fondo gris de la foto con las mismas esquinas redondeadas que la foto (16px) */
.ulloa-fa-why .elementor-widget-image > .elementor-widget-container {
	border-radius: 16px;
}

/* Why It Matters: texto de cada contador centrado debajo de su número */
.ulloa-fa-why .elementor-counter {
	align-items: center;
	text-align: center;
}
.ulloa-fa-why .elementor-counter-number-wrapper {
	justify-content: center;
}
.ulloa-fa-why .elementor-counter-title {
	text-align: center;
	width: 100%;
}
.ulloa-fa-why .elementor-widget-counter {
	min-width: max-content;
}
.ulloa-fa-why .elementor-counter-title {
	justify-content: center;
}

/* Etiquetas sobre los títulos (kd-heading__label) en el rojo del sitio.
   Excepción: la píldora del hero (texto blanco sobre teal). */
body .kd-heading__label {
	color: #D62828 !important;
}
body .ulloa-hero .kd-heading__label {
	color: #FFFFFF !important;
}

/* Why Choose Us?: foto de la oficina en formato 3:2 (el original es un banner panorámico; se recorta al centro) */
.ulloa-why-photo img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	object-position: 45% center;
}

/* Palabras resaltadas en los títulos ({...}): misma fuente que el título (Inter), sin la cursiva con serifa
   que traen algunas plantillas de Advia (Lora italic) */
body .kd-heading__title .kd-heading-highlight {
	font-family: inherit !important;
	font-style: normal !important;
	font-weight: inherit !important;
}

/* Etiquetas sobre los títulos: píldora como en "Quick Access" (plantilla Tax & Compliance), en todo el sitio.
   Texto rojo sobre gris claro; en secciones con fondo gris claro la píldora va en blanco. El hero tiene su propio estilo. */
body .kd-heading__label {
	background-color: #F3F6FA !important;
	padding: 3px 10px !important;
	border-radius: 16px !important;
}
body .ulloa-fa-services .kd-heading__label,
body .ulloa-bg-light .kd-heading__label,
body .ulloa-svc-steps .kd-heading__label {
	background-color: #FFFFFF !important;
}
body .ulloa-hero .kd-heading__label {
	background-color: #094D70 !important;
	padding: 8px 18px !important;
	border-radius: 30px !important;
}

/* Certificaciones: carrusel de logos (4 tarjetas visibles en escritorio, 3 en tablet, 2 en celular).
   Avanza una tarjeta cada 5 s en bucle; el movimiento lo hace ulloa_logos_carousel_script() en functions.php. */
.ulloa-logos {
	--ulloa-logos-n: 4;
	--ulloa-logos-gap: 30px;
	overflow: hidden;
	width: 100%;
}
.ulloa-logos__track {
	display: flex;
	gap: var(--ulloa-logos-gap);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ulloa-logos__item {
	flex: 0 0 calc((100% - (var(--ulloa-logos-n) - 1) * var(--ulloa-logos-gap)) / var(--ulloa-logos-n));
	height: 190px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px 28px;
	background: #FFFFFF;
	border-radius: 16px;
	box-sizing: border-box;
}
.ulloa-logos__item img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
@media (max-width: 1024px) {
	.ulloa-logos { --ulloa-logos-n: 3; --ulloa-logos-gap: 24px; }
	.ulloa-logos__item { height: 170px; }
}
@media (max-width: 767px) {
	.ulloa-logos { --ulloa-logos-n: 2; --ulloa-logos-gap: 16px; }
	.ulloa-logos__item { height: 130px; padding: 16px 18px; }
}

/* ==========================================================================
   Testimonials: widget de Google Reviews (reviewsonmywebsite, se actualiza solo)
   con el estilo de las tarjetas "Client feedback" de Advia (Finance Software).
   Solo CSS: el contenido sigue llegando en vivo desde Google.
   ========================================================================== */
.romw-reviews .romw.swiper-slide {
	position: relative;
	display: grid !important;
	grid-template-columns: 60px 1fr;
	grid-template-areas:
		"text   text"
		"photo  author"
		"photo  date";
	column-gap: 16px;
	row-gap: 2px;
	align-content: start;
	background: #FFFFFF !important;
	border: 1px solid #E4E9F1 !important;
	border-radius: 16px !important;
	padding: 30px !important;
	box-shadow: none !important;
	box-sizing: border-box;
}
.romw-reviews .romw .romw-text {
	grid-area: text;
	margin: 0 0 26px !important;
	font-size: 16px !important;
	line-height: 1.6 !important;
	color: #4A5068 !important;
	text-align: left !important;
}
.romw-reviews .romw .romw-author-photo {
	grid-area: photo;
	align-self: center;
	margin: 0 !important;
}
.romw-reviews .romw .romw-author-photo img {
	width: 60px !important;
	height: 60px !important;
	border-radius: 16px !important;
	object-fit: cover;
}
.romw-reviews .romw .romw-author-stars {
	grid-area: author;
	align-self: end;
	margin: 0 !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}
.romw-reviews .romw .romw-author {
	font-size: 18px !important;
	font-weight: 600 !important;
	color: #081B42 !important;
}
.romw-reviews .romw .romw-stars i {
	color: #D62828 !important;
	font-size: 14px !important;
}
.romw-reviews .romw .romw-date {
	grid-area: date;
	align-self: start;
	margin: 0 !important;
	font-size: 14px !important;
	color: #6B7280 !important;
}
.romw-reviews .romw .romw-source-logo {
	position: absolute;
	top: 24px;
	right: 24px;
	margin: 0 !important;
}
.romw-reviews .romw .romw-source-logo img {
	width: 20px !important;
	height: auto !important;
}
/* Todas las tarjetas del mismo alto, con el autor siempre abajo */
.romw-reviews .swiper-wrapper {
	align-items: stretch !important;
}
.romw-reviews .romw.swiper-slide {
	height: auto !important;
	grid-template-rows: 1fr auto auto;
}
/* Flechas y puntos del carrusel en los colores del sitio */
.romw-reviews .swiper-button-prev,
.romw-reviews .swiper-button-next {
	color: #081B42 !important;
}
.romw-reviews .swiper-button-prev::after,
.romw-reviews .swiper-button-next::after {
	font-size: 22px !important;
}
.romw-reviews .swiper-pagination-bullet-active {
	background: #D62828 !important;
}
/* Texto de la reseña limitado a 6 líneas: todas las tarjetas quedan del mismo tamaño compacto */
.romw-reviews .romw .romw-text {
	display: -webkit-box !important;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Reseñas: texto completo disponible (el widget lo ocultaba) pero cortado a 6 líneas; "... read more" abre la tarjeta */
.romw-reviews .romw .romw-more-content {
	display: inline !important;
}
.romw-reviews .romw .moreellipses,
.romw-reviews .romw .romw-more-link {
	display: none !important;
}
.romw-reviews .romw.swiper-slide {
	grid-template-rows: auto auto 1fr auto !important;
	grid-template-areas:
		"text   text"
		"more   more"
		"photo  author"
		"photo  date" !important;
}
.romw-reviews .romw .romw-text {
	margin-bottom: 8px !important;
}
.romw-reviews .romw .romw-author-stars {
	padding-top: 18px;
}
.romw-reviews .romw .romw-author-photo {
	align-self: end;
}
.romw-reviews .ulloa-rm {
	grid-area: more;
	justify-self: start;
	padding: 0;
	border: 0;
	background: none;
	font: 600 14px/1.4 inherit;
	color: #D62828;
	cursor: pointer;
}
.romw-reviews .ulloa-rm:hover {
	color: #081B42;
	text-decoration: underline;
}
.romw-reviews .romw.ulloa-open .romw-text {
	-webkit-line-clamp: unset !important;
	display: block !important;
	overflow: visible !important;
}
/* Al abrir una tarjeta, solo crece esa (las demás mantienen su alto) */
.romw-reviews .swiper-wrapper.ulloa-has-open {
	align-items: flex-start !important;
}

/* Navegación como Finance Software (Advia): botones cuadrados 52px, borde fino, flecha navy, sin puntos */
.romw-reviews .swiper-button-prev,
.romw-reviews .swiper-button-next {
	width: 52px !important;
	height: 52px !important;
	margin-top: -26px !important;
	border: 1px solid #E4E9F1 !important;
	border-radius: 16px !important;
	background: transparent !important;
	color: #081B42 !important;
	transition: background-color .2s, border-color .2s;
}
.romw-reviews .swiper-button-prev:hover,
.romw-reviews .swiper-button-next:hover {
	background-color: #FFFFFF !important;
	border-color: #081B42 !important;
}
.romw-reviews .swiper-button-prev::after,
.romw-reviews .swiper-button-next::after {
	font-size: 16px !important;
	font-weight: 700;
}
/* Puntos de paginación (modo dinámico del widget): centrados debajo, activo en rojo, el resto gris navy claro */
body .romw-reviews .romw-swiper-container .swiper-pagination {
	display: block !important;
	position: relative !important;
	left: 50% !important;
	bottom: auto !important;
	transform: translateX(-50%) !important;
	margin-top: 32px !important;
}
body .romw-reviews .romw-swiper-container .swiper-pagination-bullet {
	opacity: 1 !important;
	background: #C9D2E0 !important;
}
body .romw-reviews .romw-swiper-container .swiper-pagination-bullet-active {
	background: #D62828 !important;
}
/* Flechas: chevron navy centrado (el widget usa una imagen azul que se repetía) */
body .romw-reviews .romw-swiper-container .swiper-button-next,
body .romw-reviews .swiper-button-next.swiper-button-next {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M1.5 1.5 8 8l-6.5 6.5' fill='none' stroke='%23081B42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
body .romw-reviews .romw-swiper-container .swiper-button-prev,
body .romw-reviews .swiper-button-prev.swiper-button-prev {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M8.5 1.5 2 8l6.5 6.5' fill='none' stroke='%23081B42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
.romw-reviews .swiper-button-prev,
.romw-reviews .swiper-button-next {
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 10px 16px !important;
	background-color: transparent !important;
}
.romw-reviews .swiper-button-prev:hover,
.romw-reviews .swiper-button-next:hover {
	background-color: #FFFFFF !important;
}

/* "... read more" al final de la línea 6 (sobre un desvanecido blanco); al abrir, al final del texto completo */
.romw-reviews .romw .romw-text {
	position: relative;
	margin-bottom: 22px !important;
}
.romw-reviews .romw .romw-text .ulloa-rm {
	position: absolute;
	right: 0;
	bottom: 0;
	padding-left: 36px;
	line-height: 1.6;
	font-size: 16px;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, #FFFFFF 32px);
}
.romw-reviews .romw.ulloa-open .romw-text .ulloa-rm {
	position: static;
	padding-left: 6px;
	background: none;
}

/* Flechas fuera de las tarjetas: espacio lateral y botones a los costados */
.romw-reviews .romw-swiper-container {
	padding-left: 76px !important;
	padding-right: 76px !important;
}
.romw-reviews .swiper-button-prev {
	left: 0 !important;
	right: auto !important;
}
.romw-reviews .swiper-button-next {
	right: 0 !important;
	left: auto !important;
}
/* Una sola flecha también en hover: se mantiene la flecha navy y no aparece la del widget */
body .romw-reviews .romw-swiper-container .swiper-button-next:hover,
body .romw-reviews .romw-swiper-container .swiper-button-prev:hover {
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 10px 16px !important;
}
body .romw-reviews .romw-swiper-container .swiper-button-next:hover {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M1.5 1.5 8 8l-6.5 6.5' fill='none' stroke='%23081B42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
body .romw-reviews .romw-swiper-container .swiper-button-prev:hover {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='M8.5 1.5 2 8l6.5 6.5' fill='none' stroke='%23081B42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
.romw-reviews .swiper-button-prev::before,
.romw-reviews .swiper-button-next::before,
.romw-reviews .swiper-button-prev::after,
.romw-reviews .swiper-button-next::after {
	display: none !important;
	content: none !important;
}
@media (max-width: 767px) {
	.romw-reviews .romw-swiper-container {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.romw-reviews .swiper-button-prev,
	.romw-reviews .swiper-button-next {
		display: none !important;
	}
}

/* Blog: foto del post redondeada solo arriba (izquierda y derecha), esquinas de abajo rectas */
.kdbp-card .kdbp-media,
.kdbp-card .kdbp-media img {
	border-radius: 16px 16px 0 0 !important;
}

/* Etiqueta sin píldora (.ulloa-label-plain): solo texto, más grande. Se usa en la tarjeta CTA final del Home;
   va en blanco porque el rojo no se lee sobre el degradado teal. */
body .ulloa-label-plain .kd-heading__label {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	color: #FFFFFF !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
}

/* Blog: todas las fotos de las tarjetas con la misma altura (3:2), sin importar el tamaño de la imagen destacada */
.kdbp-card .kdbp-media img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 2 !important;
	object-fit: cover !important;
}

/* Menús desplegables del header: el ancho se adapta al texto más largo (Advia los fija en 250px y los
   títulos largos, como los del Blog, se salían). Hasta 480px; un título más largo pasa a 2 líneas. Solo en escritorio; el menú móvil queda igual. */
@media (min-width: 1025px) {
	.kd-nav-menu-widget .nav-primary .sub-menu {
		width: max-content !important;
		min-width: 250px !important;
		max-width: 480px !important;
	}
	.kd-nav-menu-widget .nav-primary .sub-menu > li > a,
	.kd-nav-menu-widget .nav-primary .sub-menu > li > a > span {
		white-space: normal !important;
		width: auto !important;
		max-width: none !important;
	}
	.kd-nav-menu-widget .nav-primary .sub-menu > li > a > span {
		flex-shrink: 1 !important;
		min-width: 0 !important;
	}
}

/* Menús desplegables del header: opción activa / al pasar el mouse en teal */
.kd-nav-menu-widget .nav-primary .sub-menu > li > a:hover,
.kd-nav-menu-widget .nav-primary .sub-menu > li > a:focus-visible,
.kd-nav-menu-widget .nav-primary .sub-menu > li:hover > a,
.kd-nav-menu-widget .nav-primary .sub-menu > li > a:hover span,
.kd-nav-menu-widget .nav-primary .sub-menu > li:hover > a span {
	color: #035977 !important;
}

/* Barra de 3 tarjetas sobre el hero: borde inferior en las tres, izquierdo en la primera y derecho en la última
   (mismo color de las líneas que ya separan las tarjetas). Esquinas redondeadas como la barra (16px).
   Escritorio y tablet (las 3 tarjetas en fila); en celular van como tarjetas separadas (más abajo). */
@media (min-width: 768px) {
	.ulloa-hr-trust .kd-icon-box {
		border-bottom: 1px solid #E9E4E2 !important;
	}
	.ulloa-hr-trust .e-con-inner > .e-con > .e-con:first-child .kd-icon-box,
	.ulloa-hr-trust > .e-con > .e-con:first-child .kd-icon-box {
		border-left: 1px solid #E9E4E2 !important;
		border-radius: 16px 0 0 16px !important;
	}
	.ulloa-hr-trust .e-con-inner > .e-con > .e-con:last-child .kd-icon-box,
	.ulloa-hr-trust > .e-con > .e-con:last-child .kd-icon-box {
		border-right: 1px solid #E9E4E2 !important;
		border-radius: 0 16px 16px 0 !important;
	}
}

/* Why It Matters: cada línea de la etiqueta del contador centrada debajo del número
   (el título es flex y sus dos líneas quedaban alineadas a la izquierda dentro de la caja) */
.ulloa-fa-why .elementor-counter-title {
	display: block !important;
	text-align: center !important;
}

/* ==========================================================================
   Páginas internas
   ========================================================================== */

/* Encabezado de página: foto con el mismo degradado navy→teal del hero del Home */
.ulloa-page-hero.e-con {
	position: relative;
}
.ulloa-page-hero.e-con::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(10, 18, 35, .78) 0%, rgba(9, 30, 50, .62) 50%, rgba(5, 70, 95, .45) 100%);
	z-index: 0;
	pointer-events: none;
}
.ulloa-page-hero.e-con > .e-con-inner {
	position: relative;
	z-index: 1;
}
body .ulloa-page-hero .kd-heading__label {
	color: #FFFFFF !important;
	background-color: #094D70 !important;
	padding: 8px 18px !important;
	border-radius: 30px !important;
}
.ulloa-page-hero .kd-heading__title,
.ulloa-page-hero .kd-heading__desc {
	text-shadow: 0 1px 12px rgba(0, 0, 0, .25);
}
.ulloa-page-hero .kd-heading__desc,
.ulloa-page-hero .kd-heading__desc * {
	font-size: 17px;
	color: rgba(255, 255, 255, .95) !important;
}

/* Services: tarjetas con el mismo diseño que las del blog del Home (.kdbp-card):
   fondo gris claro, radio 16, foto 3:2 con esquinas superiores redondeadas, título navy 21px, texto 16/28,
   botón navy sólido (hover teal) abajo */
.ulloa-svc-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}
.ulloa-svc-card {
	display: flex;
	flex-direction: column;
	background: #F3F6FA;
	border-radius: 16px;
	overflow: hidden;
}
.ulloa-svc-card__media {
	display: block;
	line-height: 0;
}
.ulloa-svc-card__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 16px 16px 0 0;
}
.ulloa-svc-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 30px;
}
.ulloa-svc-card__title {
	margin: 0 0 12px;
	font-size: 21px;
	font-weight: 500;
	line-height: 1.44;
	color: #081B42;
}
.ulloa-svc-card__title a {
	color: inherit;
	text-decoration: none !important;
}
.ulloa-svc-card__title a:hover {
	color: #035977;
}
.ulloa-svc-card__text {
	margin: 0 0 20px;
	font-size: 16px;
	line-height: 28px;
	color: #595959;
}
.ulloa-svc-card__btn {
	display: inline-flex;
	align-self: flex-start;
	margin-top: auto;
	padding: 16px 22px;
	border-radius: 12px;
	background: #081B42;
	color: #FFFFFF !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none !important;
	transition: background-color .25s, transform .25s;
}
.ulloa-svc-card__btn:hover {
	background: #035977;
	transform: scale(1.04);
}
@media (max-width: 1024px) {
	.ulloa-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 767px) {
	.ulloa-svc-grid { grid-template-columns: 1fr; }
	.ulloa-svc-card__body { padding: 24px; }
}

/* Services: capa navy al 15% sobre las fotos de las tarjetas (las fotos muy claras se perdían contra el fondo) */
.ulloa-svc-card__media {
	position: relative;
	border-radius: 16px 16px 0 0;
	overflow: hidden;
}
.ulloa-svc-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(8, 27, 66, .15);
	pointer-events: none;
}

/* Ruta de navegación en el encabezado de páginas internas */
.ulloa-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
	font-size: 14px;
	color: rgba(255, 255, 255, .8);
}
.ulloa-breadcrumbs a {
	color: #FFFFFF !important;
	text-decoration: none !important;
}
.ulloa-breadcrumbs a:hover {
	color: #5CC6DD !important;
}
.ulloa-breadcrumbs__sep {
	opacity: .6;
}

/* Páginas de servicio: lista "Qué incluye" y columna de título fija al desplazar los pasos */
.ulloa-svc-detail .elementor-icon-list-text {
	font-size: 16px;
}
@media (min-width: 1025px) {
	.ulloa-sticky-col {
		position: sticky !important;
		top: 120px;
	}
}


/* Services: si la última fila queda con una sola tarjeta (13 servicios), va centrada */
@media (min-width: 1025px) {
	.ulloa-svc-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.ulloa-svc-card { grid-column: span 2; }
	.ulloa-svc-card:last-child:nth-child(3n + 1) { grid-column: 3 / span 2; }
	.ulloa-svc-card:nth-last-child(2):nth-child(3n + 1) { grid-column: 2 / span 2; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.ulloa-svc-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.ulloa-svc-card { grid-column: span 2; }
	.ulloa-svc-card:last-child:nth-child(2n + 1) { grid-column: 2 / span 2; }
}

/* En celular (una sola columna): 3 tarjetas independientes con los 4 bordes y esquinas de 16px */
@media (max-width: 767px) {
	body .ulloa-hr-trust .e-con-inner > .e-con,
	body .ulloa-hr-trust > .e-con {
		background: transparent !important;
		flex-direction: column !important;
		gap: 16px !important;
	}
	body .ulloa-hr-trust .kd-icon-box {
		border: 1px solid #E9E4E2 !important;
		border-radius: 16px !important;
		background: #FFFFFF !important;
		padding: 24px !important;
	}
}

/* Header entre 1025 y 1299px: el menú completo no cabía (el idioma bajaba de línea y el botón se partía).
   Versión compacta: logo más pequeño, menú 14px con menos separación, idioma solo con bandera y botón en una línea. */
@media (min-width: 1025px) and (max-width: 1299px) {
	.ulloa-logo:not(.ulloa-logo--white) { width: 210px; }
	.ulloa-logo:not(.ulloa-logo--white) .ulloa-logo__tag { font-size: 8.5px; }
	.kd-nav-menu-widget .keydesign-menu-items { gap: 16px !important; }
	.kd-nav-menu-widget .keydesign-menu-items > li > a { font-size: 14px !important; }
	.kd-nav-menu-widget .keydesign-menu-items > li.wpml-ls-item > a .wpml-ls-native { display: none !important; }
	.elementor-location-header .e-con:has(> .elementor-widget-keydesign-nav-menu),
	.e-con:has(.kd-nav-menu-widget) { flex-shrink: 1; min-width: 0; }
	.e-con:has(> .elementor-widget-keydesign-nav-menu) ~ .e-con .kd-button,
	.e-con:has(.kd-nav-menu-widget) ~ .e-con .kd-button {
		white-space: nowrap !important;
		padding: 13px 16px !important;
	}
}

/* ==========================================================================
   Contact Us: formulario (CF7 "Contacts 4" / "Contacts 4 ES") con el estilo del sitio
   ========================================================================== */
.ulloa-form { display: flex; flex-direction: column; gap: 16px; }
.ulloa-form__row { display: flex; flex-direction: column; gap: 16px; }
.ulloa-form__row--2 { flex-direction: row; }
.ulloa-form__row--2 > .ulloa-form__field { flex: 1 1 0; min-width: 0; }
.ulloa-form__field { display: block; margin: 0; }
.ulloa-form__field .wpcf7-form-control-wrap { display: block; }
.ulloa-form input[type="text"],
.ulloa-form input[type="email"],
.ulloa-form input[type="tel"],
.ulloa-form select,
.ulloa-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 15px 18px;
	border: 1px solid #DDE3EC;
	border-radius: 12px;
	background: #FFFFFF;
	color: #081B42;
	font-size: 15px;
	line-height: 1.4;
	transition: border-color .2s, box-shadow .2s;
}
.ulloa-form select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23081B42' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
}
.ulloa-form textarea { height: 150px; resize: vertical; }
.ulloa-form input::placeholder,
.ulloa-form textarea::placeholder { color: #7A8399; }
.ulloa-form input:focus,
.ulloa-form select:focus,
.ulloa-form textarea:focus {
	outline: none;
	border-color: #035977;
	box-shadow: 0 0 0 3px rgba(3, 89, 119, .15);
}
.ulloa-form .ulloa-form__submit {
	align-self: flex-start;
	padding: 16px 26px;
	border: 0;
	border-radius: 12px;
	background: #D62828;
	color: #FFFFFF;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color .25s, transform .25s;
}
.ulloa-form .ulloa-form__submit:hover { background: #081B42; transform: scale(1.03); }
.ulloa-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: #D62828; }
.ulloa-cf7 .wpcf7-response-output { margin: 16px 0 0 !important; border-radius: 12px; font-size: 14px; }
.ulloa-cf7 .wpcf7-spinner { margin: 12px 0 0 12px; }
@media (max-width: 767px) {
	.ulloa-form__row--2 { flex-direction: column; }
	.ulloa-form .ulloa-form__submit { align-self: stretch; }
}

/* Contact Us: tarjetas de datos sin desborde de íconos y mapa con esquinas redondeadas */
.ulloa-contact-main .kd-icon-box,
.ulloa-contact-help .kd-icon-box { overflow: visible; }
.ulloa-contact-main .kd-icon-box__description a,
.ulloa-contact-visit .kd-heading__desc a { color: #035977; text-decoration: none !important; }
.ulloa-map iframe { border-radius: 16px; display: block; }
/* CF7 envuelve cada fila en <p>: se ignora para que las columnas del formulario funcionen */
.ulloa-form p { display: contents; }
.ulloa-form br { display: none; }
/* El widget de formulario de KeyDesign pone fondo gris claro y sin borde: campos blancos con borde sobre la tarjeta gris */
body .ulloa-cf7 .ulloa-form input[type="text"],
body .ulloa-cf7 .ulloa-form input[type="email"],
body .ulloa-cf7 .ulloa-form input[type="tel"],
body .ulloa-cf7 .ulloa-form select,
body .ulloa-cf7 .ulloa-form textarea {
	background-color: #FFFFFF !important;
	border: 1px solid #DDE3EC !important;
	border-radius: 12px !important;
	padding: 15px 18px !important;
	color: #081B42 !important;
	font-size: 15px !important;
}
body .ulloa-cf7 .ulloa-form select { padding-right: 44px !important; }
body .ulloa-cf7 .ulloa-form textarea { height: 150px !important; }
body .ulloa-cf7 .ulloa-form input:focus,
body .ulloa-cf7 .ulloa-form select:focus,
body .ulloa-cf7 .ulloa-form textarea:focus {
	border-color: #035977 !important;
	box-shadow: 0 0 0 3px rgba(3, 89, 119, .15) !important;
}
/* Botón Enviar: navy como los botones secundarios del sitio, hover teal */
body .ulloa-cf7 .ulloa-form .ulloa-form__submit { background-color: #081B42 !important; color: #FFFFFF !important; }
body .ulloa-cf7 .ulloa-form .ulloa-form__submit:hover { background-color: #035977 !important; }
/* Contact Us: mapa de borde a borde, sin esquinas redondeadas */
.ulloa-map--full iframe { border-radius: 0; width: 100%; }
/* Contact Us: ícono de cada dato de contacto centrado verticalmente con su texto */
.ulloa-contact-main .kd-icon-box__inner { align-items: center !important; }
.ulloa-contact-main .kd-icon-box__link { display: block; }

/* ==========================================================================
   Blog y páginas de entradas (plantillas del tema): encabezado como las páginas internas
   ========================================================================== */
body #page-header.page-header {
	position: relative;
	padding: 110px 0 !important;
	background-color: #081B42 !important;
	background-image: url("/wp-content/uploads/2021/06/7-scaled.jpg");
	background-size: cover;
	background-position: center;
}
body #page-header.page-header::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(10, 18, 35, .78) 0%, rgba(9, 30, 50, .62) 50%, rgba(5, 70, 95, .45) 100%);
	pointer-events: none;
}
body #page-header .keydesign-container {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}
body #page-header .breadcrumbs { order: -1; margin: 0 0 6px !important; }
body #page-header .breadcrumbs,
body #page-header .breadcrumbs span,
body #page-header .breadcrumbs li::after,
body #page-header .breadcrumbs li::before { color: rgba(255, 255, 255, .8) !important; font-size: 14px; }
body #page-header .breadcrumbs a,
body #page-header .breadcrumbs a span { color: #FFFFFF !important; text-decoration: none !important; }
body #page-header .entry-title {
	margin: 0;
	color: #FFFFFF !important;
	font-size: 56px;
	line-height: 1.15;
	max-width: 900px;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .25);
}
body #page-header .entry-subtitle {
	margin: 0;
	max-width: 720px;
	color: rgba(255, 255, 255, .95) !important;
	font-size: 17px;
	text-shadow: 0 1px 12px rgba(0, 0, 0, .25);
}
@media (max-width: 767px) {
	body #page-header.page-header { padding: 72px 0 !important; }
	body #page-header .entry-title { font-size: 38px; }
}

/* Blog: tarjetas como las del Home (fondo gris claro, radio 16, foto 3:2, categoría teal, título navy, botón navy) */
.blog-content-area { padding-top: 100px; padding-bottom: 100px; }
.blog-layout-grid .content-area .keydesign-card {
	display: flex;
	flex-direction: column;
	background: #F3F6FA !important;
	border-radius: 16px !important;
	overflow: hidden;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}
.blog-layout-grid .keydesign-card .entry-image { margin: 0 !important; line-height: 0; }
.blog-layout-grid .keydesign-card .entry-image img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 16px 16px 0 0 !important;
}
.blog-layout-grid .keydesign-card .entry-wrapper {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 30px !important;
}
.blog-layout-grid .keydesign-card .category-meta { margin-bottom: 12px; }
.blog-layout-grid .keydesign-card .blog-label,
.blog-layout-grid .keydesign-card .blog-label a {
	color: #035977 !important;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
	text-decoration: none !important;
}
.blog-layout-grid .keydesign-card .post-title { margin: 0 0 12px !important; font-size: 21px !important; font-weight: 500 !important; line-height: 1.44 !important; }
.blog-layout-grid .keydesign-card .post-title a { color: #081B42 !important; text-decoration: none !important; }
.blog-layout-grid .keydesign-card .post-title a:hover { color: #035977 !important; }
.blog-layout-grid .keydesign-card .entry-meta { margin-bottom: 14px; font-size: 13px; }
.blog-layout-grid .keydesign-card .entry-meta .comment-count { display: none !important; }
.blog-layout-grid .keydesign-card .entry-content-card,
.blog-layout-grid .keydesign-card .post-content { display: flex; flex-direction: column; flex: 1 1 auto; }
.blog-layout-grid .keydesign-card .post-content p { margin: 0 0 20px; font-size: 16px; line-height: 28px; color: #595959; }
.ulloa-post-more {
	display: inline-flex;
	align-self: flex-start;
	margin-top: auto;
	padding: 16px 22px;
	border-radius: 12px;
	background: #081B42;
	color: #FFFFFF !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none !important;
	transition: background-color .25s, transform .25s;
}
.ulloa-post-more:hover { background: #035977; transform: scale(1.04); }

/* Paginación del blog: botones redondeados navy */
.blog-content-area .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border-radius: 12px;
	background: #F3F6FA;
	color: #081B42;
	font-weight: 600;
	text-decoration: none !important;
}
.blog-content-area .pagination .page-numbers.current,
.blog-content-area .pagination .page-numbers:hover { background: #081B42; color: #FFFFFF; }

/* Barra lateral del blog: buscador, entradas recientes y categorías en tarjetas grises */
.keydesign-sidebar .widget {
	padding: 28px !important;
	margin-bottom: 24px !important;
	border-radius: 16px;
	background: #F3F6FA;
}
.keydesign-sidebar .widget-title,
.keydesign-sidebar .widget h2 { color: #081B42 !important; font-size: 18px !important; font-weight: 600 !important; margin-bottom: 14px !important; }
.keydesign-sidebar .widget ul { margin: 0; padding: 0; list-style: none; }
.keydesign-sidebar .widget li { padding: 8px 0; border-bottom: 1px solid #E4E9F1; }
.keydesign-sidebar .widget li:last-child { border-bottom: 0; }
.keydesign-sidebar .widget li a { color: #4A5068 !important; text-decoration: none !important; }
.keydesign-sidebar .widget li a:hover { color: #035977 !important; }
.keydesign-sidebar .widget_search input[type="search"] { background: #FFFFFF !important; border-radius: 12px !important; }

/* Entrada individual: título, datos, foto y contenido con la tipografía y colores del sitio */
.single-post .site-main { padding-top: 70px; }
.single-post .category-meta .blog-label,
.single-post .category-meta .blog-label a {
	color: #035977 !important;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
	text-decoration: none !important;
}
.single-post .single-post-title { color: #081B42 !important; font-size: 44px !important; line-height: 1.2 !important; font-weight: 500 !important; }
.single-post .entry-meta .comment-count { display: none !important; }
.single-post .entry-image img { border-radius: 16px; width: 100%; height: auto; }
/* El contenido antiguo de las entradas trae títulos en letra con serifa: misma letra y color del sitio */
.single-post .entry-content h1, .single-post .entry-content h2, .single-post .entry-content h3,
.single-post .entry-content h4, .single-post .entry-content h5, .single-post .entry-content h6,
.single-post .entry-content .elementor-heading-title {
	font-family: inherit !important;
	color: #081B42 !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
}
.single-post .entry-content h1, .single-post .entry-content h2,
.single-post .entry-content h1.elementor-heading-title, .single-post .entry-content h2.elementor-heading-title { font-size: 30px !important; }
.single-post .entry-content h3, .single-post .entry-content h3.elementor-heading-title { font-size: 24px !important; }
.single-post .entry-content p,
.single-post .entry-content li,
.single-post .entry-content .elementor-text-editor { font-family: inherit !important; font-size: 17px !important; line-height: 1.75 !important; color: #4A5068 !important; }
.single-post .entry-content .elementor-button,
.single-post .entry-content .wp-block-button__link {
	border-radius: 12px !important;
	font-family: inherit !important;
	font-weight: 600 !important;
	padding: 16px 22px !important;
}
.single-post .entry-content img { border-radius: 12px; }
/* Navegación anterior / siguiente */
.single-post .post-navigation { margin-top: 40px; padding-top: 30px; border-top: 1px solid #E4E9F1; }
.single-post .post-navigation a { color: #081B42 !important; font-weight: 500; text-decoration: none !important; }
.single-post .post-navigation a:hover { color: #035977 !important; }
@media (max-width: 767px) {
	.single-post .single-post-title { font-size: 32px !important; }
}
/* Entradas: el bloque antiguo "Have Questions about your Taxes!" (sección con botón) con el estilo de la franja CTA del sitio */
.single-post .entry-content .elementor-top-section:has(.elementor-button) {
	margin: 40px 0 10px;
	padding: 50px 30px !important;
	border-radius: 16px;
	background: linear-gradient(135deg, #035977 0%, #06406A 100%) !important;
	overflow: hidden;
}
.single-post .entry-content .elementor-top-section:has(.elementor-button) p,
.single-post .entry-content .elementor-top-section:has(.elementor-button) .elementor-heading-title,
.single-post .entry-content .elementor-top-section:has(.elementor-button) .elementor-text-editor {
	color: #FFFFFF !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	text-align: center;
}
.single-post .entry-content .elementor-top-section:has(.elementor-button) .elementor-button {
	background: #FFFFFF !important;
	color: #081B42 !important;
}
.single-post .entry-content .elementor-top-section:has(.elementor-button) .elementor-widget-button { margin-top: 20px; }
/* No mostrar quién publicó: tarjetas del blog del Home (widget KeyDesign) y datos de las entradas */
.kdbp-card .kdbp-meta-author,
.entry-meta .author { display: none !important; }
/* Entradas: compartir solo en Facebook y LinkedIn, más Instagram (perfil de Ulloa; Instagram no permite compartir enlaces) */
.post-share .social-x,
.post-share .social-pinterest { display: none !important; }

/* Appointments: calendario de Calendly en una tarjeta con borde, ícono centrado con su texto y datos para llamar */
.ulloa-calendly-card { border: 1px solid #E4E9F1; }
.ulloa-calendly { min-width: 300px; height: 720px; }
.ulloa-appt .kd-icon-box__inner { align-items: center !important; }
.ulloa-appt-call { padding: 24px 26px; border-radius: 16px; background: #F3F6FA; }
.ulloa-appt-call .kd-heading__desc a { color: #035977 !important; font-weight: 600; text-decoration: none !important; }
@media (max-width: 767px) { .ulloa-calendly { height: 1000px; } }
.ulloa-appt .ulloa-calendly-card { max-width: 1040px; margin: 0 auto; }
.ulloa-appt .ulloa-calendly { height: 760px; }

/* ==========================================================================
   Make a Payment
   ========================================================================== */
/* Códigos QR de Cash App, Venmo y Zelle en tarjetas como las del sitio */
.ulloa-pay-apps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.ulloa-pay-app {
	display: flex; flex-direction: column; align-items: center; text-align: center;
	padding: 34px 28px; border-radius: 16px; background: #F3F6FA;
}
.ulloa-pay-app__qr { width: 100%; max-width: 240px; padding: 14px; border-radius: 16px; background: #FFFFFF; line-height: 0; }
.ulloa-pay-app__qr img { width: 100%; height: auto; display: block; }
.ulloa-pay-app__name { margin: 22px 0 6px; color: #081B42; font-size: 21px; font-weight: 500; }
.ulloa-pay-app__text { margin: 0; color: #4A5068; font-size: 15px; }
@media (max-width: 1024px) { .ulloa-pay-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ulloa-pay-apps { grid-template-columns: 1fr; } }

/* Texto de pago en línea */
.ulloa-pay-fee { margin: 0; padding: 16px 18px; border-left: 3px solid #D62828; border-radius: 8px; background: #FFFFFF; color: #4A5068; font-size: 15px; }
.ulloa-pay-help { margin: 0; color: #4A5068; font-size: 15px; }
.ulloa-pay-help a { color: #035977 !important; font-weight: 600; text-decoration: none !important; }

/* Formulario de PayPal (plugin Quick PayPal Payments) con el estilo de los formularios del sitio */
body .ulloa-pay-form .qpp-style { width: 100% !important; max-width: none !important; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
body .ulloa-pay-form .qpp-style form { margin: 0 !important; }
body .ulloa-pay-form .qpp-header { margin: 0 0 6px !important; color: #081B42 !important; font-size: 26px !important; font-weight: 500 !important; font-family: inherit !important; }
body .ulloa-pay-form .qpp-blurb { margin: 0 0 20px !important; color: #4A5068 !important; font-size: 15px !important; }
body .ulloa-pay-form .qpp-style input[type="text"] {
	width: 100% !important; box-sizing: border-box !important; height: auto !important;
	margin: 0 0 14px !important; padding: 15px 18px !important;
	border: 1px solid #DDE3EC !important; border-radius: 12px !important; background: #FFFFFF !important;
	color: #081B42 !important; font-size: 15px !important; font-family: inherit !important; box-shadow: none !important;
}
body .ulloa-pay-form .qpp-style input[type="text"]:focus { outline: none !important; border-color: #035977 !important; box-shadow: 0 0 0 3px rgba(3, 89, 119, .15) !important; }
body .ulloa-pay-form .qpp-style .pay-button { margin: 6px 0 0 !important; }
body .ulloa-pay-form .qpp-style input[type="submit"] {
	width: 100% !important; height: auto !important; padding: 16px 22px !important;
	border: 0 !important; border-radius: 12px !important; background: #081B42 !important;
	color: #FFFFFF !important; font-size: 15px !important; font-weight: 600 !important; font-family: inherit !important;
	cursor: pointer; transition: background-color .25s;
}
body .ulloa-pay-form .qpp-style input[type="submit"]:hover { background: #035977 !important; }
body .ulloa-pay-form .qpp-style #plain,
body .ulloa-pay-form .qpp-style #plain form { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; }
/* Make a Payment: logos de PayPal y tarjetas aceptadas (Font Awesome brands), grandes y en sus colores */
.ulloa-pay-cards { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ulloa-pay-cards i { font-size: 54px; line-height: 1; }
.ulloa-pay-cards .fa-cc-paypal { color: #003087; }
.ulloa-pay-cards .fa-cc-visa { color: #1A1F71; }
.ulloa-pay-cards .fa-cc-mastercard { color: #EB001B; }
.ulloa-pay-cards .fa-cc-amex { color: #2E77BC; }
.ulloa-pay-cards .fa-cc-discover { color: #F58220; }
@media (max-width: 767px) { .ulloa-pay-cards i { font-size: 44px; } }

/* Client Portal: ícono de cada ventaja centrado con su texto; foto 3:2 */
.ulloa-portal .kd-icon-box__inner { align-items: center !important; }
.ulloa-portal-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
/* Client Portal: botón "Login Here!" más ancho, centrado bajo la lista de ventajas */
.ulloa-portal-login .kd-button { min-width: 280px; justify-content: center; }
@media (max-width: 767px) { .ulloa-portal-login, .ulloa-portal-login .kd-button { width: 100%; min-width: 0; } }
.ulloa-portal-list { width: fit-content !important; max-width: 100%; }

/* Client Portal: bloque de contacto en franja gris (tarjetas en fila + formulario centrado) */
.ulloa-contact-cards .kd-icon-box {
	height: 100%;
	padding: 34px 24px !important;
	border-radius: 16px;
	background: #FFFFFF !important;
	text-align: center;
}
.ulloa-contact-cards .elementor-widget-keydesign-icon-box,
.ulloa-contact-cards .elementor-widget-keydesign-icon-box > .elementor-widget-container { height: 100%; }
.ulloa-contact-cards .kd-icon-box__inner { flex-direction: column; align-items: center !important; }
.ulloa-contact-cards .kd-icon-box__icon-wrapper { margin: 0 0 16px !important; }
.ulloa-contact-social-center { align-items: center !important; text-align: center; }
.ulloa-contact-social-center .kd-social-icons,
.ulloa-contact-social-center .elementor-widget-keydesign-social-icons { justify-content: center; align-self: center; }
.ulloa-form-card--center { max-width: 820px; align-self: center; }
.ulloa-contact-cards > .elementor-element { height: 100%; }
.ulloa-contact-cards .kd-icon-box { box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-start; }
.ulloa-contact-cards .kd-icon-box__link { display: block; height: 100%; }
.ulloa-contact-cards .kd-widget-container { height: 100%; }
/* Client Portal: espacio arriba de "Visit Us" (va después de la franja gris del contacto) */
.ulloa-contact-cards-sec + .ulloa-contact-visit { --padding-top: 100px !important; padding-top: 100px !important; }
@media (max-width: 767px) { .ulloa-contact-cards-sec + .ulloa-contact-visit { --padding-top: 64px !important; padding-top: 64px !important; } }
/* Home, barra de 3 tarjetas sobre el hero entre 1025 y 1299px: el título "IRS Certified Acceptance Agent" (en una línea)
   no cabía; menos relleno lateral y título algo más pequeño para que quepa sin partirse */
@media (min-width: 1025px) and (max-width: 1299px) {
	body .ulloa-hr-trust .kd-icon-box { padding-left: 26px !important; padding-right: 26px !important; }
	body .ulloa-hr-trust .kd-icon-box__title { font-size: 18px !important; }
}

/* Páginas legales: texto original en una columna de lectura cómoda, con la tipografía y colores del sitio */
.ulloa-legal { max-width: 860px; margin: 0 auto; }
.ulloa-legal .elementor-widget-text-editor,
.ulloa-legal .elementor-widget-text-editor p,
.ulloa-legal .elementor-widget-text-editor li { color: #4A5068 !important; font-size: 16px; line-height: 1.75; font-family: inherit !important; }
.ulloa-legal .elementor-widget-text-editor h1,
.ulloa-legal .elementor-widget-text-editor h2,
.ulloa-legal .elementor-widget-text-editor h3,
.ulloa-legal .elementor-widget-text-editor h4,
.ulloa-legal .elementor-widget-text-editor strong:only-child { color: #081B42 !important; font-family: inherit !important; }
.ulloa-legal .elementor-widget-text-editor h2,
.ulloa-legal .elementor-widget-text-editor h3,
.ulloa-legal .elementor-widget-text-editor h4 { margin: 32px 0 10px; font-size: 22px; font-weight: 600; line-height: 1.3; }
.ulloa-legal .elementor-widget-text-editor p { margin: 0 0 16px; }
.ulloa-legal .elementor-widget-text-editor a { color: #035977 !important; font-weight: 500; text-decoration: none !important; }

/* Botón "volver arriba" del tema: estaba en la misma esquina que el ícono del chat (su anillo se veía alrededor del ícono).
   Se sube para quedar encima del chat, alineado con él. */
body .back-to-top.right-aligned { bottom: 96px !important; right: 27px !important; }
@media (max-width: 767px) { body .back-to-top.right-aligned { bottom: 92px !important; right: 25px !important; } }
/* Make a Payment: banner de PayPal y tarjetas (fondo blanco propio) dentro de una tarjeta blanca redondeada */
.ulloa-pay-paypal img { display: block; padding: 14px 18px; border-radius: 16px; background: #FFFFFF; box-sizing: border-box; }
/* Botón "volver arriba": círculo blanco con sombra para que se vea sobre cualquier fondo (también sobre el footer navy);
   flecha navy y anillo de progreso teal */
body .back-to-top {
	border-radius: 50%;
	background-color: #FFFFFF !important;
	box-shadow: 0 4px 16px rgba(8, 27, 66, .22), inset 0 0 0 2px rgba(8, 27, 66, .08) !important;
}
body .back-to-top .icon-arrow-up { background-color: #081B42 !important; }
body .back-to-top svg circle { stroke: #035977 !important; }
/* Mapa del perfil de Google Business (iframe) a todo el ancho */
.ulloa-gmap { display: block; width: 100%; height: 480px; border: 0; }
@media (max-width: 767px) { .ulloa-gmap { height: 360px; } }
