/* Ajustes de lectura y ancho. Se corrigen cajas y distribución antes de contener
   los efectos decorativos; los textos y controles no se recortan. */
html,body{max-width:100%;width:100%;overflow-x:clip}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
main,[data-view],.wrap,.bar-in,.cgrid,.stats,.units,.mosaic,.ogrid,.rel-grid,.facts,.certs,.resp-grid,.obras-head,.ohead-r,.tl{min-width:0;max-width:100%}
.cgrid>*,.stats>*,.units>*,.mosaic>*,.ogrid>*,.rel-grid>*,.facts>*,.certs>*,.resp-grid>*,.obras-head>*,.ohead-r>*,.tl>*,.svc>*,.bar-in>*{min-width:0}
.crow a,.cv-act p,.fbot,.fact dd,.cert .q,.cert .dl,.resp-it,.tli,.orow,.svc .nm,.svc .dsc{overflow-wrap:anywhere}
.btn{max-width:100%;min-height:44px;white-space:normal;line-height:1.35;text-align:center;justify-content:center;overflow-wrap:anywhere}
.btn svg{flex-shrink:0}
.tl-work{display:block;color:inherit;text-decoration:none;margin-top:12px}
.tl-work+.tl-work{padding-top:14px;border-top:1px solid var(--line);margin-top:16px}
.tl-work .nm{display:block}
.tl-work[href]:hover .nm{color:var(--obra-lit)}
.tl-work:focus-visible{outline-offset:2px}
.fsearch{width:min(340px,100%);min-width:0;max-width:100%}
.gal-strip{min-width:0;max-width:100%;overscroll-behavior-x:contain;grid-auto-columns:minmax(min(280px,100%),1fr)}
.cert>div{min-width:0}
#trabaja .cortina-fix>img{object-position:center;animation:none}
@media(max-width:980px){
  :root{--pad:clamp(18px,4.5vw,34px)}
  header.bar,main,footer.foot{width:100%;max-width:100%;margin-inline:0}
  body{padding-block:0}
  header.bar{top:0}
  .bar-in{gap:12px}
  .reel-ui>.wrap{padding-right:var(--pad)}
  .reel-ui{align-items:flex-end}
  .rf{justify-items:center;padding:6svh var(--pad) 0;align-items:start}
  .rf img{width:100%;max-width:100%;height:44svh}
  .reel-meta{max-width:100%}
  .stats,.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats .num{min-width:0!important}
  .svc{grid-template-columns:auto minmax(0,1fr);gap:14px}
  .svc .arrow{display:none}
  .svc .nm{font-size:clamp(1.15rem,5.1vw,2rem);background:none;-webkit-text-fill-color:currentColor}
  .tl{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;overflow:visible}
  /* Los controles fijos se desvanecen dentro de su caja, no salen del viewport. */
  header.bar .ltog,header.bar .mtrig,header.bar .burger,.menu-fx{transform:none}
  .beat .bc{white-space:normal;max-width:45%;font-size:.54rem}
  .bc b{overflow-wrap:anywhere}
}
@media(max-width:600px){
  .tl{grid-template-columns:minmax(0,1fr)}
  .ohead-r{flex-wrap:wrap;align-items:stretch;gap:12px}
  .fsearch{width:100%}
  .bar-in{gap:9px}
  .brand{gap:6px}
  .brand .mark{height:28px}
  .wmk{font-size:clamp(.82rem,3.9vw,1.12rem)}
  .ltog{flex-shrink:0}
  .burger{font-size:.64rem;gap:6px}
  .burger s{width:16px}
  .cert{gap:14px}
  .cert img{width:60px}
  .cert .n{font-size:1.35rem}
  .cert .dl{display:block}
  .frow{gap:8px 14px}
  .facts{gap:20px 14px}
  .facts .fact dd{font-size:.95rem}
  .proc-rail{flex-wrap:wrap}
  .proc-list{padding-inline:0}
  #trabaja{height:auto}
  #trabaja .cortina-fix{position:relative;height:auto;min-height:0;display:block;overflow:visible;background:transparent}
  #trabaja .cortina-fix>img{position:relative;width:100%;height:auto;object-fit:contain;opacity:1;mask-image:none;-webkit-mask-image:none;transform:none}
  #trabaja .cortina-fix::after{display:none}
  #trabaja .cortina-in{padding-block:28px 52px;opacity:1!important;visibility:visible!important}
  #trabaja .h2c{font-size:clamp(2.2rem,9vw,3.2rem)}
  .cv-act{align-items:stretch!important;flex-direction:column}
  .cv-act p{letter-spacing:.06em;font-size:.7rem}
  #cmdk li{flex-wrap:wrap;gap:4px}
  #cmdk li em{white-space:normal}
  #cvm{padding:10px}
  #cvm .box{max-height:calc(100dvh - 20px)}
  .beat .bc{position:static;translate:none!important;transform:none!important;display:inline-flex;max-width:100%;margin:8px 8px 0 0;vertical-align:top;opacity:1}
  .beat .bc b{opacity:1;transform:none!important}
  .beat .bc i{display:none}
}
@media(max-width:360px){
  .bar-in{gap:6px}
  .brand .mark{height:24px}
  .wmk{font-size:.79rem}
  .burger{letter-spacing:.06em}
  .hero-cta .btn,.resp-cta .btn{width:100%;padding-inline:18px}
  .stats{column-gap:12px}
  .stat:nth-child(even){padding-left:0}
}
