:root{
  /* ---- brand colour ---- */
  --bg:#EBE5DB;
  --surface:#F6F2EB;
  --surface-2:#FFFFFF;
  --ink:#1A1917;
  --ink-soft:#5B574F;
  --line:#DBD3C4;
  --gold:#A9762E;
  --gold-bright:#D1A65A;
  --gold-hover:#DCB56D;
  --on-gold:#1A1305;
  --dark:#111110;
  --dark-2:#1B1A18;
  --dark-3:#0B0B0A;
  --dark-line:#302E2A;
  --surface-cell:linear-gradient(160deg,#232220 0%,#1B1A18 55%,#151413 100%);
  --surface-cell-hover:linear-gradient(160deg,#2A2825 0%,#1F1E1B 55%,#181716 100%);
  --shadow-cell:inset 1px 1px 0 rgba(238,232,220,.055),inset -1px -1px 0 rgba(0,0,0,.5),0 18px 34px -18px rgba(0,0,0,.75);
  --shadow-btn:0 2px 4px -1px rgba(0,0,0,.28),0 8px 16px -8px rgba(0,0,0,.42);
  --shadow-btn-hover:0 4px 8px -2px rgba(0,0,0,.34),0 14px 26px -10px rgba(0,0,0,.5);
  --shadow-btn-gold:0 2px 4px -1px rgba(90,58,10,.4),0 10px 20px -8px rgba(90,58,10,.5);
  --shadow-btn-gold-hover:0 4px 8px -2px rgba(90,58,10,.46),0 16px 28px -10px rgba(90,58,10,.58);
  --shadow-cell-hover:inset 1px 1px 0 rgba(209,166,90,.22),inset -1px -1px 0 rgba(0,0,0,.55),0 26px 46px -20px rgba(0,0,0,.85);
  --on-dark:#EEE8DC;
  --on-dark-soft:#A69F90;
  --on-dark-quiet:#D9D3C6;
  --header-bg:rgba(17,17,16,.9);
  --scrim-a:rgba(17,17,16,.55);
  --scrim-b:rgba(17,17,16,.25);
  --scrim-c:rgba(17,17,16,.92);
  --scrim-d:rgba(17,17,16,.60);
  --scrim-e:rgba(17,17,16,.90);
  --scrim-cap:rgba(17,17,16,.80);
  --transparent:rgba(0,0,0,0);

  /* ---- type ---- */
  --f-disp:"Archivo","Helvetica Neue",sans-serif;
  --f-body:"IBM Plex Sans","Helvetica Neue",sans-serif;
  --f-mono:"IBM Plex Mono","Courier New",monospace;
  --w-reg:400; --w-med:500; --w-semi:600; --w-bold:700; --w-black:800;
  --lh-body:1.65; --lh-head:1.06; --lh-tight:1.2; --lh-one:1;
  --ls-head:-.02em; --ls-head-sm:-.01em; --ls-eyebrow:.22em; --ls-wide:.14em;
  --ls-mid:.1em; --ls-form:.08em; --ls-cap:.06em; --ls-btn:.04em; --ls-hair:.01em;

  --fs-base:17px;
  --fs-h1:clamp(2.5rem,6vw,5rem);
  --fs-h1-page:clamp(2.1rem,4.6vw,3.6rem);
  --fs-h2:clamp(1.9rem,3.6vw,3rem);
  --fs-h2-cta:clamp(2rem,4.4vw,3.4rem);
  --fs-h2-sm:1.6rem;
  --fs-h2-xs:1.5rem;
  --fs-h3:1.18rem;
  --fs-h3-card:1.15rem;
  --fs-h3-model:1.5rem;
  --fs-h3-sub:1.2rem;
  --fs-lead:clamp(1.05rem,1.6vw,1.25rem);
  --fs-hero-p:clamp(1.05rem,1.7vw,1.3rem);
  --fs-prose:1.08rem;
  --fs-bullet:1.02rem;
  --fs-summary:1.12rem;
  --fs-faq:15.5px;
  --fs-input:15.5px;
  --fs-md:15px;
  --fs-sm:14.5px;
  --fs-xs:14px;
  --fs-btn:13.5px;
  --fs-btn-lg:14px;
  --fs-mono:12.5px;
  --fs-mono-sm:12px;
  --fs-mono-xs:11.5px;
  --fs-tag:11px;
  --fs-step-n:2.4rem;
  --fs-icon:15px;
  --fs-toggle:18px;
  --fs-plus:1.5rem;

  /* ---- space ---- */
  --s-0:0px; --s-1:4px; --s-2:6px; --s-3:8px; --s-4:10px; --s-5:12px;
  --s-6:14px; --s-7:16px; --s-8:18px; --s-9:20px; --s-10:22px; --s-11:24px;
  --s-12:26px; --s-13:28px; --s-14:30px; --s-15:34px; --s-16:40px; --s-17:44px;
  --s-18:48px; --s-19:56px; --s-20:64px; --s-21:72px;
  --gap-hair:1px;
  --section-y:clamp(60px,8vw,110px);
  --wrap-pad:28px;
  --maxw:1200px;
  --nav-h:74px;
  --hero-min:clamp(560px,84vh,800px);
  --hero-plate-min:clamp(340px,52vh,620px);
  --fs-h1-split:clamp(2.3rem,5vw,4.2rem);
  --phero-min:400px;
  --measure-lead:62ch;
  --measure-prose:70ch;
  --measure-hero:52ch;
  --measure-sub:56ch;
  --measure-h1:16ch;
  --measure-h1-page:18ch;
  --measure-note:72ch;
  --measure-desc:40ch;
  --measure-head:760px;
  --measure-faq:820px;
  --measure-cta:860px;
  --cell-min:172px;
  --step-min:200px;
  --dot:13px;
  --dot-sm:10px;
  --btn-sq:40px;
  --logo-footer:38px;
  --logo-footer-max:260px;
  --logo-nav:30px;
  --logo-nav-max:190px;
  --toggle-w:44px;
  --spec-k:150px;
  --contact-k:110px;
  --r:4px;
  --r-pill:20px;
  --bw:1px;
  --bw-dot:1.5px;
  --bw-focus:2px;
  --bw-mark:2px;
  --lift:-2px;
  --lift-card:-4px;
  --zoom:1.05;
  --op-hero:.55;
  --op-phero:.4;
  --op-model:.9;
  --z-header:50;
  --basis-3:calc(33.333% - var(--s-8));
  --basis-3h:calc(33.333% - var(--gap-hair));
  --basis-2:calc(50% - var(--s-6));
  --basis-full:100%;
  --gap-col:clamp(32px,5vw,72px);
  --gap-col-sm:clamp(32px,5vw,64px);

  /* ---- imagery ---- */
  --img-logo:url("logo.png");
  --img-hero:url("hero-web.jpg");
  --img-aereo:url("aereo.jpg");
  --img-corredor:url("corredor.jpg");
  --img-fabrica:url("fabrica.jpg");
  --img-fachada2:url("fachada2.jpg");
  --img-fachada3:url("fachada3.jpg");
  --img-comercio:url("comercio-web.jpg");
  --img-agro:url("agro-web.jpg");
  --img-home-fachada:url("home/Fachada_01.jpg");
  --img-modelos:url("home/Fachada_04.jpg");
  --img-twin-fachada:url("twinloft/TwinLoft_Fachada_01.jpg");
  --img-fachada4:url("fachada4.jpg");
  --img-interior:url("interior.jpg");
  --img-palmeiras:url("palmeiras.jpg");
  --img-planta:url("planta.jpg");
}

@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#100F0E; --surface:#1A1917; --surface-2:#211F1C;
    --ink:#EEE8DC; --ink-soft:#A69F90; --line:#2C2A26;
    --gold:#D1A65A;
  }
}
:root[data-theme="dark"]{
  --bg:#100F0E; --surface:#1A1917; --surface-2:#211F1C;
  --ink:#EEE8DC; --ink-soft:#A69F90; --line:#2C2A26;
  --gold:#D1A65A;
}

