/*
Theme Name: Astra Child
Theme URI: https://pcwebchile.cl/
Template: astra
Author: Pedro Castillo
Author URI: https://pcwebchile.cl/
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 5,700+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.11.8.1756511824
Updated: 2025-08-29 23:57:04

*/
html, body {
    margin: 0;
    padding: 0;
    max-width: 100%;
    overflow-x: hidden;
    background-color: #f5f5f7;
}
/* Fuente principal estilo Apple */
body {
    font-family: SF Pro Text, SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif!important;
}
h1, h2, h3, h4, h5, h6 {
    font-family: SF Pro Display,SF Pro Icons,Helvetica Neue,Helvetica,Arial,sans-serif!important;
}

a, button {
    font-family: SF Pro Text, SF Pro Icons, Helvetica Neue, Helvetica, Arial, sans-serif!important;
}

.elementor-605 .elementor-element.elementor-element-0b863e2 .hfe-nav-menu__toggle {
    margin: 0;
    text-align: right;
}
/** Start Block Kit CSS: 136-3-fc37602abad173a9d9d95d89bbe6bb80 **/

.envato-block__preview{overflow: visible !important;}

/** End Block Kit CSS: 136-3-fc37602abad173a9d9d95d89bbe6bb80 **/


/** Start Block Kit CSS: 143-3-7969bb877702491bc5ca272e536ada9d **/

.envato-block__preview{overflow: visible;}
/* Material Button Click Effect */
.envato-kit-140-material-hit .menu-item a,
.envato-kit-140-material-button .elementor-button{
  background-position: center;
  transition: background 0.8s;
}
.envato-kit-140-material-hit .menu-item a:hover,
.envato-kit-140-material-button .elementor-button:hover{
  background: radial-gradient(circle, transparent 1%, #fff 1%) center/15000%;
}
.envato-kit-140-material-hit .menu-item a:active,
.envato-kit-140-material-button .elementor-button:active{
  background-color: #FFF;
  background-size: 100%;
  transition: background 0s;
}

/* Field Shadow */
.envato-kit-140-big-shadow-form .elementor-field-textual{
	box-shadow: 0 20px 30px rgba(0,0,0, .05);
}

/* FAQ */
.envato-kit-140-faq .elementor-accordion .elementor-accordion-item{
	border-width: 0 0 1px !important;
}

/* Scrollable Columns */
.envato-kit-140-scrollable{
	 height: 100%;
   overflow: auto;
   overflow-x: hidden;
}

/* ImageBox: No Space */
.envato-kit-140-imagebox-nospace:hover{
	transform: scale(1.1);
	transition: all 0.3s;
}
.envato-kit-140-imagebox-nospace figure{
	line-height: 0;
}

.envato-kit-140-slide .elementor-slide-content{
	background: #FFF;
	margin-left: -60px;
	padding: 1em;
}
.envato-kit-140-carousel .slick-active:not(.slick-current)  img{
	padding: 20px !important;
	transition: all .9s;
}

/** End Block Kit CSS: 143-3-7969bb877702491bc5ca272e536ada9d **/



/** Start Block Kit CSS: 72-3-34d2cc762876498c8f6be5405a48e6e2 **/

.envato-block__preview{overflow: visible;}

/*Kit 69 Custom Styling for buttons */
.envato-kit-69-slide-btn .elementor-button,
.envato-kit-69-cta-btn .elementor-button,
.envato-kit-69-flip-btn .elementor-button{
	border-left: 0px !important;
	border-bottom: 0px !important;
	border-right: 0px !important;
	padding: 15px 0 0 !important;
}
.envato-kit-69-slide-btn .elementor-slide-button:hover,
.envato-kit-69-cta-btn .elementor-button:hover,
.envato-kit-69-flip-btn .elementor-button:hover{
	margin-bottom: 20px;
}
.envato-kit-69-menu .elementor-nav-menu--main a:hover{
	margin-top: -7px;
	padding-top: 4px;
	border-bottom: 1px solid #FFF;
}
/* Fix menu dropdown width */
.envato-kit-69-menu .elementor-nav-menu--dropdown{
	width: 100% !important;
}

/** End Block Kit CSS: 72-3-34d2cc762876498c8f6be5405a48e6e2 **/



/** Start Block Kit CSS: 144-3-3a7d335f39a8579c20cdf02f8d462582 **/

.envato-block__preview{overflow: visible;}

/* Envato Kit 141 Custom Styles - Applied to the element under Advanced */

.elementor-headline-animation-type-drop-in .elementor-headline-dynamic-wrapper{
	text-align: center;
}
.envato-kit-141-top-0 h1,
.envato-kit-141-top-0 h2,
.envato-kit-141-top-0 h3,
.envato-kit-141-top-0 h4,
.envato-kit-141-top-0 h5,
.envato-kit-141-top-0 h6,
.envato-kit-141-top-0 p {
	margin-top: 0;
}

.envato-kit-141-newsletter-inline .elementor-field-textual.elementor-size-md {
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.envato-kit-141-bottom-0 p {
	margin-bottom: 0;
}

.envato-kit-141-bottom-8 .elementor-price-list .elementor-price-list-item .elementor-price-list-header {
	margin-bottom: .5rem;
}

.envato-kit-141.elementor-widget-testimonial-carousel.elementor-pagination-type-bullets .swiper-container {
	padding-bottom: 52px;
}

.envato-kit-141-display-inline {
	display: inline-block;
}

.envato-kit-141 .elementor-slick-slider ul.slick-dots {
	bottom: -40px;
}

/** End Block Kit CSS: 144-3-3a7d335f39a8579c20cdf02f8d462582 **/




/** Start Block Kit CSS: 135-3-c665d4805631b9a8bf464e65129b2f58 **/

.envato-block__preview{overflow: visible;}

/** End Block Kit CSS: 135-3-c665d4805631b9a8bf464e65129b2f58 **/



/* FG CSS */


#fg-header {
	position: fixed;
	width: 100%
}

.elementor-icon-list-items {
	list-style: none;
	margin-left: 0px;
	justify-content: center;
}

.elementor-icon-list-items i {
	padding-right: 4px
}

/* .carrusel-marcas figure.swiper-slide-inner {
    box-shadow: 0 0px 10px rgba(0, 0, 0, 0.1);
    background-color: #fff;
    border-radius: 5px;
} */
.carrusel-marcas img {
	filter: grayscale(100%);
	transition: 300ms;
}
.carrusel-marcas img:hover {
	filter: none;
	transition: 300ms;
}

/* Ajustes del tema */

.elementor-widget-text-editor p {
    margin-bottom: 5px;
}
.elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

/*Estilos formulario CF7*/
.cf-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; /* espacio entre columnas */
}

