
  :root{
    --paper:#FAF6EF;
    --surface:#EFE7D9;
    --ink:#241E16;
    --muted:#6F6455;
    --walnut:#7A4E2A;
    --brass:#A87B3C;
    --brass-soft:#C9A265;
    --line:#DDD2BF;
    --card:#FFFFFF;
    --overlay:rgba(20,14,8,.55);
    --deep:#241E16;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#1C1712; --surface:#282017; --ink:#F2EAE0; --muted:#A79880;
      --walnut:#C89A5B; --brass:#C89A5B; --brass-soft:#A87B3C; --line:#3A3226;
      --card:#241E16; --overlay:rgba(10,7,4,.6); --deep:#15110C;
    }
  }
  :root[data-theme="dark"]{
    --paper:#1C1712; --surface:#282017; --ink:#F2EAE0; --muted:#A79880;
    --walnut:#C89A5B; --brass:#C89A5B; --brass-soft:#A87B3C; --line:#3A3226;
    --card:#241E16; --overlay:rgba(10,7,4,.6); --deep:#15110C;
  }

  body{
    background:var(--paper); color:var(--ink);
    font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px; line-height:1.6; margin:0;
  }
  .wrap{max-width:1150px;margin-inline:auto;padding-inline:clamp(16px,5vw,48px)}
  section{padding-block:clamp(48px,8vw,88px)}
  h1,h2,h3{font-family:"Fraunces","Georgia",serif;font-weight:500;line-height:1.12;text-wrap:balance;margin:0}
  h2{font-size:clamp(1.7rem,3.6vw,2.5rem)}
  p{margin:0}
  img{max-width:100%}

  .eyebrow{
    font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
    color:var(--brass);display:flex;align-items:center;gap:12px;
  }
  .eyebrow::after{content:"";height:2px;flex:0 0 44px;background:linear-gradient(90deg,var(--brass),transparent)}
  .led{height:2px;width:74px;background:linear-gradient(90deg,var(--brass),var(--brass-soft),transparent);border:0;margin:18px 0 0}
  .lead{color:var(--muted);margin-top:16px;max-width:60ch}

  header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
  .top-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
  .logo{height:42px;width:auto;display:block}
  @media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo{filter:invert(1) hue-rotate(180deg)}}
  :root[data-theme="dark"] .logo{filter:invert(1) hue-rotate(180deg)}
  nav.main{display:flex;gap:24px;font-size:.85rem;font-weight:600;letter-spacing:.03em}
  nav.main a{color:var(--ink);text-decoration:none}
  nav.main a:hover,nav.main a:focus-visible{color:var(--brass)}
  a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
  @media (max-width:1040px){nav.main{display:none}}

  /* hero */
  .hero{position:relative;overflow:hidden;padding:0;background:#14100B}
  .hero .media{position:absolute;inset:0}
  .hero .media img,.hero .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%}
  .hero .media video{opacity:0;transition:opacity 1.2s ease}
  .hero .media video.visible{opacity:1}
  @media (prefers-reduced-motion: reduce){.hero .media video{display:none}}
  .hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,10,5,.42) 0%,rgba(15,10,5,.25) 40%,var(--overlay) 100%)}
  .hero-in{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(480px,72vh,760px);padding-block:clamp(44px,7vw,84px)}
  .hero .eyebrow{color:#E4C287}
  .hero .eyebrow::after{background:linear-gradient(90deg,#E4C287,transparent)}
  .hero h1{color:#FBF7F0;font-size:clamp(2.1rem,5.3vw,3.7rem);max-width:15ch;margin-top:14px}
  .hero p.sub{color:#EFE5D5;max-width:54ch;margin-top:18px;font-size:clamp(.95rem,1.6vw,1.1rem)}
  .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
  .btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:.92rem;padding:13px 26px;border-radius:3px;text-decoration:none;letter-spacing:.02em}
  .btn.solid{background:var(--brass);color:#FFF8EE}
  .btn.solid:hover{background:var(--walnut)}
  .btn.ghost{border:1px solid #D8C39A;color:#F6EEDF}
  .btn.ghost:hover{background:rgba(255,255,255,.12)}
  .btn.line{border:1px solid var(--brass);color:var(--brass)}
  .btn.line:hover{background:var(--brass);color:#FFF8EE}

  /* credenciales */
  .creds{background:var(--deep);padding-block:clamp(26px,4vw,34px)}
  .creds-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px}
  .cred{display:flex;flex-direction:column;gap:4px}
  .cred .n{font-family:"Fraunces","Georgia",serif;font-size:clamp(1.5rem,2.6vw,2rem);color:#E4C287;line-height:1}
  .cred .t{font-size:.8rem;color:#C6B79E;letter-spacing:.03em}

  /* servicios */
  .grid-serv{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:20px;margin-top:38px}
  .serv{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}
  .serv .ph{aspect-ratio:4/3;overflow:hidden}
  .serv .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
  .serv:hover .ph img{transform:scale(1.04)}
  @media (prefers-reduced-motion: reduce){.serv .ph img,.serv:hover .ph img{transition:none;transform:none}}
  .serv .tx{padding:18px 18px 22px;display:flex;flex-direction:column;gap:7px;flex:1}
  .serv h3{font-size:1.2rem}
  .serv p{font-size:.88rem;color:var(--muted);flex:1}
  .serv .tag{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
  .serv.plain{padding:22px;justify-content:flex-start}
  .serv.plain .tx{padding:0}

  .band{background:var(--surface);border-block:1px solid var(--line)}

  /* fabrica */
  .fab{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,52px);align-items:center;margin-top:36px}
  @media (max-width:840px){.fab{grid-template-columns:1fr}}
  .fab-shots{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .fab-shots figure{margin:0;overflow:hidden;border:1px solid var(--line)}
  .fab-shots img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:3/4}
  .fab-shots figure.wide{grid-column:1 / -1}
  .fab-shots figure.wide img{aspect-ratio:16/10}
  .ticks{display:flex;flex-direction:column;gap:12px;margin-top:22px}
  .tick{display:flex;gap:12px;align-items:flex-start;font-size:.92rem}
  .tick::before{content:"";flex:0 0 7px;height:7px;margin-top:9px;background:var(--brass);transform:rotate(45deg)}

  /* materiales */
  .mats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin-top:38px}
  .mat{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass);padding:24px}
  .mat h3{font-size:1.15rem;margin-bottom:8px}
  .mat p{font-size:.88rem;color:var(--muted)}
  .mat .brands{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
  .chip{font-size:.72rem;font-weight:600;letter-spacing:.06em;border:1px solid var(--line);padding:5px 11px;border-radius:99px;color:var(--ink)}

  /* proyectos (tarjetas) */
  .proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:34px}
  .proj{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;transition:border-color .2s ease}
  .proj:hover{border-color:var(--brass)}
  .proj .ph{aspect-ratio:3/4;overflow:hidden;background:var(--surface)}
  .proj .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
  .proj:hover .ph img{transform:scale(1.04)}
  @media (prefers-reduced-motion: reduce){.proj .ph img,.proj:hover .ph img{transition:none;transform:none}}
  .proj .tx{padding:16px 18px 18px;display:flex;flex-direction:column;gap:4px}
  .proj .tag{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
  .proj h3{font-size:1.2rem}
  .proj .ver{font-size:.84rem;font-weight:600;color:var(--walnut);margin-top:6px}
  .proj-mas{margin-top:30px}

  /* catalogos */
  .cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;margin-top:38px}
  .cat{position:relative;overflow:hidden;border:1px solid var(--line);aspect-ratio:3/4;display:flex}
  .cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .cat .cv{position:relative;margin-top:auto;width:100%;padding:22px;background:linear-gradient(180deg,transparent,rgba(15,10,5,.82));color:#F6EEDF}
  .cat .k{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:#E4C287;font-weight:700}
  .cat h3{color:#FBF6EC;font-size:1.3rem;margin-top:4px}
  .cat a{display:inline-block;margin-top:10px;color:#E4C287;font-weight:600;font-size:.85rem;text-decoration:none}
  .cat a:hover{text-decoration:underline}

  /* tienda */
  .tienda{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:38px}
  .prod{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}
  .prod .ph{aspect-ratio:4/3;overflow:hidden;background:var(--deep);display:flex;align-items:center;justify-content:center}
  .prod .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
  .prod:hover .ph img{transform:scale(1.04)}
  @media (prefers-reduced-motion: reduce){.prod .ph img,.prod:hover .ph img{transition:none;transform:none}}
  .prod .ph.sinfoto{flex-direction:column;gap:6px;text-align:center;padding:18px}
  .prod .ph.sinfoto .k{font-family:"Fraunces","Georgia",serif;font-size:1.6rem;color:#E4C287;line-height:1.1}
  .prod .ph.sinfoto .s{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:#B9A98F}
  .prod .tx{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
  .prod h3{font-size:1.12rem}
  .prod p{font-size:.86rem;color:var(--muted);flex:1}
  .prod .marcas{display:flex;flex-wrap:wrap;gap:6px}
  .prod .marcas span{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);padding:4px 9px;border-radius:99px}
  .prod .pedir{font-size:.86rem;font-weight:600;color:var(--walnut);text-decoration:none;margin-top:2px}
  .prod .pedir:hover{text-decoration:underline}
  .tienda-nota{margin-top:26px;font-size:.86rem;color:var(--muted);border-left:3px solid var(--brass);padding-left:14px;max-width:62ch}
  /* video */
  .video-band{position:relative;overflow:hidden;background:#14100B;color:#F3EADC}
  .video-band img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:blur(6px)}
  .vb-in{position:relative;display:grid;grid-template-columns:1fr minmax(240px,340px);gap:clamp(28px,5vw,64px);align-items:center}
  @media (max-width:760px){.vb-in{grid-template-columns:1fr}.vb-player{max-width:340px;margin-inline:auto}}
  .vb-player{position:relative;aspect-ratio:9/16;max-width:100%;border:1px solid rgba(228,194,135,.35);background:#000;overflow:hidden}
  .vb-player video{width:100%;height:100%;object-fit:cover;display:block}
  .video-band h2{color:#F8F2E6;margin-top:12px}
  .video-band p{color:#D9CBB2;max-width:52ch;margin-top:14px}
  .video-band .k{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#E4C287;font-weight:700}
  .vb-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
  .vb-meta span{font-size:.72rem;font-weight:600;letter-spacing:.06em;border:1px solid rgba(228,194,135,.35);color:#E8DCC8;padding:5px 11px;border-radius:99px}

  /* volumen B2B */
  .vol{background:var(--deep);color:#F3EADC}
  .vol h2{color:#F8F2E6}
  .vol .eyebrow{color:#E4C287}
  .vol .eyebrow::after{background:linear-gradient(90deg,#E4C287,transparent)}
  .vol p.lead{color:#C6B79E}
  .vals{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px;margin-top:38px}
  .val{border-top:2px solid rgba(228,194,135,.35);padding-top:16px}
  .val h3{font-size:1rem;color:#F4EADB;letter-spacing:.01em}
  .val p{font-size:.85rem;color:#B9A98F;margin-top:6px}
  .vol .btn.solid{margin-top:34px}
  .obras-h{margin-top:52px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#E4C287}
  .obras{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:18px}
  .obra{border:1px solid rgba(228,194,135,.28);padding:24px 18px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
  .obra .id{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:84px}
  .obra .det{margin-top:auto;padding-top:14px;border-top:1px solid rgba(228,194,135,.2);width:100%;display:flex;flex-direction:column;gap:5px}
  .obra .city{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#E4C287}
  .obra .scope{font-size:.8rem;color:#C6B79E;line-height:1.45}
  .obra .pre{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:#B9A98F}
  .obra .nm{font-family:"Fraunces","Georgia",serif;font-size:1.35rem;color:#F6EDDD;line-height:1.1}
  .obra .suf{font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:#E4C287}

  /* ubicaciones */
  .locs{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:22px;margin-top:38px}
  .loc{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);padding:24px 24px 28px;display:flex;flex-direction:column;gap:10px}
  .loc h3{font-size:1.25rem}
  .loc .zone{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
  .loc p{font-size:.88rem;color:var(--muted)}
  .loc a{color:var(--walnut);font-weight:600;text-decoration:none;font-size:.88rem;margin-top:auto}
  .loc a:hover{text-decoration:underline}

  /* proceso */
  .ruta{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:20px;margin-top:40px;counter-reset:paso}
  .paso{border-top:2px solid var(--line);padding-top:14px}
  .paso .n{font-family:"Fraunces","Georgia",serif;font-size:1.1rem;color:var(--brass)}
  .paso h3{font-size:.95rem;margin-top:4px}
  .paso p{font-size:.83rem;color:var(--muted);margin-top:5px}


  /* contacto */
  .cta-final{background:#241E16;color:#F6EFE3}
  .cta-final h2{color:#F8F2E6}
  .cta-final p{color:#CDBFA9;max-width:58ch;margin-top:14px}
  .ct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px;margin-top:34px}
  .ct h3{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:#E4C287;font-weight:700;font-family:"Archivo",sans-serif}
  .ct p,.ct a{font-size:.92rem;color:#E8DCC8;text-decoration:none;display:block;margin-top:7px}
  .ct a:hover{color:#E4C287;text-decoration:underline}
  .socials{display:flex;gap:12px;margin-top:10px}
  .socials a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(228,194,135,.4);border-radius:50%;margin-top:0}
  .socials svg{width:19px;height:19px;fill:#E4C287}
  .socials a:hover{background:rgba(228,194,135,.15)}

  /* redes */
  .top-right{display:flex;align-items:center;gap:22px}
  .top-social{display:flex;gap:6px}
  .top-social a{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;color:var(--ink)}
  .top-social a:hover{background:var(--surface);color:var(--brass)}
  .top-social svg{width:18px;height:18px;fill:currentColor}
  .redes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:34px}
  .red{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid var(--line);padding:22px 24px;text-decoration:none;color:var(--ink);transition:border-color .2s ease}
  .red:hover{border-color:var(--brass)}
  .red .ico{flex:0 0 52px;height:52px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center}
  .red .ico svg{width:24px;height:24px;fill:var(--brass)}
  .red .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
  .red .net{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
  .red .num{font-family:"Fraunces","Georgia",serif;font-size:1.45rem;line-height:1.15}
  .red .hdl{font-size:.85rem;color:var(--muted)}
  .red .go{margin-left:auto;font-size:.85rem;font-weight:600;color:var(--walnut);white-space:nowrap}
  @media (max-width:480px){.red .go{display:none}.red{padding:18px}}
  .foot-social{display:flex;gap:14px}
  .foot-social a{color:var(--muted);display:inline-flex}
  .foot-social a:hover{color:var(--brass)}
  .foot-social svg{width:18px;height:18px;fill:currentColor}
  footer{border-top:1px solid var(--line);padding-block:28px;font-size:.8rem;color:var(--muted)}
  .foot{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center}
  .draft{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);padding:4px 10px;border-radius:99px}

  .wa{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:54px;height:54px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.28)}
  .wa svg{width:30px;height:30px;fill:#FFFFFF}

  /* paginas de proyectos */
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  nav.mini{display:flex;align-items:center;gap:22px;font-size:.85rem;font-weight:600}
  nav.mini a{color:var(--ink);text-decoration:none}
  nav.mini a:hover{color:var(--brass)}
  nav.mini a.btn{color:#FFF8EE;padding:10px 18px}
  @media (max-width:520px){nav.mini a.ini{display:none}}
  .pj-head{padding-bottom:clamp(26px,4vw,40px)}
  .pj-head h1{font-size:clamp(2rem,4.8vw,3.3rem);margin-top:12px}
  .migas{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--muted);margin-bottom:22px}
  .migas a{color:var(--muted);text-decoration:none}
  .migas a:hover{color:var(--brass);text-decoration:underline}
  .pj-meta{font-size:.8rem;letter-spacing:.06em;color:var(--muted);margin-top:14px}
  .pj-gal-sec{padding-top:0}
  .pj-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
  .pj-foto{display:block;overflow:hidden;border:1px solid var(--line);aspect-ratio:3/4;background:var(--surface);cursor:zoom-in}
  .pj-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
  .pj-foto:hover img{transform:scale(1.03)}
  @media (prefers-reduced-motion: reduce){.pj-foto img,.pj-foto:hover img{transition:none;transform:none}}
  .cta-final .eyebrow{color:#E4C287}
  .cta-final .eyebrow::after{background:linear-gradient(90deg,#E4C287,transparent)}
  dialog.lb{position:fixed;inset:0;padding:0;border:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;overflow:hidden;background:rgba(12,9,6,.96);color:#F4ECDF}
  html.lb-abierto{overflow:hidden}
  dialog.lb::backdrop{background:rgba(12,9,6,.9)}
  .lb-in{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:58px 76px}
  .lb-in img{max-width:100%;max-height:100%;object-fit:contain;display:block}
  @media (max-width:640px){.lb-in{padding:58px 0}}
  .lb button{position:absolute;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(228,194,135,.45);background:rgba(20,14,8,.6);color:#F4ECDF;font-size:1.7rem;line-height:1;cursor:pointer}
  .lb button:hover{background:rgba(228,194,135,.22)}
  .lb-prev{left:14px;top:50%;transform:translateY(-50%)}
  .lb-next{right:14px;top:50%;transform:translateY(-50%)}
  .lb-x{top:10px;right:14px}
  .lb-n{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-size:.8rem;letter-spacing:.14em;color:#E4C287}