/* ==========================================================================
   PROCObas — Rediseño visual premium
   Objetivo: sitio moderno, llamativo, con imagen + contenido integrados.
   No cambia textos ni lógica PHP; solo layout, jerarquía visual y responsive.
   ========================================================================== */

:root{
  --pc-navy:#121b31;
  --pc-navy-2:#202a45;
  --pc-blue:#2582c2;
  --pc-blue-2:#4db3f0;
  --pc-ice:#eef6ff;
  --pc-ice-2:#f7fbff;
  --pc-orange:#db6404;
  --pc-text:#4c5871;
  --pc-muted:#8b98b3;
  --pc-white:#fff;
  --pc-line:#dce7f4;
  --pc-max:1200px;
  --pc-radius:30px;
  --pc-radius-sm:18px;
  --pc-shadow:0 24px 70px rgba(18,27,49,.16);
  --pc-shadow-soft:0 14px 34px rgba(18,27,49,.09);
}

html{background:#fff;}
body{
  background:
    radial-gradient(circle at 8% 4%,rgba(37,130,194,.12),transparent 28%),
    radial-gradient(circle at 96% 24%,rgba(219,100,4,.08),transparent 24%),
    linear-gradient(180deg,#ffffff 0%,#f7fbff 52%,#ffffff 100%) !important;
  color:var(--pc-text)!important;
}
.site-main{overflow:hidden;}

/* =============================== HEADER =============================== */
.top-bar{
  background:#f7fbff!important;
  border-bottom:1px solid rgba(220,231,244,.8)!important;
}
.top-bar-inner{
  max-width:var(--pc-max)!important;
  justify-content:flex-end!important;
  padding:8px 24px!important;
  color:#5e6d86!important;
}
.top-bar a{color:#44536d!important;font-weight:600;}
.site-header{
  position:sticky!important;
  top:0!important;
  background:rgba(255,255,255,.88)!important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(220,231,244,.9)!important;
  box-shadow:0 18px 42px rgba(18,27,49,.08)!important;
}
.header-inner{
  max-width:var(--pc-max)!important;
  padding:12px 24px!important;
}
.brand-logo{
  height:60px!important;
  width:auto!important;
  filter:drop-shadow(0 8px 20px rgba(18,27,49,.13));
}
.main-nav ul{gap:8px!important;}
.main-nav a{
  color:var(--pc-navy)!important;
  font-weight:800!important;
  font-size:14px!important;
  letter-spacing:.1px!important;
  padding:11px 16px!important;
  border-radius:999px!important;
  transition:.22s ease!important;
}
.main-nav a:hover,.main-nav a.active{
  color:#fff!important;
  background:linear-gradient(135deg,var(--pc-blue),#17699f)!important;
  box-shadow:0 12px 26px rgba(37,130,194,.24)!important;
}
.nav-toggle span{background:var(--pc-navy)!important;}

/* =============================== BASE LAYOUT =============================== */
.dv-section{
  padding:94px 0!important;
  position:relative!important;
}
.dv-row{
  max-width:var(--pc-max)!important;
  padding-left:24px!important;
  padding-right:24px!important;
}
.dv-row-inner{
  align-items:center!important;
  margin-left:-18px!important;
  margin-right:-18px!important;
}
.dv-column{
  padding-left:18px!important;
  padding-right:18px!important;
}
.dv-heading{
  font-family:'Inter',system-ui,sans-serif!important;
  color:var(--pc-navy)!important;
  letter-spacing:-.9px!important;
  line-height:1.04!important;
  text-wrap:balance;
}
h1.dv-heading{font-size:clamp(42px,5.8vw,76px)!important;font-weight:900!important;}
h2.dv-heading{font-size:clamp(32px,4vw,58px)!important;font-weight:900!important;}
h3.dv-heading{font-size:clamp(18px,2vw,25px)!important;font-weight:500!important;line-height:1.42!important;color:#5d6a83!important;}
.dv-text,.dv-blurb-body{font-size:17px!important;line-height:1.75!important;color:var(--pc-text)!important;}
.dv-wave{height:48px!important;opacity:.9;}

/* Fondos modernos por bloque */
.dv-section[style*="background-color:#e6effc"],
.dv-section[style*="background-color:#d4e1f8"],
.dv-section[style*="background-color:#98a5c4"]{
  background:
    radial-gradient(circle at 12% 20%,rgba(37,130,194,.12),transparent 28%),
    radial-gradient(circle at 92% 14%,rgba(219,100,4,.07),transparent 24%),
    linear-gradient(135deg,#f3f8ff 0%,#ffffff 58%,#edf6ff 100%)!important;
}
.dv-section[style*="background-color:#ffffff"]{
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;
}
.dv-section[style*="background-color:#575f7c"]{
  background:
    radial-gradient(circle at 15% 18%,rgba(77,179,240,.35),transparent 31%),
    radial-gradient(circle at 92% 82%,rgba(219,100,4,.14),transparent 24%),
    linear-gradient(135deg,#10192f 0%,#273451 100%)!important;
}

/* =============================== HERO =============================== */
.dv-hero{
  min-height:690px!important;
  padding:125px 0 145px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  isolation:isolate;
  overflow:hidden;
}
/* Bloque pseudo-elemento hero eliminado para no cargar imágenes/fondos ocultos. */

/* Bloque pseudo-elemento hero eliminado para no cargar imágenes/fondos ocultos. */

.dv-hero .dv-row{position:relative;z-index:3;}
.dv-hero .dv-row:first-of-type .dv-column{
  max-width:min(760px,66vw)!important;
  flex:0 0 min(760px,66vw)!important;
}
.dv-hero h1.dv-heading{
  color:#fff!important;
  text-shadow:0 18px 36px rgba(0,0,0,.2);
  max-width:760px;
}
.dv-hero h2.dv-heading{
  color:rgba(238,246,255,.92)!important;
  max-width:650px;
  margin-top:22px!important;
}
.dv-hero .dv-row:nth-of-type(2){margin-top:8px;}
.dv-hero .dv-row:nth-of-type(2) .dv-row-inner{
  display:flex!important;
  gap:14px!important;
}
.dv-hero .dv-row:nth-of-type(2) .dv-column{
  flex:0 0 auto!important;
  max-width:none!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* =============================== BOTONES =============================== */
.dv-button,.form-submit{
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--pc-blue),#16679e)!important;
  color:#fff!important;
  border:0!important;
  padding:15px 28px!important;
  font-weight:900!important;
  letter-spacing:.1px!important;
  box-shadow:0 18px 34px rgba(37,130,194,.30)!important;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease!important;
}
.dv-button:hover,.form-submit:hover{
  transform:translateY(-4px)!important;
  filter:saturate(1.08);
  box-shadow:0 24px 48px rgba(37,130,194,.42)!important;
}
.dv-button::after,.form-submit::after{content:"  →";}

/* =============================== BLOQUES CON TEXTO/IMAGEN =============================== */
/* Cualquier fila con imagen se convierte en bloque editorial premium */
.dv-row-inner:has(.dv-image),
.dv-row-inner:has(.dv-video){
  gap:0!important;
}
.dv-row-inner:has(.dv-image) > .dv-column,
.dv-row-inner:has(.dv-video) > .dv-column{
  margin-bottom:0!important;
}
.dv-row-inner:has(.dv-image) .dv-image,
.dv-row-inner:has(.dv-video) .dv-video{
  margin:0!important;
}
.dv-image img{
  border-radius:var(--pc-radius)!important;
  box-shadow:var(--pc-shadow)!important;
  object-fit:cover;
}
.dv-row-inner:has(.dv-image) > .dv-column:not(:has(.dv-image)) .dv-blurb,
.dv-row-inner:has(.dv-video) > .dv-column:not(:has(.dv-video)) .dv-blurb,
.dv-row-inner:has(.dv-image) > .dv-column:not(:has(.dv-image)) > .dv-text{
  background:rgba(255,255,255,.88)!important;
  border:1px solid rgba(220,231,244,.9)!important;
  border-radius:var(--pc-radius)!important;
  box-shadow:var(--pc-shadow-soft)!important;
  padding:34px!important;
}

/* Hero de servicios: imagen grande integrada */
body:has(.dv-image img[src*="Modelo-contacto"]) .dv-section:first-of-type .dv-image img{
  max-height:560px!important;
  width:100%!important;
  object-fit:contain!important;
  background:linear-gradient(145deg,#e6f2ff,#fff)!important;
  padding:8px!important;
}

/* Las secciones de servicios con texto + métricas: panel lateral en vez de columna plana */
.servicios-page .dv-section .dv-row:first-child .dv-row-inner > .dv-column:first-child,
.dv-section .dv-row-inner > .dv-column:has(.dv-circle){
  position:relative;
}
.dv-section .dv-row-inner > .dv-column:has(.dv-circle){
  background:linear-gradient(145deg,#fff,#f4f9ff)!important;
  border:1px solid rgba(220,231,244,.9)!important;
  border-radius:var(--pc-radius)!important;
  box-shadow:var(--pc-shadow-soft)!important;
  padding:30px!important;
}
.dv-section .dv-row-inner > .dv-column:has(.dv-circle) h3.dv-heading{
  text-align:left!important;
  color:var(--pc-navy)!important;
  font-weight:900!important;
  margin-bottom:18px!important;
}

/* =============================== CARDS / ICONOS =============================== */
.dv-blurb{
  background:rgba(255,255,255,.9)!important;
  border:1px solid rgba(220,231,244,.9)!important;
  border-radius:24px!important;
  box-shadow:0 14px 34px rgba(18,27,49,.08)!important;
  padding:28px!important;
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease!important;
  position:relative;
  overflow:hidden;
}
.dv-blurb::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg,var(--pc-blue),var(--pc-orange));
  opacity:.78;
}
.dv-blurb:hover{
  transform:translateY(-6px)!important;
  box-shadow:0 24px 52px rgba(18,27,49,.14)!important;
  border-color:rgba(37,130,194,.28)!important;
}
.dv-blurb-title{
  color:var(--pc-navy)!important;
  font-weight:900!important;
  letter-spacing:-.45px!important;
}
.dv-blurb-icon{
  width:86px!important;
  height:86px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:26px!important;
  background:
    radial-gradient(circle at 30% 20%,#fff 0%,#eaf6ff 70%),
    linear-gradient(135deg,#fff,#eaf4ff)!important;
  box-shadow:inset 0 0 0 1px rgba(37,130,194,.13),0 18px 32px rgba(37,130,194,.14)!important;
  margin:0 0 20px!important;
}
.dv-blurb-icon img{
  max-width:58px!important;
  max-height:58px!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.dv-blurb-body ul{list-style:none!important;padding-left:0!important;margin-left:0!important;}
.dv-blurb-body li{position:relative;padding-left:30px;margin-bottom:12px!important;}
.dv-blurb-body li::before{
  content:"✓";
  position:absolute;left:0;top:0;
  width:20px;height:20px;border-radius:50%;
  display:grid;place-items:center;
  color:#fff;background:var(--pc-blue);
  font-size:12px;font-weight:900;
}

/* Servicios del home: mosaico horizontal más dinámico */
.dv-section:has(img[src*="administracion-de-cartera.webp"]) .dv-row-inner > .dv-column{
  display:flex!important;
}
.dv-section:has(img[src*="administracion-de-cartera.webp"]) .dv-blurb{
  min-height:230px;
  width:100%;
  text-align:left!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  background:linear-gradient(150deg,#fff 0%,#f5faff 100%)!important;
}
.dv-section:has(img[src*="administracion-de-cartera.webp"]) .dv-blurb-title{
  font-size:21px!important;
}

/* Si una sección tiene solo texto, darle composición con panel visual sin agregar contenido */
.dv-section:not(.dv-hero):not(.ct-section) > .dv-row:first-child .dv-column[style*="100.0%"]{
  max-width:920px!important;
}
.dv-section:not(.dv-hero):not(.ct-section) > .dv-row:first-child .dv-column[style*="100.0%"]::after{
  content:"";
  display:block;
  width:96px;height:6px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--pc-blue),var(--pc-orange));
  margin-top:24px;
}

/* =============================== CLIENTES =============================== */
.dv-section[style*="#575f7c"] h2.dv-heading{color:#fff!important;max-width:820px;}
.dv-section[style*="#575f7c"] .dv-row:nth-of-type(2) .dv-row-inner{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.dv-section[style*="#575f7c"] .dv-row:nth-of-type(2) .dv-column{
  max-width:none!important;flex:none!important;padding:0!important;display:grid!important;gap:18px!important;
}
.dv-section[style*="#575f7c"] .dv-image{
  margin:0!important;
  height:126px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(255,255,255,.96)!important;
  border-radius:22px!important;
  padding:16px!important;
  box-shadow:0 18px 38px rgba(0,0,0,.18)!important;
  transition:.22s ease;
}
.dv-section[style*="#575f7c"] .dv-image:hover{
  transform:translateY(-5px) scale(1.02);
  box-shadow:0 26px 52px rgba(0,0,0,.24)!important;
}
.dv-section[style*="#575f7c"] .dv-image img{
  max-height:80px!important;
  width:auto!important;
  max-width:100%!important;
  object-fit:contain!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
  background:transparent!important;
}

/* =============================== CONTACTO =============================== */
.ct-section{
  padding:96px 0!important;
  background:
    radial-gradient(circle at 8% 15%,rgba(37,130,194,.15),transparent 30%),
    linear-gradient(135deg,#eff7ff 0%,#fff 52%,#eaf5ff 100%)!important;
}
.ct-wrap{
  max-width:var(--pc-max)!important;
  display:grid!important;
  grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr)!important;
  grid-template-areas:
    "head head"
    "media form"
    "map form"!important;
  gap:28px!important;
  align-items:start!important;
}
.ct-head{grid-area:head!important;max-width:860px!important;margin:0 0 8px!important;text-align:left!important;}
.ct-head h2,.ct-head h3{text-align:left!important;}
.ct-top{
  grid-area:media!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:34px!important;
  background:#fff!important;
  border:1px solid rgba(220,231,244,.95)!important;
  box-shadow:var(--pc-shadow)!important;
  margin:0!important;
}
.ct-photo{
  flex:none!important;
  max-width:100%!important;
  min-height:360px!important;
  background:linear-gradient(160deg,#e0f1ff,#fff)!important;
}
.ct-photo .dv-image,.ct-photo .dv-image img{height:100%!important;width:100%!important;margin:0!important;}
.ct-photo .dv-image img{
  object-fit:cover!important;
  object-position:center top!important;
  border-radius:0!important;
  box-shadow:none!important;
  max-height:none!important;
}
.ct-info{
  padding:24px!important;
  display:grid!important;
  gap:16px!important;
}
.ct-card{
  background:#f7fbff!important;
  border:1px solid rgba(220,231,244,.9)!important;
  border-radius:22px!important;
  padding:22px!important;
  box-shadow:none!important;
}
.ct-card + .ct-card{border-top:1px solid rgba(220,231,244,.9)!important;padding-top:22px!important;}
.ct-card .dv-blurb{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  transform:none!important;
}
.ct-card .dv-blurb::before{display:none!important;}
.ct-card .dv-blurb:hover{transform:none!important;box-shadow:none!important;}
.ct-card .dv-blurb-body svg{display:none!important;}
.ct-form-area{
  grid-area:form!important;
  margin:0!important;
  max-width:none!important;
  position:sticky!important;
  top:104px!important;
  border-radius:34px!important;
  padding:34px!important;
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(220,231,244,.95)!important;
  box-shadow:var(--pc-shadow)!important;
}
.ct-form-area::before{
  content:"Formulario de contacto";
  display:block;
  margin-bottom:22px;
  font-size:clamp(26px,2.5vw,36px);
  font-weight:900;
  letter-spacing:-.7px;
  color:var(--pc-navy);
}
.ct-map{
  grid-area:map!important;
  margin:0!important;
}
.ct-map .dv-code{
  margin:0!important;
  border-radius:30px!important;
  overflow:hidden!important;
  box-shadow:var(--pc-shadow-soft)!important;
  border:1px solid rgba(220,231,244,.95)!important;
}
.ct-map iframe{height:300px!important;width:100%!important;display:block!important;}
.contact-form{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:16px 18px!important;
}
.contact-form .field{margin:0!important;}
.contact-form .field-radio,
.contact-form .field-name,
.contact-form .field:has(textarea),
.contact-form .field-check,
.contact-form .field:has(.g-recaptcha),
.contact-form .field-submit{
  grid-column:1/-1!important;
}
.field-radio{
  background:#f8fbff!important;
  border:1px solid var(--pc-line)!important;
  border-radius:22px!important;
  padding:18px!important;
}
.radio-opt,.check-opt{
  background:#fff!important;
  border:1px solid rgba(220,231,244,.9)!important;
  border-radius:16px!important;
  padding:12px 14px!important;
  margin-bottom:9px!important;
}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form textarea{
  border-radius:16px!important;
  border:1px solid #d6e1ee!important;
  padding:14px 15px!important;
  background:#fff!important;
  box-shadow:0 8px 20px rgba(18,27,49,.04)!important;
}
.contact-form input:focus,.contact-form textarea:focus{
  border-color:var(--pc-blue)!important;
  box-shadow:0 0 0 4px rgba(37,130,194,.14)!important;
}
.field-submit{text-align:right!important;}

/* =============================== FOOTER =============================== */
.dv-footer-section{
  background:
    radial-gradient(circle at 10% 12%,rgba(37,130,194,.28),transparent 30%),
    radial-gradient(circle at 88% 70%,rgba(219,100,4,.12),transparent 25%),
    linear-gradient(135deg,#0f172b 0%,#222b44 100%)!important;
  padding:78px 0 34px!important;
  overflow:hidden!important;
}
.dv-footer-section .dv-row{margin-top:0!important;margin-bottom:0!important;}
.dv-footer-section .dv-row:first-child{
  padding-bottom:32px!important;
  border-bottom:1px solid rgba(255,255,255,.13)!important;
}
.dv-footer-section .dv-row:first-child .dv-row-inner{
  display:grid!important;
  grid-template-columns:220px minmax(0,1fr)!important;
  gap:32px!important;
  align-items:center!important;
}
.dv-footer-section .dv-row:first-child .dv-column,
.dv-footer-section .dv-row:nth-child(2) .dv-column,
.dv-footer-section .dv-row:nth-child(3) .dv-column{
  flex:none!important;
  max-width:none!important;
  padding:0!important;
  margin:0!important;
}
.dv-footer-section .dv-row:first-child .dv-image{text-align:left!important;margin:0!important;}
.dv-footer-section .dv-row:first-child img{max-width:190px!important;box-shadow:none!important;border-radius:0!important;}
.dv-footer-section .dv-heading{color:#eef6ff!important;}
.dv-footer-section .dv-row:first-child h3.dv-heading{
  font-size:20px!important;
  line-height:1.45!important;
  font-weight:500!important;
  max-width:720px!important;
  color:rgba(238,246,255,.88)!important;
}
.dv-footer-section .dv-row:nth-child(2){padding-top:34px!important;}
.dv-footer-section .dv-row:nth-child(2) .dv-row-inner{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
  align-items:stretch!important;
}
.dv-footer-section .dv-blurb{
  height:100%!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.11)!important;
  box-shadow:none!important;
  border-radius:22px!important;
  padding:24px!important;
  transform:none!important;
}
.dv-footer-section .dv-blurb::before{background:linear-gradient(90deg,var(--pc-orange),var(--pc-blue))!important;opacity:.85!important;}
.dv-footer-section .dv-blurb:hover{transform:translateY(-3px)!important;box-shadow:0 20px 42px rgba(0,0,0,.18)!important;}
.dv-footer-section .dv-blurb-title{color:#ff9a3c!important;font-size:18px!important;margin-bottom:14px!important;}
.dv-footer-section .dv-blurb-body,.dv-footer-section .dv-text{
  color:rgba(238,246,255,.82)!important;
  font-size:14px!important;
  line-height:1.62!important;
}
.dv-footer-section .dv-blurb-body p{margin:0 0 8px!important;}
.dv-footer-section .dv-row:nth-child(3){padding-top:26px!important;}
.dv-footer-section .dv-row:nth-child(3) .dv-text:first-child{
  border-top:1px solid rgba(255,255,255,.11)!important;
  padding-top:22px!important;
}
.copyright-bar{
  background:#0b1222!important;
  color:rgba(238,246,255,.64)!important;
  padding:18px 16px!important;
}
.copyright-bar p{margin:0!important;}
.copyright-bar a{color:rgba(238,246,255,.78)!important;}

/* =============================== RESPONSIVE =============================== */
@media (max-width:1100px){
  .dv-column{flex:1 1 50%!important;max-width:50%!important;}
  .dv-row-inner:has(.dv-image) > .dv-column,
  .dv-row-inner:has(.dv-video) > .dv-column{flex:1 1 100%!important;max-width:100%!important;margin-bottom:24px!important;}
  .ct-wrap{
    grid-template-columns:1fr!important;
    grid-template-areas:"head" "media" "form" "map"!important;
  }
  .ct-form-area{position:relative!important;top:auto!important;}
  .dv-footer-section .dv-row:nth-child(2) .dv-row-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:980px){
  .main-nav{background:rgba(255,255,255,.98)!important;}
  .main-nav a{color:var(--pc-navy)!important;border-bottom:1px solid rgba(220,231,244,.9)!important;}
  .dv-hero .dv-row:first-of-type .dv-column{max-width:100%!important;flex:1 1 100%!important;}
  .dv-hero h1.dv-heading,.dv-hero h2.dv-heading{max-width:100%!important;}
}
@media (max-width:760px){
  .top-bar-inner{justify-content:center!important;gap:10px!important;}
  .brand-logo{height:48px!important;}
  .dv-section{padding:62px 0!important;}
  .dv-row{padding-left:18px!important;padding-right:18px!important;}
  .dv-column{flex:1 1 100%!important;max-width:100%!important;margin-bottom:18px!important;}
  .dv-hero{min-height:590px!important;padding:96px 0 112px!important;}
  .dv-hero h1.dv-heading{font-size:40px!important;}
  .dv-hero .dv-row:nth-of-type(2) .dv-row-inner{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  .dv-hero .dv-button{width:100%!important;text-align:center!important;}
  .ct-photo{min-height:310px!important;}
  .ct-form-area{padding:24px!important;border-radius:26px!important;}
  .contact-form{grid-template-columns:1fr!important;}
  .field-name .name-row{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;}
  .dv-section[style*="#575f7c"] .dv-row:nth-of-type(2) .dv-row-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .dv-section[style*="#575f7c"] .dv-image{height:112px!important;}
  .dv-footer-section .dv-row:first-child .dv-row-inner,
  .dv-footer-section .dv-row:nth-child(2) .dv-row-inner{grid-template-columns:1fr!important;}
  .dv-footer-section .dv-row:first-child .dv-image{text-align:center!important;}
  .dv-footer-section .dv-row:first-child img{margin:0 auto!important;}
  .dv-footer-section .dv-row:first-child h3.dv-heading{text-align:center!important;}
}
/* Bloque pseudo-elemento hero eliminado para no cargar imágenes/fondos ocultos. */

.dv-hero{min-height:540px!important;padding:92px 0 118px!important;}
.dv-hero .dv-row:first-of-type .dv-column{max-width:760px!important;flex:0 1 760px!important;}
.dv-hero h1.dv-heading{
  font-size:clamp(34px,4.1vw,54px)!important;
  line-height:1.12!important;
  max-width:720px!important;
  letter-spacing:-.6px!important;
}
.dv-hero h2.dv-heading{
  font-size:clamp(17px,1.55vw,22px)!important;
  line-height:1.45!important;
  max-width:610px!important;
  font-weight:400!important;
  margin-top:16px!important;
}
.dv-hero .dv-button{padding:13px 24px!important;font-size:14px!important;}

/* Header más limpio y estable */
.site-header{z-index:999!important;}
.header-inner{min-height:76px!important;}
.brand{display:flex!important;align-items:center!important;}
.brand-logo{height:56px!important;max-width:210px!important;object-fit:contain!important;}
.main-nav a{position:relative!important;text-decoration:none!important;}
.main-nav a:not(.active):hover{background:#eef6ff!important;color:var(--pc-blue)!important;box-shadow:none!important;}

/* Contacto: imagen + formulario integrados en un bloque editorial */
.page-contacto .ct-wrap{
  grid-template-columns:minmax(330px,.85fr) minmax(450px,1.15fr)!important;
  grid-template-areas:
    "head head"
    "media form"
    "map map"!important;
  gap:30px!important;
}
.page-contacto .ct-head{max-width:960px!important;}
.page-contacto .ct-top{
  min-height:100%!important;
  border-radius:34px!important;
  overflow:hidden!important;
  align-self:stretch!important;
}
.page-contacto .ct-photo{
  min-height:500px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  background:
    radial-gradient(circle at 45% 18%,rgba(255,255,255,.9),transparent 28%),
    linear-gradient(145deg,#dcefff 0%,#ffffff 55%,#edf6ff 100%)!important;
}
.page-contacto .ct-photo .dv-image img{
  object-fit:contain!important;
  object-position:center bottom!important;
  padding:22px 18px 0!important;
}
.page-contacto .ct-info{background:#fff!important;}
.page-contacto .ct-form-area{position:relative!important;top:auto!important;align-self:stretch!important;}
.page-contacto .ct-map iframe{height:360px!important;}

/* Servicios: presentación moderna en horizontal, no lectura en columna */
.page-servicios .dv-section:not(:first-of-type){padding:78px 0!important;}
.page-servicios .dv-section:not(:first-of-type) > .dv-row:first-child > .dv-row-inner{
  display:grid!important;
  grid-template-columns:minmax(0,2.05fr) minmax(280px,.95fr)!important;
  gap:24px!important;
  align-items:stretch!important;
}
.page-servicios .dv-section:not(:first-of-type) > .dv-row:first-child > .dv-row-inner > .dv-column{
  max-width:none!important;
  flex:none!important;
  width:auto!important;
}
.page-servicios .dv-section:not(:first-of-type) > .dv-row:first-child > .dv-row-inner > .dv-column:first-child{
  background:rgba(255,255,255,.84)!important;
  border:1px solid rgba(220,231,244,.95)!important;
  border-radius:32px!important;
  padding:34px!important;
  box-shadow:var(--pc-shadow-soft)!important;
}
.page-servicios .dv-section:not(:first-of-type) h2.dv-heading{
  scroll-margin-top:120px!important;
  font-size:clamp(30px,3vw,42px)!important;
  color:var(--pc-navy)!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-text{max-width:900px!important;}
.page-servicios .dv-section:not(:first-of-type) .dv-column:first-child > .dv-row:nth-of-type(2) .dv-row-inner{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px!important;
  align-items:stretch!important;
  margin:22px 0 0!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-column:first-child > .dv-row:nth-of-type(2) .dv-column{
  max-width:none!important;flex:none!important;padding:0!important;display:flex!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-column:first-child > .dv-row:nth-of-type(2) .dv-blurb{
  width:100%!important;
  padding:24px!important;
  display:flex!important;
  flex-direction:column!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-blurb-title{
  font-size:clamp(20px,1.5vw,24px)!important;
  margin-bottom:14px!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-blurb-body ul{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  padding:0!important;
  margin:0!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-blurb-body li{
  display:inline-flex!important;
  align-items:center!important;
  width:auto!important;
  max-width:100%!important;
  padding:9px 12px 9px 34px!important;
  margin:0!important;
  border-radius:999px!important;
  background:#f1f7ff!important;
  border:1px solid rgba(37,130,194,.12)!important;
  color:#22304a!important;
  line-height:1.25!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-blurb-body li p{margin:0!important;}
.page-servicios .dv-section:not(:first-of-type) .dv-blurb-body li::before{
  top:50%!important;
  left:10px!important;
  transform:translateY(-50%)!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-column:has(.dv-circle){
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:18px!important;
  min-height:100%!important;
  border-radius:32px!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-column:has(.dv-circle) h3.dv-heading{
  text-align:center!important;
  font-size:24px!important;
}
.page-servicios .dv-section:not(:first-of-type) .dv-circle{
  margin:0 auto!important;
  width:min(215px,100%)!important;
}
.page-servicios .dv-row-filled{
  margin-top:24px!important;
  border-radius:28px!important;
  overflow:hidden!important;
  background:linear-gradient(135deg,#10192f,#222b44)!important;
}
.page-servicios .dv-row-filled .dv-row-inner{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
}
.page-servicios .dv-row-filled .dv-column{max-width:none!important;flex:none!important;padding:20px!important;}
.page-servicios .dv-row-filled .dv-column + .dv-column{border-left:1px solid rgba(255,255,255,.12)!important;}

/* Footer nuevo: sin superposición, con texto legal centrado */
.site-footer-modern{
  position:relative!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 8% 8%,rgba(37,130,194,.34),transparent 32%),
    radial-gradient(circle at 90% 82%,rgba(219,100,4,.16),transparent 24%),
    linear-gradient(135deg,#10192f 0%,#222b44 100%)!important;
  color:#e6effc!important;
  padding:80px 0 34px!important;
}
.site-footer-modern::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 38%);
}
.footer-inner{
  position:relative;z-index:1;
  max-width:var(--pc-max);margin:0 auto;padding:0 24px 34px;
  display:grid;grid-template-columns:1.25fr .85fr 1fr 1fr 1.2fr;gap:28px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.footer-logo{width:min(230px,100%)!important;height:auto!important;display:block!important;margin-bottom:18px!important;}
.footer-brand-block p{font-size:15px;line-height:1.7;color:#cbd7ee;margin:0;max-width:330px;}
.footer-col{font-style:normal;display:flex;flex-direction:column;gap:10px;min-width:0;}
.footer-col h4{font-size:17px;color:var(--pc-orange);margin:0 0 10px;font-weight:900;}
.footer-col a,.footer-col span{color:#e6effc;text-decoration:none;font-size:14px;line-height:1.45;overflow-wrap:anywhere;}
.footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px;}
.footer-legal-centered{
  position:relative;z-index:1;
  max-width:920px;margin:0 auto;padding:28px 24px 0;text-align:center;color:#aebbd4;font-size:14px;line-height:1.65;
}
.footer-legal-centered p{margin:4px 0!important;}
.footer-legal-centered a{color:#e6effc;font-weight:800;text-decoration:none;}
.footer-legal-centered a:hover{text-decoration:underline;}
.copyright-bar,.dv-footer-section{display:none!important;}

@media (max-width:1050px){
  .page-servicios .dv-section:not(:first-of-type) > .dv-row:first-child > .dv-row-inner{grid-template-columns:1fr!important;}
  .footer-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-brand-block{grid-column:1/-1;}
}
@media (max-width:900px){
  .page-contacto .ct-wrap{grid-template-columns:1fr!important;grid-template-areas:"head" "media" "form" "map"!important;}
  .page-contacto .ct-photo{min-height:360px!important;}
  .page-servicios .dv-row-filled .dv-row-inner{grid-template-columns:1fr!important;}
  .page-servicios .dv-row-filled .dv-column + .dv-column{border-left:0!important;border-top:1px solid rgba(255,255,255,.12)!important;}
}
@media (max-width:640px){
  .dv-hero{min-height:auto!important;padding:70px 0 90px!important;}
  .dv-hero h1.dv-heading{font-size:32px!important;}
  .dv-hero h2.dv-heading{font-size:17px!important;}
  .page-contacto .ct-form-area{padding:24px!important;}
  .footer-inner{grid-template-columns:1fr;gap:24px;}
  .footer-brand-block,.footer-col{text-align:center;align-items:center;}
  .footer-brand-block p{max-width:none;}
}

/* ======================================================================
   CORRECCIONES V6 — ajuste hero, modelo local y footer clásico
   ====================================================================== */

/* Hero de inicio: el texto no debe ocupar toda la pantalla */
.page-index .dv-hero{
  min-height:460px!important;
  padding:86px 0 92px!important;
}
.page-index .dv-hero .dv-row:first-of-type .dv-column{
  max-width:720px!important;
  flex:0 0 min(720px,62vw)!important;
}
.page-index .dv-hero h1.dv-heading{
  font-size:clamp(28px,3.2vw,44px)!important;
  line-height:1.12!important;
  letter-spacing:.2px!important;
  max-width:700px!important;
  margin:0 0 14px!important;
}
.page-index .dv-hero h2.dv-heading{
  font-size:clamp(16px,1.45vw,21px)!important;
  line-height:1.38!important;
  letter-spacing:.1px!important;
  max-width:620px!important;
  margin-top:0!important;
  font-weight:400!important;
}
.page-index .dv-hero .dv-divider-space{
  height:14px!important;
}
.page-index .dv-hero .dv-button{
  padding:12px 22px!important;
  font-size:14px!important;
}

.page-index .ct-photo{
  display:none!important;
}
.page-index .ct-top{
  min-height:auto!important;
}

.page-contacto .ct-photo img[src*="modelo_opt.png"]{
  object-fit:cover!important;
  object-position:center top!important;
}

/* Footer: volver al estilo compacto anterior, sin textos superpuestos. */
.site-footer-modern{display:none!important;}
.dv-footer-section{
  background:linear-gradient(135deg,#18213a 0%,#222b44 100%)!important;
  padding:58px 0 28px!important;
  overflow:hidden!important;
}
.dv-footer-section .dv-row{
  max-width:1200px!important;
  margin:0 auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
}
.dv-footer-section .dv-row-inner{
  display:flex!important;
  align-items:flex-start!important;
  gap:0!important;
  margin-left:-14px!important;
  margin-right:-14px!important;
}
.dv-footer-section .dv-column{
  padding-left:14px!important;
  padding-right:14px!important;
  min-width:0!important;
}
.dv-footer-section .footer-brand-row{
  padding-bottom:28px!important;
  border-bottom:1px solid rgba(230,239,252,.16)!important;
}
.dv-footer-section .footer-brand-row .dv-row-inner{
  align-items:center!important;
}
.dv-footer-section .footer-logo-col img{
  max-width:185px!important;
  height:auto!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.dv-footer-section .footer-tagline-col h3{
  color:#e6effc!important;
  font-size:15px!important;
  line-height:1.55!important;
  font-weight:400!important;
  margin:0!important;
}
.dv-footer-section .footer-links-row{
  padding-top:30px!important;
  padding-bottom:18px!important;
}
.dv-footer-section .footer-links-row .dv-row-inner{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
}
.dv-footer-section .footer-links-row .dv-column{
  flex:none!important;
  max-width:none!important;
  padding:0!important;
}
.dv-footer-section .dv-blurb{
  height:100%!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.11)!important;
  border-radius:18px!important;
  box-shadow:none!important;
  padding:22px!important;
  transform:none!important;
}
.dv-footer-section .dv-blurb::before{
  height:3px!important;
  background:#db6404!important;
}
.dv-footer-section .dv-blurb:hover{
  transform:none!important;
  box-shadow:none!important;
}
.dv-footer-section .dv-blurb-title{
  color:#db6404!important;
  font-size:18px!important;
  line-height:1.2!important;
  margin:0 0 13px!important;
}
.dv-footer-section .dv-blurb-body,
.dv-footer-section .dv-blurb-body p{
  color:#e6effc!important;
  font-size:14px!important;
  line-height:1.55!important;
}
.dv-footer-section .dv-blurb-body p{
  margin:0 0 8px!important;
}
.dv-footer-section a{
  color:#e6effc!important;
  text-decoration:none!important;
  overflow-wrap:anywhere!important;
}
.dv-footer-section a:hover{
  color:#ffffff!important;
  text-decoration:underline!important;
}
.footer-legal-row{
  padding-top:22px!important;
  border-top:1px solid rgba(230,239,252,.14)!important;
}
.footer-legal-row .dv-row-inner,
.footer-legal-row .dv-column{
  display:block!important;
  max-width:100%!important;
  flex:none!important;
}
.footer-legal-text,
.footer-legal-text p{
  text-align:center!important;
  color:#aebbd5!important;
  margin:0 auto!important;
  line-height:1.55!important;
}
.footer-legal-text p + p{
  margin-top:6px!important;
}
.footer-legal-text a{
  color:#dbe8ff!important;
  font-weight:700!important;
}

/* Asegura que imágenes locales no se estiren ni queden como enlaces externos. */
.dv-image img,
.dv-blurb-icon img,
.brand-logo,
.footer-logo-col img{
  max-width:100%;
}

@media (max-width:1100px){
  .page-index .dv-hero .dv-row:first-of-type .dv-column{
    max-width:100%!important;
    flex:1 1 100%!important;
  }
  .dv-footer-section .footer-links-row .dv-row-inner{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:720px){
  .page-index .dv-hero{
    min-height:auto!important;
    padding:74px 0 78px!important;
  }
  .page-index .dv-hero h1.dv-heading{
    font-size:30px!important;
  }
  .page-index .dv-hero h2.dv-heading{
    font-size:16px!important;
  }
  .page-index .dv-hero .dv-row:nth-of-type(2) .dv-row-inner{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  .dv-footer-section .footer-brand-row .dv-row-inner{
    display:block!important;
    text-align:center!important;
  }
  .dv-footer-section .footer-logo-col,
  .dv-footer-section .footer-tagline-col{
    max-width:100%!important;
    flex:1 1 100%!important;
  }
  .dv-footer-section .footer-logo-col .dv-image,
  .dv-footer-section .footer-tagline-col h3{
    text-align:center!important;
  }
  .dv-footer-section .footer-links-row .dv-row-inner{
    grid-template-columns:1fr!important;
  }
}
/* Bloque pseudo-elemento hero eliminado para no cargar imágenes/fondos ocultos. */


/* Hero de inicio compacto: texto máximo 2 líneas en escritorio. */
.page-index .hero-compact{
  min-height:360px!important;
  padding:62px 0 70px!important;
  display:flex!important;
  align-items:center!important;
}
.page-index .hero-compact-row{
  max-width:1240px!important;
  width:100%!important;
  padding:0 34px!important;
  margin:0 auto!important;
}
.page-index .hero-compact .dv-row-inner{
  display:block!important;
}
.page-index .hero-compact-content{
  max-width:1120px!important;
  width:100%!important;
  flex:0 0 100%!important;
  padding:0!important;
}
.page-index .hero-title{
  font-size:clamp(25px,2.55vw,36px)!important;
  line-height:1.08!important;
  letter-spacing:-.35px!important;
  font-weight:650!important;
  color:#e6effc!important;
  max-width:1120px!important;
  width:100%!important;
  margin:0 0 10px!important;
  text-wrap:balance;
}
.page-index .hero-subtitle{
  font-size:clamp(15px,1.15vw,18px)!important;
  line-height:1.28!important;
  letter-spacing:0!important;
  font-weight:400!important;
  color:rgba(230,239,252,.92)!important;
  max-width:820px!important;
  margin:0!important;
  text-wrap:balance;
}
.page-index .hero-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin-top:24px!important;
}
.page-index .hero-actions .dv-button{
  width:auto!important;
  min-width:0!important;
  padding:11px 21px!important;
  font-size:14px!important;
  line-height:1.1!important;
}
.page-index .hero-actions .dv-button-secondary{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.32)!important;
}

.page-index img[src*="modelo_opt.png"],
.page-index .ct-photo{
  display:none!important;
}
.page-contacto img[src*="modelo_opt.png"]{
  display:block!important;
}

/* Footer más compacto y estable. */
.dv-footer-section{
  padding-top:46px!important;
}
.dv-footer-section .footer-links-row .dv-row-inner{
  align-items:flex-start!important;
}
.dv-footer-section .footer-legal-row{
  margin-top:18px!important;
}
.dv-footer-section .footer-legal-text,
.dv-footer-section .footer-legal-text p{
  text-align:center!important;
}

@media (min-width:1180px){
  .page-index .hero-title{white-space:normal!important;}
}
@media (max-width:760px){
  .page-index .hero-compact{
    min-height:auto!important;
    padding:58px 0 66px!important;
  }
  .page-index .hero-compact-row{padding:0 20px!important;}
  .page-index .hero-title{
    font-size:28px!important;
    line-height:1.12!important;
  }
  .page-index .hero-subtitle{
    font-size:16px!important;
  }
  .page-index .hero-actions{flex-direction:column!important;align-items:flex-start!important;}
}

/* ======================================================================
   CORRECCIONES V8 — hero con fondo local, título moderado y subtítulo normal
   ====================================================================== */

/* El cabezote de inicio usa únicamente la imagen local descargada en assets/img. */
.page-index .hero-landing{
  position:relative!important;
  min-height:430px!important;
  padding:86px 0 96px!important;
  display:flex!important;
  align-items:center!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  overflow:hidden!important;
}
/* Bloque pseudo-elemento hero eliminado para no cargar imágenes/fondos ocultos. */

.page-index .hero-landing-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:linear-gradient(90deg,rgba(15,24,45,.78) 0%,rgba(15,24,45,.56) 46%,rgba(15,24,45,.18) 100%)!important;
  pointer-events:none!important;
}
.page-index .hero-landing-row{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:0 34px!important;
}
.page-index .hero-landing-row .dv-row-inner{
  display:block!important;
}
.page-index .hero-landing-content{
  width:100%!important;
  max-width:880px!important;
  padding:0!important;
  flex:0 1 880px!important;
}
.page-index .hero-landing-title{
  display:block!important;
  max-width:880px!important;
  margin:0 0 12px!important;
  color:#e6effc!important;
  font-family:'Inter',sans-serif!important;
  font-size:clamp(29px,3.15vw,42px)!important;
  line-height:1.08!important;
  font-weight:650!important;
  letter-spacing:-.45px!important;
  text-align:left!important;
  text-shadow:0 14px 28px rgba(0,0,0,.28)!important;
  text-wrap:balance;
}
.page-index .hero-landing-subtitle{
  max-width:660px!important;
  margin:0!important;
  color:rgba(230,239,252,.94)!important;
  font-family:'Inter',sans-serif!important;
  font-size:clamp(15px,1.2vw,18px)!important;
  line-height:1.45!important;
  font-weight:400!important;
  letter-spacing:0!important;
  text-align:left!important;
}
.page-index .hero-landing .hero-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:13px!important;
  margin-top:26px!important;
}
.page-index .hero-landing .hero-actions .dv-button{
  width:auto!important;
  min-width:0!important;
  padding:12px 23px!important;
  font-size:14px!important;
  line-height:1.1!important;
}
.page-index .hero-landing .hero-actions .dv-button-secondary{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.34)!important;
}
/* modelo_opt.png queda únicamente para contacto.php. */
.page-index img[src*="modelo_opt.png"],
.page-index .ct-photo img[src*="modelo_opt.png"]{
  display:none!important;
}
.page-contacto img[src*="modelo_opt.png"]{
  display:block!important;
}

@media (min-width:1024px){
  .page-index .hero-landing-title{
    max-width:900px!important;
  }
}
@media (max-width:760px){
  .page-index .hero-landing{
    min-height:auto!important;
    padding:68px 0 82px!important;
  }
  .page-index .hero-landing-row{
    padding:0 20px!important;
  }
  .page-index .hero-landing-title{
    font-size:29px!important;
    line-height:1.12!important;
  }
  .page-index .hero-landing-subtitle{
    font-size:16px!important;
  }
  .page-index .hero-landing .hero-actions{
    flex-direction:column!important;
    align-items:flex-start!important;
  }
}

/* Ajuste final V8: título más ancho y moderado para evitar cortes excesivos. */
.page-index .hero-landing-content{
  max-width:1100px!important;
  flex:0 1 1100px!important;
}
.page-index .hero-landing-title{
  max-width:1100px!important;
  font-size:clamp(26px,2.35vw,34px)!important;
  line-height:1.12!important;
  text-wrap:normal!important;
}
.page-index .hero-landing-subtitle{
  max-width:760px!important;
  font-size:clamp(15px,1.05vw,17px)!important;
}

/* V9: Hero sin pseudo-elementos y título con wrapping normal */
.page-index .hero-landing {
  overflow: visible !important;
}
.page-index .hero-landing-content {
  width: min(920px, calc(100vw - 48px)) !important;
  max-width: min(920px, calc(100vw - 48px)) !important;
  flex: 0 1 auto !important;
}
.page-index .hero-landing-title {
  display: block !important;
  width: 100% !important;
  max-width: 920px !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  overflow: visible !important;
  font-size: clamp(27px, 2.55vw, 36px) !important;
  line-height: 1.15 !important;
  letter-spacing: -0.35px !important;
}
@media (min-width: 1200px) {
  .page-index .hero-landing-title { max-width: 980px !important; }
  .page-index .hero-landing-content { width: min(980px, calc(100vw - 80px)) !important; max-width: min(980px, calc(100vw - 80px)) !important; }
}
@media (max-width: 760px) {
  .page-index .hero-landing-content { width: 100% !important; max-width: 100% !important; }
  .page-index .hero-landing-title { font-size: 26px !important; line-height: 1.18 !important; }
}








/* =========================================================
   SERVICIOS RESPONSIVE - SOLO MÓVIL
   Corrige columnas estrechas en servicios.php
   ========================================================= */

@media screen and (max-width: 767px) {

  body.page-servicios {
    overflow-x: hidden;
  }

  body.page-servicios .dv-section {
    overflow: hidden;
  }

  body.page-servicios .dv-section .dv-row {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box !important;
  }

  body.page-servicios .dv-section .dv-row-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-servicios .dv-section .dv-column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box !important;
  }

  body.page-servicios .dv-section .dv-column[style] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  body.page-servicios .dv-section h1,
  body.page-servicios .dv-section h2,
  body.page-servicios .dv-section h3,
  body.page-servicios .dv-section h4,
  body.page-servicios .dv-section p,
  body.page-servicios .dv-section li,
  body.page-servicios .dv-section span {
    word-break: normal !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
    hyphens: none !important;
  }

  body.page-servicios .dv-section h2.dv-heading {
    font-size: 32px !important;
    line-height: 1.12 !important;
  }

  body.page-servicios .dv-section h3.dv-heading {
    font-size: 24px !important;
    line-height: 1.2 !important;
  }

  body.page-servicios .dv-section .dv-text {
    font-size: 17px !important;
    line-height: 1.6 !important;
  }

  body.page-servicios .dv-section .dv-blurb {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 22px !important;
    border-radius: 22px !important;
    box-sizing: border-box !important;
  }

  body.page-servicios .dv-section .dv-blurb-title {
    font-size: 23px !important;
    line-height: 1.2 !important;
    margin-bottom: 16px !important;
  }

  body.page-servicios .dv-section .dv-blurb-body {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.page-servicios .dv-section .dv-blurb-body ul {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    list-style: none !important;
  }

  body.page-servicios .dv-section .dv-blurb-body li {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 12px 0 !important;
    padding: 13px 15px !important;
    border-radius: 14px !important;
    background: #f3f8ff !important;
    border: 1px solid rgba(37, 130, 194, 0.16) !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  body.page-servicios .dv-section .dv-blurb-body li::before,
  body.page-servicios .dv-section .dv-blurb-body li::after {
    display: none !important;
    content: none !important;
  }

  body.page-servicios .dv-section .dv-blurb-body li p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.45 !important;
    text-align: left !important;
  }

  body.page-servicios .dv-section .dv-blurb-body li img,
  body.page-servicios .dv-section .dv-blurb-body li svg,
  body.page-servicios .dv-section .dv-blurb-body li i {
    display: none !important;
  }

  body.page-servicios .dv-section .dv-circle {
    width: 190px !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.page-servicios .dv-row-filled {
    margin-left: 18px !important;
    margin-right: 18px !important;
    border-radius: 22px !important;
  }

  body.page-servicios .dv-row-filled .dv-row-inner {
    display: flex !important;
    flex-direction: column !important;
  }

  body.page-servicios .dv-row-filled .dv-column {
    width: 100% !important;
    max-width: 100% !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(255,255,255,0.14) !important;
  }

  body.page-servicios .dv-row-filled .dv-column:first-child {
    border-top: 0 !important;
  }
}

/* =========================================================
   FIX FINAL SERVICIOS RESPONSIVE
   - 2 columnas para subcomponentes en escritorio y tablet
   - 1 columna solo en celular
   ========================================================= */

@media (min-width: 768px) {
  .page-servicios .dv-section:not(:first-of-type)
  .dv-column:first-child > .dv-row:nth-of-type(2) .dv-row-inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-column:first-child > .dv-row:nth-of-type(2) .dv-column {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    padding: 0 !important;
    display: flex !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-column:first-child > .dv-row:nth-of-type(2) .dv-blurb {
    width: 100% !important;
    height: 100% !important;
  }
}

@media (max-width: 767px) {
  .page-servicios .dv-section:not(:first-of-type)
  .dv-column:first-child > .dv-row:nth-of-type(2) .dv-row-inner {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 18px !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-column:first-child > .dv-row:nth-of-type(2) .dv-column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-blurb-body ul {
    display: block !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-blurb-body li {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 13px 15px !important;
    margin: 0 0 12px 0 !important;
    border-radius: 14px !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  .dv-blurb-body li::before,
  .page-servicios .dv-section:not(:first-of-type)
  .dv-blurb-body li::after {
    content: none !important;
    display: none !important;
  }
}

/* =========================================================
   FIX SERVICIOS - Título arriba y tarjetas debajo
   ========================================================= */

/* La columna izquierda de cada servicio debe apilar:
   1. título/descripción
   2. tarjetas de servicio
*/
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 28px !important;
}

/* Cada fila interna dentro de la columna izquierda ocupa todo el ancho */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* La fila del título debe ser bloque completo, no mezclarse con las tarjetas */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child
> .dv-row-inner {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

/* La columna interna del título también ocupa todo el ancho */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child
.dv-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Separación clara debajo de la descripción */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child .dv-text {
  max-width: 760px !important;
  margin-bottom: 0 !important;
}

/* Las tarjetas quedan debajo del título, en dos columnas */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
> .dv-row-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Cada tarjeta ocupa su columna completa */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
.dv-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  display: flex !important;
}

/* La tarjeta ocupa toda la altura disponible */
.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
.dv-blurb {
  width: 100% !important;
  height: 100% !important;
}

/* En celular, las tarjetas bajan a una sola columna */
@media screen and (max-width: 767px) {
  .page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:first-child
  > .dv-row:nth-child(2)
  > .dv-row-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
  }

  .page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:first-child {
    gap: 22px !important;
  }
}
/* =========================================================
   FIX DEFINITIVO SERVICIOS
   Título arriba, tarjetas y resultados abajo
   ========================================================= */

/* La fila principal de cada servicio se divide en:
   fila 1: título/descripción completo
   fila 2: tarjetas + resultados
*/
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 0.85fr) !important;
  grid-template-rows: auto auto !important;
  gap: 24px !important;
  align-items: stretch !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* La columna izquierda se "desarma" para que sus filas internas
   puedan participar en el grid principal */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child {
  display: contents !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Fila del título: ocupa todo el ancho arriba */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 34px !important;
  margin: 0 !important;
  background: rgba(255,255,255,.84) !important;
  border: 1px solid rgba(220,231,244,.95) !important;
  border-radius: 32px !important;
  box-shadow: var(--pc-shadow-soft) !important;
  box-sizing: border-box !important;
}

/* El contenido interno del título no debe dividirse en columnas */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child
> .dv-row-inner {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:first-child
.dv-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
}

/* Fila de tarjetas: queda debajo del título, a la izquierda */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2) {
  grid-column: 1 / 2 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Las dos tarjetas siguen en doble columna */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
> .dv-row-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: stretch !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Columnas internas de las tarjetas */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
.dv-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  padding: 0 !important;
  display: flex !important;
}

/* Tarjetas ocupan toda la altura */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:first-child
> .dv-row:nth-child(2)
.dv-blurb {
  width: 100% !important;
  height: 100% !important;
}

/* Resultados: ahora quedan abajo, al lado de las tarjetas,
   no alineados con el título */
body.page-servicios .dv-section:not(:first-of-type)
> .dv-row:first-child
> .dv-row-inner
> .dv-column:nth-child(2) {
  grid-column: 2 / 3 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

/* Ajuste del texto del título */
body.page-servicios .dv-section:not(:first-of-type)
h2.dv-heading {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}

body.page-servicios .dv-section:not(:first-of-type)
.dv-text {
  max-width: 920px !important;
}

/* En tablets pequeñas y celulares: todo en una columna */
@media screen and (max-width: 900px) {
  body.page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
  }

  body.page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:first-child
  > .dv-row:first-child {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 26px !important;
  }

  body.page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:first-child
  > .dv-row:nth-child(2) {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  body.page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:nth-child(2) {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
}

/* En celular: las tarjetas pasan a una sola columna */
@media screen and (max-width: 767px) {
  body.page-servicios .dv-section:not(:first-of-type)
  > .dv-row:first-child
  > .dv-row-inner
  > .dv-column:first-child
  > .dv-row:nth-child(2)
  > .dv-row-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
}
