/*!
Theme Name: Kava Child
Theme URI:
Author: Zemez
Author URI:
Description: Kava child theme.
Template: kava
Version: 1.0.0
License: GNU General Public License v3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: kava-child
*/

/* =========================================================================
   HAR Publicidad — Header + Hero (landing)
   Marca: rojo #426EBA · oscuro #1A1A1A · fondo #ECECEC · Montserrat / Open Sans
   ========================================================================= */

/* ---------- Animaciones de entrada (reveal on scroll) ---------- */
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-heading,
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-divider,
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-text-editor,
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-image,
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-button,
.oper-anim [data-elementor-type="wp-page"] .elementor-widget-jet-slider,
.oper-anim [data-elementor-type="wp-page"] .oper-form,
.oper-anim [data-elementor-type="wp-page"] .oper-band-row,
.oper-anim [data-elementor-type="wp-page"] .oper-cimg,
.oper-anim [data-elementor-type="wp-page"] .oper-badge,
.oper-anim [data-elementor-type="wp-page"] .oper-porque-content,
.oper-anim [data-elementor-type="wp-page"] .oper-mcard,
.oper-anim [data-elementor-type="wp-page"] .oper-benefit,
.oper-anim [data-elementor-type="wp-page"] .oper-clientes-head,
.oper-anim [data-elementor-type="wp-page"] .oper-logos img,
.oper-anim [data-elementor-type="wp-page"] .oper-contacto-left,
.oper-anim [data-elementor-type="wp-page"] .oper-ccard,
.oper-anim [data-elementor-type="wp-page"] .oper-hist-left,
.oper-anim [data-elementor-type="wp-page"] .oper-tcar {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
	will-change: opacity, transform;
}
.oper-anim [data-elementor-type="wp-page"] .is-visible {
	opacity: 1 !important;
	transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
	.oper-anim [data-elementor-type="wp-page"] * { opacity: 1 !important; transform: none !important; }
}

/* ---------- Anclajes: scroll suave + offset por header sticky ---------- */
html { scroll-behavior: smooth; }
#inicio, #sobre-nosotros, #clientes, #galeria, #resenas, #contacto { scroll-margin-top: 100px; }

/* ---------- Footer (JetThemeCore) ---------- */
.oper-footer { text-align: center; }
.oper-foot-logo img { height: 76px; width: auto; }
.oper-foot-nav,
.oper-foot-legal {
	margin-top: 18px;
	font-family: "Open Sans", sans-serif;
	line-height: 1.8;
}
.oper-foot-legal { margin-top: 4px; }
.oper-foot-nav a,
.oper-foot-legal a {
	color: #5a5a5a;
	text-decoration: none;
	font-size: 15px;
	transition: color .2s ease;
}
.oper-foot-legal a { font-size: 14px; color: #8a8a8a; }
.oper-foot-nav a:hover,
.oper-foot-legal a:hover { color: #426EBA; }
/* separadores "|" */
.oper-foot-nav a + a::before,
.oper-foot-legal a + a::before {
	content: "|";
	color: #c4c4c4;
	margin: 0 14px;
}
.oper-footbar { min-height: 0; }

/* ---------- Header (JetThemeCore) ---------- */
.oper-header {
	position: sticky;
	top: 0;
	z-index: 999;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .06);
}
.oper-header .elementor-container { align-items: center; }
.oper-logo img { height: 46px; width: auto; }

/* nav: white links on blue bar (no pill) — desktop */
@media (min-width: 768px) {
	.oper-nav .jet-nav.jet-nav--horizontal {
		background: transparent;
		display: inline-flex;
		flex-wrap: nowrap;
	}
	.oper-nav .jet-nav__item > .menu-item-link {
		color: #ffffff;
		font-family: "Montserrat", sans-serif;
		font-weight: 600;
		font-size: 13px;
		letter-spacing: .4px;
		text-transform: uppercase;
		padding: 10px 14px;
		line-height: 1;
		white-space: nowrap;
		opacity: .92;
		transition: opacity .2s ease;
	}
	.oper-nav .jet-nav__item:hover > .menu-item-link,
	.oper-nav .jet-nav__item.current-menu-item > .menu-item-link {
		opacity: 1;
		text-decoration: underline;
		text-underline-offset: 5px;
	}
}

/* CONTÁCTANOS pill: white bg, blue text */
.oper-phone-btn .elementor-button {
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .4px;
	text-transform: uppercase;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}

/* ---------- Hero ---------- */
/* seamless: remove theme's 30px gap between header and content on home */
.home .site-content { margin-top: 0 !important; }

.oper-hero .elementor-container { align-items: center; }
.oper-hero-photo img {
	border-radius: 16px;
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	box-shadow: 0 22px 55px rgba(0, 0, 0, .16);
}
.oper-hero-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 74px;
	line-height: 1.0;
	letter-spacing: -1px;
	text-transform: uppercase;
	color: #15171C;
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
	overflow-wrap: normal;
}
.oper-hero-sub p {
	color: #7a7a7a;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.5;
	max-width: 320px;
	margin: 22px 0 30px;
}
.oper-hero-cta .elementor-button {
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .4px;
	text-transform: uppercase;
	box-shadow: 0 12px 28px rgba(66, 110, 186, .32);
}

