@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-italic.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:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond.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:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond.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:'Montserrat';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/montserrat.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}/* Cruz General Contractors — sistema de diseño v8 (marca oficial: carbón + verde azulado, serif clásica + sans geométrica). Paleta editable en :root */
:root{--ink:#2E3236;--char:#3D4045;--ink2:#383C41;--paper:#FBFBFA;--paper2:#F2F4F4;--mist:#EAF1F1;--concrete:#C9CED1;--teal:#5E8B91;--teal-d:#3E6A70;--teal-l:#9CC3C8;--gold:var(--teal);--gold2:var(--teal-d);--line:rgba(46,50,54,.12);--lined:rgba(255,255,255,.16);--ok:#2E6B4F;--warn:#9A3B12;--muted:#5C6166;
--f:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--fs:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;--fm:"Montserrat",system-ui,sans-serif;--r:6px;--pad:clamp(20px,5vw,72px);--max:1280px;--sh:0 1px 2px rgba(46,50,54,.05),0 12px 40px -18px rgba(46,50,54,.22)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--f);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}
p a,li a,dd a,.prose a{color:var(--teal-d);text-decoration-color:rgba(62,106,112,.4)}.dark p a,.dark li a{color:var(--teal-l)}
:focus-visible{outline:3px solid var(--teal-d);outline-offset:2px}.dark :focus-visible,.ft :focus-visible{outline-color:var(--teal-l)}
.skip{position:absolute;left:-999px;top:8px;background:var(--teal-d);color:#fff;padding:10px 14px;z-index:999;border-radius:4px}.skip:focus{left:8px}
.mono{font-family:var(--fm);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
em,.serif{font-family:var(--fs);font-style:italic;font-weight:500;letter-spacing:0;color:var(--teal-d)}.dark em{color:var(--teal-l)}
h1,h2,h3,h4{line-height:1.08;letter-spacing:-.01em;margin:0 0 .5em;font-weight:600;color:var(--char)}.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
h1,h2,.h-xl,.h-l,.h-m{font-family:var(--fs);font-weight:600}
h3,h4{font-family:var(--f);font-weight:600;letter-spacing:-.005em}
.h-xl{font-size:clamp(40px,6.2vw,88px);line-height:1.0;letter-spacing:-.02em}
.h-l{font-size:clamp(32px,4.4vw,60px);letter-spacing:-.015em}
.h-m{font-size:clamp(24px,2.6vw,34px)}
.lead{font-size:clamp(17px,1.5vw,20px);max-width:62ch;color:#44494e}.dark .lead{color:#dfe4e6}
.muted{color:var(--muted)}.dark .muted{color:var(--concrete)}
/* header */
.hd{position:sticky;top:0;z-index:50;background:rgba(251,251,250,.9);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);color:var(--ink);border-bottom:1px solid var(--line)}
.hd__in{display:flex;align-items:center;gap:12px;max-width:var(--max);margin:0 auto;padding:10px var(--pad);min-height:68px}
.hd__brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;line-height:1}
.hd__brand img{width:86px;height:auto}
.wm{display:flex;flex-direction:column;gap:3px}.wm b{font-family:var(--fs);font-weight:600;font-size:21px;color:var(--char);letter-spacing:.005em}.wm span{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--teal-d);font-weight:600}
.hd__nav{display:none;gap:2px}.hd__nav a{text-decoration:none;font-size:13.5px;font-weight:500;padding:8px 11px;border-radius:4px;color:#44494e}.hd__nav a:hover{color:var(--teal-d)}.hd__nav a[aria-current=page]{color:var(--teal-d);box-shadow:inset 0 -2px 0 var(--teal)}
.hd .hd__est{display:none}
.hd__lang{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 10px;border:1px solid var(--line);border-radius:4px;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--teal-d)}
.hd__lang:hover{border-color:var(--teal)}
.hd__wa{display:inline-flex;align-items:center;gap:6px;background:#25D366;color:#0b2b17;text-decoration:none;font-weight:700;font-size:13.5px;padding:10px 14px;border-radius:4px;min-height:44px}
.hd__wa svg{width:18px;height:18px;fill:currentColor}
.hd__menu{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:4px;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:14px}
.hd__menu i{display:block;width:16px;height:1.5px;background:currentColor;box-shadow:0 5px 0 currentColor;transform:translateY(-2.5px)}
@media (min-width:1280px){.hd__nav{display:flex}.hd .hd__est{display:inline-flex}}
.hd__nav a{white-space:nowrap}
@media (max-width:520px){.hd__wa span{display:none}.hd__wa{padding:10px 12px}.wm b{font-size:17px}.wm span{font-size:8.5px;letter-spacing:.26em}.hd__brand img{width:58px}.hd__menu{padding:0 13px}.hd__menu .t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hd__in{gap:8px}}
@media (max-width:360px){.wm{display:none}}
.menu{position:fixed;inset:0;z-index:60;background:var(--paper);color:var(--ink);overflow:auto;padding:84px var(--pad) 40px}
.menu[hidden]{display:none}
.menu__close{position:fixed;top:12px;right:var(--pad);background:var(--char);color:#fff;border:0;border-radius:4px;min-height:44px;padding:0 18px;font-weight:700;cursor:pointer}
.menu ol{list-style:none;margin:0 auto;padding:0;max-width:var(--max);display:grid;gap:0;grid-template-columns:1fr}
@media (min-width:800px){.menu ol{grid-template-columns:1fr 1fr;column-gap:56px}}
.menu li a{display:flex;align-items:baseline;gap:14px;text-decoration:none;font-family:var(--fs);font-size:clamp(24px,3vw,36px);font-weight:600;padding:11px 0;border-bottom:1px solid var(--line);color:var(--char)}
.menu li a:hover{color:var(--teal-d)}
.menu li a small{color:var(--teal-d);font-family:var(--f);font-size:11px;font-weight:600;letter-spacing:.1em}
.menu li a .tag{font-family:var(--f);font-size:10px;color:var(--muted);border:1px solid var(--line);padding:2px 8px;border-radius:999px;margin-left:auto;letter-spacing:.1em;text-transform:uppercase}
.menu__foot{max-width:var(--max);margin:28px auto 0;display:flex;flex-wrap:wrap;gap:12px 22px;color:var(--teal-d)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:4px;font-weight:600;font-size:15px;letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s;background:transparent;text-align:center;line-height:1.15}
.btn:hover{transform:translateY(-1px)}.btn svg{width:18px;height:18px;flex:none}
.btn--gold{background:var(--teal-d);color:#fff;box-shadow:0 10px 24px -14px rgba(62,106,112,.9)}.btn--gold:hover{background:#355d62}
.btn--ink{background:var(--char);color:#fff}.btn--ink:hover{background:#2a2d31}
.dark .btn--ink{background:#fff;color:var(--char)}
.btn--line{border-color:rgba(46,50,54,.35);color:var(--char)}.btn--line:hover{border-color:var(--teal-d);color:var(--teal-d)}
.dark .btn--line{border-color:rgba(255,255,255,.5);color:#fff}
.btn--wa{background:#25D366;color:#0b2b17}.btn--wa svg{fill:currentColor}
.btn--sm{min-height:44px;padding:0 16px;font-size:14px}
.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}
.btns{display:flex;flex-wrap:wrap;gap:10px}
/* sections */
.sec{padding:clamp(64px,9vw,128px) 0;position:relative}
.dark{background:var(--char);color:#eef1f2}.paper2{background:var(--paper2)}.mist{background:var(--mist)}
.sec__head{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-bottom:clamp(26px,4vw,52px)}
.dark .sec__head{border-color:var(--lined)}
.sec__head .mono{color:var(--muted)}.sec__head .mono:first-child{color:var(--teal-d)}.dark .sec__head .mono{color:var(--concrete)}.dark .sec__head .mono:first-child{color:var(--teal-l)}
.bp{background-image:linear-gradient(rgba(94,139,145,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(94,139,145,.09) 1px,transparent 1px);background-size:44px 44px}
.dark.bp{background-image:linear-gradient(var(--lined) 1px,transparent 1px),linear-gradient(90deg,var(--lined) 1px,transparent 1px)}
.bp-l{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px}
/* open-rectangle motif (from the logo) */
.frame{position:relative}
.frame::before{content:"";position:absolute;inset:-14px 34% -14px -14px;border:2px solid var(--teal);border-right:0;pointer-events:none;z-index:2}
.frame::after{content:"";position:absolute;right:-14px;bottom:-14px;width:30%;height:58%;border:2px solid var(--teal);border-left:0;border-top:0;pointer-events:none;z-index:2}
.rule{display:block;width:72px;height:2px;background:var(--teal);margin:0 0 22px}
.cap-ia{position:absolute;right:10px;bottom:10px;z-index:3;background:rgba(255,255,255,.9);color:var(--char);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:3px}
/* hero */
.hero{padding:clamp(28px,5vw,72px) 0 clamp(56px,7vw,104px);overflow:hidden;background:linear-gradient(180deg,#fff 0%,var(--paper) 55%,var(--mist) 100%)}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--muted);margin-bottom:24px}.hero__meta b{color:var(--teal-d);font-weight:600}
.hero h1{font-family:var(--fs);font-size:clamp(46px,6.6vw,100px);letter-spacing:-.025em;line-height:.98;margin:0 0 22px;font-weight:600;color:var(--char)}
.hero h1 em{color:var(--teal-d);font-weight:500}
.hero__grid{display:grid;gap:44px;align-items:center}
@media (min-width:960px){.hero__grid{grid-template-columns:1fr 1.05fr;gap:64px}}
.hero__fig{position:relative;margin:14px 14px 14px 14px}
.hero__fig .ph-in{position:relative;overflow:hidden;border-radius:2px;box-shadow:var(--sh)}
.hero__fig img{width:100%;aspect-ratio:16/10;object-fit:cover}
.hero__fig figcaption{position:absolute;left:10px;bottom:10px;z-index:3;background:rgba(255,255,255,.9);color:var(--char);padding:4px 8px;border-radius:3px}
.hero__crane{position:absolute;right:-6px;top:-46px;width:min(46%,240px);z-index:3;pointer-events:none}
.hero__p{font-size:clamp(17px,1.6vw,20px);max-width:44ch;color:#44494e;margin:0 0 28px}
.motto{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:28px;color:var(--muted)}.motto span:nth-child(odd){color:var(--teal-d)}
.trust{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px}
.trust>div{background:#fff;padding:14px 16px}.trust b{display:block;font-family:var(--fs);font-size:22px;color:var(--char);font-weight:600;line-height:1.1}.trust span{font-size:13px;color:var(--muted)}
@media (min-width:700px){.trust{grid-template-columns:repeat(4,1fr)}}
/* cards */
.grid{display:grid;gap:16px}
@media (min-width:640px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr}.g4{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.card{display:flex;flex-direction:column;gap:6px;padding:22px;border:1px solid var(--line);border-radius:var(--r);background:#fff;text-decoration:none;min-height:100%;transition:border-color .2s,transform .2s,box-shadow .2s;position:relative}
a.card:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:var(--sh)}
.dark .card{background:var(--ink2);border-color:var(--lined)}.dark a.card:hover{border-color:var(--teal-l)}
.card h3{font-size:18px;margin:0}.card p{margin:0;color:var(--muted);font-size:15px}.dark .card p{color:var(--concrete)}
.card .mono{color:var(--teal-d)}.dark .card .mono{color:var(--teal-l)}
.card__go{margin-top:auto;padding-top:10px;font-weight:600;font-size:14px;color:var(--teal-d)}
/* image feature cards */
.feat{display:grid;gap:22px}
@media (min-width:700px){.feat{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.feat{grid-template-columns:repeat(3,1fr)}}
.fcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;transition:transform .25s,box-shadow .25s}
a.fcard:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.fcard__img{position:relative;margin:0;overflow:hidden;background:var(--mist)}.fcard__img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s}
a.fcard:hover .fcard__img img{transform:scale(1.035)}
.fcard__b{padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px;flex:1}.fcard__b h3{font-family:var(--fs);font-size:26px;font-weight:600;margin:0}.fcard__b p{margin:0;color:var(--muted);font-size:15px}
.fcard__b .card__go{margin-top:auto}
.tool{display:grid;gap:26px;padding:clamp(22px,3vw,44px);border-radius:var(--r);border:1px solid var(--line);background:#fff}
@media (min-width:900px){.tool{grid-template-columns:1fr 1fr;align-items:center}}
.dark .tool{background:var(--ink2);border-color:var(--lined)}
.tool__art{aspect-ratio:4/3;border-radius:2px;overflow:hidden;background:var(--mist);position:relative}
.tool__art svg,.tool__art img{width:100%;height:100%;display:block;object-fit:cover}
/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:s}
@media (min-width:900px){.steps--5{grid-template-columns:repeat(5,1fr)}}
.steps li{padding:22px;border:1px solid var(--lined);border-radius:var(--r);position:relative;border-top:2px solid var(--teal)}
.paper .steps li,.steps--l li{border-color:var(--line);border-top-color:var(--teal);background:#fff}
.steps li .mono{color:var(--teal-l)}.steps--l li .mono{color:var(--teal-d)}
.steps h3{font-size:18px;margin:8px 0 6px}.steps p{margin:0;font-size:15px;color:var(--concrete)}.steps--l p{color:var(--muted)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:700px){.gal{grid-template-columns:repeat(4,1fr)}}
.ph{margin:0;position:relative;border-radius:4px;overflow:hidden;background:#d9dddf}
.ph button{all:unset;cursor:zoom-in;display:block;width:100%}.ph button:focus-visible{outline:3px solid var(--teal-d);outline-offset:-3px}
.ph img{width:100%;aspect-ratio:9/14;object-fit:cover;transition:transform .5s}.ph:hover img{transform:scale(1.03)}
.ph figcaption{position:absolute;left:8px;bottom:8px;right:8px;background:rgba(255,255,255,.92);color:var(--char);padding:5px 8px;border-radius:3px;font-size:10.5px}
.lb{position:fixed;inset:0;z-index:80;background:rgba(30,33,36,.97);display:flex;align-items:center;justify-content:center;color:#fff}
.lb[hidden]{display:none}
.lb img{max-width:92vw;max-height:80vh;width:auto;border-radius:3px}
.lb__top{position:fixed;top:12px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;align-items:center}
.lb__close,.lb__nav{background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:4px;min-width:48px;min-height:48px;cursor:pointer;font-size:18px;padding:0 14px}
.lb__nav{position:fixed;top:50%;transform:translateY(-50%)}.lb__prev{left:10px}.lb__next{right:10px}
.lb__cap{position:fixed;bottom:16px;left:0;right:0;text-align:center}
/* faq */
.faq details{border-top:1px solid var(--line);padding:4px 0}.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;gap:14px;align-items:baseline;padding:16px 0;font-weight:600;font-size:clamp(16px,1.5vw,19px);color:var(--char)}
.faq summary::-webkit-details-marker{display:none}.faq summary .mono{color:var(--teal-d)}
.faq summary::after{content:"+";margin-left:auto;font-size:24px;line-height:1;color:var(--teal-d);font-weight:400}.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 16px 40px;color:#44494e;max-width:72ch}
/* notes */
.note{border-left:3px solid var(--teal);background:var(--mist);padding:14px 16px;border-radius:0 4px 4px 0;font-size:15px;color:#2b3a3c}
.dark .note{background:rgba(156,195,200,.12);color:#e6eff0}
.warn{border-left-color:var(--warn);background:#fbefe9;color:#4a1d08}
.credit{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);padding:16px;background:#fff}
.credit b.tag{background:var(--teal-d);color:#fff;font-family:var(--fs);font-weight:600;border-radius:3px;padding:4px 10px;font-size:20px;line-height:1.2}
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--f);font-weight:600;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap}
.pill--ok{border-color:#a9cdb8;color:#1f5a3a;background:#ecf6f0}.pill--no{border-color:#e3b9a6;color:#7a2e0f;background:#fbece5}.pill--gold{background:var(--teal-d);border-color:var(--teal-d);color:#fff}
.pill--cli{background:#e8eef7;border-color:#b9c9e2;color:#1d3a66}.pill--pro{background:#efe8f7;border-color:#cdb9e2;color:#45206b}.pill--gob{background:#fbece5;border-color:#e3b9a6;color:#7a2e0f}
/* forms */
.fld{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--char)}
.fld input,.fld select,.fld textarea{font-weight:400;font-size:16px;min-height:48px;padding:10px 12px;border:1.5px solid #c4cacd;border-radius:4px;background:#fff;width:100%;color:var(--ink)}
.fld textarea{min-height:90px}.fld small{font-weight:400;color:var(--muted)}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--teal-d);outline:none;box-shadow:0 0 0 3px rgba(94,139,145,.28)}
.fld input[aria-invalid=true]{border-color:var(--warn);background:#fff6f2}
.err{color:var(--warn);font-size:14px;font-weight:600;min-height:0}
.row{display:grid;gap:12px;grid-template-columns:1fr 1fr}.row3{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}
@media (max-width:520px){.row3{grid-template-columns:1fr 1fr}}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer}.chk input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--teal-d)}
.seg{display:inline-flex;border:1.5px solid var(--char);border-radius:4px;overflow:hidden;flex-wrap:wrap}
.seg button{border:0;background:transparent;min-height:42px;padding:0 14px;cursor:pointer;font-weight:600;font-size:13.5px}
.seg button[aria-pressed=true]{background:var(--char);color:#fff}
/* tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
th{font-family:var(--f);font-weight:600;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;background:var(--paper2);white-space:nowrap}
td.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.pend td{background:#f6fafa}tr.tot td{font-weight:700;background:var(--paper2)}
.pend-t{color:#7a4f00;font-weight:700}
@media (max-width:700px){table.stack thead{display:none}table.stack tr{display:block;border-bottom:1px solid var(--line);padding:10px 0}table.stack td{display:flex;justify-content:space-between;gap:12px;border:0;padding:4px 12px;text-align:right}table.stack td::before{content:attr(data-l);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;flex:none}table.stack td.n{white-space:normal}table.stack td:first-child{display:block;text-align:left;font-weight:700}table.stack td:first-child::before{display:none}}
/* page head */
.ph-head{padding:clamp(44px,6vw,88px) 0 clamp(28px,4vw,48px);background:linear-gradient(180deg,#fff,var(--mist));border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.ph-head.dark{background:linear-gradient(180deg,#fff,var(--mist));color:var(--ink)}
.ph-head.dark h1,.ph-head.dark h2{color:var(--char)}.ph-head.dark em{color:var(--teal-d)}.ph-head.dark .lead{color:#44494e}.ph-head.dark .sec__head{border-color:var(--line)}.ph-head.dark .sec__head .mono{color:var(--muted)}.ph-head.dark .sec__head .mono:first-child{color:var(--teal-d)}
.ph-head.bp{background-image:linear-gradient(rgba(94,139,145,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(94,139,145,.08) 1px,transparent 1px),linear-gradient(180deg,#fff,var(--mist));background-size:44px 44px,44px 44px,auto}
.ph-head::after{content:"";position:absolute;right:var(--pad);bottom:-1px;width:min(38vw,420px);height:62%;border:2px solid var(--teal);border-bottom:0;border-right:0;opacity:.5;pointer-events:none}
.ph-head p{max-width:64ch}
.crumbs{margin-bottom:18px;color:var(--muted)}.crumbs a{text-decoration:none;color:var(--teal-d)}
/* footer */
.ft{background:var(--char);color:#eef1f2;padding:64px 0 110px}
@media (min-width:900px){.ft{padding-bottom:48px}}
.ft__top{display:grid;gap:30px}
@media (min-width:900px){.ft__top{grid-template-columns:1.2fr 1fr 1fr 1fr}}
.ft h2{font-size:11px;font-family:var(--f);text-transform:uppercase;letter-spacing:.16em;color:var(--teal-l);margin-bottom:14px;font-weight:600}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px}.ft a{text-decoration:none;opacity:.92}.ft a:hover{opacity:1;text-decoration:underline}
.ft__logo{width:190px}
.ft__line{border-top:1px solid var(--lined);margin-top:40px;padding-top:20px;display:grid;gap:8px;font-size:13.5px;color:var(--concrete)}
.ft__line strong{color:#fff}
.ext::after{content:" ↗";font-size:.85em}
/* dock (mobile) */
.dock{position:fixed;left:10px;right:10px;bottom:10px;z-index:40;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:rgba(61,64,69,.95);padding:6px;border-radius:8px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding-bottom:calc(6px + env(safe-area-inset-bottom)/2);box-shadow:0 10px 30px rgba(0,0,0,.18)}
.dock a{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:5px;color:#fff;text-decoration:none;font-weight:600;font-size:14px}
.dock a:first-child{background:var(--teal-d);color:#fff}.dock a.wa{background:#25D366;color:#0b2b17}
@media (min-width:900px){.dock{display:none}}
/* reveal */
.js [data-r]{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.js [data-r].in{opacity:1;transform:none}
/* municipios */
.mun{display:grid;gap:10px;grid-template-columns:1fr 1fr}
@media (min-width:800px){.mun{grid-template-columns:repeat(4,1fr)}}
.mun a,.mun button{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--lined);border-radius:var(--r);text-decoration:none;background:transparent;color:inherit;text-align:left;cursor:pointer;min-height:84px}
.mun a:hover{border-color:var(--teal-l)}.mun b{font-family:var(--fs);font-size:24px;font-weight:600}
.mun .mono{color:var(--teal-l)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);background:#fff;border-radius:999px;min-height:44px;padding:0 14px;cursor:pointer;font-weight:600;font-size:14px}
.chip[aria-pressed=true]{background:var(--char);color:#fff;border-color:var(--char)}
.chip.lvl2{cursor:default;opacity:.8;background:transparent}
/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:90;background:var(--char);color:#fff;padding:12px 18px;border-radius:6px;max-width:min(92vw,520px);font-size:15px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.toast.bad{background:var(--warn)}.toast[hidden]{display:none}
.soon{border:1.5px dashed #b9c3c5;border-radius:var(--r);padding:clamp(22px,3vw,40px);background:#fff}
.prose{max-width:74ch}.prose h2{font-size:clamp(26px,2.6vw,36px);margin-top:1.5em}.prose h3{margin-top:1.4em;font-size:18px}.prose p,.prose li{color:#3a3f44}.prose li+li{margin-top:6px}
.k{display:grid;gap:4px}.k b{font-family:var(--fs);font-size:clamp(30px,3.4vw,46px);font-weight:600;font-variant-numeric:tabular-nums;color:var(--char)}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,30px)}
.stack-m>*+*{margin-top:14px}
/* cotizador */
.qprog{display:flex;gap:6px;overflow-x:auto;padding:4px 0 14px;margin:18px 0 6px;scrollbar-width:thin}
.qprog button{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:4px;min-height:44px;padding:0 14px;font-weight:600;font-size:13.5px;cursor:pointer;white-space:nowrap}
.qprog button.done{border-color:var(--teal)}.qprog button[aria-current=step]{background:var(--char);color:#fff;border-color:var(--char)}
.qstep h2:focus{outline:none}
.qt{cursor:pointer;min-height:96px}.qt h3{font-size:17px}.qt.on{border-color:var(--teal-d);background:var(--mist);box-shadow:inset 0 0 0 1.5px var(--teal-d)}
.qt:focus-within{outline:3px solid var(--teal-d);outline-offset:2px}
.form-l{margin:0;padding-left:20px;font-size:14px}.form-l code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;white-space:normal;word-break:break-word}
.huecos{border:1px solid var(--line);border-radius:var(--r);padding:14px;margin:14px 0 0;min-width:0}.huecos legend{font-weight:700;font-size:14px;padding:0 6px}
.consent{margin-top:14px;border-top:1px solid var(--line);padding-top:14px;display:grid;gap:10px}
.btn--wa[aria-disabled=true]{opacity:.5;cursor:not-allowed}
/* editor */
.pe__meta{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin:16px 0}
@media (min-width:1000px){.pe__meta{grid-template-columns:repeat(6,1fr)}}
.pe__bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;position:sticky;top:68px;z-index:5;background:var(--paper);padding:8px 0}
.pe__tools{border-radius:4px}.pe__tools button{min-height:44px}
.pe__grid{display:grid;gap:14px}
@media (min-width:1000px){.pe__grid{grid-template-columns:1fr 340px}}
.pe__cv{position:relative;border:1.5px solid var(--char);border-radius:var(--r);overflow:hidden;background:#fbfcfc;min-width:0}
.pe__cv canvas{display:block;width:100%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pe__code{margin:0;padding:8px 12px;border-top:1px solid var(--line);background:#fff;font-size:10.5px}
.pe__side{display:grid;gap:12px;align-content:start}
dialog{border:0;border-radius:8px;padding:24px;max-width:min(92vw,520px);box-shadow:0 30px 80px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(46,50,54,.55)}
/* 3D */
.v3d{position:relative;border:1.5px solid var(--char);border-radius:var(--r);overflow:hidden;background:linear-gradient(180deg,#fff,var(--mist));min-height:360px}
.v3d canvas{display:block;width:100%;height:clamp(360px,62vh,640px);touch-action:none}
.v3d__stamp{position:absolute;left:10px;right:10px;top:10px;z-index:2;background:rgba(154,59,18,.92);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:3px;text-align:center;pointer-events:none}
.v3d__msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--muted)}
.v3d__bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
/* servicios */
.svcs{display:grid;gap:28px}
.svc{display:grid;gap:22px;padding-bottom:28px;border-bottom:1px solid var(--line)}
@media (min-width:800px){.svc{grid-template-columns:260px 1fr;align-items:start}}
.svc__img{margin:0;border-radius:4px;overflow:hidden;max-width:320px}.svc__img img{aspect-ratio:4/5;object-fit:cover;width:100%}
.svc ul{padding-left:20px;margin:0 0 14px}.svc .mono{color:var(--teal-d)}
/* permisos */
.ags{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ag{border:1px solid var(--line);border-radius:var(--r);padding:14px;background:#fff}.ag a{font-weight:700;color:var(--teal-d)}.ag p{margin:6px 0 0;font-size:14px}.ag__n{color:#7a2e0f}
.dl{display:grid;gap:4px 18px;margin:16px 0}@media (min-width:800px){.dl{grid-template-columns:220px 1fr}}.dl dt{font-weight:700}.dl dd{margin:0 0 10px}
.prog{grid-template-columns:1fr}@media (min-width:800px){.prog{grid-template-columns:repeat(3,1fr)}}@media (min-width:1200px){.prog{grid-template-columns:repeat(6,1fr)}}
.prog li .pill{margin-bottom:4px}
.tool--1{grid-template-columns:1fr!important}
#oq-out ul{padding-left:20px}#oq-out section{min-width:0}
a{text-underline-offset:3px}
@media (max-width:999px){.pe__bar{position:static}.pe__tools{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.pe__tools button{flex:none}}
/* blog */
.posts{display:grid;gap:22px}@media (min-width:700px){.posts{grid-template-columns:1fr 1fr}}@media (min-width:1080px){.posts{grid-template-columns:repeat(3,1fr)}}
.art-hero{margin:0 0 8px;position:relative}.art-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:2px}
.art-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);margin:0 0 18px}
.toc{border-left:2px solid var(--teal);padding:4px 0 4px 16px;margin:24px 0}.toc ol{margin:6px 0 0;padding-left:18px}
.art-grid{display:grid;gap:40px}@media (min-width:1000px){.art-grid{grid-template-columns:1fr 300px;align-items:start}.art-side{position:sticky;top:96px}}
/* town pages */
.svc-list{columns:1;gap:24px;padding-left:18px}@media (min-width:700px){.svc-list{columns:2}}
.badge-area{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--teal-d)}
/* install */
.install[hidden]{display:none}
@media print{.hd,.dock,.ft,.menu{display:none!important}}
@media (max-width:600px){.hero__meta span:not(:nth-child(2)){display:none}.hero__meta{margin-bottom:14px}.hero h1{font-size:clamp(40px,11vw,52px)}.hero__p{margin-bottom:20px}}
.hd__brand{flex-shrink:0}.hd__est{white-space:nowrap}
@media (min-width:1280px){.hd__wa span,.hd__menu .t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.hd__wa{padding:10px 12px}.hd__nav a{padding:8px 9px}.hd__nav{margin-left:8px}}
@media (min-width:1280px) and (max-width:1399px){.wm span{letter-spacing:.24em}.hd__nav a{font-size:13px;padding:8px 7px}}
.v3d__msg[hidden]{display:none}
.v3d-on .pe__bar{position:static}
.v3d__stamp--b{top:auto;bottom:10px;font-size:10px;padding:5px 8px}
.ft a{color:#eef1f2}.ft a.ext,.ft a[target=_blank]{color:#eef1f2}
@media (max-width:899px){.ph-head::after,.art-hero::after{display:none}}
/* ---- Asistente Cruz (IA) ---- */
.ai-fab{position:fixed;right:14px;bottom:86px;z-index:60;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px 0 12px;border-radius:999px;border:0;background:var(--char);color:#fff;font:600 14px/1 var(--f);box-shadow:0 10px 26px rgba(20,24,28,.28);cursor:pointer}
.ai-fab svg{width:22px;height:22px;color:var(--teal-l)}.ai-fab__tag{background:var(--teal-l);color:var(--char);font-size:10px;font-weight:800;letter-spacing:.08em;padding:3px 6px;border-radius:4px}
.ai-fab:hover{background:#2E3236}
@media (min-width:900px){.ai-fab{bottom:22px;right:22px}}
.ai-open .ai-fab{display:none}
.ai{position:fixed;z-index:70;left:0;right:0;bottom:0;max-height:88vh;height:88vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border-top:3px solid var(--teal);border-radius:14px 14px 0 0;box-shadow:0 -12px 40px rgba(20,24,28,.25);padding:14px 14px calc(12px + env(safe-area-inset-bottom))}
.ai[hidden]{display:none}
@media (min-width:900px){.ai{left:auto;right:22px;bottom:22px;width:400px;height:min(640px,calc(100vh - 110px));border:1px solid var(--line);border-top:3px solid var(--teal);border-radius:10px}}
.ai__hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ai__hd h2{font-family:var(--fs);font-size:24px;line-height:1.1;margin:0;color:var(--char);font-weight:600}
.ai__st{margin:4px 0 0;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}.ai__st::before{content:"";width:8px;height:8px;border-radius:50%;background:#9AA0A6}.ai__st.is-on::before{background:#1E8E3E}
.ai__x{min-width:44px;min-height:44px;border:1px solid var(--line);background:#fff;border-radius:6px;font-size:16px;cursor:pointer;color:var(--char)}
.ai__disc{font-size:12.5px;line-height:1.45;margin:10px 0;padding:8px 10px;background:var(--mist);border-left:3px solid var(--teal-d);border-radius:4px;color:#3a3f44}
.ai__log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 8px;overscroll-behavior:contain}
.ai__msg{max-width:88%;padding:10px 12px;border-radius:12px;font-size:14.5px;line-height:1.5}.ai__msg p{margin:0}.ai__msg p+p{margin-top:6px}
.ai__msg--u{align-self:flex-end;background:var(--teal-d);color:#fff;border-bottom-right-radius:4px}.ai__msg--u a{color:#fff}
.ai__msg--b{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}.ai__msg--b a{color:var(--teal-d);font-weight:600}
.ai__tag{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.ai__typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.ai__typing i{width:7px;height:7px;border-radius:50%;background:var(--teal-d);animation:aiDot 1s infinite ease-in-out}.ai__typing i:nth-child(2){animation-delay:.15s}.ai__typing i:nth-child(3){animation-delay:.3s}
@keyframes aiDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.ai__typing i{animation:none;opacity:.7}}
.ai__chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:thin}
.ai__chip{flex:0 0 auto;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--teal-d);background:#fff;color:var(--teal-d);font:600 12.5px var(--f);cursor:pointer;white-space:nowrap}.ai__chip:hover{background:var(--mist)}
.ai__form textarea{width:100%;resize:none;border:1.5px solid #8a9095;border-radius:8px;padding:10px 12px;font:15px/1.4 var(--f);color:var(--ink);background:#fff}
.ai__form textarea:focus{outline:3px solid var(--teal-d);outline-offset:1px}
.ai__row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}.ai__cnt{font-size:12px;color:var(--muted)}
.ai__acts{display:flex;gap:8px;margin-top:8px}.ai__acts .btn{flex:1;justify-content:center}
