
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/assets/fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("/assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Sora";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/sora-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Sora";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/sora-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --arena:#F7F5F2;--concreto:#D9D6D0;--bloque:#ECE9E4;--cemento:#B9B3AA;
  --navy:#14213D;--navy-2:#22345C;--naranja:#E8590C;--naranja-b:#C2480A;--naranja-h:#A23B07;--claro:#FDE7DA;
  --ink:var(--navy);
  --m:clamp(20px,3.4vw,48px);--gap:clamp(12px,1.7vw,24px);
  --f-d:"Sora",Arial,Helvetica,sans-serif;--f-t:"Plus Jakarta Sans",Arial,Helvetica,sans-serif;
  --s-display:clamp(34px,calc((100vw - 2 * var(--m)) / 10.4),128px);
  --s-h2:clamp(36px,5.21vw,75px);--s-h3:clamp(23px,2.23vw,32px);--s-h3l:clamp(26px,2.92vw,42px);--s-stmt:clamp(24px,4.03vw,58px);--s-lead:clamp(19px,1.46vw,21px);--s-body:18px;--s-small:16px;
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-expo:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.76,0,.24,1);--ease-soft:cubic-bezier(.33,1,.68,1);
  --t-press:140ms;--t-hover:180ms;--t-ui:280ms;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--navy) var(--concreto)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--arena);color:var(--ink);font:400 var(--s-body)/1.55 var(--f-t);-webkit-font-smoothing:antialiased;caret-color:var(--naranja-b)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.07em}
::selection{background:var(--naranja-b);color:#fff}
:focus-visible{outline:3px solid var(--naranja-b);outline-offset:3px}
.c-naranja :focus-visible{outline-color:var(--navy)}
.c-navy :focus-visible,.foot .t-navy :focus-visible{outline-color:var(--naranja)}
h1,h2,h3{font-family:var(--f-d);font-weight:600;margin:0;line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
p,ul,ol,dl,dd,figure{margin:0}
p{text-wrap:pretty}
ul,ol{padding:0;list-style:none}
/* taste-skill-ignore: helper or data-ui */.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--m);top:-80px;z-index:50;background:var(--navy);color:#fff;padding:12px 18px;font-weight:600}
.skip:focus{top:12px}
.c-arena{background:var(--arena)}.c-concreto{background:var(--concreto)}.c-claro{background:var(--claro)}
.c-navy{background:var(--navy);color:var(--arena)}.c-naranja{background:var(--naranja-b);color:#fff}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.h2{font-size:var(--s-h2);letter-spacing:-.035em}
.lead{font-size:var(--s-lead);line-height:1.5}
.small{font-size:var(--s-small);line-height:1.5}
.nota-ilus{font-size:var(--s-small);max-width:60ch}
.nw{white-space:nowrap}
html{scrollbar-color:var(--navy) var(--concreto)}

/* botones y enlaces */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:0 26px;border:0;background:var(--naranja-b);color:#fff;font:600 18px/1 var(--f-t);text-decoration:none;cursor:pointer;
  transition:transform var(--t-press) var(--ease-out),background-color var(--t-hover) ease}
.btn svg{width:20px;height:20px;flex:none}
.btn:active{transform:scale(.97)}
.btn.b-navy{background:var(--navy)}
.link{font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);transition:text-decoration-color var(--t-hover) ease}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--naranja-h)}
  .btn.b-navy:hover{background:var(--navy-2)}
  .link:hover{text-decoration-color:currentColor}
}

