/* ============================================================
   Grupo Integral VC — Responsive V113
   Capa ADITIVA: no reemplaza tus CSS actuales.
   Pensada para el proyecto V111+ y para conservar el diseño desktop.
   Breakpoints principales: 1180 / 980 / 820 / 700 / 560 / 430 px.
   ============================================================ */

:root{
  --gpv-r-gutter:clamp(14px,3.4vw,34px);
  --gpv-r-header-h:78px;
}

html{
  width:100%;
  max-width:100%;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}

@supports not (overflow:clip){
  body{overflow-x:hidden}
}

main,section,header,footer,nav,div{min-width:0}

/* Evita que WebGL genere scroll horizontal visual. */
.v53-molten-metal,
.v52-global-bg,
.v51-global-gl,
.solutions-fluid,
.contact-v101-galaxy,
.footer-molten-canvas,
.about-v86-strands,
.about-v86-antigravity{
  max-width:100vw!important;
}

/* ============================================================
   HEADER / NAV — laptop y móvil
   ============================================================ */
@media (min-width:981px) and (max-width:1180px){
  body .home-header .home-logo{
    left:18px!important;
    width:170px!important;
    height:86px!important;
  }
  body .home-header .home-logo img{
    width:170px!important;
    max-height:86px!important;
  }
  body .home-header .site-nav-wrap{
    max-width:calc(100vw - 225px)!important;
  }
  body .home-header .site-nav{
    max-width:100%!important;
    padding-inline:14px!important;
  }
  body .home-header .nav-links{gap:9px!important}
  body .home-header .nav-link{
    font-size:12.5px!important;
    padding-inline:9px!important;
    white-space:nowrap;
  }
  body .home-header .nav-contact{padding-inline:18px!important}
}

@media (max-width:980px){
  :root{--gpv-r-header-h:74px}

  body .home-header{
    height:var(--gpv-r-header-h)!important;
    pointer-events:none;
  }

  body .home-header .home-logo{
    top:8px!important;
    left:12px!important;
    width:138px!important;
    height:62px!important;
    pointer-events:auto;
  }
  body .home-header .home-logo img{
    width:138px!important;
    max-height:62px!important;
  }

  body .home-header .site-nav-wrap{
    top:11px!important;
    right:12px!important;
    left:auto!important;
    transform:none!important;
    width:auto!important;
    pointer-events:auto;
  }

  body .home-header .site-nav{
    width:52px!important;
    max-width:none!important;
    min-height:52px!important;
    padding:0!important;
    overflow:visible!important;
    border:1px solid rgba(131,205,245,.13)!important;
    border-radius:18px!important;
    background:linear-gradient(180deg,rgba(33,77,112,.72),rgba(4,20,40,.84))!important;
    backdrop-filter:blur(20px) saturate(145%)!important;
    -webkit-backdrop-filter:blur(20px) saturate(145%)!important;
    box-shadow:0 14px 38px rgba(0,5,18,.28),inset 0 1px 0 rgba(255,255,255,.09)!important;
  }

  body .home-header .site-nav::before{display:none!important}

  body .home-header .nav-burger{
    display:grid!important;
    place-items:center!important;
    width:52px!important;
    height:52px!important;
    padding:0!important;
    color:#f2f9ff!important;
    font-size:20px!important;
    line-height:1!important;
    background:transparent!important;
    border:0!important;
    border-radius:18px!important;
  }

  body .home-header .nav-links{
    position:fixed!important;
    top:calc(var(--gpv-r-header-h) + 6px)!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-height:calc(100svh - var(--gpv-r-header-h) - 20px)!important;
    overflow:auto!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:3px!important;
    padding:12px!important;
    border:1px solid rgba(124,195,240,.15)!important;
    border-radius:22px!important;
    background:linear-gradient(160deg,rgba(7,26,49,.96),rgba(3,13,29,.97))!important;
    box-shadow:0 24px 64px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.055)!important;
    backdrop-filter:blur(24px) saturate(145%)!important;
    -webkit-backdrop-filter:blur(24px) saturate(145%)!important;
    overscroll-behavior:contain;
  }

  body .home-header .nav-links.show{display:flex!important}

  body .home-header .nav-link{
    width:100%!important;
    min-height:44px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:0 14px!important;
    border:0!important;
    border-radius:13px!important;
    color:rgba(232,243,253,.88)!important;
    font-size:15px!important;
    line-height:1!important;
    text-shadow:none!important;
  }

  body .home-header .nav-link:hover,
  body .home-header .nav-link:focus-visible,
  body .home-header .nav-link.is-current{
    color:#fff!important;
    background:rgba(86,178,239,.09)!important;
  }

  body .home-header .nav-contact{
    margin:4px 0 0!important;
    min-height:46px!important;
    justify-content:center!important;
    background:linear-gradient(100deg,#267fff,#315de9 56%,#664cff)!important;
    box-shadow:0 9px 26px rgba(40,102,255,.20)!important;
  }
}