/* highlight current item (Inicio) en header azul */
@media (min-width: 768px) {
	.oper-nav .jet-nav__item:first-child > .menu-item-link {
		opacity: 1;
		text-decoration: underline;
		text-underline-offset: 5px;
	}
}

/* ---------- Slider (JetElements / Slider Pro) ---------- */
/* round the mask (clipping viewport) so adjacent slides never peek at corners */
.oper-slider .sp-slides-container,
.oper-slider .sp-mask {
	border-radius: 20px;
	overflow: hidden;
}
/* hide thumbnail strip for a clean hero carousel */
.oper-slider .sp-thumbnails-container { display: none !important; }
/* brand arrows (override JetElements default blue skin) */
.oper-slider .sp-arrow.sp-previous-arrow,
.oper-slider .sp-arrow.sp-next-arrow {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background-color: rgba(26, 26, 26, .55) !important;
	transition: background-color .2s ease;
}
.oper-slider .sp-arrow.sp-previous-arrow:hover,
.oper-slider .sp-arrow.sp-next-arrow:hover {
	background-color: #426EBA !important;
}

/* ---------- Sección "Experiencia que da visibilidad" ---------- */
.oper-exp { position: relative; overflow: hidden; }

/* decorative thin circle outline (silueta) on the right */
.oper-exp::after {
	content: "";
	position: absolute;
	right: -250px;
	top: 50%;
	transform: translateY(-50%);
	width: 620px;
	height: 620px;
	border: 1.5px solid rgba(0, 0, 0, .12);
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
}
/* rotated brand label on the far left edge */
.oper-exp::before {
	content: "OPER TOTAL";
	position: absolute;
	left: 6px;
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	color: #a6a6a6;
	text-transform: uppercase;
	z-index: 2;
}
.oper-exp .elementor-container { position: relative; z-index: 1; align-items: flex-start; }

/* map image */
.oper-map img {
	border-radius: 24px;
	width: 100%;
	height: auto;
	display: block;
	box-shadow: 0 22px 55px rgba(0, 0, 0, .14);
}

.oper-exp-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 54px;
	line-height: 1.05;
	letter-spacing: -1px;
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
}
.oper-exp-sub p {
	color: #5a5a5a;
	font-size: 18px;
	line-height: 1.6;
	max-width: 420px;
	margin: 0;
	-webkit-hyphens: none;
	hyphens: none;
}

/* red card overlapping the map */
.oper-exp-card {
	background: #426EBA;
	color: #ffffff;
	border-radius: 24px;
	padding: 36px 40px;
	margin-top: 40px;
	margin-left: -160px;
	position: relative;
	z-index: 3;
	box-shadow: 0 24px 55px rgba(136, 38, 49, .28);
}
.oper-exp-card::before {
	content: "";
	display: block;
	width: 54px;
	height: 4px;
	background: rgba(255, 255, 255, .9);
	border-radius: 2px;
	margin-bottom: 22px;
}
.oper-exp-card,
.oper-exp-card .elementor-widget-container,
.oper-exp-card p,
.oper-exp-card strong { color: #ffffff !important; }
.oper-exp-card p {
	font-size: 16px;
	line-height: 1.5;
	margin: 0 0 16px;
	-webkit-hyphens: none;
	hyphens: none;
}
.oper-exp-card p:last-child { margin-bottom: 0; }
.oper-exp-card strong { font-weight: 700; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.oper-exp-title .elementor-heading-title { font-size: 42px; }
	.oper-exp-card { margin-left: -80px; }
}
@media (max-width: 767px) {
	.oper-exp::before { display: none; }
	.oper-exp-card { margin-left: 0; margin-top: 24px; }
	.oper-exp-title .elementor-heading-title { font-size: 34px; }
}

/* ---------- Sección "Clientes que confían" (banda roja) ---------- */
.oper-clients { position: relative; overflow: hidden; }
.oper-clients .elementor-container { position: relative; z-index: 2; align-items: center; }

/* decorative thin circles (siluetas) */
.oper-clients::before {
	content: "";
	position: absolute;
	left: -160px;
	top: -200px;
	width: 420px;
	height: 420px;
	border: 1.5px solid rgba(255, 255, 255, .22);
	border-radius: 50%;
	z-index: 1;
	pointer-events: none;
}
.oper-clients::after {
	content: "";
	position: absolute;
	right: -120px;
	bottom: -160px;
	width: 460px;
	height: 460px;
	border: 1.5px solid rgba(255, 255, 255, .22);
	border-radius: 50%;
	z-index: 1;
	pointer-events: none;
}
/* vertical brand label */
.oper-clients > .elementor-container::before {
	content: "OPER TOTAL";
	position: absolute;
	left: -56px;
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	color: rgba(255, 255, 255, .55);
	text-transform: uppercase;
}
.oper-clients-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 56px;
	line-height: 1.05;
	letter-spacing: -1px;
	color: #ffffff;
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
}
.oper-clients-text p {
	color: rgba(255, 255, 255, .92);
	font-size: 17px;
	line-height: 1.6;
	margin: 0 0 18px;
	-webkit-hyphens: none;
	hyphens: none;
}
/* Contáctanos pill with white circular arrow badge */
.oper-clients-btn .elementor-button {
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 15px;
	display: inline-flex;
	align-items: center;
}
.oper-clients-btn .elementor-button-icon {
	background: #ffffff;
	color: #1a1a1a;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.oper-clients-btn .elementor-button-icon i,
.oper-clients-btn .elementor-button-icon svg {
	transform: rotate(-45deg);
	font-size: 14px;
	width: 15px;
	height: 15px;
	color: #1a1a1a !important;
	fill: #1a1a1a !important;
}

/* ---------- Dark stat card (overlapping the red band) ---------- */
.oper-clients-cardwrap {
	margin-top: -135px !important;
	position: relative;
	z-index: 5;
}
.oper-stat-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 46px;
	line-height: 1.05;
	letter-spacing: -1px;
	color: #ffffff;
}
.oper-stat-text p {
	color: rgba(255, 255, 255, .8);
	font-size: 16px;
	line-height: 1.55;
	max-width: 720px;
	margin: 0;
	-webkit-hyphens: none;
	hyphens: none;
}