.cf-col-6 {
  flex: 0 0 48%; /* dos columnas con un pequeño margen */
  box-sizing: border-box;
}

.cf-col-12 {
  flex: 0 0 100%;
  box-sizing: border-box;
}
.form-postular.cf-container div p {
    margin: 0;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #1d2555;
    border: solid 1px;
    border-radius: 5px;
	text-align: center;
}
.wpcf7 form.sent .wpcf7-response-output {
    border-color: #00a0d2;
    border: solid 1px;
    border-radius: 5px;
    text-align: center;
}
.cf-col-12.btn-enviar {
    text-align: center;
}
span.wpcf7-spinner {
    display: none;
}
input.wpcf7-form-control.wpcf7-submit {
    padding: 10px 40px;
    border-radius: 5px;
    text-align: center;
    color: #fff;
    background: #08459B;
	transition: 300ms;
}
input.wpcf7-form-control.wpcf7-submit:hover {
    background: #8BB9F9;
	transition: 300ms;
}
.form-postular.cf-container textarea {
    height: 120px!important;
}
/* Mobile: 1 columna */
@media (max-width: 768px) {
  .cf-col-6 {
    flex: 0 0 100%;
  }
}
/*Fin Estilos formulario CF7*/

#scroll-to-top {
    position: fixed;
    bottom: 80px;
    right: 10px;
    width: 50px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    background: #042656;
    color: #fff;
    font-size: 22px;
    border-radius: 50%;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    display: none;
    z-index: 9999;
    transition: all 0.3s ease;
}
#scroll-to-top:hover {
    background: #0056b3;
}
a img {
    scale: 1;
    transition: 300ms;
}
a img:hover {
    scale: 1.05;
    transition: 300ms;
}
nav ul.sub-menu li a {
    padding-left: 15px !important;
}
nav .sub-menu-active{
    font-weight: 600px!important;
}
img.logo-bandera {
    width: 20px;
    height: auto;
    margin-right: 5px;
}
.servicios-msa img {
    border-radius: 18px 18px 0px 0px;
}
.elementor-widget-n-tabs button {
    min-width: 170px;
}

/* Directorio */
.team-wrapper {
    max-width: 1200px;
    margin: auto;
    padding: 40px 20px;
}

.team-wrapper.directorio-msa h2 {
    color: #031A3A;
    font-size: 30px;
    text-align: center;
    margin-bottom: 20px;
}

.team-row-ceo {
    display: flex;
    justify-content: center;
    margin-bottom: 50px;
}

.team-row-managers {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-bottom: 50px;
    flex-wrap: wrap;
}

.team-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
}

.team-card {
    width: 260px;
    height: 280px;
    perspective: 1000px;
}

.team-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform .6s;
    transform-style: preserve-3d;
}

.team-card:hover .team-inner {
    transform: rotateY(180deg);
}

/* Prevent rotation if no-girar class is present */
.team-card:hover .team-inner:has(.no-girar) {
    transform: none;
}

.team-front,
.team-back {
    position: absolute;
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.07);
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    backface-visibility: hidden;
    text-align: center;
}

.team-front img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 15px;
}

.team-front h3 {
    color: #031A3A;
    font-size: 20px;
    margin-bottom: 5px;
}

.team-front p {
    color: #0B5FD5;
    font-weight: 500;
    line-height: 16px;
}

.team-back {
    transform: rotateY(180deg);
}

.team-back h4 {
    color: #031A3A;
    margin-bottom: 10px;
}

.team-back p {
    line-height: 16px;
}

.team-back span {
    font-size: 16px;
    line-height: 16px;
    color: #0B5FD5;
    font-weight: 500;
    margin-top: 10px;
}

/* Fin Directorio */
/* Videos Elementor: llenar el marco sin bandas negras ni elementos de YouTube */
.elementor .elementor-background-video-container {
    overflow: hidden !important;
    position: absolute !important;
    inset: 0 !important;
    background: transparent !important;
}

.elementor .elementor-background-video-hosted,
.elementor video.elementor-background-video-hosted,
.elementor .elementor-background-video-embed,
.elementor .elementor-background-video-container iframe {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: translate(-50%, -50%) scale(1.22) !important;
    transform-origin: center center !important;
    max-width: none !important;
    border: 0 !important;
    pointer-events: none !important;
}

.elementor .elementor-background-video-container iframe {
    transform: translate(-50%, -50%) scale(1.55) !important;
}

.elementor .elementor-background-video-container::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: auto;
    background: transparent;
}

.elementor .elementor-background-video-hosted source {
    display: block;
}

.elementor .rt-local-video .elementor-widget-container,
.elementor .rt-video-frame {
    position: relative !important;
    overflow: hidden !important;
    width: 100% !important;
    aspect-ratio: 16 / 9;
    background: transparent !important;
}

.elementor .rt-inline-local-video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: scale(1.08);
    transform-origin: center center;
    pointer-events: none;
}

/* Menú principal reposicionado debajo de los videos */
.rt-menu-below-videos{
    width: 100%;
    display: flex;
    justify-content: center;
    margin: 24px auto 32px;
    padding: 0 20px;
}
.rt-menu-below-videos .main-header-bar-navigation,
.rt-menu-below-videos nav.site-navigation{
    width: 100%;
    max-width: 1200px;
    display: block !important;
}
.rt-menu-below-videos .main-header-menu,
.rt-menu-below-videos ul.menu{
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 24px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.rt-menu-below-videos .main-header-menu > li > a{
    padding: 10px 14px;
    font-weight: 600;
}

/* Espacio entre la sección de stats y "Proyectos Destacados" */
#post-308 section:has(h2.elementor-heading-title:contains("DESDE EL 2007")){
    margin-bottom: 40px;
}