@media (max-width:480px){
  :root{--gpv-r-header-h:68px}
  body .home-header .home-logo{
    top:7px!important;
    left:9px!important;
    width:116px!important;
    height:56px!important;
  }
  body .home-header .home-logo img{
    width:116px!important;
    max-height:56px!important;
  }
  body .home-header .site-nav-wrap{top:9px!important;right:9px!important}
  body .home-header .site-nav,
  body .home-header .nav-burger{
    width:48px!important;
    height:48px!important;
    min-height:48px!important;
    border-radius:16px!important;
  }
  body .home-header .nav-links{
    left:9px!important;
    right:9px!important;
    padding:10px!important;
    border-radius:19px!important;
  }
  body .home-header .nav-link{min-height:42px!important;font-size:14px!important}
}

/* ============================================================
   FOOTER GLOBAL
   ============================================================ */
@media (max-width:900px){
  body .footer-modern.footer-v55 .footer-modern-inner{
    width:min(100% - 34px,1180px)!important;
    padding-top:40px!important;
    padding-bottom:18px!important;
  }
  body .footer-v55 .footer-modern-grid{
    gap:30px 26px!important;
  }
  body .footer-v55 .footer-modern-brand p{
    max-width:480px!important;
  }
  body .footer-v55 .footer-contact-item{
    overflow-wrap:anywhere;
  }
}

@media (max-width:700px){
  body .footer-modern.footer-v55 .footer-modern-inner{
    width:min(100% - 28px,1180px)!important;
    padding-top:36px!important;
  }
  body .footer-v55 .footer-modern-grid{
    grid-template-columns:1fr 1fr!important;
    gap:28px 20px!important;
  }
  body .footer-v55 .footer-modern-brand{grid-column:1/-1!important}
  body .footer-v55 .footer-contact-col{grid-column:1/-1!important}
  body .footer-v55 .footer-modern-bottom{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px 16px!important;
    margin-top:24px!important;
  }
}