*{box-sizing:border-box;margin:var(--s-0);padding:var(--s-0)}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--bg);color:var(--ink);
  font-family:var(--f-body);font-size:var(--fs-base);font-weight:var(--w-reg);
  line-height:var(--lh-body);-webkit-font-smoothing:antialiased;
  overflow-x:hidden;text-rendering:optimizeLegibility;
}
img{max-width:var(--basis-full);display:block}
a{color:inherit;text-decoration:none;cursor:pointer}
a:hover{color:var(--gold)}
button{font-family:var(--f-body)}
h1,h2,h3,h4{font-family:var(--f-disp);font-weight:var(--w-bold);line-height:var(--lh-head);letter-spacing:var(--ls-head);text-wrap:balance}
p{text-wrap:pretty}

.wrap{width:var(--basis-full);max-width:var(--maxw);margin-left:auto;margin-right:auto;padding-left:var(--wrap-pad);padding-right:var(--wrap-pad)}
.col{display:flex;flex-direction:column}
.row{display:flex;flex-direction:row}

.eyebrow{display:block;font-family:var(--f-mono);font-size:var(--fs-eyebrow,var(--fs-mono-sm));font-weight:var(--w-semi);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--gold)}
.eyebrow-light{color:var(--gold-bright)}
.lead{font-size:var(--fs-lead);color:var(--ink-soft);max-width:var(--measure-lead)}
.lead-dark{color:var(--on-dark-soft)}