/* Menú reubicado siempre fijo en la parte superior */
.rt-menu-below-videos{
    position: -webkit-sticky;
    position: sticky;
    top: var(--rt-header-height, 90px);
    z-index: 9997;
    background-color: rgba(255,255,255,0.97);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 10px 16px;
}


/* Header/banner completo siempre fijo y más marcado al bajar */
html body #masthead{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 2147483000 !important;
    background: rgba(255,255,255,0.92) !important;
    backdrop-filter: saturate(180%) blur(12px) !important;
    -webkit-backdrop-filter: saturate(180%) blur(12px) !important;
    box-shadow: 0 1px 0 rgba(3,26,58,0.08), 0 2px 8px rgba(3,26,58,0.05) !important;
    transition: background-color .28s ease, box-shadow .28s ease, backdrop-filter .28s ease, transform .28s ease !important;
}
html body #masthead .ast-primary-header-bar,
html body #masthead .main-header-bar,
html body #masthead [data-section="section-header-mobile-trigger"],
html body #masthead .site-primary-header-wrap,
html body #masthead .ast-builder-grid-row,
html body #masthead .ast-mobile-header-wrap{
    background: transparent !important;
}
html body #masthead.rt-scrolled{
    background: rgba(255,255,255,0.985) !important;
    backdrop-filter: saturate(190%) blur(18px) !important;
    -webkit-backdrop-filter: saturate(190%) blur(18px) !important;
    box-shadow: 0 1px 0 rgba(3,26,58,0.14), 0 10px 30px rgba(3,26,58,0.15) !important;
}
html body #masthead.rt-scrolled-strong{
    background: #ffffff !important;
    box-shadow: 0 1px 0 rgba(3,26,58,0.18), 0 16px 42px rgba(3,26,58,0.22) !important;
}
body.ast-header-break-point,
body{
    padding-top: var(--rt-header-height, 100px) !important;
}


/* Lista de líneas en tarjeta "Proyectos Subterráneos" */
.elementor-element-metro-lineas > .elementor-widget-container{
    margin: 0 !important;
    padding: 0 24px 24px 24px !important;
}
.elementor-element-metro-lineas .elementor-icon-list-items{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}
.elementor-element-metro-lineas .elementor-icon-list-item{
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
}
.elementor-element-metro-lineas .elementor-icon-list-text{
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    text-align: left !important;
    white-space: nowrap !important;
}
.elementor-element-metro-lineas .elementor-icon-list-icon{
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    line-height: 1 !important;
}
.elementor-element-metro-lineas .metro-list-emoji{
    display: inline-block !important;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", "EmojiOne Color", sans-serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: initial !important;
    -webkit-text-fill-color: initial !important;
    font-style: normal !important;
    font-variant-emoji: emoji !important;
}



/* === Modernización Directorio === */
.team-row-single{
    display: flex;
    justify-content: center;
    margin-bottom: 36px;
}
.directorio-msa .team-card{
    width: 280px;
    height: 320px;
}
.directorio-msa .team-front,
.directorio-msa .team-back{
    border-radius: 20px;
    padding: 28px 24px;
    background: linear-gradient(160deg, #ffffff 0%, #f4f7fc 100%);
    box-shadow: 0 18px 40px -18px rgba(8, 35, 90, 0.25), 0 2px 6px rgba(8, 35, 90, 0.06);
    border: 1px solid rgba(11, 95, 213, 0.08);
    transition: transform .4s ease, box-shadow .4s ease;
}
.directorio-msa .team-card:hover .team-front,
.directorio-msa .team-card:hover .team-back{
    box-shadow: 0 28px 60px -20px rgba(8, 35, 90, 0.35), 0 4px 10px rgba(8, 35, 90, 0.08);
}
.directorio-msa .team-front img{
    width: 130px;
    height: 130px;
    object-fit: cover;
    border-radius: 50%;
    margin-bottom: 18px;
    box-shadow: 0 8px 20px rgba(11, 95, 213, 0.18);
    border: 3px solid #ffffff;
    outline: 2px solid rgba(11, 95, 213, 0.25);
    outline-offset: 2px;
    transition: transform .4s ease;
}
.directorio-msa .team-card:hover .team-front img{
    transform: scale(1.05);
}
.directorio-msa .team-front h3{
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin-bottom: 6px;
    color: #031A3A;
}
.directorio-msa .team-front p{
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #0B5FD5;
    margin: 0;
}
.directorio-msa .team-back{
    background: linear-gradient(160deg, #0B5FD5 0%, #08459B 60%, #031A3A 100%);
    color: #ffffff;
}
.directorio-msa .team-back h4{
    color: #ffffff;
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.25);
    display: inline-block;
}
.directorio-msa .team-back p{
    color: rgba(255,255,255,0.92);
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 12px;
}
.directorio-msa .team-back span{
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 6px 12px;
    background: rgba(255,255,255,0.15);
    border-radius: 999px;
    backdrop-filter: blur(6px);
}
.directorio-msa h2{
    font-size: 34px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 40px;
    position: relative;
    padding-bottom: 16px;
}
.directorio-msa h2::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, #0B5FD5, #08459B);
    border-radius: 2px;
}


/* === Sobre Nosotros: rediseño moderno v3 (claro, sin fondo azul) === */
.elementor-element-6f34b93{
    position: relative;
    max-width: 1280px;
    margin: 88px auto !important;
    padding: 72px 56px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible;
}
.elementor-element-6f34b93::before,
.elementor-element-6f34b93::after{ content: none !important; display: none !important; }
.elementor-element-6f34b93 > .e-con-inner{ position: relative; z-index: 1; }

/* Eyebrow pill discreto */
.elementor-element-d1ac4a8{ text-align: center !important; }
.elementor-element-d1ac4a8 h6{
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.28em !important;
    text-transform: uppercase;
    color: #0B5FD5 !important;
    padding: 8px 18px;
    background: rgba(11,95,213,0.06);
    border: 1px solid rgba(11,95,213,0.18);
    border-radius: 999px;
    margin-bottom: 22px !important;
}
.elementor-element-d1ac4a8 h6::before{
    content: "";
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #0B5FD5;
}