@media (max-width:480px){
  body .footer-v55 .footer-modern-grid{
    grid-template-columns:1fr!important;
    gap:25px!important;
  }
  body .footer-v55 .footer-modern-brand,
  body .footer-v55 .footer-contact-col{grid-column:auto!important}
  body .footer-v55 .footer-logo span{font-size:18px!important}
  body .footer-v55 .footer-modern-label{margin-bottom:12px!important}
  body .footer-v55 .footer-modern-bottom{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
}

/* ============================================================
   INICIO — experiencia estática y legible en tablet / móvil
   ============================================================ */
@media (max-width:900px){
  body.home-v42 .v42-opening-sticky{min-height:100svh!important}
  body.home-v42 .v42-opening-brand{top:44%!important}
  body.home-v42 .v42-opening-logo{
    width:min(80vw,610px)!important;
    max-height:36svh!important;
  }
  body.home-v42 .v42-opening-hint{bottom:16px!important}

  body.home-v42 .v42-cinema-sticky{
    padding-top:calc(var(--gpv-r-header-h) + 22px)!important;
    padding-bottom:28px!important;
  }
  body.home-v42 .v42-scene{
    padding:48px var(--gpv-r-gutter)!important;
  }
  body.home-v42 .v42-scene-title{
    margin-bottom:32px!important;
  }
  body.home-v42 .v42-offer{
    grid-template-columns:150px minmax(0,1fr)!important;
    gap:24px!important;
    margin-bottom:46px!important;
  }
  body.home-v42 .v42-offer-image{width:145px!important}
  body.home-v42 .v42-offer-copy h3{
    font-size:clamp(28px,5vw,42px)!important;
    margin-bottom:12px!important;
  }
  body.home-v42 .v42-offer-copy p{font-size:14px!important;line-height:1.68!important}
  body.home-v42 .v42-about-main{gap:34px!important}
  body.home-v42 .v42-about-statement{font-size:clamp(38px,7.5vw,60px)!important}
  body.home-v42 .v42-priorities{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:28px!important;
    margin-top:42px!important;
  }
}

@media (max-width:700px){
  body.home-v42 .v42-opening-logo{width:min(84vw,520px)!important}
  body.home-v42 .v42-scene{padding:42px 18px!important}
  body.home-v42 .v42-scene-title{margin-bottom:26px!important}

  body.home-v42 .v42-offer{
    grid-template-columns:1fr!important;
    gap:18px!important;
    text-align:center!important;
    margin-bottom:54px!important;
  }
  body.home-v42 .v42-offer-image{width:132px!important}
  body.home-v42 .v42-offer-copy{max-width:560px!important;margin-inline:auto!important}
  body.home-v42 .v42-about-statement{
    font-size:clamp(33px,10vw,48px)!important;
    line-height:1.01!important;
  }
  body.home-v42 .v42-priorities{grid-template-columns:1fr!important;gap:24px!important}

  /* Equipo: evita que los retratos de los extremos se salgan de la pantalla. */
  body.home-v42 .v42-scene-team{min-height:auto!important}
  body.home-v42 .v42-team-map{
    width:100%!important;
    height:auto!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:26px 10px!important;
    align-items:start!important;
    padding:4px 0 10px!important;
  }
  body.home-v42 .v42-team-lines{display:none!important}
  body.home-v42 .v42-member,
  body.home-v42 .v42-javier,
  body.home-v42 .v42-kenia,
  body.home-v42 .v42-cristian,
  body.home-v42 .v42-federico,
  body.home-v42 .v42-hannia,
  body.home-v42 .v42-eduardo,
  body.home-v42 .v42-karina,
  body.home-v42 .v42-enrique{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:100%!important;
    transform:none!important;
    opacity:1!important;
    visibility:visible!important;
  }
  body.home-v42 .v42-javier{grid-column:1/-1!important}
  body.home-v42 .v42-member>div{width:82px!important;height:82px!important}
  body.home-v42 .v42-javier>div{width:96px!important;height:96px!important}
  body.home-v42 .v42-member h3{font-size:12px!important}
  body.home-v42 .v42-member p{font-size:9px!important}
}

@media (max-width:430px){
  body.home-v42 .v42-opening-logo{width:min(88vw,430px)!important}
  body.home-v42 .v42-scene{padding-inline:14px!important}
  body.home-v42 .v42-about-statement{font-size:32px!important}
  body.home-v42 .v42-about-points article{padding-block:16px!important}
  body.home-v42 .v42-priorities p{font-size:12.5px!important}
}

/* ============================================================
   ACERCA DE — conserva la experiencia, pero cabe en pantallas pequeñas
   ============================================================ */
@media (max-width:820px){
  body.about-v74-page .about-v74-eyebrow{
    top:calc(var(--gpv-r-header-h) + 24px)!important;
    font-size:10px!important;
    letter-spacing:.30em!important;
  }
  body.about-v74-page .about-v74-stage{
    inset:calc(var(--gpv-r-header-h) + 62px) 0 88px!important;
  }
  body.about-v74-page .about-v74-card{
    width:min(88vw,620px)!important;
    height:min(55svh,480px)!important;
    min-height:390px!important;
  }
  body.about-v74-page .about-v74-progress{bottom:20px!important;width:82vw!important}
  body.about-v74-page .about-v74-hint{bottom:42px!important}
}

@media (max-width:560px){
  body.about-v74-page .about-v74-eyebrow{
    top:calc(var(--gpv-r-header-h) + 18px)!important;
    width:100%!important;
    text-align:center!important;
    letter-spacing:.25em!important;
  }
  body.about-v74-page .about-v74-stage{
    inset:calc(var(--gpv-r-header-h) + 55px) 0 82px!important;
  }
  body.about-v74-page .about-v74-card{
    width:92vw!important;
    height:min(59svh,510px)!important;
    min-height:405px!important;
  }
  body.about-v74-page .about-v74-surface,
  body.about-v74-page .about-v74-card,
  body.about-v74-page .about-v74-electric::after{border-radius:24px!important}
  body.about-v74-page .about-v74-content h2{
    max-width:88%!important;
    font-size:clamp(28px,8vw,40px)!important;
  }
  body.about-v74-page .about-v74-card[data-card="3"] .about-v74-content p,
  body.about-v74-page .about-v74-card[data-card="4"] .about-v74-content p,
  body.about-v74-page .about-v74-card[data-card="5"] .about-v74-content p,
  body.about-v74-page .about-v74-card[data-card="6"] .about-v74-content p{
    font-size:11.2px!important;
    line-height:1.42!important;
  }
  body.about-v74-page .about-v74-progress{width:88vw!important}
  body.about-v74-page .about-v74-hint{font-size:8px!important;letter-spacing:.12em!important}
}

@media (max-width:900px) and (max-height:560px) and (orientation:landscape){
  body.about-v74-page .about-v74-stage{inset:92px 0 58px!important}
  body.about-v74-page .about-v74-card{height:68svh!important;min-height:300px!important;width:min(72vw,650px)!important}
  body.about-v74-page .about-v74-eyebrow{top:76px!important}
  body.about-v74-page .about-v74-progress{bottom:10px!important}
  body.about-v74-page .about-v74-hint{display:none!important}
}

/* ============================================================
   SOLUCIONES
   ============================================================ */
@media (max-width:980px){
  body.solutions-v81-page .solutions-v81-hero{
    padding:calc(var(--gpv-r-header-h) + 28px) 20px 44px!important;
  }
  body.solutions-v81-page .solutions-v81-heading{width:min(760px,94vw)!important}
  body.solutions-v81-page .solutions-v81-heading p{width:min(600px,94vw)!important}
  body.solutions-v81-page .solutions-v81-category{
    width:min(430px,92vw)!important;
    margin-top:18px!important;
  }
  body.solutions-v81-page .solutions-v81-rail-shell{width:100vw!important;min-height:440px!important}
  body.solutions-v81-page .solutions-v81-rail-window{
    width:100%!important;
    padding:14px 0 36px!important;
    touch-action:pan-x;
  }
  body.solutions-v81-page .solutions-v81-rail{
    gap:17px!important;
    padding-inline:calc(50vw - 185px)!important;
  }
  body.solutions-v81-page .solutions-v81-card{
    flex-basis:min(74vw,330px)!important;
    height:min(58svh,440px)!important;
    min-height:382px!important;
  }
}

@media (max-width:640px){
  body.solutions-v81-page .solutions-v81-hero{
    padding:calc(var(--gpv-r-header-h) + 20px) 12px 36px!important;
  }
  body.solutions-v81-page .solutions-v81-heading h1,
  body.solutions-v81-page .solutions-v81-heading h1.solutions-v82-masked-title{
    font-size:10.5px!important;
    letter-spacing:.25em!important;
    text-indent:.25em!important;
  }
  body.solutions-v81-page .solutions-v81-heading p{
    font-size:13.5px!important;
    line-height:1.55!important;
  }
  body.solutions-v81-page .solutions-v81-category{
    width:min(340px,94vw)!important;
    margin-top:16px!important;
  }
  body.solutions-v81-page .solutions-v81-category-btn{
    min-height:46px!important;
    font-size:13.5px!important;
  }
  body.solutions-v81-page .solutions-v81-rail-shell{min-height:420px!important}
  body.solutions-v81-page .solutions-v81-rail{
    padding-inline:calc(50vw - 142px)!important;
    gap:14px!important;
  }
  body.solutions-v81-page .solutions-v81-card{
    flex-basis:min(82vw,288px)!important;
    height:390px!important;
    min-height:0!important;
    padding:22px 17px 18px!important;
  }
  body.solutions-v81-page .solutions-v81-card h3,
  body.solutions-v81-page .solutions-v81-card-title{
    font-size:21px!important;
    min-height:76px!important;
  }
  body.solutions-v81-page .solutions-v81-modal{padding:8px!important}
  body.solutions-v81-page .solutions-v81-modal-panel{
    width:100%!important;
    max-height:92svh!important;
    overflow:auto!important;
    padding:46px 20px 28px!important;
    border-radius:21px!important;
  }
  body.solutions-v81-page .solutions-v81-modal-panel h2{
    max-width:86%!important;
    font-size:clamp(26px,8vw,34px)!important;
  }
}

/* ============================================================
   CLIENTES
   ============================================================ */
@media (max-width:900px){
  body.clients-v102-body .clients-v97-hero{
    margin-top:0!important;
    padding:calc(var(--gpv-r-header-h) + 26px) 0 38px!important;
  }
  body.clients-v102-body .clients-v97-heading{
    width:min(760px,94vw)!important;
    margin-bottom:24px!important;
  }
  body.clients-v102-body .clients-v97-copy{
    width:min(650px,92vw)!important;
    font-size:14px!important;
    line-height:1.6!important;
  }
  body.clients-v102-body .clients-v97-loops{
    gap:10px!important;
  }
  body.clients-v102-body .clients-logo-row,
  body.clients-v102-body .clients-logo-row--featured{
    --row-height:86px!important;
  }
  body.clients-v102-body .clients-logo-item{width:142px!important}
  body.clients-v102-body .clients-logo-item img,
  body.clients-v102-body .clients-logo-row--featured .clients-logo-item img{
    max-height:58px!important;
    max-width:126px!important;
  }
}

@media (max-width:640px){
  body.clients-v102-body .clients-v97-hero{
    padding:calc(var(--gpv-r-header-h) + 18px) 0 30px!important;
  }
  body.clients-v102-body .clients-v97-heading{
    width:min(100% - 24px,700px)!important;
    margin-bottom:18px!important;
  }
  body.clients-v102-body .clients-v97-heading h1{
    font-size:10.5px!important;
    letter-spacing:.25em!important;
    text-indent:.25em!important;
  }
  body.clients-v102-body .clients-v97-copy{
    margin-top:12px!important;
    font-size:13.2px!important;
    line-height:1.55!important;
  }
  body.clients-v102-body .clients-v97-loops{gap:7px!important}
  body.clients-v102-body .clients-logo-row,
  body.clients-v102-body .clients-logo-row--featured{
    --row-height:72px!important;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)!important;
    mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)!important;
  }
  body.clients-v102-body .clients-logo-item{width:118px!important}
  body.clients-v102-body .clients-logo-item img,
  body.clients-v102-body .clients-logo-row--featured .clients-logo-item img{
    max-height:48px!important;
    max-width:104px!important;
  }
  body.clients-v102-body .clients-v97-caption{
    width:min(92vw,600px)!important;
    margin-top:20px!important;
  }
  body.clients-v102-body .clients-v97-caption p{
    font-size:8px!important;
    letter-spacing:.14em!important;
  }
}