@media (max-width: 1024px) {
	.oper-clients-title .elementor-heading-title { font-size: 42px; }
	.oper-stat-title .elementor-heading-title { font-size: 36px; }
}
@media (max-width: 767px) {
	.oper-clients > .elementor-container::before { display: none; }
	.oper-clients-title .elementor-heading-title { font-size: 32px; }
	.oper-clients-cardwrap { margin-top: -90px !important; }
	.oper-stat-title .elementor-heading-title { font-size: 28px; }
}

/* ---------- Sección "Marcas en acción" (galería + popup) ---------- */
.oper-galeria { position: relative; overflow: hidden; }
.oper-galeria::after {
	content: "";
	position: absolute;
	right: -230px;
	bottom: -200px;
	width: 560px;
	height: 560px;
	border: 1.5px solid rgba(0, 0, 0, .1);
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
}
.oper-galeria > .elementor-container::before {
	content: "OPER TOTAL";
	position: absolute;
	left: -56px;
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	color: #a6a6a6;
	text-transform: uppercase;
}
.oper-galeria .elementor-container { position: relative; z-index: 1; }
.oper-galeria-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 50px;
	letter-spacing: -1px;
}
.oper-galeria-sub { text-align: center; }
.oper-galeria-sub p {
	color: #5a5a5a;
	font-size: 18px;
	line-height: 1.6;
	max-width: 720px;
	margin: 0 auto 6px;
}

/* grid: 2 wide on top, 3 on bottom */
.oper-gallery-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 26px;
	margin-top: 46px;
}
.oper-card--wide  { grid-column: span 3; }
.oper-card--third { grid-column: span 2; }

.oper-card {
	position: relative;
	aspect-ratio: 16 / 10;
	border-radius: 22px;
	overflow: hidden;
	cursor: pointer;
	box-shadow: 0 14px 36px rgba(0, 0, 0, .12);
	outline: none;
}
.oper-card-img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform .5s ease;
}
.oper-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 45%);
	transition: background .3s ease;
}
.oper-card:hover .oper-card-img { transform: scale(1.06); }
.oper-card:hover::after { background: linear-gradient(to top, rgba(136, 38, 49, .75) 0%, rgba(136, 38, 49, .1) 60%); }
.oper-card:focus-visible { box-shadow: 0 0 0 3px #426EBA, 0 14px 36px rgba(0, 0, 0, .12); }

.oper-card-arrow {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #ffffff;
	color: #1a1a1a;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}
.oper-card-arrow svg { width: 20px; height: 20px; }
.oper-card:hover .oper-card-arrow { background: #426EBA; color: #ffffff; transform: rotate(45deg); }

.oper-card-cap {
	position: absolute;
	left: 22px;
	right: 22px;
	bottom: 18px;
	z-index: 2;
	color: #ffffff;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 17px;
	line-height: 1.25;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}

/* modal */
.oper-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .28s ease, visibility .28s ease;
}
.oper-modal.is-open { opacity: 1; visibility: visible; }
.oper-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 12, 14, .6);
	backdrop-filter: blur(3px);
}
.oper-modal__box {
	position: relative;
	width: 100%;
	max-width: 520px;
	background: #ffffff;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
	transform: translateY(18px) scale(.98);
	transition: transform .32s cubic-bezier(.2, .8, .25, 1);
}
.oper-modal.is-open .oper-modal__box { transform: translateY(0) scale(1); }
.oper-modal__img {
	display: block;
	width: 100%;
	height: 240px;
	background-size: cover;
	background-position: center;
	background-color: #ececec;
}
.oper-modal__title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 24px;
	color: #1a1a1a;
	margin: 26px 30px 10px;
	line-height: 1.2;
}
.oper-modal__desc {
	font-size: 16px;
	line-height: 1.6;
	color: #5a5a5a;
	margin: 0 30px 30px;
}
.oper-modal__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .9);
	color: #1a1a1a;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, color .2s ease;
}
.oper-modal__close:hover { background: #426EBA; color: #ffffff; }

@media (max-width: 1024px) {
	.oper-galeria-title .elementor-heading-title { font-size: 40px; }
	.oper-gallery-grid { grid-template-columns: 1fr 1fr; }
	.oper-card--wide, .oper-card--third { grid-column: span 1; }
}
@media (max-width: 600px) {
	.oper-galeria > .elementor-container::before { display: none; }
	.oper-gallery-grid { grid-template-columns: 1fr; }
	.oper-card--wide, .oper-card--third { grid-column: span 1; }
}

/* ---------- Sección "Lo que dicen nuestros clientes" ---------- */
.oper-tst-sec { position: relative; overflow: hidden; }
.oper-tst-sec::after {
	content: "";
	position: absolute;
	right: -200px;
	top: -260px;
	width: 520px;
	height: 520px;
	border: 1.5px solid rgba(0, 0, 0, .12);
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
}
.oper-tst-sec > .elementor-container::before {
	content: "OPER TOTAL";
	position: absolute;
	left: -56px;
	top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: "Montserrat", sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	color: #a6a6a6;
	text-transform: uppercase;
}
.oper-tst-sec .elementor-container { position: relative; z-index: 1; }
.oper-tst-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 50px;
	line-height: 1.08;
	letter-spacing: -1px;
}
.oper-tst-sub p {
	color: #5a5a5a;
	font-size: 18px;
	line-height: 1.6;
	max-width: 760px;
	margin: 0;
}