/* ---------- buttons ---------- */
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-3);
  font-family:var(--f-mono);font-weight:var(--w-semi);font-size:var(--fs-btn);
  letter-spacing:var(--ls-btn);padding:var(--s-6) var(--s-10);
  border-radius:var(--r);border:var(--bw) solid var(--transparent);
  cursor:pointer;box-shadow:var(--shadow-btn);
  transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.button:focus-visible{outline:var(--bw-focus) solid var(--gold-bright);outline-offset:var(--s-2)}
.nav a.button,a.button,.button,.nav a.button-primary,a.button.button-primary,.button.button-primary,.nav a.button-ghost,a.button.button-ghost,.button.button-ghost,.nav a.button-ghost-dark,a.button.button-ghost-dark,.button.button-ghost-dark{background:var(--gold-bright);color:var(--on-gold);border-color:var(--gold-bright);box-shadow:var(--shadow-btn-gold)}
.nav a.button:hover,a.button:hover,.button:hover,.nav a.button-ghost:hover,a.button.button-ghost:hover,.button.button-ghost:hover,.nav a.button-ghost-dark:hover,a.button.button-ghost-dark:hover,.button.button-ghost-dark:hover{transform:translateY(var(--lift));background:var(--gold-hover);color:var(--on-gold);border-color:var(--gold-hover);box-shadow:var(--shadow-btn-gold-hover)}
.button-lg{padding:var(--s-7) var(--s-13);font-size:var(--fs-btn-lg)}
.button-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-6)}
.button-row-center{justify-content:center}

/* ---------- header ---------- */
.site-header{position:sticky;top:var(--s-0);z-index:var(--z-header);background:var(--header-bg);backdrop-filter:blur(10px);border-bottom:var(--bw) solid var(--dark-line);color:var(--on-dark)}
.nav{display:flex;flex-direction:row;align-items:center;gap:var(--s-12);height:var(--nav-h)}
.nav-brand{display:flex;align-items:center;flex:0 0 auto}
.nav-brand img{height:var(--logo-nav);width:auto;max-width:var(--logo-nav-max);object-fit:contain;object-position:left center;flex:0 0 auto}
.nav-links{display:flex;flex-direction:row;flex-wrap:wrap;list-style:none;gap:var(--s-9);margin-left:auto}
.nav-link{font-size:var(--fs-sm);color:var(--on-dark-soft);font-weight:var(--w-med);transition:color .2s ease}
.nav-link:hover,.nav-link-active{color:var(--gold-bright)}
.nav-actions{display:flex;flex-direction:row;align-items:center;gap:var(--s-6);flex:0 0 auto}
.icon-button{display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-btn);transition:box-shadow .2s ease,color .2s ease,border-color .2s ease;background:var(--transparent);border:var(--bw) solid var(--dark-line);color:var(--on-dark-soft);border-radius:var(--r);width:var(--btn-sq);height:var(--btn-sq);cursor:pointer;font-size:var(--fs-icon);flex:0 0 auto}
.icon-button,.nav-toggle{background:var(--gold-bright);color:var(--on-gold);border-color:var(--gold-bright);box-shadow:var(--shadow-btn-gold)}
.icon-button:hover,.nav-toggle:hover{background:var(--gold-hover);color:var(--on-gold);border-color:var(--gold-hover);box-shadow:var(--shadow-btn-gold-hover)}
.nav-toggle{display:none;box-shadow:var(--shadow-btn);background:var(--transparent);border:var(--bw) solid var(--dark-line);border-radius:var(--r);width:var(--toggle-w);height:var(--btn-sq);color:var(--on-dark);cursor:pointer;font-size:var(--fs-toggle)}
.nav-drawer{display:none}
.prototype-flag{background:var(--gold-bright);color:var(--on-gold);text-align:center;font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-form);padding:var(--s-2) var(--s-5);text-transform:uppercase;font-weight:var(--w-semi)}