/* barra */
.bar{display:flex;align-items:center;gap:24px;padding:22px var(--m)}
.bar .logo{flex:none;margin-right:auto}
.bar .logo img{width:146px;height:auto}
.bar .menu{display:flex;gap:clamp(16px,2.2vw,34px)}
.bar .menu a{text-decoration:none;font-weight:500;font-size:16px;padding:8px 0;white-space:nowrap;border-bottom:2px solid transparent;transition:border-color var(--t-hover) ease}
.bar .menu a[aria-current]{border-bottom-color:var(--naranja-b)}
@media (hover:hover) and (pointer:fine){.bar .menu a:hover{border-bottom-color:currentColor}}
.bar .btn{min-height:48px;padding:0 20px;white-space:nowrap}
.menu-toggle{display:none}
@media (max-width:1160px){
  .bar{flex-wrap:wrap;gap:12px 16px}
  .bar .btn{display:none}
  .menu-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:0;background:var(--navy);color:#fff;font:600 16px/1 var(--f-t);cursor:pointer}
  .bar .menu{display:none;flex-basis:100%;flex-direction:column;gap:0;background:var(--navy);margin:0 calc(-1 * var(--m));padding:8px var(--m) 16px}
  .bar.open .menu{display:flex}
  .bar .menu a{color:#fff;font-size:20px;padding:12px 0;border:0}
}

/* privacidad y 404 (v9) */
.priv-h{padding:clamp(72px,11vh,130px) var(--m) clamp(56px,8vh,96px)}
.priv-h .lead{margin-top:20px;max-width:46ch;color:var(--arena)}
.priv{padding:clamp(56px,8vh,96px) var(--m) clamp(88px,12vh,150px)}
.priv-txt{max-width:68ch}
.priv-txt h2{font-size:var(--s-h3);letter-spacing:-.02em;line-height:1.15;margin:48px 0 14px}
.priv-txt h2:first-child{margin-top:0}
.priv-txt p,.priv-txt li{font-size:18px;line-height:1.55}
.priv-txt p+p{margin-top:14px}
.priv-txt ul{margin:0 0 14px;padding-left:1.1em;list-style:square}
.priv-txt li+li{margin-top:10px}
.priv-txt .priv-fecha{margin-top:48px;font-size:var(--s-small)}
.nf{min-height:72svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(72px,11vh,130px) var(--m)}
.nf .lead{margin-top:20px;max-width:46ch}
.nf-links{list-style:none;margin:28px 0 36px;padding:0;display:grid;gap:10px}
.nf-links a{color:#fff;font:600 var(--s-h3)/1.15 var(--f-d);letter-spacing:-.02em;text-decoration:underline;text-decoration-thickness:.07em;text-underline-offset:.16em;text-decoration-color:rgba(255,255,255,.55)}
@media (hover:hover) and (pointer:fine){.nf-links a:hover{text-decoration-color:#fff}}
.nf-links a:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
/* portada: la obra */
.hero.h-cerebro h1{font-size:clamp(42px,calc((100vw - 2 * var(--m)) / 7.2),128px)}
.frag li[data-src] .v-si{display:none}
.frag li[data-src].on .v-no{display:none}
.frag li[data-src].on .v-si{display:inline-block}
.hero{min-height:100svh;display:flex;flex-direction:column}
.hero-copy{padding:clamp(20px,5vh,64px) var(--m) clamp(28px,4vh,48px)}
.hero h1{font-size:var(--s-display);line-height:.93;letter-spacing:-.045em}
.hero h1 .ln{display:block;white-space:nowrap;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .ln>span{display:block}
.hero-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end;margin-top:clamp(20px,3.4vh,40px)}
.hero-row .lead{grid-column:1/7;max-width:46ch}
.hero-row .acts{grid-column:8/13;display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.obra{position:relative;margin-top:auto;background:var(--concreto);padding-bottom:clamp(14px,2.4vh,28px)}
.obra::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--rods);background:var(--arena)}
.blk .rods{z-index:2}
.obra .leyenda{position:absolute;left:var(--m);right:var(--m);top:var(--rods);height:var(--losa);display:flex;align-items:center;gap:8px;color:var(--arena);font-size:var(--s-small);font-weight:600;z-index:2;pointer-events:none;letter-spacing:.01em}
.obra{--rods:clamp(70px,15vh,150px);--losa:34px}
.piso{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:0;margin:0;padding:0 calc(var(--m) - 5px);min-width:0;background:transparent}
.obra::after{content:"";position:absolute;left:0;right:0;top:var(--rods);height:var(--losa);background:var(--navy);z-index:1}
.piso legend{padding:0}
.blk{position:relative;display:grid;grid-template-rows:var(--rods) var(--losa) auto;cursor:pointer}
/* taste-skill-ignore: helper or data-ui */.blk input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.blk .rods{position:relative;display:block}
.blk .rods i{position:absolute;bottom:0;width:clamp(4px,.42vw,7px);height:100%;background:var(--naranja);transform-origin:50% 100%;transform:scaleY(.32);transition:transform var(--t-ui) var(--ease-out)}
.blk .rods i:nth-child(1){left:30%}.blk .rods i:nth-child(2){left:68%}
.blk .rods i::before{content:"";position:absolute;top:0;width:14px;height:clamp(4px,.42vw,7px);background:var(--naranja)}
.blk .rods i:nth-child(1)::before{right:0}.blk .rods i:nth-child(2)::before{left:0}
.blk .seg{display:block}
.blk .face{display:block;margin:10px 5px 0;padding:16px 16px 18px;background:var(--bloque);min-height:104px;transition:background-color var(--t-hover) ease,color var(--t-hover) ease,transform var(--t-press) var(--ease-out)}

.blk .face b{display:block;font:600 clamp(16px,1.46vw,21px)/1.2 var(--f-d);letter-spacing:-.01em}
.blk .face small{display:block;margin-top:6px;font-size:var(--s-small);line-height:1.35}
.blk .face .est{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:var(--s-small);font-weight:600}
.blk .est .si{display:none;align-items:center;gap:6px}
.blk .est svg{display:inline-block}
.blk input:checked~.rods i{transform:scaleY(1)}
.blk input:checked~.face{background:var(--navy);color:var(--arena)}
.blk input:checked~.face .est .si{display:inline-flex}.blk input:checked~.face .est .no{display:none}
.blk input:focus-visible~.face{outline:3px solid var(--naranja-b);outline-offset:2px}
.blk:active .face{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){.blk:hover .face{background:var(--concreto)}.blk:hover input:checked~.face{background:var(--navy-2)}}
.obra .bajo{padding:14px var(--m) 0;font-size:var(--s-small);max-width:calc(70ch + 2 * var(--m))}

/* escalera */
.escalera{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-content:center;row-gap:clamp(40px,7vh,80px);padding:clamp(88px,13vh,150px) var(--m)}
.escalera .gradas{grid-column:1/10;align-self:start}
.escalera .gr{display:block;font:600 var(--s-stmt)/1.06 var(--f-d);letter-spacing:-.03em;padding-left:var(--x)}
.escalera p.gr{color:var(--arena)}
.escalera h2.gr,.escalera h2 .gr{color:var(--naranja)}
.escalera h2{font-size:inherit;letter-spacing:inherit}
.escalera .fotos{grid-column:10/13;grid-row:1/3;display:grid;gap:16px;align-content:start}
.escalera .nota{grid-column:1/6;max-width:44ch}
.foto{position:relative;overflow:clip;background:var(--navy-2)}
.foto img{width:100%;height:100%;object-fit:cover}
.foto figcaption,.cap{font-size:var(--s-small);line-height:1.4;margin-top:8px}
.marco{aspect-ratio:3/2;overflow:clip}
.marco img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}

/* servicios: la cabecera se queda mientras pasan los pisos */
.servicios{padding:clamp(88px,12vh,150px) var(--m)}
.sv-cuerpo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.sv-side{grid-column:1/5;align-self:start;position:sticky;top:clamp(32px,8vh,88px);display:grid;gap:22px;padding-right:var(--gap)}
.sv-side .h2{font-size:clamp(36px,4.1vw,var(--s-h2))}
.sv-side .lead{max-width:34ch}
.sv-side .nota-ilus{margin-top:6px}
.sv-rows{grid-column:5/13}
.sv{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--gap);align-items:start;padding:clamp(36px,5vh,56px) 0}
.sv+.sv{margin-top:0}
.sv .t{grid-column:1/5}
.sv h3{font-size:var(--s-h3);letter-spacing:-.03em}
.sv .t p{margin-top:14px;max-width:40ch}
.sv .frag{grid-column:5/9;justify-self:end;width:min(100%,var(--w))}
.servicios{padding-bottom:0}
.sv-fin{margin:clamp(48px,7vh,88px) calc(-1 * var(--m)) 0;padding:clamp(44px,7vh,80px) var(--m);background:var(--navy);color:var(--arena);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px}
.sv-fin .h3{margin:0}
.sv-fin p{max-width:46ch;margin-top:6px}

/* fragmentos de interfaz (ilustrativos) */
.ui{background:#fff;color:var(--navy);font:500 13px/1.4 var(--f-t);font-variant-numeric:tabular-nums;overflow:hidden;text-align:left}
.ui-top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:var(--navy);color:var(--arena);font-weight:600}
.ui-top span:last-child{font-weight:500;opacity:.85}
.ui-b{padding:12px}
.ui .ui-h{display:block;margin:0 0 8px;font:600 14px/1.3 var(--f-d)}
.ui table{width:100%;border-collapse:collapse}
.ui th,.ui td{padding:6px 4px;border-bottom:1px solid #E7E3DD;/* taste-skill-ignore: data-ui */text-align:left;font-size:13px;white-space:nowrap}
.ui th{font-weight:600;color:#4A5570}
.ui .r{text-align:right}
/* taste-skill-ignore: helper or data-ui */.ui li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #E7E3DD}
.ui li:last-child{border-bottom:0}
.ui .k{display:grid;gap:8px;grid-template-columns:repeat(var(--n,3),1fr);margin-bottom:10px}
.ui .k div{background:var(--arena);padding:8px}
.ui .k small{display:block;font-size:13px;color:#4A5570}
.ui .k strong{font:600 16px/1.2 var(--f-d)}
.tag{display:inline-block;padding:2px 7px;font-size:13px;font-weight:600;white-space:nowrap}
.t-ok{background:var(--navy);color:#fff}.t-bad{background:var(--naranja-b);color:#fff}.t-warn{background:var(--claro);color:var(--navy)}.t-n{background:var(--arena);color:var(--navy)}
.ui .ck{width:14px;height:14px;color:var(--navy);flex:none}
.ui .row{display:flex;align-items:center;gap:8px}
.ui .muted{color:#4A5570}
.ui .barra{height:8px;background:var(--arena);margin:8px 0 10px}.ui .barra span{display:block;height:100%;background:var(--naranja-b)}
.ui .btns{display:flex;gap:6px;justify-content:flex-end;margin-top:10px}
.ui .btns span{padding:6px 10px;background:var(--arena);font-weight:600}.ui .btns .p{background:var(--naranja-b);color:#fff}
.ui .torre{display:grid;grid-template-columns:auto repeat(4,1fr);gap:4px;align-items:center}
/* taste-skill-ignore: helper or data-ui */.ui .torre i{display:block;height:18px;background:var(--arena);outline:1px solid #D9D3CA;outline-offset:-1px}
.ui .torre i.v{background:var(--navy);outline:0}.ui .torre i.r{background:var(--naranja);outline:0}
.ui .torre b{font-weight:600;font-size:13px;color:#4A5570;padding-right:4px}
.ui .ley{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.ui .ley span{display:flex;align-items:center;gap:5px}.ui .ley i{width:12px;height:12px;display:block}
.ui .chat-u{margin-left:auto;max-width:82%;background:var(--navy);color:#fff;padding:9px 11px;font-size:14px}
.ui .chat-t{display:flex;align-items:center;gap:6px;margin:10px 0 8px;color:#4A5570;font-size:13px}
.ui .chat-a{background:var(--arena);padding:10px 11px;font-size:14px;line-height:1.45}
.ui .chat-a table{margin:8px 0}
.ui .chat-in{margin-top:12px;padding:10px 11px;background:var(--arena);color:#4A5570}
.ui .flujo{display:grid;gap:6px}
.ui .flujo div{display:flex;align-items:center;gap:8px;padding:8px;background:var(--arena)}
.ui .flujo time{margin-left:auto;color:#4A5570}
.ui .doc{padding:14px;display:grid;gap:9px}
.ui .doc p{font-size:13px}
.ui .doc .et{display:flex;justify-content:space-between;gap:8px;padding:8px;background:var(--arena)}
.ui .wf{display:grid;grid-template-columns:28% 1fr;gap:8px;padding:10px;min-height:150px}
.ui .wf .s{background:var(--bloque);display:grid;align-content:start;gap:6px;padding:8px}
.ui .wf .s span,.ui .wf .m span{display:block;font-size:13px;color:#4A5570}
.ui .wf .m{display:grid;gap:8px;align-content:start}
.ui .wf .m div{border:1.5px dashed var(--cemento);padding:8px;min-height:34px}
.phone{width:min(230px,100%);margin:0 auto;background:var(--navy);padding:10px 8px 14px}
.phone .ui{min-height:330px}

/* constructoras: disco */
.disco{min-height:100svh;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto;column-gap:var(--gap);padding:clamp(72px,11vh,120px) var(--m) clamp(56px,8vh,96px);position:relative;overflow:clip}
.dc-top{grid-column:1/6;grid-row:1}
.dc-top h2{color:var(--navy);margin-bottom:22px}
.dc-top p{margin-bottom:16px;max-width:36ch}
.dc-stage{grid-column:6/11;grid-row:1/4;align-self:stretch;display:flex;flex-direction:column;align-items:stretch;padding-top:clamp(24px,4vh,48px);margin-bottom:calc(-1 * clamp(56px,8vh,96px))}
.dc-objs{position:relative;z-index:1;display:grid;width:min(80%,560px);margin:auto auto 0}
.dc-losa{position:relative;height:clamp(36px,5vh,48px);background:var(--navy)}
.dc-losa{--v:clamp(5px,.42vw,7px)}
.dc-losa::before,.dc-losa::after{content:"";position:absolute;bottom:100%;box-sizing:border-box;width:18px;height:clamp(96px,16vh,170px);border-left:var(--v) solid var(--navy);border-top:var(--v) solid var(--navy)}
.dc-losa::before{left:calc(5% - var(--v) / 2)}
.dc-losa::after{right:calc(5% - var(--v) / 2);transform:scaleX(-1)}
.dc-col{position:relative;flex:none;height:clamp(110px,18vh,200px)}
.dc-col::before,.dc-col::after{content:"";position:absolute;top:0;bottom:0;width:8%;background:var(--navy)}
.dc-col::before{left:1%}.dc-col::after{right:1%}
.dc-obj .frag{width:100%}
.dc-obj .ui th,.dc-obj .ui td{padding:8px 6px}.dc-obj .ui-top{padding:13px 14px}.dc-obj .ui-b{padding:16px}
.dc-obj{grid-area:1/1;align-self:end;visibility:hidden;min-width:0}
.dc-obj.is-on{visibility:visible}
.dc-side{grid-column:11/13;grid-row:1/4;align-self:end;display:grid;gap:14px;margin-bottom:calc(clamp(110px,18vh,200px) + clamp(36px,5vh,48px) - clamp(56px,8vh,96px))}
.dc-fact{font-size:18px;max-width:24ch}
.dc-list{grid-column:1/6;grid-row:3;align-self:end;position:relative;z-index:2;padding-top:clamp(32px,5vh,56px)}
.dc-list button{display:block;padding:2px 0;border:0;background:none;color:#fff;font:600 var(--s-h3l)/1.18 var(--f-d);letter-spacing:-.025em;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:.1em;text-underline-offset:.16em;text-decoration-color:transparent;transition:text-decoration-color var(--t-hover) ease}
.dc-list button[aria-pressed=true]{text-decoration-color:var(--navy)}
@media (hover:hover) and (pointer:fine){.dc-list button:hover:not([aria-pressed=true]){text-decoration-color:rgba(255,255,255,.55)}}
.dc-desc{font-size:var(--s-small);color:#fff;max-width:40ch;margin:2px 0 10px}
.js .dc-desc{display:none}

/* IA conectada */
.ia{display:grid;grid-template-columns:1fr 1fr;min-height:92svh}
.ia .plato{display:grid;place-items:center;padding:clamp(48px,8vh,96px) var(--m);background:var(--concreto);color:var(--navy)}
.ia .plato .ui{width:min(100%,520px)}
.ia .txt{padding:clamp(72px,12vh,140px) var(--m);display:grid;align-content:center;gap:22px}
.ia .txt p{max-width:46ch}
.ia dl{display:grid;margin:8px 0 6px}
.ia dt:not(:first-child){margin-top:30px}
.ia dt{font:600 var(--s-h3)/1.15 var(--f-d);letter-spacing:-.02em;color:#fff}
.ia dd{margin-top:6px;max-width:44ch}

/* proceso: piezas que crecen */
.proceso{padding:clamp(96px,14vh,170px) var(--m)}
.pr-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:10px;align-items:end}
.pr-head{grid-column:1/7;grid-row:1;align-self:start;padding-right:var(--gap)}
.pr-head p{margin-top:20px;max-width:48ch}
.pr-head .nota-ilus{margin-top:12px}
.pieza{display:grid;place-items:center;padding:14px;overflow:clip}
.pieza>.frag{width:100%;height:100%;display:grid;place-items:center;min-height:0}
.pieza .ui{width:100%;max-width:440px}
.pieza .ui td:not(.r){white-space:normal}
.pieza .ui .k{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}
.pieza .ui .torre{min-width:0}
.pieza .ui-top,.pieza .ui .row,.pieza .ui li{flex-wrap:wrap;row-gap:2px}
.pieza svg.plano{width:auto;height:auto;max-width:min(100%,260px);max-height:100%}
.p1{grid-column:1/4;grid-row:2;min-height:max(220px,32vh);background:var(--bloque)}
.p2{grid-column:4/7;grid-row:2;min-height:max(280px,42vh);background:#fff}
.p3{grid-column:7/10;grid-row:1/3;min-height:max(340px,52vh);background:var(--navy)}
.p4{grid-column:10/13;grid-row:1/3;min-height:max(400px,64vh);background:var(--naranja-b)}
.paso-t{grid-row:3;align-self:start;margin-top:18px;padding-right:12px}
.t1{grid-column:1/4}.t2{grid-column:4/7}.t3{grid-column:7/10}.t4{grid-column:10/13}
.paso-t h3{font:600 var(--s-lead)/1.25 var(--f-t);letter-spacing:0}
.paso-t p{font-size:16px;margin-top:6px;max-width:34ch}
.paso-t .est{display:inline-block;margin-top:8px;font-size:var(--s-small);font-weight:600;color:var(--naranja-h)}
.h2p{font-size:var(--s-h3l);letter-spacing:-.03em}
.h3{font:600 var(--s-h3)/1.1 var(--f-d);letter-spacing:-.02em;margin:0 0 12px}

/* carpetas */
.carpetas-h{padding:clamp(96px,14vh,160px) var(--m) clamp(32px,5vh,56px)}
.carpetas-h p{margin-top:18px;max-width:52ch}
.cp{padding:0 var(--m) clamp(56px,8vh,96px)}
.cp-strip{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-top:clamp(48px,7vh,80px)}
.cp-tab{font:600 var(--s-h3)/1.1 var(--f-d);letter-spacing:-.025em}
.cp-cat{font-size:var(--s-small);font-weight:600}
.cp-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);margin-top:clamp(28px,5vh,56px);align-items:start}
.cp-pic{grid-column:1/8}
.cp-pic .frag{width:100%;max-width:760px}
.cp-pic .frag .phone{width:min(260px,100%)}

.cp-txt{grid-column:9/13}
.cp-txt h3{font-size:var(--s-h3);margin-bottom:16px}
.cp-txt dt{font-weight:600;margin-top:14px}
.cp-txt dd{margin-top:2px}
.cp-dos{grid-column:1/13;display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.cp-dos h3{font-size:var(--s-h3);margin-bottom:14px}
.cp-dos li{padding:10px 0 10px 28px;position:relative}
.cp-dos li svg{position:absolute;left:0;top:15px;width:16px;height:16px}
.k-navy{background:var(--navy);color:var(--arena)}.k-concreto{background:var(--concreto)}.k-claro{background:var(--claro)}.k-arena{background:var(--arena)}

/* nosotros */
.nosotros{padding:clamp(96px,14vh,170px) var(--m)}
.ns-lead{max-width:60ch;margin-top:22px}
.ns-tiles{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:16px;margin-top:72px;align-items:start}
.ns-foto{grid-column:1/9;position:relative}
.ns-img{aspect-ratio:16/10;overflow:clip}
.ns-img img{width:100%;height:100%;object-fit:cover}
.ns-foto .bloque-txt{position:absolute;right:0;top:0;width:min(340px,48%);background:var(--arena);padding:20px;font-size:18px}
.ns-mapa{grid-column:9/13}
.ns-mapa .tile{background:var(--navy);display:grid;place-items:center;padding:28px;aspect-ratio:16/10.2;min-height:0}
.ns-mapa svg{width:100%;height:auto}
.ns-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;margin-top:20px;font-size:15px}
.ns-datos dt{font-weight:600}
.ns-datos dd{margin-top:2px}
.ns-cap{grid-column:1/9;margin-top:8px}

/* preguntas */
.fq-head{min-height:40svh;display:flex;align-items:flex-end;padding:var(--m)}
.fq-head p{margin-left:auto;max-width:30ch;align-self:flex-end;font-size:var(--s-lead)}
.fq-head h2{max-width:14ch}
.fq{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding:44px var(--m)}
.fq h3{grid-column:1/6;font-size:var(--s-h3);letter-spacing:-.02em;line-height:1.15}
.fq p{grid-column:7/13;max-width:60ch}
.fq:nth-of-type(odd){background:var(--concreto)}.fq:nth-of-type(even){background:var(--arena)}

/* contacto: capítulo naranja plano */
.contacto{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);padding:clamp(96px,14vh,150px) var(--m)}
.cp-izq{grid-column:1/6;display:flex;flex-direction:column;gap:20px}
.cp-izq h2{font-size:var(--s-h3)}
.cp-izq ul{display:grid;gap:10px;font-size:16px}
.cp-izq li{padding-left:26px;position:relative}
.cp-izq li svg{position:absolute;left:0;top:5px;width:16px;height:16px}
.canales{margin-top:auto;display:grid;gap:6px;font-size:16px}
.canales a{font-weight:600}
.cp-der{grid-column:7/13}
.form .fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{display:grid;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:15px;font-weight:600}
.field .opt{font-weight:400}
.field input,.field select,.field textarea{width:100%;min-height:52px;border:0;border-radius:0;background:var(--claro);color:var(--navy);font:500 16px/1.4 var(--f-t);padding:12px 14px;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2314213D' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;padding-right:36px}
.field textarea{min-height:120px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#5B6478}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--navy);outline-offset:0}
.field .err{display:none;font-size:15px;font-weight:600}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid select,.field.invalid textarea{outline:3px solid var(--navy);outline-offset:0}
.form-errors{background:var(--navy);color:#fff;padding:14px 16px;margin-bottom:16px;font-size:16px}
.form-errors ul{margin-top:6px;display:grid;gap:4px}.form-errors a{color:#fff}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:16px}
.form-actions .btn{flex:1 1 280px;justify-content:center;min-height:56px}
.form-actions .alt{border:0;background:none;color:#fff;font:600 16px/1 var(--f-t);text-decoration:underline;text-underline-offset:.22em;cursor:pointer;padding:12px 0}
.form-status{margin-top:12px;font-size:16px;font-weight:600}
.privacidad{margin-top:12px;font-size:15px;max-width:60ch}
.form-status{max-width:60ch}
/* taste-skill-ignore: helper or data-ui */.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* pie de tiles */
.foot{background:var(--arena)}
.foot-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.tile{min-width:0;padding:28px var(--gap);min-height:230px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}
.t-con{grid-column:1/5;background:var(--concreto);padding-left:var(--m)}
.t-nav{grid-column:5/8;background:var(--navy);color:var(--arena)}
.t-nav ul{display:grid;gap:6px;font-size:16px}
.t-nav a{text-decoration:none}
@media (hover:hover) and (pointer:fine){.t-nav a:hover{text-decoration:underline}}
.t-loc{grid-column:8/10;background:var(--claro)}
.t-loc a,.canales a{white-space:nowrap}
.t-mail{grid-column:10/13;background:var(--bloque);padding-right:var(--m)}
.t-mail a{font:600 var(--s-lead)/1.2 var(--f-d);overflow-wrap:anywhere}
.t-marca{grid-column:1/9;background:var(--navy);min-height:320px;display:grid;place-items:center;place-content:center;padding-left:var(--m)}
.t-marca img{width:clamp(200px,38vw,560px);height:auto}
.t-cta{grid-column:9/13;background:var(--naranja-b);color:#fff;min-height:320px;text-decoration:none;position:relative;padding-right:var(--m)}
.t-cta span{font:600 var(--s-h3)/1.1 var(--f-d);letter-spacing:-.02em}
.t-cta svg{width:64px;height:64px;align-self:flex-end;transition:transform var(--t-ui) var(--ease-out)}
@media (hover:hover) and (pointer:fine){.t-cta:hover svg{transform:translate(6px,-6px)}}
.t-cta:active{transform:scale(.99)}
.tile p{font-size:16px}
.priv{font-size:var(--s-small)}
.creditos{margin:0 var(--m);padding:18px 0 22px;font-size:15px;max-width:52ch}
.creditos a{text-decoration:underline}

/* constructoras: calculadora en la obra */
.calc .piso{grid-template-columns:repeat(4,minmax(0,1fr))}
.calc .blk{cursor:default}
.calc .face input{position:static;opacity:1;width:100%;height:auto;pointer-events:auto;margin-top:8px;border:0;background:#fff;color:var(--navy);font:600 20px/1.2 var(--f-d);padding:8px 10px;min-height:44px;font-variant-numeric:tabular-nums}
.calc .face input:focus-visible{outline:3px solid var(--naranja-b);outline-offset:0}
.calc .face label{display:block;font:600 16px/1.25 var(--f-t)}
.calc .rods i{transform:scaleY(1)}
.losa-res{position:absolute;left:var(--m);top:var(--rods);max-width:calc(100% - 2 * var(--m));min-height:var(--losa);display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;color:var(--arena);font-size:var(--s-small);z-index:2}
.losa-res strong{font:600 17px/1 var(--f-d);color:#fff}
.calc{--losa:44px}

/* complementos en filas grandes */
.filas{padding:clamp(96px,14vh,160px) var(--m)}
.filas>p{margin:18px 0 clamp(36px,5vh,56px);max-width:52ch}
.fila{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:baseline;padding:26px 0 30px;margin-top:8px}
.fila{margin-inline:calc(-1 * var(--m));padding-inline:var(--m)}
.fila:nth-of-type(odd){background:var(--claro)}
.fila h3{grid-column:1/8;font-size:var(--s-h3l);letter-spacing:-.03em}
.fila p{grid-column:8/13;font-size:18px;max-width:40ch}

/* responsive */
@media (max-width:1100px){
  .dc-top{grid-column:1/7}
  .dc-side{grid-column:8/13;grid-row:1;align-self:start;margin-bottom:0;padding-top:8px}
  .dc-stage{grid-column:6/13;grid-row:2/4}
  .dc-list{grid-row:2/4}
}
@media (max-width:860px){
  .hero-row .lead,.hero-row .acts{grid-column:1/-1}
  .hero-row .acts{margin-top:20px}
  .obra{--rods:52px;--losa:26px}
  .piso{grid-template-columns:repeat(3,minmax(0,1fr))}
  .blk .face{min-height:0;padding:10px;margin-top:8px}
  .blk .face small{display:none}
  .obra::before{content:"";position:static;display:block;height:56px;margin:0 var(--m);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='56'%3E%3Cpath d='M16 56V3h9M44 56V3h-9' fill='none' stroke='%23E8590C' stroke-width='6'/%3E%3C/svg%3E") repeat-x 0 0/64px 56px}
  .blk .rods,.blk .seg{display:none}
  .obra::after{display:none}
  .blk{grid-template-rows:auto}
  .obra .leyenda{position:static;height:auto;padding:10px var(--m);background:var(--navy)}
  .obra .bajo{padding-top:10px}
  .hero-copy p,.sv-head p,.sv .t p,.sv-fin p,.escalera .nota,.dc-top p,.ia .txt p,.ia dd,.pr-head p,.paso-t p,.carpetas-h p,.ns-lead,.fq p,.fq-head p,.filas>p,.fila p,.cp-txt dd,.dc-fact{max-width:none}
  .fq h3{font-size:22px}
  .blk .face .est{font-size:13px}
  .ui th,.ui td{white-space:normal}
  .escalera{align-content:start}
  .escalera .gradas,.escalera .nota{grid-column:1/-1}
  .escalera .gr{font-size:6.2vw;padding-left:var(--xm)}
  .escalera .fotos{grid-column:1/-1;grid-row:auto;grid-template-columns:1fr 1fr}
  .sv-side,.sv-rows{grid-column:1/-1}
  .sv-side{position:static;padding:0 0 12px}
  .sv{grid-template-columns:1fr}
  .sv .t,.sv .frag{grid-column:1/-1}
  .sv .frag{justify-self:stretch;width:100%;margin-top:22px}
  p,dd,li{text-wrap:wrap}
  .frag{width:100%}
  .disco{display:flex;flex-direction:column;gap:22px}
  .disco>*{align-self:stretch;min-width:0}
  .dc-stage{order:1;width:100%;padding-top:0;margin-bottom:0}
  .dc-objs{width:86%;margin-top:0}
  .dc-obj .ui .k{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}
  .dc-losa::before,.dc-losa::after{height:72px;width:10px}
  .dc-losa::before{left:2.5%}.dc-losa::after{right:2.5%}
  .dc-col{height:44px}
  .dc-top{order:0}
  .dc-list{order:2}
  .dc-list ul{display:flex;flex-wrap:wrap;gap:4px 18px}
  .dc-list button{font-size:24px}
  .dc-side{order:3;margin-bottom:0}
  .dc-fact{font-size:16px;max-width:none}
  .dc-list{padding-top:0}
  .ia{grid-template-columns:1fr}
  .ia .plato{order:2}
  .pr-grid{display:flex;flex-direction:column;gap:12px;align-items:stretch}
  .pr-head{padding:0 0 18px}
  .pieza{padding:18px}
  .p1{min-height:150px}.p2{min-height:190px}.p3{min-height:230px}.p4{min-height:270px}
  .pr-grid .paso{display:block!important}
  .paso-t{margin:12px 0 22px}
  .cp{padding-bottom:40px}
  .cp-strip{flex-wrap:wrap;gap:6px 16px;padding-top:44px}
  .cp-pic,.cp-txt,.cp-dos{grid-column:1/-1}
  .cp-txt{margin-top:22px}
  .cp-dos{grid-template-columns:1fr}
  .ns-foto,.ns-mapa,.ns-cap{grid-column:1/-1}
  .ns-img{aspect-ratio:4/3}
  .ns-foto .bloque-txt{position:static;width:auto;padding:16px 0 0;background:none}
  .ns-mapa{margin-top:28px}
  .fq-head{min-height:30svh;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:14px}
  .fq-head p{margin-left:0}
  .fq{padding:32px var(--m);row-gap:12px}
  .fq h3,.fq p{grid-column:1/-1}
  .cp-izq,.cp-der{grid-column:1/-1}
  .cp-der{margin-top:36px}
  .form .fields{grid-template-columns:1fr}
  .foot-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile{padding:22px var(--m)}
  .t-nav{padding-inline:var(--m) 12px}
  .t-loc{padding-inline:12px var(--m)}
  .t-loc a{white-space:normal}
  .t-marca,.t-cta{grid-column:1/-1;min-height:160px}
  .t-marca{order:-2}.t-cta{order:-1}
  .t-nav,.t-mail,.t-loc,.t-con{grid-column:auto;min-height:0}
  .t-con,.t-mail{grid-column:1/-1}
  .calc .piso{grid-template-columns:repeat(2,minmax(0,1fr))}

  .losa-res{position:static;background:var(--navy);padding:12px var(--m);min-height:0;max-width:none}
  .fila h3,.fila p{grid-column:1/-1}
  .fila p{margin-top:8px}
}

/* movimiento */
@keyframes sube{from{transform:translateY(105%)}}
@keyframes aparece{from{opacity:0;transform:translateY(14px)}}
@keyframes varilla{from{transform:scaleY(0)}}
@media (prefers-reduced-motion:no-preference) and (min-width:861px){
  .js [data-r]{opacity:0;transform:translateY(26px);transition:opacity 700ms var(--ease-out),transform 900ms var(--ease-expo);transition-delay:calc(var(--i,0) * 80ms)}
  .js [data-r=izq]{transform:translateX(-36px)}
  .js [data-r=crece]{transform:translateY(48px)}
  .js [data-r=abre]{opacity:1;transform:none;clip-path:inset(0 0 100% 0);transition:clip-path 1100ms var(--ease-in-out);transition-delay:calc(var(--i,0) * 120ms)}
  .js .is-in[data-r],.js .is-in [data-r]{opacity:1;transform:none}
  .js .is-in [data-r=abre],.js .is-in[data-r=abre]{clip-path:inset(0)}
}
@media (prefers-reduced-motion:no-preference){
  .js .hero h1 .ln>span{animation:sube 820ms var(--ease-expo) backwards;animation-delay:calc(90ms + var(--i) * 95ms)}
  .js .hero [data-load]{animation:aparece 520ms var(--ease-out) backwards;animation-delay:var(--d)}
  .js .blk .rods i{animation:varilla 700ms var(--ease-expo) backwards;animation-delay:calc(520ms + var(--c) * 55ms)}
  .dc-obj.is-on{animation:aparece 300ms var(--ease-out) backwards}
  @supports (animation-timeline:view()){
    .marco img,.ns-img img{animation:deriva linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes deriva{from{transform:scale(1.1) translateY(-4%)}to{transform:scale(1.1) translateY(4%)}}
  }
}
@media (prefers-reduced-motion:reduce){
  .btn,.blk .face,.blk .rods i,.t-cta svg,.link,.dc-list button{transition:none}
  .marco img{transform:none}
}

/* atributos style del diseño, pasados a clases para la CSP */
.e1{position:absolute!important}
.e2{--i:0!important}
.e3{--i:1!important}
.e4{--d:420ms!important}
.e5{--d:500ms!important}
.e6{--c:0!important}
.e7{--c:1!important}
.e8{--c:2!important}
.e9{--c:3!important}
.e10{--c:4!important}
.e11{--c:5!important}
.e12{--x:0vw!important;--xm:0vw!important;--i:0!important}
.e13{--x:4.5vw!important;--xm:4vw!important;--i:1!important}
.e14{--x:9vw!important;--xm:8vw!important;--i:2!important}
.e15{--x:13.5vw!important;--xm:0vw!important;--i:3!important}
.e16{--x:18vw!important;--xm:4vw!important;--i:4!important}
.e17{--i:5!important}
.e18{--i:2!important}
.e19{--w:250px!important;--wm:88%!important}
.e20{--w:340px!important;--wm:100%!important}
.e21{--w:290px!important;--wm:80%!important}
.e22{--w:310px!important;--wm:88%!important}
.e23{margin-top:10px!important}
.e24{--w:320px!important;--wm:92%!important}
.e25{--w:300px!important;--wm:86%!important}
.e26{--w:270px!important;--wm:84%!important}
.e27{background:var(--navy)!important}
.e28{background:var(--naranja)!important}
.e29{background:var(--arena)!important;outline:1px solid #D9D3CA!important}
.e30{--n:3!important}
.e31{width:30%!important}
.e32{--i:3!important}
.e33{display:contents!important}
.e34{--i:4!important}
.e35{--n:1!important}
.e36{margin-top:6px!important}
.e37{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important}