/* ============================================================
   NOVEDADES
   ============================================================ */
@media (max-width:900px){
  body.novedades-v110-page .novedades-v110-hero{
    min-height:600px!important;
    padding:calc(var(--gpv-r-header-h) + 28px) 16px 38px!important;
  }
  body.novedades-v110-page .novedades-v110-warptext{
    width:min(96vw,980px)!important;
    height:270px!important;
  }
}

@media (max-width:640px){
  body.novedades-v110-page .novedades-v110-hero{
    min-height:520px!important;
    padding:calc(var(--gpv-r-header-h) + 18px) 10px 32px!important;
  }
  body.novedades-v110-page .novedades-v110-heading h1{
    font-size:10.5px!important;
    letter-spacing:.25em!important;
    text-indent:.25em!important;
  }
  body.novedades-v110-page .novedades-v110-warptext{
    width:100%!important;
    height:190px!important;
    margin-top:10px!important;
  }
  body.novedades-v110-page .novedades-v110-copy{
    width:min(92vw,600px)!important;
    margin-top:4px!important;
    font-size:16px!important;
    line-height:1.5!important;
  }
}

@media (max-width:430px){
  body.novedades-v110-page .novedades-v110-warptext{height:165px!important}
  body.novedades-v110-page .novedades-v110-copy{font-size:15px!important}
}