/* ---------- pages ---------- */
.page{display:none;flex-direction:column}
.page-active{display:flex;animation:fade .4s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.page-active{animation:none}}

.page-default{display:flex}
[data-page] .page{display:none}
[data-page] .page-default{display:none}
[data-page="home"] #page-home,
[data-page="solucoes"] #page-solucoes,
[data-page="sol-agro"] #page-sol-agro,
[data-page="sol-publico"] #page-sol-publico,
[data-page="sol-saude"] #page-sol-saude,
[data-page="sol-comercio"] #page-sol-comercio,
[data-page="sol-residencial"] #page-sol-residencial,
[data-page="sol-civil"] #page-sol-civil,
[data-page="modelos"] #page-modelos,
[data-page="modelo-home"] #page-modelo-home,
[data-page="modelo-twin"] #page-modelo-twin,
[data-page="sob-medida"] #page-sob-medida,
[data-page="como-funciona"] #page-como-funciona,
[data-page="empresa"] #page-empresa,
[data-page="contato"] #page-contato,
[data-page="conteudos"] #page-conteudos,
[data-page="projetos"] #page-projetos{display:flex;animation:fade .4s ease}

.section{display:flex;flex-direction:column;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.section-dark{background:var(--dark);color:var(--on-dark)}
.section-dark .lead{color:var(--on-dark-soft)}
.section-dark .eyebrow{color:var(--gold-bright)}
.section-center{text-align:center;align-items:center}
.section-head{display:flex;flex-direction:column;gap:var(--s-7);max-width:var(--measure-head);margin-bottom:var(--s-17)}
.section-head h2{font-size:var(--fs-h2)}

/* ---------- hero ---------- */
.hero{display:flex;flex-direction:column;justify-content:flex-end;min-height:var(--hero-min);background-color:var(--dark);color:var(--on-dark);background-repeat:no-repeat;background-size:cover;background-position:center;overflow:hidden}
.hero-home{background-image:linear-gradient(180deg,var(--scrim-a) 0%,var(--scrim-b) 40%,var(--scrim-c) 100%),var(--img-hero)}
.hero-inner{display:flex;flex-direction:column;padding-top:var(--s-20);padding-bottom:var(--s-20)}
.hero h1{font-size:var(--fs-h1);font-weight:var(--w-black);max-width:var(--measure-h1);margin-top:var(--s-6)}
.hero-gold{color:var(--gold-bright)}
.hero-text{margin-top:var(--s-10);font-size:var(--fs-hero-p);color:var(--on-dark-quiet);max-width:var(--measure-hero)}
.hero-actions{margin-top:var(--s-15)}

.modline{display:flex;flex-direction:row;align-items:center;gap:var(--s-4);margin-bottom:var(--s-11)}
.mod{display:flex;flex-direction:row;align-items:center;gap:var(--s-2)}
.mod-dot{width:var(--dot);height:var(--dot);border:var(--bw-dot) solid var(--gold-bright);border-radius:var(--bw-mark);display:block;flex:0 0 auto}
.mod-dot-fill{background:var(--gold-bright)}
.mod-line{flex:1 1 auto;height:var(--gap-hair);background-image:linear-gradient(90deg,var(--gold-bright),var(--transparent))}
.mod-label{font-family:var(--f-mono);font-size:var(--fs-tag);letter-spacing:var(--ls-wide);color:var(--gold);margin-left:var(--s-3)}

/* ---------- hero variants ---------- */
[data-hero] .hero-variant{display:none}
[data-hero="overlay"] .hero-overlay{display:flex}
[data-hero="split"] .hero-split{display:flex}

.hero-split{flex-direction:column;background:var(--dark);color:var(--on-dark)}
.hero-plate{display:flex;width:var(--basis-full);min-height:var(--hero-plate-min);background-color:var(--dark);background-image:var(--img-hero);background-repeat:no-repeat;background-size:cover;background-position:center}
.hero-copy{display:flex;flex-direction:column;padding-top:var(--s-19);padding-bottom:var(--s-19)}
.hero-copy h1{font-size:var(--fs-h1-split);font-weight:var(--w-black);max-width:var(--measure-h1);margin-top:var(--s-6)}

/* ---------- two column ---------- */
.two{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--gap-col);align-items:center}
.two-top{align-items:flex-start}
.two-main{flex:1.05 1 46%;display:flex;flex-direction:column}
.two-side{flex:.95 1 40%;display:flex;flex-direction:column}