/* Heading sólido, sin gradiente azul de fondo */
.elementor-element-4637ed6{ text-align: center !important; }
.elementor-element-4637ed6 h2{
    font-size: clamp(36px, 4.4vw, 58px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.05 !important;
    color: #0a1f47 !important;
    margin-bottom: 16px !important;
    position: relative;
    padding-bottom: 20px;
}
.elementor-element-4637ed6 h2::after{
    content: "";
    position: absolute;
    left: 50%; bottom: 0;
    transform: translateX(-50%);
    width: 64px; height: 3px;
    background: #0B5FD5;
    border-radius: 4px;
}

/* Lead paragraph */
.elementor-element-7d57a7d{
    max-width: 880px;
    margin: 0 auto 48px !important;
    text-align: center;
}
.elementor-element-7d57a7d p{
    font-size: 18px !important;
    line-height: 1.7 !important;
    color: #4a5775 !important;
}
.elementor-element-7d57a7d b{ color: #0a1f47 !important; font-weight: 600 !important; }

/* Video frame limpio */
.elementor-element-0ee5d06 .rt-video-frame{
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: 0 24px 60px -25px rgba(10,31,71,0.30), 0 6px 16px rgba(10,31,71,0.08);
    border: 1px solid rgba(10,31,71,0.08);
    transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
}
.elementor-element-0ee5d06 .rt-video-frame:hover{
    transform: translateY(-4px);
    box-shadow: 0 32px 70px -25px rgba(10,31,71,0.38), 0 10px 24px rgba(10,31,71,0.10);
}

/* Right column text */
.elementor-element-902c1d8 p{
    font-size: 16px !important;
    line-height: 1.78 !important;
    color: #4a5775 !important;
    margin-bottom: 16px !important;
}
.elementor-element-902c1d8 b{ color: #0a1f47 !important; font-weight: 600 !important; }

/* Two-column container: dar más protagonismo al video */
.elementor-element-e2a5ee2{
    align-items: center !important;
    gap: 32px !important;
}
.elementor-element-e2a5ee2 > .elementor-element-0ee5d06{
    width: 84% !important;
    flex: 0 0 84% !important;
    max-width: 84% !important;
}
.elementor-element-e2a5ee2 > .elementor-element-902c1d8{
    width: 16% !important;
    flex: 0 0 16% !important;
    max-width: 16% !important;
}
.elementor-element-0ee5d06 .rt-video-frame video,
.elementor-element-0ee5d06 .rt-video-frame iframe,
.elementor-element-0ee5d06 .rt-inline-local-video{
    width: 100% !important;
    height: auto !important;
    display: block;
}
@media (max-width: 1024px){
    .elementor-element-e2a5ee2 > .elementor-element-0ee5d06,
    .elementor-element-e2a5ee2 > .elementor-element-902c1d8{
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}


/* CTA Button */
.elementor-element-6acc065{
    text-align: center !important;
    margin-top: 44px !important;
}
.elementor-element-6acc065 .elementor-button{
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    padding: 16px 36px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase;
    color: #ffffff !important;
    background: #0B5FD5 !important;
    border: 1px solid #0B5FD5 !important;
    border-radius: 999px !important;
    box-shadow: 0 12px 28px -10px rgba(11,95,213,0.45);
    transition: transform .3s ease, box-shadow .3s ease, background .3s ease !important;
}
.elementor-element-6acc065 .elementor-button::after{
    content: "→";
    font-size: 16px;
    transition: transform .3s ease;
}
.elementor-element-6acc065 .elementor-button:hover{
    transform: translateY(-2px);
    background: #08459B !important;
    box-shadow: 0 18px 36px -10px rgba(11,95,213,0.55);
}
.elementor-element-6acc065 .elementor-button:hover::after{ transform: translateX(6px); }

@media (max-width: 768px){
    .elementor-element-6f34b93{
        margin: 48px 12px !important;
        padding: 48px 16px !important;
    }
    .elementor-element-e2a5ee2{ gap: 28px !important; }
    .elementor-element-7d57a7d{ margin-bottom: 32px !important; }
    .elementor-element-7d57a7d p{ font-size: 16px !important; }
}


/* Contador M² Diseñados — alineado al resto (Años, Colaboradores, Proyectos) */
.elementor-308 .elementor-element.elementor-element-f86a37a .elementor-counter-number-wrapper{
    font-size: 36px !important;
    line-height: 1.4em !important;
    letter-spacing: normal !important;
    white-space: nowrap;
    justify-content: center;
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 2px;
}
.elementor-308 .elementor-element.elementor-element-f86a37a .elementor-counter-number-prefix,
.elementor-308 .elementor-element.elementor-element-f86a37a .elementor-counter-number,
.elementor-308 .elementor-element.elementor-element-f86a37a .elementor-counter-number-suffix{
    font-size: 1em !important;
    font-weight: inherit !important;
    line-height: 1.4em !important;
}

/* Nuevas tarjetas de especialidades (placeholder sin video) */
.elementor-element-vial01,
.elementor-element-puerto01,
.elementor-element-aero01,
.elementor-element-hidro01 {
    --display: flex;
    --gap: 0px;
    --border-radius: 15px;
    --padding-top: 40px;
    --padding-bottom: 40px;
    --padding-left: 40px;
    --padding-right: 40px;
    min-height: 264px;
    background: linear-gradient(135deg, #0a1f47 0%, #143a7a 100%);
    border-radius: 15px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
}

/* Igualar la fila de especialidades al tamaño de Industrial/Inmobiliario */
.elementor-element-4416d7c {
    flex-wrap: wrap !important;
    align-items: stretch !important;
}

.elementor-element-4416d7c > .e-con-full {
    flex: 0 0 calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
    min-height: 264px !important;
    height: 264px !important;
}

@media (max-width: 767px) {
    .elementor-element-4416d7c > .e-con-full {
        flex-basis: 100% !important;
        width: 100% !important;
        height: 240px !important;
        min-height: 240px !important;
    }
}
/* Todas las tarjetas extra ya tienen video — sin gradiente decorativo */
/* Vial, Puerto, Aero y Hidro: tarjetas con video de fondo */
.elementor-element-vial01,
.elementor-element-puerto01,
.elementor-element-aero01,
.elementor-element-hidro01 {
    background: #000 !important;
}
.elementor-element-vial01 .elementor-background-video-container,
.elementor-element-puerto01 .elementor-background-video-container,
.elementor-element-aero01 .elementor-background-video-container,
.elementor-element-hidro01 .elementor-background-video-container{
    position: absolute; inset: 0; overflow: hidden; border-radius: 15px;
}
.elementor-element-vial01 .elementor-background-video-hosted,
.elementor-element-puerto01 .elementor-background-video-hosted,
.elementor-element-aero01 .elementor-background-video-hosted,
.elementor-element-hidro01 .elementor-background-video-hosted{
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
/* Oscurecer el video para legibilidad del texto */
.elementor-element-vial01::after,
.elementor-element-puerto01::after,
.elementor-element-aero01::after,
.elementor-element-hidro01::after{
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);
    pointer-events: none; border-radius: 15px;
}
.elementor-element-vial01 > *:not(.elementor-background-video-container),
.elementor-element-puerto01 > *:not(.elementor-background-video-container),
.elementor-element-aero01 > *:not(.elementor-background-video-container),
.elementor-element-hidro01 > *:not(.elementor-background-video-container){
    position: relative; z-index: 2;
}



.elementor-element-vial01 .elementor-icon-list-text,
.elementor-element-puerto01 .elementor-icon-list-text,
.elementor-element-aero01 .elementor-icon-list-text,
.elementor-element-hidro01 .elementor-icon-list-text {
    color: #fff !important;
    font-size: 40px !important;
    font-weight: 400;
    line-height: 1.2;
}
.elementor-element-vial01 .elementor-icon-list-icon svg,
.elementor-element-puerto01 .elementor-icon-list-icon svg,
.elementor-element-aero01 .elementor-icon-list-icon svg,
.elementor-element-hidro01 .elementor-icon-list-icon svg {
    fill: #fff !important;
    width: 50px;
    height: 50px;
}

/* ===== Uniformar tamaño de íconos y títulos de TODAS las tarjetas de especialidades (igual a Energía) ===== */
.elementor-element-1cb1469,
.elementor-element-27e404d,
.elementor-element-491da1f,
.elementor-element-5d1c000,
.elementor-element-fcd16a0,
.elementor-element-vial01 .elementor-widget-icon-list,
.elementor-element-puerto01 .elementor-widget-icon-list,
.elementor-element-aero01 .elementor-widget-icon-list,
.elementor-element-hidro01 .elementor-widget-icon-list{
    --e-icon-list-icon-size: 50px !important;
}
.elementor-element-1cb1469 .elementor-icon-list-icon svg,
.elementor-element-27e404d .elementor-icon-list-icon svg,
.elementor-element-491da1f .elementor-icon-list-icon svg,
.elementor-element-5d1c000 .elementor-icon-list-icon svg,
.elementor-element-fcd16a0 .elementor-icon-list-icon svg,
.elementor-element-vial01 .elementor-icon-list-icon svg,
.elementor-element-puerto01 .elementor-icon-list-icon svg,
.elementor-element-aero01 .elementor-icon-list-icon svg,
.elementor-element-hidro01 .elementor-icon-list-icon svg{
    width: 50px !important;
    height: 50px !important;
    fill: #FFFFFF !important;
}
.elementor-element-1cb1469 .elementor-icon-list-text,
.elementor-element-27e404d .elementor-icon-list-text,
.elementor-element-491da1f .elementor-icon-list-text,
.elementor-element-5d1c000 .elementor-icon-list-text,
.elementor-element-fcd16a0 .elementor-icon-list-text,
.elementor-element-vial01 .elementor-icon-list-text,
.elementor-element-puerto01 .elementor-icon-list-text,
.elementor-element-aero01 .elementor-icon-list-text,
.elementor-element-hidro01 .elementor-icon-list-text{
    font-size: 40px !important;
    color: #FFFFFF !important;
    line-height: 1.2 !important;
}
/* Alinear icono y texto en la misma fila (igual a "Infraestructura Transporte Ferroviario") */
.elementor-element-1cb1469 .elementor-icon-list-item,
.elementor-element-27e404d .elementor-icon-list-item,
.elementor-element-491da1f .elementor-icon-list-item,
.elementor-element-5d1c000 .elementor-icon-list-item,
.elementor-element-fcd16a0 .elementor-icon-list-item,
.elementor-element-vial01 .elementor-icon-list-item,
.elementor-element-puerto01 .elementor-icon-list-item,
.elementor-element-aero01 .elementor-icon-list-item,
.elementor-element-hidro01 .elementor-icon-list-item{
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
}
.elementor-element-1cb1469 .elementor-icon-list-icon,
.elementor-element-27e404d .elementor-icon-list-icon,
.elementor-element-491da1f .elementor-icon-list-icon,
.elementor-element-5d1c000 .elementor-icon-list-icon,
.elementor-element-fcd16a0 .elementor-icon-list-icon,
.elementor-element-vial01 .elementor-icon-list-icon,
.elementor-element-puerto01 .elementor-icon-list-icon,
.elementor-element-aero01 .elementor-icon-list-icon,
.elementor-element-hidro01 .elementor-icon-list-icon{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}
.elementor-element-1cb1469 .elementor-icon-list-text,
.elementor-element-27e404d .elementor-icon-list-text,
.elementor-element-491da1f .elementor-icon-list-text,
.elementor-element-5d1c000 .elementor-icon-list-text,
.elementor-element-fcd16a0 .elementor-icon-list-text,
.elementor-element-vial01 .elementor-icon-list-text,
.elementor-element-puerto01 .elementor-icon-list-text,
.elementor-element-aero01 .elementor-icon-list-text,
.elementor-element-hidro01 .elementor-icon-list-text{
    display: inline-flex !important;
    align-items: center !important;
    padding: 0 !important;
    margin: 0 !important;
}
@media (max-width: 1024px){
    .elementor-element-1cb1469,
    .elementor-element-27e404d,
    .elementor-element-491da1f,
    .elementor-element-5d1c000,
    .elementor-element-fcd16a0,
    .elementor-element-vial01 .elementor-widget-icon-list,
    .elementor-element-puerto01 .elementor-widget-icon-list,
    .elementor-element-aero01 .elementor-widget-icon-list,
    .elementor-element-hidro01 .elementor-widget-icon-list{
        --e-icon-list-icon-size: 36px !important;
    }
    .elementor-element-1cb1469 .elementor-icon-list-icon svg,
    .elementor-element-27e404d .elementor-icon-list-icon svg,
    .elementor-element-491da1f .elementor-icon-list-icon svg,
    .elementor-element-5d1c000 .elementor-icon-list-icon svg,
    .elementor-element-fcd16a0 .elementor-icon-list-icon svg,
    .elementor-element-vial01 .elementor-icon-list-icon svg,
    .elementor-element-puerto01 .elementor-icon-list-icon svg,
    .elementor-element-aero01 .elementor-icon-list-icon svg,
    .elementor-element-hidro01 .elementor-icon-list-icon svg{
        width: 36px !important;
        height: 36px !important;
    }
    .elementor-element-1cb1469 .elementor-icon-list-text,
    .elementor-element-27e404d .elementor-icon-list-text,
    .elementor-element-491da1f .elementor-icon-list-text,
    .elementor-element-5d1c000 .elementor-icon-list-text,
    .elementor-element-fcd16a0 .elementor-icon-list-text,
    .elementor-element-vial01 .elementor-icon-list-text,
    .elementor-element-puerto01 .elementor-icon-list-text,
    .elementor-element-aero01 .elementor-icon-list-text,
    .elementor-element-hidro01 .elementor-icon-list-text{
        font-size: 28px !important;
    }
}




/* ===== Silueta de montañas en la parte superior del footer ===== */
#colophon{
    position: relative;
    overflow: hidden;
}
#colophon::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 260px;
    pointer-events: none;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: 100% 100%;
    /* Capas: glow superior tenue + silueta de montañas más oscura que el footer */
    background-image:
        radial-gradient(ellipse 80% 70% at 50% 0%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0.04) 35%, rgba(0,0,0,0) 70%),
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'><path fill='%23050a1c' fill-opacity='0.95' d='M0,220 L60,200 L130,210 L200,170 L260,190 L330,150 L400,180 L470,140 L540,170 L610,120 L680,160 L740,130 L810,165 L880,110 L950,150 L1020,135 L1090,170 L1160,140 L1230,175 L1300,150 L1370,180 L1440,160 L1440,320 L0,320 Z'/><path fill='%230a1330' fill-opacity='0.85' d='M0,260 L80,235 L160,255 L240,225 L320,250 L400,220 L480,245 L560,215 L640,240 L720,210 L800,235 L880,205 L960,230 L1040,200 L1120,225 L1200,210 L1280,240 L1360,220 L1440,245 L1440,320 L0,320 Z'/></svg>");
}
#colophon > *{
    position: relative;
    z-index: 2;
}
/* Padding extra para que el contenido no quede pegado a la montaña */
#colophon .footer-width-fixer{
    padding-top: 200px;
}
@media (max-width: 767px){
    #colophon::before{ height: 160px; }
    #colophon .footer-width-fixer{ padding-top: 120px; }
}