/* ============================================================
   CONTACTO — tarjeta colgante, formulario y flip
   ============================================================ */
@media (max-width:900px){
  body.contact-v102-page .contact-v93-hero{
    min-height:850px!important;
    padding:calc(var(--gpv-r-header-h) + 10px) 12px 34px!important;
  }
  body.contact-v102-page .contact-v93-stage{
    width:100%!important;
    height:760px!important;
  }
  body.contact-v102-page .contact-v93-card-shell{
    top:82px!important;
    width:min(640px,92vw)!important;
    height:610px!important;
  }
  body.contact-v102-page .contact-v93-lanyard{
    inset:-166px 0 auto 0!important;
  }
}

@media (max-width:680px){
  body.contact-v102-page .contact-v93-hero{
    min-height:930px!important;
    padding:calc(var(--gpv-r-header-h) + 10px) 8px 28px!important;
    align-items:start!important;
  }
  body.contact-v102-page .contact-v93-stage{height:830px!important}
  body.contact-v102-page .contact-v93-card-shell{
    top:86px!important;
    width:min(94vw,520px)!important;
    height:728px!important;
  }
  body.contact-v102-page .contact-v93-lanyard{
    inset:-170px 0 auto 0!important;
    height:875px!important;
  }
  body.contact-v102-page .contact-v93-front,
  body.contact-v102-page .contact-v93-back{
    padding:24px 20px 22px!important;
    border-radius:26px!important;
  }
  body.contact-v102-page .contact-v93-front-copy{margin-top:14px!important}
  body.contact-v102-page .contact-v93-front-copy h1{font-size:clamp(38px,11vw,48px)!important}
  body.contact-v102-page .contact-v93-front-copy>p:last-child{
    margin-top:8px!important;
    font-size:12px!important;
    line-height:1.45!important;
  }
  body.contact-v102-page .contact-v93-form{
    margin-top:13px!important;
    gap:9px!important;
  }
  body.contact-v102-page .contact-v93-row{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  body.contact-v102-page .contact-v93-field{gap:5px!important}
  body.contact-v102-page .contact-v93-field input,
  body.contact-v102-page .contact-v93-field textarea{
    min-height:42px!important;
    padding:10px 11px!important;
    font-size:16px!important; /* evita zoom automático de iOS */
  }
  body.contact-v102-page .contact-v93-field textarea{
    min-height:72px!important;
    max-height:80px!important;
  }
  body.contact-v102-page .contact-v93-form-footer{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
  }
  body.contact-v102-page .contact-v93-submit{
    min-width:150px!important;
    padding:11px 16px!important;
  }
  body.contact-v102-page .contact-v93-flip-link{
    max-width:190px!important;
    text-align:right!important;
  }
  body.contact-v102-page .contact-v93-back-content{padding-top:18px!important}
  body.contact-v102-page .contact-v93-back-content h2{font-size:clamp(42px,12vw,52px)!important}
  body.contact-v102-page .contact-v93-contact-list{grid-template-columns:1fr!important}
  body.contact-v102-page .contact-v93-contact-list>div{grid-column:auto!important}
}

@media (max-width:430px){
  body.contact-v102-page .contact-v93-hero{
    min-height:940px!important;
    padding-top:calc(var(--gpv-r-header-h) + 6px)!important;
  }
  body.contact-v102-page .contact-v93-stage{height:842px!important}
  body.contact-v102-page .contact-v93-card-shell{
    top:82px!important;
    width:calc(100vw - 18px)!important;
    height:744px!important;
  }
  body.contact-v102-page .contact-v93-front,
  body.contact-v102-page .contact-v93-back{padding-inline:17px!important}
  body.contact-v102-page .contact-v93-eyebrow{font-size:9px!important;letter-spacing:.22em!important}
  body.contact-v102-page .contact-v93-front-copy h1{font-size:38px!important}
  body.contact-v102-page .contact-v93-form-footer{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:5px!important;
  }
  body.contact-v102-page .contact-v93-flip-link{
    max-width:none!important;
    text-align:left!important;
  }
  body.contact-v102-page .contact-v93-hint{font-size:7.5px!important;width:94%!important}
}

/* ============================================================
   POLÍTICA DE PRIVACIDAD
   ============================================================ */
@media (max-width:720px){
  body.privacy-v110-page .privacy-v110-main{
    width:min(100% - 22px,1080px)!important;
    padding:calc(var(--gpv-r-header-h) + 32px) 0 56px!important;
  }
  body.privacy-v110-page .privacy-v110-hero{margin-bottom:28px!important}
  body.privacy-v110-page .privacy-v110-eyebrow{
    font-size:10px!important;
    letter-spacing:.25em!important;
    text-indent:.25em!important;
  }
  body.privacy-v110-page .privacy-v110-hero h1{
    font-size:clamp(32px,10vw,46px)!important;
  }
  body.privacy-v110-page .privacy-v110-hero p{
    font-size:14px!important;
    line-height:1.6!important;
  }
  body.privacy-v110-page .privacy-v110-content{
    padding:24px 18px!important;
    border-radius:21px!important;
  }
  body.privacy-v110-page .privacy-v110-content h2{font-size:24px!important}
  body.privacy-v110-page .privacy-v110-content h3{font-size:17px!important}
  body.privacy-v110-page .privacy-v110-content p,
  body.privacy-v110-page .privacy-v110-content li{
    font-size:14.5px!important;
    line-height:1.72!important;
    overflow-wrap:anywhere;
  }
}

/* ============================================================
   PÁGINAS LEGACY: servicios / productos / detalle
   ============================================================ */
@media (max-width:980px){
  body .page-shell,
  body .solution-page{overflow-x:hidden!important}
  body .top-space,
  body .solution-top-space{height:var(--gpv-r-header-h)!important}
  body .page-hero{padding-inline:var(--gpv-r-gutter)!important}
  body .page-hero-box{width:100%!important}
  body .list-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body .detail-layout{grid-template-columns:1fr!important}
}

@media (max-width:640px){
  body .page-hero{padding-inline:14px!important}
  body .page-hero-box{padding:26px 20px!important;border-radius:22px!important}
  body .page-hero-box h1{font-size:clamp(30px,10vw,44px)!important}
  body .list-grid{grid-template-columns:1fr!important;gap:16px!important}
  body .list-card{padding:22px 18px!important}
  body .solution-content-section>.container{width:calc(100% - 24px)!important}
}

/* ============================================================
   ALTURAS PEQUEÑAS / LANDSCAPE
   ============================================================ */
@media (max-width:980px) and (max-height:560px) and (orientation:landscape){
  :root{--gpv-r-header-h:60px}
  body .home-header{height:60px!important}
  body .home-header .home-logo{top:4px!important;width:112px!important;height:52px!important}
  body .home-header .home-logo img{width:112px!important;max-height:52px!important}
  body .home-header .site-nav-wrap{top:6px!important}
  body .home-header .site-nav,
  body .home-header .nav-burger{width:46px!important;height:46px!important;min-height:46px!important}
  body .home-header .nav-links{top:64px!important;max-height:calc(100svh - 72px)!important}

  body.contact-v102-page .contact-v93-hero{padding-top:62px!important}
  body.solutions-v81-page .solutions-v81-hero,
  body.clients-v102-body .clients-v97-hero,
  body.novedades-v110-page .novedades-v110-hero{padding-top:72px!important}
}

/* ============================================================
   REDUCED MOTION / ACCESIBILIDAD
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
  }
}


/* ============================================================
   V113 — Robustez adicional: móvil, tablet, laptop, ultrawide
   ============================================================ */

/* Media siempre fluido y sin desbordes accidentales. */
img,svg,video,canvas{max-width:100%}
img,svg,video{height:auto}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
:where(a,button,input,textarea,select):focus-visible{outline:2px solid rgba(106,220,255,.72);outline-offset:3px}

/* Unidades de viewport con fallback para navegadores móviles antiguos. */
@supports not (height:100svh){
  body.home-v42 .v42-opening-sticky,
  body.about-v74-page .about-v74-sticky{height:100vh!important}
  body.contact-v102-page .contact-v93-hero{min-height:100vh}
}

/* Pantallas muy anchas: el contenido conserva proporción y no se dispersa. */
@media (min-width:1680px){
  body.home-v42 .v42-about-main,
  body.home-v42 .v42-priorities{left:max(6.5vw,calc((100vw - 1540px)/2))!important;right:max(6.5vw,calc((100vw - 1540px)/2))!important}
  body.solutions-v81-page .solutions-v81-rail-shell{max-width:1680px!important;margin-inline:auto!important}
  body.clients-v102-body .clients-v97-heading,
  body.clients-v102-body .clients-v97-copy{max-width:1100px!important}
}

/* Laptop de poca altura: evita cortes verticales. */
@media (min-width:981px) and (max-height:760px){
  body.solutions-v81-page .solutions-v81-hero{padding-top:92px!important;padding-bottom:34px!important}
  body.solutions-v81-page .solutions-v81-card{height:min(55vh,430px)!important}
  body.contact-v102-page .contact-v93-card-shell{top:58px!important;transform:translateX(-50%) scale(.93)!important;transform-origin:top center!important}
  body.about-v74-page .about-v74-stage{inset:112px 0 74px!important}
  body.about-v74-page .about-v74-card{height:min(58vh,470px)!important}
}

/* Tablet: Acerca mantiene storytelling pero el contenido cabe de forma limpia. */
@media (max-width:820px){
  body.about-v74-page .about-v113-card-icon{right:7%;top:10%;width:64px}
  body.about-v74-page .about-v113-values-grid{left:7%;right:7%;top:30%;gap:11px}
  body.about-v74-page .about-v113-value{grid-template-columns:42px 1fr;gap:9px;padding:10px}
  body.about-v74-page .about-v113-value>img{width:42px;height:42px}
  body.about-v74-page .about-v113-value p{font-size:10.7px!important;line-height:1.38!important}
}

@media (max-width:560px){
  /* Inicio */
  body.home-v42 .v42-opening-brand{width:min(92vw,560px)!important}
  body.home-v42 .v113-opening-contact{max-width:86vw}
  body.home-v42 .v42-about-points p{font-size:14.5px!important;line-height:1.55!important}

  /* Acerca: valores en una sola columna, aún dentro de la misma tarjeta. */
  body.about-v74-page .about-v74-card{height:min(67svh,570px)!important;min-height:455px!important}
  body.about-v74-page .about-v113-card-icon{right:6%;top:10.5%;width:56px}
  body.about-v74-page .about-v113-values-grid{
    left:6%;right:6%;top:29%;grid-template-columns:1fr;gap:7px;
  }
  body.about-v74-page .about-v113-value{
    grid-template-columns:36px minmax(0,1fr);gap:8px;padding:7px 9px;border-radius:13px;
  }
  body.about-v74-page .about-v113-value>img{width:36px;height:36px}
  body.about-v74-page .about-v113-value h3{font-size:11.5px;margin-bottom:2px}
  body.about-v74-page .about-v113-value p{font-size:9.8px!important;line-height:1.30!important}
  body.about-v74-page .about-v74-content>p{left:7%!important;width:86%!important;top:35%!important;font-size:13.8px!important;line-height:1.55!important}

  /* Modal de soluciones */
  body.solutions-v81-page .solutions-v88-modal-grid{grid-template-columns:1fr!important}
  body.solutions-v81-page .solutions-v88-modal-lead{font-size:14.2px!important;line-height:1.58!important}
  body.solutions-v81-page .solutions-v88-modal-section p,
  body.solutions-v81-page .solutions-v88-modal-section li{font-size:12.6px!important;line-height:1.48!important}
}

/* Teléfonos muy estrechos (320–390px). */
@media (max-width:390px){
  body .home-header .home-logo{width:106px!important}
  body .home-header .home-logo img{width:106px!important}
  body.home-v42 .v42-opening-logo{width:min(91vw,400px)!important}
  body.home-v42 .v42-scene{padding-inline:11px!important}
  body.home-v42 .v42-team-map{grid-template-columns:1fr!important}
  body.home-v42 .v42-javier{grid-column:auto!important}

  body.about-v74-page .about-v74-card{width:94vw!important;height:min(70svh,590px)!important}
  body.about-v74-page .about-v74-content h2{font-size:27px!important;max-width:74%!important}
  body.about-v74-page .about-v113-card-icon{width:50px;right:5.5%}
  body.about-v74-page .about-v113-values-grid{top:28.5%;left:5%;right:5%}
  body.about-v74-page .about-v113-value p{font-size:9.2px!important}

  body.solutions-v81-page .solutions-v81-category{width:calc(100vw - 20px)!important}
  body.solutions-v81-page .solutions-v81-card{flex-basis:min(86vw,278px)!important;height:376px!important}
  body.contact-v102-page .contact-v93-card-shell{width:calc(100vw - 12px)!important}
}

/* iPad / tablets táctiles: no depender de hover. */
@media (hover:none) and (pointer:coarse){
  .solutions-v81-card:hover::before{opacity:.52!important}
  .v113-opening-contact:hover{transform:none}
  body.about-v74-page .about-v74-shell{transition:none!important}
}

/* Fallback cuando blur de cristal no está disponible. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body .home-header .site-nav,
  body .home-header .nav-links,
  .v113-opening-contact{background:rgba(4,18,38,.95)!important}
  body.about-v74-page .about-v74-surface{background:rgba(7,18,39,.97)!important}
}