.figure{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;border:var(--bw) solid var(--line);background:var(--surface)}
.figure img{width:var(--basis-full);height:auto;aspect-ratio:16/11;object-fit:cover}
.figure-stack{display:flex;flex-direction:column;gap:var(--s-9)}
.band{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;border:var(--bw) solid var(--line);background:var(--surface);margin-top:var(--s-16)}
.band img{width:var(--basis-full);aspect-ratio:21/9;object-fit:cover}
.figcap{background:var(--scrim-cap);color:var(--on-dark);padding:var(--s-6) var(--s-7);font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-cap);text-transform:uppercase}

/* ---------- differentials ---------- */
.cell-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--gap-hair);background:var(--dark-line);border:var(--bw) solid var(--dark-line);border-radius:var(--r);overflow:hidden}
.cell{flex:1 1 var(--basis-3h);background:var(--surface-cell);padding:var(--s-14) var(--s-12);display:flex;flex-direction:column;gap:var(--s-4);min-height:var(--cell-min);box-shadow:var(--shadow-cell);transition:box-shadow .25s ease,background .25s ease,transform .25s ease}
.cell:hover{background:var(--surface-cell-hover);box-shadow:var(--shadow-cell-hover);transform:translateY(var(--lift))}
.cell-n{font-family:var(--f-mono);font-size:var(--fs-mono-sm);color:var(--gold-bright);letter-spacing:var(--ls-mid)}
.cell h3{font-size:var(--fs-h3);letter-spacing:var(--ls-head-sm);color:var(--on-dark)}
.cell p{font-size:var(--fs-md);color:var(--on-dark-soft)}

/* ---------- cards ---------- */
.card-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-8)}
.card{flex:1 1 var(--basis-3);display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;border:var(--bw) solid var(--line);background:var(--surface);transition:transform .2s ease,border-color .2s ease;cursor:pointer;color:inherit}
.card:hover{transform:translateY(var(--lift-card));border-color:var(--gold-bright);color:inherit}
.card-photo{display:flex;overflow:hidden}
.card-photo img{width:var(--basis-full);aspect-ratio:16/10;object-fit:cover;transition:transform .5s ease}
.card:hover .card-photo img{transform:scale(var(--zoom))}
.card-body{padding:var(--s-9) var(--s-9) var(--s-11);display:flex;flex-direction:column;gap:var(--s-3)}
.card-tag{font-family:var(--f-mono);font-size:var(--fs-tag);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--gold)}
.card h3{font-size:var(--fs-h3-card)}
.card p{font-size:var(--fs-sm);color:var(--ink-soft)}
.card-more{font-family:var(--f-mono);font-size:var(--fs-mono-sm);color:var(--gold);margin-top:var(--s-1)}

/* ---------- models ---------- */
.model-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-8)}
.model{flex:1 1 var(--basis-3);display:flex;flex-direction:column;border:var(--bw) solid var(--dark-line);border-radius:var(--r);overflow:hidden;background:var(--dark-2)}
.model-photo{display:flex;overflow:hidden;background:var(--dark-3)}
.model-photo img{width:var(--basis-full);aspect-ratio:4/3;object-fit:cover;opacity:var(--op-model)}
.model-body{padding:var(--s-11);display:flex;flex-direction:column;gap:var(--s-5);flex:1 1 auto}
.model h3{font-size:var(--fs-h3-model);color:var(--on-dark)}
.model p{font-size:var(--fs-md);color:var(--on-dark-soft);flex:1 1 auto}
.model .button{align-self:flex-start;margin-top:var(--s-2)}
.note{margin-top:var(--s-12);font-family:var(--f-mono);font-size:var(--fs-mono);color:var(--on-dark-soft);border-left:var(--bw-mark) solid var(--gold-bright);padding:var(--s-4) var(--s-0) var(--s-4) var(--s-7);max-width:var(--measure-note);letter-spacing:var(--ls-hair)}