/* ===== Nuevas páginas de especialidad (Vial, Puertos, Aeropuertos, Hidráulicas) ===== */
.sp-hero{
    position: relative;
    min-height: 70vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    color: #fff;
}
.sp-hero::after{
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(7,18,46,.55) 0%, rgba(7,18,46,.75) 100%);
    z-index: 1;
}
.sp-hero .elementor-background-video-container{
    position: absolute; inset: 0; z-index: 0;
}
.sp-hero .elementor-background-video-container video{
    width: 100%; height: 100%; object-fit: cover;
}
.sp-hero > .elementor-element{
    position: relative; z-index: 2;
}
.sp-hero h1.elementor-heading-title{
    color: #fff !important;
    font-size: clamp(40px, 7vw, 88px) !important;
    font-weight: 700;
    margin: 0 0 18px;
    text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
.sp-hero .elementor-icon-list-items{
    justify-content: center;
}
.sp-hero .elementor-icon-list-text{
    color: #fff !important;
    font-size: 15px;
}
.sp-hero .elementor-icon-list-item + .elementor-icon-list-item::before{
    content: "›";
    color: rgba(255,255,255,.6);
    margin: 0 10px;
}

.sp-intro{ background: #f7f9fc; padding: 70px 0; }
.sp-intro .e-con-inner{
    max-width: 1180px; margin: 0 auto; padding: 0 20px;
}
.sp-intro-text{ max-width: 920px; margin: 0 auto 50px; text-align: center; }
.sp-lead{ font-size: 20px; color: #07122e; line-height: 1.55; margin-bottom: 18px; }
.sp-intro-text p{ font-size: 16px; color: #374151; line-height: 1.7; }

.sp-section-title{
    text-align: center;
    font-size: 32px !important;
    color: #07122e !important;
    margin: 20px 0 36px !important;
    font-weight: 700 !important;
}

.sp-grid{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.sp-card{
    background: #fff;
    border: 1px solid #e5e9f2;
    border-radius: 18px;
    padding: 28px 22px;
    text-align: center;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}
.sp-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 18px 40px -22px rgba(7,18,46,.3);
    border-color: #c9d3ea;
}
.sp-card-icon svg{
    width: 42px; height: 42px;
    fill: #1e3a8a;
}
.sp-card-title{
    font-size: 17px !important;
    color: #07122e !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    margin: 0 !important;
}

.sp-cta{
    margin-top: 70px;
    background: linear-gradient(135deg, #07122e 0%, #1e3a8a 100%);
    color: #fff;
    border-radius: 24px;
    padding: 48px 36px;
    text-align: center;
}
.sp-cta-title{
    color: #fff !important;
    font-size: 28px !important;
    margin: 0 0 12px !important;
    font-weight: 700 !important;
}
.sp-cta-text{ color: rgba(255,255,255,.85); margin: 0 0 24px; font-size: 16px; }
.sp-cta-btn{
    display: inline-block;
    background: #fff;
    color: #07122e !important;
    padding: 14px 32px;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease;
}
.sp-cta-btn:hover{ transform: translateY(-2px); box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); color: #07122e !important; }

@media (max-width: 900px){
    .sp-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
    .sp-grid{ grid-template-columns: 1fr; }
    .sp-hero{ min-height: 55vh; }
}

/* =========================================================
   SPECIALTY RICH SECTIONS (Vial / Puertos / Aeropuertos / Hidráulicas)
   ========================================================= */
.sp-rich{ padding: 60px 24px 100px; background: linear-gradient(180deg, #f8fafc 0%, #ffffff 60%); }
.sp-rich-inner{ max-width: 1280px; margin: 0 auto; display: flex; flex-direction: column; gap: 80px; }

/* Lead */
.sp-lead-block{ max-width: 920px; margin: 0 auto; text-align: center; }
.sp-lead-block .sp-lead{ font-size: clamp(20px, 2.2vw, 26px); line-height: 1.45; color: #0a1f4a; margin: 0 0 18px; font-weight: 400; }
.sp-lead-block .sp-lead strong{ font-weight: 600; }
.sp-lead-block .sp-intro-p{ font-size: 17px; line-height: 1.75; color: #475569; margin: 0; }

/* Stats */
.sp-stats{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  background: linear-gradient(135deg, #0a1f4a 0%, #1e3a8a 100%);
  border-radius: 24px; padding: 36px 24px; color: #fff;
  box-shadow: 0 30px 60px -30px rgba(10,31,74,.4);
  position: relative; overflow: hidden;
}
.sp-stats::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 20% 20%, rgba(96,165,250,.25), transparent 50%),
              radial-gradient(circle at 80% 80%, rgba(56,189,248,.2), transparent 50%);
  pointer-events: none;
}
.sp-stat{ text-align: center; position: relative; padding: 10px 18px; }
.sp-stat + .sp-stat{ border-left: 1px solid rgba(255,255,255,.12); }
.sp-stat-num{
  font-size: clamp(28px, 3.4vw, 44px); font-weight: 700; line-height: 1;
  background: linear-gradient(135deg, #fff 0%, #93c5fd 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  letter-spacing: -.02em; margin-bottom: 8px;
}
.sp-stat-label{ font-size: 13px; color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: .08em; }

/* Section heads */
.sp-section-head{ text-align: center; max-width: 760px; margin: 0 auto; }
.sp-eyebrow{
  display:inline-block; font-size: 12px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: #1e40af; padding: 6px 14px; border-radius: 999px;
  background: rgba(30,64,175,.08); margin-bottom: 14px;
}
.sp-section-head .sp-section-title{
  font-size: clamp(28px, 3.4vw, 42px); font-weight: 700; color: #0a1f4a;
  margin: 0 0 12px; letter-spacing: -.02em; line-height: 1.15;
}
.sp-section-sub{ font-size: 16px; line-height: 1.65; color: #64748b; margin: 0; }

/* Services grid */
.sp-services{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sp-srv{
  background: #fff; border: 1px solid #e2e8f0; border-radius: 20px;
  padding: 32px 28px; position: relative; overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.sp-srv::before{
  content:""; position:absolute; top:0; left:0; right:0; height: 4px;
  background: linear-gradient(90deg, #1e40af, #3b82f6, #60a5fa);
  transform: scaleX(0); transform-origin: left; transition: transform .4s ease;
}
.sp-srv:hover{ transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(30,64,175,.3); border-color: #c7d2fe; }
.sp-srv:hover::before{ transform: scaleX(1); }
.sp-srv-num{
  font-size: 14px; font-weight: 700; color: #1e40af; letter-spacing: .08em;
  background: rgba(30,64,175,.08); display: inline-block; padding: 4px 10px;
  border-radius: 8px; margin-bottom: 16px;
}
.sp-srv-title{ font-size: 19px; font-weight: 700; color: #0a1f4a; margin: 0 0 12px; line-height: 1.3; }
.sp-srv-desc{ font-size: 15px; line-height: 1.6; color: #475569; margin: 0 0 18px; }
.sp-srv-bullets{ list-style: none; padding: 0; margin: 0; border-top: 1px solid #e2e8f0; padding-top: 16px; }
.sp-srv-bullets li{
  font-size: 14px; line-height: 1.5; color: #334155; padding-left: 24px; position: relative;
  margin-bottom: 8px;
}
.sp-srv-bullets li::before{
  content:""; position:absolute; left: 0; top: 8px; width: 6px; height: 6px;
  border-radius: 50%; background: #3b82f6;
  box-shadow: 0 0 0 4px rgba(59,130,246,.15);
}

/* Showcase */
.sp-showcase{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sp-show-item{
  position: relative; margin: 0; border-radius: 18px; overflow: hidden;
  aspect-ratio: 4/3; cursor: pointer;
  box-shadow: 0 20px 40px -20px rgba(0,0,0,.25);
}
.sp-show-item img{ width:100%; height:100%; object-fit: cover; transition: transform .6s ease; }
.sp-show-item:hover img{ transform: scale(1.08); }
.sp-show-item figcaption{
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 40px 20px 16px; color:#fff; font-weight: 600; font-size: 15px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.75) 100%);
}

/* Method */
.sp-method-wrap{
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 60px; align-items: start;
  background: #0a1f4a; color: #fff; border-radius: 28px; padding: 60px;
  position: relative; overflow: hidden;
}
.sp-method-wrap::before{
  content:""; position:absolute; top:-40%; right:-20%; width: 60%; height: 180%;
  background: radial-gradient(circle, rgba(59,130,246,.25) 0%, transparent 60%);
  pointer-events: none;
}
.sp-method-left{ position: relative; }
.sp-method-left .sp-eyebrow{ background: rgba(255,255,255,.12); color: #93c5fd; }
.sp-method-left .sp-section-title{ color: #fff; font-size: clamp(26px, 3vw, 36px); margin-bottom: 14px; }
.sp-method-left .sp-section-sub{ color: rgba(255,255,255,.7); }
.sp-method-list{ list-style: none; padding: 0; margin: 0; position: relative; }
.sp-step{ display: flex; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.sp-step:last-child{ border-bottom: 0; }
.sp-step-num{
  flex: 0 0 44px; height: 44px; width: 44px; border-radius: 50%;
  background: linear-gradient(135deg, #3b82f6, #60a5fa);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 17px; color: #fff;
  box-shadow: 0 10px 25px -10px rgba(59,130,246,.6);
}
.sp-step-body h4{ font-size: 17px; margin: 4px 0 6px; color:#fff; font-weight: 700; }
.sp-step-body p{ font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.72); margin: 0; }

/* Sectors */
.sp-sectors-wrap{ text-align: center; }
.sp-sectors-wrap .sp-section-title{ font-size: clamp(24px, 2.8vw, 34px); color: #0a1f4a; margin: 0 0 30px; }
.sp-sectors{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sp-sector{
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px;
  padding: 22px 18px; display: flex; align-items: center; gap: 14px;
  font-weight: 600; color: #0a1f4a; font-size: 15px; text-align: left;
  transition: all .3s ease;
}
.sp-sector:hover{ border-color: #3b82f6; transform: translateY(-3px); box-shadow: 0 15px 30px -15px rgba(30,64,175,.25); }
.sp-sector-bar{
  flex: 0 0 4px; height: 36px; border-radius: 4px;
  background: linear-gradient(180deg, #1e40af, #60a5fa);
}

/* Responsive */
@media (max-width: 1024px){
  .sp-services{ grid-template-columns: repeat(2, 1fr); }
  .sp-showcase{ grid-template-columns: repeat(2, 1fr); }
  .sp-method-wrap{ grid-template-columns: 1fr; gap: 30px; padding: 40px; }
  .sp-sectors{ grid-template-columns: repeat(2, 1fr); }
  .sp-stats{ grid-template-columns: repeat(2, 1fr); gap: 24px 0; }
  .sp-stat:nth-child(2n+1){ border-left: 0; }
}
@media (max-width: 640px){
  .sp-rich{ padding: 40px 16px 70px; }
  .sp-rich-inner{ gap: 60px; }
  .sp-services{ grid-template-columns: 1fr; }
  .sp-showcase{ grid-template-columns: 1fr; }
  .sp-sectors{ grid-template-columns: 1fr; }
  .sp-stats{ grid-template-columns: 1fr; padding: 28px 18px; }
  .sp-stat + .sp-stat{ border-left: 0; border-top: 1px solid rgba(255,255,255,.12); padding-top: 18px; margin-top: 4px; }
  .sp-method-wrap{ padding: 30px 22px; }
}

/* Servicios: sub-submenús visibles hacia el costado y scroll solo en listas largas */
.hfe-nav-menu > li > ul.sub-menu,
.hfe-nav-menu > li > .sub-menu{
  overflow: visible !important;
  max-height: none !important;
}

.hfe-nav-menu .sub-menu li.menu-item-has-children,
.hfe-nav-menu .sub-menu li.hfe-has-submenu{
  position: relative !important;
}

.hfe-nav-menu .sub-menu .sub-menu,
.hfe-nav-menu ul ul ul{
  position: absolute !important;
  top: 0 !important;
  left: 100% !important;
  width: max-content !important;
  min-width: 280px !important;
  max-width: min(520px, 42vw) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 70vh !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  z-index: 100000 !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.45) transparent;
}
/* Forzar que cada submenú se ajuste a su contenido (sin espacios en blanco) */
.hfe-nav-menu ul.sub-menu{
  height: auto !important;
  min-height: 0 !important;
}
.hfe-nav-menu .sub-menu::-webkit-scrollbar{ width: 8px; }
.hfe-nav-menu .sub-menu::-webkit-scrollbar-track{ background: transparent; }
.hfe-nav-menu .sub-menu::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.45);
  border-radius: 4px;
}
.hfe-nav-menu .sub-menu::-webkit-scrollbar-thumb:hover{ background: rgba(255,255,255,.7); }

/* Mostrar submenús al click (clase rt-open agregada por script.js) */
.hfe-nav-menu .menu-item-has-children:hover > ul.sub-menu,
.hfe-nav-menu .menu-item-has-children:focus-within > ul.sub-menu,
.hfe-nav-menu .hfe-has-submenu:hover > ul.sub-menu,
.hfe-nav-menu .hfe-has-submenu:focus-within > ul.sub-menu,
.hfe-nav-menu li.rt-open > ul.sub-menu,
.hfe-nav-menu li.rt-open > .hfe-has-submenu-container > ul.sub-menu {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
.hfe-nav-menu li.rt-open > .hfe-has-submenu-container > a,
.hfe-nav-menu li.rt-open > a { color: #60a5fa !important; }

.hfe-nav-menu .sub-menu .menu-item-has-children:hover > .hfe-has-submenu-container > a,
.hfe-nav-menu .sub-menu .hfe-has-submenu:hover > .hfe-has-submenu-container > a,
.hfe-nav-menu .sub-menu li.rt-open > .hfe-has-submenu-container > a{
  background: rgba(96,165,250,.16) !important;
  color: #60a5fa !important;
}

/* Ocultar submenús vacíos (sin items) para que no aparezca un recuadro en blanco */
.hfe-nav-menu ul.sub-menu:empty,
.hfe-nav-menu ul.sub-menu:not(:has(li)){
  display: none !important;
}
.hfe-nav-menu li.menu-item-has-children:has(> ul.sub-menu:not(:has(li))),
.hfe-nav-menu li.hfe-has-submenu:has(> .hfe-has-submenu-container > ul.sub-menu:not(:has(li))){
  /* Tratar como item sin hijos: no abrir flyout */
}
.hfe-nav-menu li.menu-item-has-children:has(> ul.sub-menu:not(:has(li))):hover > ul.sub-menu,
.hfe-nav-menu li.menu-item-has-children:has(> ul.sub-menu:not(:has(li))).rt-open > ul.sub-menu,
.hfe-nav-menu li.hfe-has-submenu:has(> .hfe-has-submenu-container > ul.sub-menu:not(:has(li))):hover > .hfe-has-submenu-container > ul.sub-menu,
.hfe-nav-menu li.hfe-has-submenu:has(> .hfe-has-submenu-container > ul.sub-menu:not(:has(li))).rt-open > .hfe-has-submenu-container > ul.sub-menu{
  display: none !important;
}
/* Quitar la flechita indicadora cuando el submenú está vacío */
.hfe-nav-menu li:has(> ul.sub-menu:not(:has(li))) > a .sub-arrow,
.hfe-nav-menu li:has(> .hfe-has-submenu-container > ul.sub-menu:not(:has(li))) .sub-arrow{
  display: none !important;
}