/* carousel */
.oper-tst { margin-top: 44px; }
.oper-tst-viewport { overflow: hidden; }
.oper-tst-track { display: flex; transition: transform .55s cubic-bezier(.3, .8, .3, 1); }
.oper-tst-slide {
	flex: 0 0 100%;
	display: flex;
	gap: 26px;
	align-items: stretch;
}
.oper-tst-item { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.oper-tst-card {
	flex: 1;
	background: #ffffff;
	border-radius: 24px;
	padding: 30px 32px 34px;
	box-shadow: 0 14px 36px rgba(0, 0, 0, .08);
}
.oper-tst-quote {
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 700;
	font-size: 78px;
	line-height: .7;
	height: 44px;
	color: #1a1a1a;
}
.oper-tst-text p {
	color: #4a4a4a;
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 14px;
	-webkit-hyphens: none;
	hyphens: none;
}
.oper-tst-text p:last-child { margin-bottom: 0; }
.oper-tst-author {
	margin-top: 16px;
	background: #ffffff;
	border-radius: 18px;
	padding: 16px 20px;
	text-align: center;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .07);
}
.oper-tst-author .n {
	display: block;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: #426EBA;
}
.oper-tst-author .r {
	display: block;
	font-size: 14px;
	color: #6a6a6a;
	margin-top: 2px;
}
/* featured (center) card */
.oper-tst-item.is-feature .oper-tst-card { background: #426EBA; }
.oper-tst-item.is-feature .oper-tst-quote { color: #ffffff; }
.oper-tst-item.is-feature .oper-tst-text p { color: rgba(255, 255, 255, .92); }
.oper-tst-item.is-feature .oper-tst-author { background: #426EBA; }
.oper-tst-item.is-feature .oper-tst-author .n { color: #ffffff; }
.oper-tst-item.is-feature .oper-tst-author .r { color: rgba(255, 255, 255, .8); }

/* dots */
.oper-tst-dots { display: flex; justify-content: center; gap: 10px; margin-top: 34px; }
.oper-tst-dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	border: none;
	background: #c4c4c4;
	cursor: pointer;
	padding: 0;
	transition: background .2s ease, transform .2s ease;
}
.oper-tst-dot.is-active { background: #426EBA; transform: scale(1.25); }

/* ---------- Scroll-down indicator (entre secciones) ---------- */
.oper-scrolldown {
	position: absolute;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: none;
	background: #1a1a1a;
	color: #ffffff;
	cursor: pointer;
	z-index: 60;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .28);
	transition: background .2s ease, transform .2s ease;
}
.oper-scrolldown:hover { background: #426EBA; transform: translate(-50%, -50%) translateY(3px); }
.oper-scrolldown svg { width: 24px; height: 24px; }

@media (max-width: 1024px) {
	.oper-tst-title .elementor-heading-title { font-size: 40px; }
	.oper-tst-slide { gap: 18px; }
	.oper-tst-card { padding: 24px 24px 28px; }
}
@media (max-width: 767px) {
	.oper-tst-sec > .elementor-container::before { display: none; }
	.oper-tst-title .elementor-heading-title { font-size: 32px; }
	/* stack the 3 cards per group on mobile */
	.oper-tst-slide { flex-wrap: wrap; gap: 16px; }
	.oper-tst-item { flex: 0 0 100%; }
	.oper-scrolldown { width: 44px; height: 44px; }
}

/* ---------- Sección "Contáctenos" ---------- */
.oper-contact { position: relative; overflow: hidden; }
.oper-contact::before {
	content: "";
	position: absolute;
	left: -300px;
	top: 50%;
	transform: translateY(-50%);
	width: 540px;
	height: 540px;
	border: 1.5px solid rgba(0, 0, 0, .1);
	border-radius: 50%;
	z-index: 0;
	pointer-events: none;
}
.oper-contact .elementor-container { position: relative; z-index: 1; }
.oper-contact-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 52px;
	letter-spacing: -1px;
}
.oper-contact-sub { text-align: center; }
.oper-contact-sub p {
	color: #5a5a5a;
	font-size: 18px;
	line-height: 1.6;
	max-width: 720px;
	margin: 0 auto;
}
.oper-contact-slider { margin-top: 34px; margin-bottom: 50px; }

/* info column */
.oper-cinfo { list-style: none; margin: 0; padding: 0; }
.oper-cinfo li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 26px;
}
.oper-cinfo li:last-child { margin-bottom: 0; }
.oper-cinfo .ic {
	flex: 0 0 auto;
	color: #426EBA;
	margin-top: 2px;
}
.oper-cinfo .ic svg { width: 22px; height: 22px; display: block; }
.oper-cinfo div { font-size: 16px; line-height: 1.5; color: #4a4a4a; }
.oper-cinfo strong { color: #1a1a1a; font-weight: 700; }
.oper-cinfo a { color: inherit; text-decoration: none; }
.oper-cinfo a:hover { color: #426EBA; }

/* vertical divider before the form column */
.oper-form-col { border-left: 1px solid #e4e4e4; padding-left: 50px; }

/* form */
.oper-form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.oper-field { margin-bottom: 16px; }
.oper-form input[type="email"],
.oper-form input[type="text"] {
	width: 100%;
	border: 1px solid #cfcfcf;
	border-radius: 50px;
	padding: 15px 24px;
	font-family: "Open Sans", sans-serif;
	font-size: 15px;
	color: #1a1a1a;
	background: #fff;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.oper-form input::placeholder { color: #8a8a8a; }
.oper-form input:focus {
	border-color: #426EBA;
	box-shadow: 0 0 0 3px rgba(136, 38, 49, .12);
}
.oper-form-btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 8px;
	border: none;
	cursor: pointer;
	background: #1a1a1a;
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 15px;
	padding: 10px 10px 10px 26px;
	border-radius: 50px;
	transition: background .2s ease;
}
.oper-form-btn:hover { background: #426EBA; }
.oper-form-arrow {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #fff;
	color: #1a1a1a;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.oper-form-arrow svg { width: 18px; height: 18px; }
.oper-form-msg {
	border-radius: 14px;
	padding: 12px 18px;
	margin-bottom: 16px;
	font-size: 15px;
}
.oper-form-ok { background: #e9f6ec; color: #1f7a37; border: 1px solid #b6e3c1; }
.oper-form-err { background: #fdecee; color: #9b2230; border: 1px solid #f3c2c8; }

@media (max-width: 1024px) {
	.oper-contact-title .elementor-heading-title { font-size: 42px; }
}
@media (max-width: 767px) {
	.oper-form-col { border-left: none; padding-left: 0; margin-top: 30px; }
	.oper-contact-title .elementor-heading-title { font-size: 32px; }
}

/* ---------- Responsive (hero/header) ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	.oper-hero-title .elementor-heading-title { font-size: 48px; }
	.oper-nav .jet-nav__item > .menu-item-link { padding: 10px 13px; font-size: 13px; }
}
@media (max-width: 767px) {
	.oper-hero-title .elementor-heading-title { font-size: 36px; }
	.oper-hero-sub p { font-size: 16px; }
	/* mobile menu links → brand colors */
	.oper-nav .jet-nav .menu-item-link {
		color: #1a1a1a;
		font-family: "Montserrat", sans-serif;
		font-weight: 600;
		font-size: 16px;
	}
	.oper-nav .jet-nav .menu-item-link:hover,
	.oper-nav .jet-nav .current-menu-item > .menu-item-link { color: #426EBA; }
	.oper-nav .jet-nav__mobile-trigger { color: #1a1a1a; }
}

/* Evitar que se corten (guionen) las palabras */
body, p, li, a, span,
h1, h2, h3, h4, h5, h6,
.elementor-widget-text-editor,
.elementor-heading-title {
	-webkit-hyphens: none !important;
	-ms-hyphens: none !important;
	hyphens: none !important;
}

/* ---------- Botón flotante de contacto ---------- */
.oper-fab {
	position: fixed;
	right: 28px;
	bottom: 28px;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	background: #1B2A4A;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	box-shadow: 0 12px 30px rgba(27, 42, 74, .4);
	transition: transform .2s ease, background .2s ease;
}
.oper-fab:hover { background: #426EBA; transform: translateY(-3px); color: #fff; }
.oper-fab svg { width: 30px; height: 30px; }
@media (max-width: 767px) { .oper-fab { width: 56px; height: 56px; right: 18px; bottom: 18px; } .oper-fab svg { width: 26px; height: 26px; } }

/* ============================================================
   OPER — Header flotante, banda azul y "¿Por Qué Oper Total?"
   ============================================================ */

/* Header como barra azul flotante redondeada */
.oper-header { background-color: transparent !important; box-shadow: none !important; }
.oper-header > .elementor-container {
	background: #426EBA;
	border-radius: 46px;
	padding: 8px 30px;
	box-shadow: 0 14px 34px rgba(66, 110, 186, .28);
}

/* Banda EXPERIENCIA · COMPROMISO · RESULTADOS */
.oper-band-row {
	display: flex;
	justify-content: center;
	gap: 90px;
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	text-transform: uppercase;
	color: #ffffff;
	font-size: 22px;
	letter-spacing: 1px;
}

/* ¿Por Qué Oper Total? */
.oper-porque .elementor-container { align-items: center; }

/* collage */
.oper-collage { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.oper-collage-col { display: flex; flex-direction: column; gap: 16px; }
.oper-cimg {
	display: block;
	width: 100%;
	border-radius: 16px;
	background-size: cover;
	background-position: center;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .10);
}
.oper-collage-col:first-child > .oper-cimg { height: 320px; }
.oper-cimg.short { height: 172px; }
.oper-cimg.tall  { height: 332px; }
.oper-badge {
	background: #426EBA;
	color: #fff;
	border-radius: 16px;
	padding: 18px 22px;
	display: flex;
	align-items: center;
	gap: 14px;
	box-shadow: 0 14px 30px rgba(66, 110, 186, .3);
}
.oper-badge-ic svg { width: 36px; height: 36px; }
.oper-badge-tx strong { display: block; font-family: "Montserrat", sans-serif; font-weight: 800; font-size: 23px; line-height: 1; }
.oper-badge-tx span { font-size: 13px; opacity: .9; }

/* contenido derecha */
.oper-eyebrow {
	display: block;
	color: #426EBA;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2px;
	margin-bottom: 14px;
}
.oper-porque-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 42px;
	color: #15171C;
	margin: 0 0 26px;
	line-height: 1.1;
}
.oper-porque-box {
	background: #eef1f6;
	border-radius: 16px;
	padding: 26px 30px;
	margin-bottom: 28px;
}
.oper-porque-box p { margin: 0; color: #5a5a5a; font-size: 15px; line-height: 1.7; }
.oper-porque-contact { display: flex; align-items: center; gap: 14px; }
.oper-porque-contact .ic { color: #426EBA; flex: 0 0 auto; }
.oper-porque-contact .ic svg { width: 30px; height: 30px; }
.oper-porque-contact .l { display: block; font-size: 13px; color: #8a8a8a; }
.oper-porque-contact a { display: block; font-family: "Montserrat", sans-serif; font-weight: 700; color: #15171C; text-decoration: none; font-size: 16px; }

@media (max-width: 767px) {
	.oper-band-row { gap: 22px; font-size: 15px; flex-wrap: wrap; }
	.oper-porque-title { font-size: 32px; }
	.oper-header > .elementor-container { border-radius: 30px; padding: 8px 16px; }
}

/* OPER: el PDF no usa indicadores de scroll entre secciones */
.oper-scrolldown { display: none !important; }

/* ============================================================
   OPER — Medios publicitarios + Nuestros clientes (PDF)
   ============================================================ */
.oper-medios-title .elementor-heading-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 34px;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #ffffff;
	text-align: center;
}
.oper-medios-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin-top: 44px; }
.oper-mcard { position: relative; }
.oper-mphoto {
	display: block;
	height: 250px;
	border-radius: 16px 44px 16px 16px;
	background-size: cover;
	background-position: center;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .22);
}
.oper-mlabel {
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 14px;
	background: rgba(255, 255, 255, .18);
	backdrop-filter: blur(4px);
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	font-size: 12px;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: .3px;
	padding: 8px 12px;
	border-radius: 22px;
	border: 1px solid rgba(255, 255, 255, .35);
}
@media (min-width: 768px) and (max-width: 1100px) {
	.oper-medios-cards { grid-template-columns: repeat(3, 1fr); }
}

/* benefit cards overlapping the blue band */
.oper-benefits-wrap { margin-top: -95px !important; position: relative; z-index: 4; }
.oper-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; align-items: start; }
.oper-benefit {
	border-radius: 18px;
	padding: 28px 28px;
	min-height: 150px;
	font-family: "Montserrat", sans-serif;
	font-weight: 700;
	font-size: 19px;
	line-height: 1.35;
	box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
}
.oper-benefit.dark { background: #15173a; color: #fff; }
.oper-benefit.light { background: #ECEAE4; color: #15173a; min-height: 120px; margin-top: 16px; }

/* NUESTROS CLIENTES */
.oper-clientes-head { max-width: 760px; }
.oper-clientes-title {
	font-family: "Montserrat", sans-serif;
	font-weight: 800;
	font-size: 34px;
	line-height: 1.25;
	color: #15171C;
	margin: 12px 0 0;
}
.oper-logos {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
	margin-top: 50px;
}
.oper-logos img { height: 64px; width: auto; filter: grayscale(1); opacity: .7; }

@media (max-width: 767px) {
	.oper-medios-cards, .oper-benefits { grid-template-columns: 1fr; }
	.oper-benefits-wrap { margin-top: -70px !important; }
	.oper-benefit.light { margin-top: 0; }
	.oper-clientes-title { font-size: 26px; }
	.oper-logos { justify-content: center; gap: 24px; }
}

/* evitar corte de palabra en todos los bloques OPER (divs incluidos) */
[class^="oper-"], [class*=" oper-"] {
	-webkit-hyphens: none !important;
	hyphens: none !important;
	word-break: normal;
	overflow-wrap: normal;
}

/* ============================================================
   OPER — Modal medios, Contacto, Testimonios, Footer (PDF)
   ============================================================ */
.oper-mcard { cursor: pointer; outline: none; }
.oper-mplus {
	position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 50%;
	background: rgba(255,255,255,.22); color: #fff; display: flex; align-items: center; justify-content: center;
	font-size: 20px; line-height: 1; border: 1px solid rgba(255,255,255,.4);
}
.oper-mcard:hover .oper-mphoto { filter: brightness(1.08); }

/* Contacto */
.oper-contacto-title { font-family:"Montserrat",sans-serif; font-weight:800; font-size:34px; color:#15171C; line-height:1.2; margin:10px 0 30px; }
.oper-contacto-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.oper-ccard { background:#426EBA; color:#fff; border-radius:14px; padding:18px 20px; display:flex; align-items:center; gap:12px; }
.oper-ccard .ic svg { width:22px; height:22px; }
.oper-ccard .l { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.5px; opacity:.85; }
.oper-ccard strong { font-size:15px; }

/* Form card (PDF) */
.oper-form { background:#f4f5f7; border-radius:18px; padding:30px 32px; box-shadow:0 18px 40px rgba(0,0,0,.06); }
.oper-form-title { font-family:"Montserrat",sans-serif; font-weight:700; font-size:18px; color:#15171C; margin:0 0 22px; line-height:1.3; }
.oper-field-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.oper-form .oper-field { margin-bottom:18px; }
.oper-form label { display:block; font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:#9aa0aa; margin-bottom:4px; }
.oper-form input, .oper-form select, .oper-form textarea {
	width:100%; border:none; border-bottom:1px solid #cfd3da; border-radius:0; background:transparent; padding:6px 0;
	font-family:"Open Sans",sans-serif; font-size:14px; color:#15171C; outline:none; box-shadow:none;
}
.oper-form input:focus, .oper-form select:focus, .oper-form textarea:focus { border-bottom-color:#426EBA; box-shadow:none; }
.oper-form textarea { resize:vertical; }
.oper-form-btn { margin-top:8px; background:#426EBA; color:#fff; border:none; border-radius:50px; padding:12px 34px; font-family:"Montserrat",sans-serif; font-weight:700; font-size:13px; text-transform:uppercase; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.oper-form-btn:hover { background:#345aa0; }
.oper-form-arrow { width:auto; height:auto; background:transparent; }
.oper-form-arrow svg { width:16px; height:16px; }

/* Historias / Testimonios */
.oper-hist-title { font-family:"Montserrat",sans-serif; font-weight:800; font-size:36px; color:#15171C; line-height:1.15; margin:0 0 24px; }
.oper-hist-box { background:#f4f5f7; border-radius:14px; padding:24px 26px; border-left:3px solid #426EBA; }
.oper-hist-box p { margin:0; color:#6a6a6a; font-size:15px; line-height:1.7; }
.oper-tcar-eyebrow { text-align:right; display:block; }
.oper-tcar-row { display:flex; align-items:center; gap:14px; margin-top:6px; }
.oper-tcar-view { overflow:hidden; flex:1; }
.oper-tcar-track { display:flex; transition:transform .5s ease; }
.oper-tslide { flex:0 0 100%; }
.oper-tslide h3 { font-family:"Montserrat",sans-serif; font-weight:800; font-size:30px; color:#15171C; margin:0; }
.oper-tslide .role { color:#426EBA; font-weight:700; font-size:14px; display:block; margin:4px 0 14px; }
.oper-tslide p { color:#6a6a6a; font-size:15px; line-height:1.6; margin:0; max-width:420px; }
.oper-tarrow { flex:0 0 auto; width:42px; height:42px; border-radius:50%; border:none; background:#eef1f7; color:#426EBA; font-size:22px; line-height:1; cursor:pointer; transition:.2s; }
.oper-tarrow:hover { background:#426EBA; color:#fff; }

/* Footer oscuro */
.oper-footer { text-align:left !important; }
.oper-footwrap { color:#fff; }
.oper-footmap { display:block; width:100%; height:260px; border-radius:16px; background-size:cover; background-position:center; margin-bottom:40px; }
.oper-footgrid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; }
.oper-footwrap .oper-footlogo { max-width:300px !important; width:auto !important; height:auto; padding-top:2rem; margin-bottom:16px; }
.oper-footbrand p { color:rgba(255,255,255,.6); font-size:14px; line-height:1.7; max-width:300px; margin:0 0 20px; }
.oper-foot-social { display:flex; gap:12px; }
.oper-foot-social a { width:38px; height:38px; border-radius:50%; background:#426EBA; color:#fff; display:flex; align-items:center; justify-content:center; }
.oper-foot-social a:hover { background:#5a82c8; }
.oper-foot-social svg { width:18px; height:18px; }
.oper-footcol h4 { font-family:"Montserrat",sans-serif; font-weight:700; font-size:16px; color:#fff; margin:0 0 20px; }
.oper-footitem { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.oper-footitem .ic { color:#426EBA; } .oper-footitem .ic svg { width:22px; height:22px; }
.oper-footitem .l { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:rgba(255,255,255,.5); }
.oper-footitem strong { color:#fff; font-size:14px; font-weight:600; }
.oper-footnav2 { display:flex; flex-direction:column; gap:14px; }
.oper-footnav2 a { color:rgba(255,255,255,.75); text-decoration:none; font-size:14px; }
.oper-footnav2 a:hover { color:#fff; }
.oper-footlegal { display:flex; justify-content:flex-end; gap:24px; margin-top:36px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); }
.oper-footlegal a { color:rgba(255,255,255,.5); text-decoration:none; font-size:13px; }
.oper-footlegal a:hover { color:#fff; }

@media (max-width:767px){
	.oper-contacto-cards { grid-template-columns:1fr; }
	.oper-field-row { grid-template-columns:1fr; gap:0; }
	.oper-hist-title { font-size:28px; }
	.oper-footgrid { grid-template-columns:1fr; gap:30px; }
	.oper-footlegal { justify-content:center; flex-wrap:wrap; }
}

/* inputs del form de contacto: estilo subrayado (override regla vieja con [type]) */
.oper-form input[type="text"],
.oper-form input[type="email"],
.oper-form select,
.oper-form textarea {
	border: none !important;
	border-bottom: 1px solid #cfd3da !important;
	border-radius: 0 !important;
	padding: 6px 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.oper-form input[type="text"]:focus,
.oper-form input[type="email"]:focus,
.oper-form select:focus,
.oper-form textarea:focus { border-bottom-color: #426EBA !important; }

/* ============================================================
   OPER — Modal de medios (diseño propio, distinto a HAR)
   ============================================================ */
.oper-mm {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 24px;
	opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
}
.oper-mm.is-open { opacity: 1; visibility: visible; }
.oper-mm__bg { position: absolute; inset: 0; background: rgba(21,23,58,.62); backdrop-filter: blur(4px); }
.oper-mm__box {
	position: relative; width: 100%; max-width: 760px; background: #fff;
	border-radius: 22px; overflow: hidden; display: flex;
	box-shadow: 0 30px 80px rgba(0,0,0,.4);
	transform: translateY(16px) scale(.98); transition: transform .35s cubic-bezier(.2,.8,.25,1);
}
.oper-mm.is-open .oper-mm__box { transform: none; }
.oper-mm__img { flex: 0 0 44%; background-size: cover; background-position: center; min-height: 330px; background-color: #26324f; }
.oper-mm__body { flex: 1; padding: 42px 38px; }
.oper-mm__x {
	position: absolute; top: 14px; right: 14px; width: 38px; height: 38px; border-radius: 50%;
	border: none; background: rgba(255,255,255,.92); color: #15173a; font-size: 24px; line-height: 1;
	cursor: pointer; z-index: 2; display: flex; align-items: center; justify-content: center; transition: .2s;
}
.oper-mm__x:hover { background: #426EBA; color: #fff; }
.oper-mm__eyebrow { display: block; color: #426EBA; font-family: "Montserrat",sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 10px; }
.oper-mm__title { font-family: "Montserrat",sans-serif; font-weight: 800; font-size: 26px; color: #15173a; margin: 0; line-height: 1.15; }
.oper-mm__rule { display: block; width: 48px; height: 4px; background: #426EBA; border-radius: 2px; margin: 16px 0 18px; }
.oper-mm__desc { color: #5a5a5a; font-size: 15px; line-height: 1.65; margin: 0 0 26px; }
.oper-mm__cta {
	display: inline-flex; align-items: center; gap: 8px; background: #426EBA; color: #fff; text-decoration: none;
	font-family: "Montserrat",sans-serif; font-weight: 700; font-size: 13px; text-transform: uppercase;
	padding: 12px 26px; border-radius: 50px; transition: background .2s ease;
}
.oper-mm__cta:hover { background: #345aa0; color: #fff; }
@media (max-width: 680px) {
	.oper-mm__box { flex-direction: column; max-width: 420px; }
	.oper-mm__img { flex: none; width: 100%; min-height: 200px; }
	.oper-mm__body { padding: 28px 24px; }
}

/* Footer: mapa embebido + logos de clientes (imagen combinada) */
.oper-footmap { border: 0; }
.oper-logos-single { justify-content: center; }
.oper-logos-single img { max-width: 680px; width: 100%; height: auto; filter: none; opacity: 1; }

/* Móvil: logo del footer más chico (300px es demasiado en pantalla pequeña) */
@media (max-width: 767px) {
	.oper-footwrap .oper-footlogo { max-width: 180px !important; padding-top: 1rem; margin-bottom: 10px; }
	.oper-footmap { height: 200px; }
	.oper-hero-slider .slider-pro { min-height: 360px !important; }
}

/* Móvil: header compacto en una fila (logo | hamburguesa | CTA) */
@media (max-width: 767px) {
	.oper-header > .elementor-container {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 8px;
	}
	.oper-header > .elementor-container > .elementor-column { width: auto !important; }
	.oper-header > .elementor-container > .elementor-column:nth-child(2) { flex: 0 0 auto; order: 3; }
	.oper-phone-btn .elementor-button { font-size: 11px !important; padding: 9px 16px !important; }
}