/* ---------- steps ---------- */
.step-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--gap-hair);background:var(--dark-line);border:var(--bw) solid var(--dark-line);border-radius:var(--r);overflow:hidden}
.step{flex:1 1 var(--basis-3h);background:var(--dark-2);padding:var(--s-14) var(--s-11);display:flex;flex-direction:column;gap:var(--s-5);min-height:var(--step-min)}
.step-n{font-family:var(--f-disp);font-weight:var(--w-black);font-size:var(--fs-step-n);color:var(--gold-bright);line-height:var(--lh-one)}
.step h3{font-size:var(--fs-h3-card);color:var(--on-dark)}
.step p{font-size:var(--fs-xs);color:var(--on-dark-soft)}
.deadline{margin-top:var(--s-13);font-size:var(--fs-md);color:var(--on-dark-soft)}
.deadline b{color:var(--gold-bright);font-family:var(--f-mono);font-weight:var(--w-semi)}

/* ---------- inner page hero ---------- */
.page-hero{display:flex;flex-direction:column;justify-content:flex-end;background-color:var(--dark);color:var(--on-dark);padding-top:var(--s-20);padding-bottom:var(--s-19);background-repeat:no-repeat;background-size:cover;background-position:center;overflow:hidden}
.page-hero-photo{min-height:var(--phero-min)}
.crumb{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s-3);font-family:var(--f-mono);font-size:var(--fs-crumb,var(--fs-mono-sm));letter-spacing:var(--ls-mid);text-transform:uppercase;color:var(--on-dark-soft);margin-bottom:var(--s-8)}
.crumb a{color:var(--gold-bright)}
.crumb-sep{opacity:.5}
.page-hero h1{font-size:var(--fs-h1-page);font-weight:var(--w-black);max-width:var(--measure-h1-page)}
.page-hero-sub{margin-top:var(--s-8);font-size:var(--fs-lead);color:var(--on-dark-quiet);max-width:var(--measure-sub)}
.badge-soon{align-self:flex-start;font-family:var(--f-mono);font-size:var(--fs-tag);letter-spacing:var(--ls-wide);text-transform:uppercase;background:var(--gold-bright);color:var(--on-gold);padding:var(--s-1) var(--s-5);border-radius:var(--r-pill);margin-bottom:var(--s-8)}

.bg-aereo{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-aereo)}
.bg-corredor{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-corredor)}
.bg-fabrica{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-fabrica)}
.bg-fachada2{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-fachada2)}
.bg-home-fachada{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-home-fachada)}
.bg-modelos{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-modelos)}
.bg-twin-fachada{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-twin-fachada)}
.bg-fachada3{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-fachada3)}
.bg-comercio{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-comercio)}
.bg-fachada4{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-fachada4)}
.bg-agro{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-agro)}
.bg-interior{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-interior)}
.bg-planta{background-image:linear-gradient(180deg,var(--scrim-d),var(--scrim-e)),var(--img-planta)}

/* ---------- prose ---------- */
.prose{display:flex;flex-direction:column;max-width:var(--measure-prose)}
.prose h2{font-size:var(--fs-h2-xs);margin-bottom:var(--s-7)}
.prose h3{font-size:var(--fs-h3-sub);margin-top:var(--s-12);margin-bottom:var(--s-6)}
.prose p{margin-bottom:var(--s-8);color:var(--ink-soft);font-size:var(--fs-prose)}
.prose p strong{color:var(--ink);font-weight:var(--w-semi)}
.bullets{display:flex;flex-direction:column;list-style:none;gap:var(--s-5);margin-top:var(--s-3);margin-bottom:var(--s-3)}
.bullets li{display:flex;flex-direction:row;align-items:flex-start;gap:var(--s-7);color:var(--ink-soft);font-size:var(--fs-bullet)}
.bullet-mark{flex:0 0 auto;width:var(--dot-sm);height:var(--dot-sm);border:var(--bw-dot) solid var(--gold);border-radius:var(--bw-mark);margin-top:var(--s-3);display:block}

