/*
 * JPH Lions — capa responsive global (sitio institucional)
 * Cargar después de custom.css
 */

/* ── Base ─────────────────────────────────────────────── */
html {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body,
.page-wrapper {
	overflow-x: hidden;
	max-width: 100%;
}

img,
video,
embed,
object {
	max-width: 100%;
}

iframe {
	max-width: 100%;
}

.contact-map iframe,
.map-sede-wrap iframe,
.home-contacto-map-frame iframe,
.jph26-contacto-map-frame iframe {
	height: 100%;
	min-height: inherit;
}

/* Tablas anchas en páginas de servicio */
.page-section-ptb table,
.page-section-pt table,
.custom-content table {
	max-width: 100%;
}

@media (max-width: 767px) {
	.table-responsive-wrap {
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ── Columnas custom del tema ─────────────────────────── */
.col-lg-15,
.col-md-15 {
	width: 28%;
}

.col-lg-16 {
	width: 20%;
}

@media (max-width: 1199px) {
	.col-lg-15,
	.col-md-15 {
		width: 33.33333333%;
	}
}

@media (max-width: 991px) {
	.col-lg-15,
	.col-md-15,
	.col-lg-16 {
		width: 50%;
	}
}

@media (max-width: 767px) {
	.col-lg-15,
	.col-md-15,
	.col-lg-16 {
		width: 100%;
		float: none;
	}
}

/* ── Mega menú móvil ──────────────────────────────────── */
@media (max-width: 992px) {
	.mega-menu * {
		word-break: normal !important;
		overflow-wrap: anywhere;
	}

	body.mobile-menu-expanded, body:has(.menu-mobile-collapse-trigger.active) {
		overflow: hidden;
	}

	.mega-menu.mobile-menu-expanded, .mega-menu:has(.menu-mobile-collapse-trigger.active) {
		position: fixed;
		inset: 0;
		z-index: 10001;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		background: #111;
	}

	.mega-menu .menu-list-items {
		padding: 0;
		background: #111 !important;
	}

	.mega-menu.mobile-menu-expanded .menu-list-items,
	.mega-menu:has(.menu-mobile-collapse-trigger.active) .menu-list-items {
		min-height: 100vh;
	}

	.mega-menu .menu-list-items .container,
	.mega-menu .menu-list-items .row,
	.mega-menu .menu-list-items [class*="col-"] {
		width: 100%;
		max-width: 100%;
		margin: 0;
		padding-left: 0;
		padding-right: 0;
	}

	.mega-menu .menu-logo > li {
		position: relative;
		min-height: 52px;
	}

	.mega-menu .menu-logo > li > a {
		padding-left: 16px;
	}

	.mega-menu .menu-mobile-collapse-trigger {
		display: block !important;
		z-index: 120;
		right: 12px;
	}

	.mega-menu .menu-links > li {
		position: relative;
		border-bottom-color: #2a2a2a !important;
	}

	.mega-menu .menu-links > li > a {
		color: #f0f0f0 !important;
	}

	.mega-menu .menu-links > li > a:hover {
		color: #be9d67 !important;
	}

	.mega-menu .menu-links > li.activeTriggerMobile > a,
	.mega-menu .menu-links > li.activeTriggerMobile > a i.fa {
		color: #fff !important;
	}

	.mega-menu .drop-down-multilevel {
		background: #1a1a1a !important;
		padding: 0 !important;
	}

	.mega-menu .drop-down-multilevel li {
		border-bottom-color: #2a2a2a !important;
		background: transparent !important;
	}

	.mega-menu .drop-down-multilevel li:hover {
		background: #252525 !important;
	}

	.mega-menu .drop-down-multilevel a {
		color: #ccc !important;
		width: 100% !important;
		padding: 12px 16px 12px 24px !important;
		min-height: 44px;
		display: flex !important;
		align-items: center;
	}

	.mega-menu .drop-down-multilevel a:hover {
		color: #be9d67 !important;
	}

	.mega-menu .menu-links {
		float: none !important;
		clear: both;
		width: 100%;
		max-height: none !important;
		overflow: visible !important;
		margin: 0;
		background: #111 !important;
	}

	.mega-menu.mobile-menu-expanded .menu-links, .mega-menu:has(.menu-mobile-collapse-trigger.active) .menu-links {
		display: block !important;
		min-height: 0;
		padding-bottom: 32px;
	}

	.mega-menu .menu-links > li > a {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 48px;
		padding: 12px 48px 12px 16px;
		white-space: normal;
		line-height: 1.35;
	}

	.mega-menu .menu-links > li > a i.fa.fa-indicator {
		color: #be9d67 !important;
		position: absolute;
		right: 16px;
		top: 50%;
		transform: translateY(-50%);
		height: auto;
		line-height: 1;
		z-index: 1;
	}

	.mega-menu .mobileTriggerButton {
		z-index: 2 !important;
	}

	.mega-menu .menu-links > li.idioma > a {
		gap: 8px;
	}
	.mega-menu .menu-links > li.idioma .menu-idioma-meta {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		margin-left: auto;
		flex-shrink: 0;
	}

	.mega-menu .menu-links > li.idioma .menu-idioma-label {
		flex: 1 1 auto;
		color: #f0f0f0;
	}

	.mega-menu .menu-links > li.idioma > a i.fa.fa-indicator {
		position: static;
		right: auto;
		top: auto;
		transform: none;
		height: auto;
		line-height: 1;
	}

	.mega-menu .menu-links > li.idioma > a img {
		float: none;
		margin: 0;
		flex-shrink: 0;
		width: 18px;
		height: 12px;
		object-fit: contain;
	}

	.mega-menu .menu-links > li.idioma ul.drop-down-multilevel {
		max-width: 100% !important;
		width: 100%;
		background: #1a1a1a !important;
		border-top: none !important;
	}

	.mega-menu .menu-links > li.idioma .drop-down-multilevel li a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		min-height: 44px;
		padding: 10px 16px;
		color: #ccc !important;
		height: auto;
	}

	.mega-menu .menu-links > li.idioma .drop-down-multilevel img {
		float: none;
		margin: 0;
	}
}

/* ── Intro interna ────────────────────────────────────── */
.inner-intro {
	min-height: 0;
	height: auto;
	max-height: none;
}

@media (max-width: 767px) {
	.inner-intro {
		padding: 40px 0 30px;
	}

	.inner-intro h1 {
		font-size: clamp(22px, 6vw, 30px);
		line-height: 1.25;
	}

	ul.page-breadcrumb {
		padding-top: 12px;
		padding-bottom: 16px;
		font-size: 13px;
	}
}

/* ── Bloques de texto / split panels ──────────────────── */
.services-text-box1,
.services-text-box2 {
	padding: 48px 32px 36px;
}

@media (max-width: 767px) {
	.services-text-box1,
	.services-text-box2,
	.services-text-box5,
	.split-panel .services-text-box,
	.split-panel-dark .services-text-box1.rrhh-consultoria-box {
		padding: 32px 20px 28px;
	}

	.service-image-holder1,
	.split-panel .service-image-holder,
	.split-panel .service-image-holder2 {
		min-height: 180px;
		padding: 28px 20px;
	}
}

/* ── Feature blocks ───────────────────────────────────── */
@media (max-width: 767px) {
	.feature-3-info h3,
	.feature-3-info h5,
	.feature-3-info p {
		width: auto !important;
		max-width: 100%;
		text-align: center;
	}

	.feature-6 strong {
		font-size: clamp(64px, 18vw, 130px);
	}

	.feature-6-item-top span {
		font-size: clamp(18px, 4.5vw, 30px);
		line-height: 1.25;
	}

	.cctv blockquote p,
	.sistema blockquote p,
	.psp blockquote p {
		font-size: clamp(16px, 4vw, 22px) !important;
		line-height: 1.5 !important;
	}
}

/* ── Partners / logos ─────────────────────────────────── */
img.partners,
img.partners1 {
	max-width: calc(50% - 24px);
	height: auto;
	margin: 12px;
}

@media (max-width: 479px) {
	img.partners,
	img.partners1 {
		max-width: calc(50% - 16px);
		margin: 8px;
	}
}

/* ── Footer estándar ──────────────────────────────────── */
@media (max-width: 767px) {
	.footer-standard-inner {
		padding: 40px 24px 32px;
	}

	.footer-standard-grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.footer-standard-col-offices {
		text-align: left;
	}

	.footer-standard-social-row {
		flex-wrap: wrap;
		justify-content: center;
	}
}

/* ── Contacto página interna ──────────────────────────── */
@media (max-width: 991px) {
	.contact-3 .row > [class*="col-"] {
		margin-bottom: 0;
	}

	.contact-3-info.contacto-sede-bg-panel {
		min-height: 0;
	}
}

/* ── Rev slider legacy (páginas que aún lo usan) ──────── */
@media (max-width: 767px) {
	.rev-slider .slide2 > .izq,
	.rev-slider .slide2 > .der {
		width: 100%;
		flex: 0 0 100%;
		max-width: 100%;
		padding-top: 80px;
	}

	.rev-slider .titulo h2,
	.rev-slider .tituloder h2 {
		font-size: clamp(20px, 5vw, 28px);
	}
}

/* ── Contenedor Bootstrap ─────────────────────────────── */
@media (max-width: 767px) {
	.container {
		padding-left: 15px;
		padding-right: 15px;
	}
}

/* ── Popup + botones flotantes en móvil ───────────────── */
@media (max-width: 767px) {
	#botpress-toggle {
		bottom: 88px;
	}

	.popup-contact-box {
		bottom: 88px;
	}
}

/* ── Utilidades ───────────────────────────────────────── */
@media (max-width: 767px) {
	.page-section-ptb {
		padding: 40px 0;
	}

	.section-title-1 h1 {
		font-size: clamp(22px, 5.5vw, 30px);
	}

	.mb-50 {
		margin-bottom: 24px !important;
	}

	.action-box-black:before {
		left: 50%;
		transform: translateX(-50%);
	}

	.features13 ul {
		position: static;
		border-right: none;
		padding-right: 0;
		right: auto;
	}

	.features13 b,
	.features13.left b {
		position: static;
		display: block;
		top: auto;
		text-align: center;
		margin-bottom: 8px;
	}
}