/* ---------- gallery ---------- */
.gallery{display:flex;flex-direction:column;gap:var(--s-16)}
.gallery-group{display:flex;flex-direction:column;gap:var(--s-9)}
.gallery-head{display:flex;flex-direction:row;align-items:baseline;gap:var(--s-7);flex-wrap:wrap;border-bottom:var(--bw) solid var(--line);padding-bottom:var(--s-5)}
.gallery-head h3{font-size:var(--fs-h3-sub)}
.gallery-count{font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-form);text-transform:uppercase;color:var(--gold);margin-left:auto}
.gallery-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-8)}
.shot{flex:1 1 var(--basis-2);display:flex;flex-direction:column;border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.shot-wide{flex:1 1 var(--basis-full)}
.shot img{width:var(--basis-full);aspect-ratio:16/10;object-fit:cover;transition:transform .5s ease}
.shot:hover img{transform:scale(var(--zoom))}
.shot-plan img{aspect-ratio:4/3;object-fit:contain;background:var(--dark-3)}

/* ---------- specs & contacts ---------- */
.panel-dark{background:var(--dark);color:var(--on-dark);padding:var(--s-12);border-radius:var(--r);display:flex;flex-direction:column}
.spec{display:flex;flex-direction:column;list-style:none;gap:var(--s-4);margin-top:var(--s-6)}
.spec li{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-6);font-size:var(--fs-md);padding-top:var(--s-5);padding-bottom:var(--s-5);border-bottom:var(--bw) solid var(--dark-line)}
.spec-k{font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-form);text-transform:uppercase;color:var(--gold-bright);flex:0 0 var(--spec-k)}
.spec-v{color:var(--on-dark-soft);font-style:italic}
.contacts{display:flex;flex-direction:column;gap:var(--s-6);margin-top:var(--s-10)}
.contacts .row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-5);align-items:baseline;font-size:var(--fs-md)}
.contact-k{font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-mid);text-transform:uppercase;color:var(--gold-bright);flex:0 0 var(--contact-k)}
.placeholder{color:var(--on-dark-soft);font-style:italic}

/* ---------- form (mockup) ---------- */
.form-split{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--gap-col-sm)}
.form-split-side{flex:.9 1 36%;display:flex;flex-direction:column}
.form-split-main{flex:1.1 1 46%;display:flex;flex-direction:column}
.mockup-note{font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-form);text-transform:uppercase;color:var(--gold-bright);border:var(--bw) solid var(--dark-line);border-radius:var(--r);padding:var(--s-3) var(--s-5);margin-bottom:var(--s-7);align-self:flex-start}
.lead-form{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-6)}
.field{flex:1 1 var(--basis-2);display:flex;flex-direction:column;gap:var(--s-2);font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-form);text-transform:uppercase;color:var(--ink-soft)}
.field-full{flex:1 1 var(--basis-full)}
.section-dark .field{color:var(--on-dark-soft)}
.input{font-family:var(--f-body);font-size:var(--fs-input);color:var(--ink);background:var(--surface-2);border:var(--bw) solid var(--line);border-radius:var(--r);padding:var(--s-5) var(--s-6);width:var(--basis-full);text-transform:none;letter-spacing:normal}
.input:focus{outline:var(--bw-focus) solid var(--gold-bright);outline-offset:var(--gap-hair);border-color:var(--transparent)}
textarea.input{min-height:var(--step-min);resize:vertical}

/* ---------- faq ---------- */
.faq{display:flex;flex-direction:column;max-width:var(--measure-faq);margin-left:auto;margin-right:auto;border-top:var(--bw) solid var(--line)}
.faq details{border-bottom:var(--bw) solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--s-7);padding-top:var(--s-10);padding-bottom:var(--s-10);font-family:var(--f-disp);font-weight:var(--w-semi);font-size:var(--fs-summary);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq-mark{font-family:var(--f-body);color:var(--gold);font-size:var(--fs-plus);font-weight:var(--w-reg);line-height:var(--lh-one);flex:0 0 auto}
.faq-mark-minus{display:none}
.faq details[open] .faq-mark-plus{display:none}
.faq details[open] .faq-mark-minus{display:block}
.faq details p{padding-right:var(--s-16);padding-bottom:var(--s-11);color:var(--ink-soft);font-size:var(--fs-faq)}

/* ---------- spacing helpers ---------- */
.prose-h2-spaced{font-size:var(--fs-h2);margin-top:var(--s-6);margin-bottom:var(--s-9)}
.lead-spaced{margin-top:var(--s-8)}
.lead-center{margin-left:auto;margin-right:auto;margin-bottom:var(--s-14)}
.lead-wide{max-width:var(--measure-note);margin-bottom:var(--s-17)}
.modline-inline{margin-top:var(--s-13);margin-bottom:var(--s-13)}
.modline-center{justify-content:center;margin-bottom:var(--s-11)}
.button-row-spaced{margin-top:var(--s-15)}
.cta-wrap{max-width:var(--measure-cta);align-items:center}
.cta-title{font-size:var(--fs-h2-cta);margin-top:var(--s-7);margin-bottom:var(--s-9)}
.prose-spaced{margin-bottom:var(--s-17)}
.prose-spaced-top{margin-top:var(--s-9)}
.section-title-sm{font-size:var(--fs-h2-sm);margin-bottom:var(--s-12)}
.figure-spaced{margin-bottom:var(--s-10)}

/* ---------- footer ---------- */
.site-footer{display:flex;flex-direction:column;background:var(--dark-3);color:var(--on-dark-soft);padding-top:var(--s-21);padding-bottom:var(--s-16);border-top:var(--bw) solid var(--dark-line)}
.footer-cols{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s-16);margin-bottom:var(--s-18)}
.footer-brand{flex:1.4 1 40%;display:flex;flex-direction:column}
.footer-brand img{height:var(--logo-footer);width:auto;max-width:var(--logo-footer-max);object-fit:contain;object-position:left center;margin-bottom:var(--s-8);flex:0 0 auto;align-self:flex-start}
.footer-desc{font-size:var(--fs-sm);max-width:var(--measure-desc);color:var(--on-dark-soft)}
.footer-col{flex:1 1 20%;display:flex;flex-direction:column}
.footer-col h4{font-family:var(--f-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--gold-bright);margin-bottom:var(--s-7);font-weight:var(--w-semi)}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:var(--s-3);font-size:var(--fs-sm)}
.footer-col a:hover{color:var(--gold-bright)}
.footer-base{border-top:var(--bw) solid var(--dark-line);padding-top:var(--s-12);display:flex;flex-direction:row;justify-content:space-between;gap:var(--s-7);flex-wrap:wrap;font-size:var(--fs-mono);font-family:var(--f-mono);letter-spacing:var(--ls-btn)}

/* ---------- tablet ---------- */
@media (max-width:1000px){
  .nav-links{display:none}
  .nav-cta{display:none}
  .nav-toggle{display:block}
  .nav-drawer{display:flex;flex-direction:column;background:var(--dark);border-bottom:var(--bw) solid var(--dark-line);padding:var(--s-6) var(--wrap-pad);gap:var(--s-0);list-style:none}
  .nav-drawer .nav-link{padding-top:var(--s-5);padding-bottom:var(--s-5);border-bottom:var(--bw) solid var(--dark-line)}
  .card{flex:1 1 var(--basis-2)}
  .cell{flex:1 1 var(--basis-2)}
  .step{flex:1 1 var(--basis-2)}
  .model{flex:1 1 var(--basis-2)}
  .two{gap:var(--s-16)}
  .two-main,.two-side{flex:1 1 var(--basis-full)}
  .form-split-side,.form-split-main{flex:1 1 var(--basis-full)}
  .footer-brand{flex:1 1 var(--basis-full)}
  .footer-col{flex:1 1 var(--basis-3)}
}

/* ---------- mobile ---------- */
@media (max-width:620px){
  :root{--wrap-pad:20px;--section-y:56px;--nav-h:64px;--hero-min:600px;--phero-min:320px;--hero-plate-min:260px}
  .hero-copy{padding-top:var(--s-17);padding-bottom:var(--s-17)}
  .hero-copy h1{max-width:var(--basis-full)}
  .nav{gap:var(--s-5)}
  :root{--logo-nav:26px;--logo-nav-max:150px}
  .card,.cell,.step,.model,.field,.shot{flex:1 1 var(--basis-full)}
  .card-photo img{aspect-ratio:16/9}
  .hero h1{max-width:var(--basis-full)}
  .hero-inner{padding-top:var(--s-19);padding-bottom:var(--s-17)}
  .hero-actions .button,.button-lg{width:var(--basis-full)}
  .button-row{gap:var(--s-5)}
  .section-head{margin-bottom:var(--s-14)}
  .spec li{flex-direction:column;gap:var(--s-2)}
  .spec-k,.contact-k{flex:1 1 var(--basis-full)}
  .footer-cols{gap:var(--s-14)}
  .footer-col{flex:1 1 var(--basis-full)}
  .footer-base{flex-direction:column}
  .prose h3{margin-top:var(--s-11)}
  .faq details p{padding-right:var(--s-0)}
  .modline{gap:var(--s-3)}
}
