:root{
  --bg:#F7F4F3;
  --surface:#FFFFFF;
  --surface-2:#EFEAE8;
  --deep:#13181B;
  --deep-2:#1B2226;
  --ink:#171B1D;
  --ink-soft:#404749;
  --muted:#6A7174;
  --line:#E2DAD7;
  --line-strong:#CFC5C1;
  --brand:#C02D33;
  --brand-ink:#9A2129;
  --on-deep:#EFEBE9;
  --on-deep-muted:#9AA3A6;
  --on-deep-line:rgba(239,235,233,.16);
  --grain:.032;
  --shadow:0 1px 2px rgba(19,24,27,.04), 0 12px 32px -18px rgba(19,24,27,.22);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#101315;
    --surface:#171B1E;
    --surface-2:#1D2225;
    --deep:#0B0E10;
    --deep-2:#14191C;
    --ink:#ECE8E6;
    --ink-soft:#C3BFBD;
    --muted:#949B9E;
    --line:#272D31;
    --line-strong:#394045;
    --brand:#DC4D53;
    --brand-ink:#EE6A6F;
    --on-deep:#ECE8E6;
    --on-deep-muted:#949B9E;
    --on-deep-line:rgba(236,232,230,.14);
    --grain:.05;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 14px 34px -20px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --bg:#101315;
  --surface:#171B1E;
  --surface-2:#1D2225;
  --deep:#0B0E10;
  --deep-2:#14191C;
  --ink:#ECE8E6;
  --ink-soft:#C3BFBD;
  --muted:#949B9E;
  --line:#272D31;
  --line-strong:#394045;
  --brand:#DC4D53;
  --brand-ink:#EE6A6F;
  --on-deep:#ECE8E6;
  --on-deep-muted:#949B9E;
  --on-deep-line:rgba(236,232,230,.14);
  --grain:.05;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 14px 34px -20px rgba(0,0,0,.8);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
picture{display:contents}
a{color:inherit}
h1,h2,h3,h4{font-family:Newsreader,"Iowan Old Style",Georgia,"Times New Roman",serif;font-weight:400;text-wrap:balance;margin:0;letter-spacing:-.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:1160px;margin:0 auto;padding-inline:24px}
@media (max-width:560px){.wrap{padding-inline:18px}}

.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--brand);flex:none}
.eyebrow.on-deep{color:var(--on-deep-muted)}

:where(a,button,summary):focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:2px}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:60;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--line);
}
.topbar .wrap{display:flex;align-items:center;gap:18px;min-height:68px}
.brandmark{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.brandmark img{width:36px;height:36px}
.script{font-family:"Alfa Slab One","Cooper Black",Rockwell,Georgia,serif;font-weight:400;font-style:normal;letter-spacing:-.005em;text-transform:none}
.brandmark .wordmark{font-size:21px;line-height:1;color:var(--ink);white-space:nowrap;padding-top:1px}
@media (max-width:560px){.brandmark img{width:32px;height:32px}.brandmark .wordmark{font-size:16px}}
@media (max-width:420px){.brandmark .wordmark{font-size:15px}.menu summary{font-size:0;gap:0}.menu summary .bars{font-size:11px}}
.navlinks{display:flex;gap:26px;margin-left:auto;align-items:center}
.navlinks a{
  text-decoration:none;font-size:13px;letter-spacing:.04em;color:var(--ink-soft);
  padding:6px 0;border-bottom:1px solid transparent;transition:color .18s,border-color .18s;
}
.navlinks a:hover{color:var(--ink);border-bottom-color:var(--brand)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-size:13.5px;font-weight:500;letter-spacing:.02em;text-decoration:none;
  padding:12px 20px;border:1px solid transparent;transition:background .18s,color .18s,border-color .18s;
}
.btn-solid{background:var(--brand);color:#fff}
.btn-solid:hover{background:var(--brand-ink)}
.btn-ghost{border-color:var(--line-strong);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:var(--surface)}
.btn-ghost-deep{border-color:var(--on-deep-line);color:var(--on-deep)}
.btn-ghost-deep:hover{border-color:var(--on-deep);background:rgba(255,255,255,.06)}
.btn-sm{padding:9px 16px;font-size:12.5px}
.topbar .btn{margin-left:4px;flex:none}

.menu{display:none;margin-left:auto;position:relative}
.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding:8px 2px}
.menu summary::-webkit-details-marker{display:none}
.menu summary .bars{display:flex;flex-direction:column;gap:3px}
.menu summary .bars i{display:block;width:16px;height:1.5px;background:currentColor}
.menu-panel{position:absolute;right:0;top:calc(100% + 12px);min-width:210px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:6px}
.menu-panel a{display:block;padding:11px 14px;text-decoration:none;font-size:14px;color:var(--ink)}
.menu-panel a:hover{background:var(--surface-2)}
@media (max-width:880px){
  .navlinks{display:none}
  .menu{display:block}
  .topbar .btn{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--deep);color:var(--on-deep);overflow:hidden;isolation:isolate}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(760px 520px at 78% 18%, rgba(192,45,51,.30), transparent 62%),
    radial-gradient(620px 460px at 8% 96%, rgba(192,45,51,.12), transparent 66%),
    linear-gradient(180deg, var(--deep-2), var(--deep) 62%);
}
.grain{
  position:absolute;inset:0;z-index:1;pointer-events:none;opacity:var(--grain);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero .wrap{position:relative;z-index:2}
.hero-grid{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:56px;align-items:center;padding-block:86px 78px;
}
.hero-mark{display:flex;align-items:center;gap:18px;margin-bottom:32px}
.hero-mark img{width:68px;height:68px;flex:none}
.hero-mark .lockup{font-size:clamp(23px,3.1vw,35px);line-height:1.12;color:var(--on-deep)}
.hero h1{
  font-size:clamp(34px,5vw,57px);line-height:1.08;letter-spacing:-.02em;font-weight:300;
  margin-block:22px 24px;max-width:15ch;
}
.hero h1 em{font-style:italic;color:#E9A2A5}
:root[data-theme="light"] .hero h1 em{color:#E9A2A5}
.hero-lead{font-size:17px;line-height:1.66;color:var(--on-deep-muted);max-width:56ch}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:44px;padding-block:58px 56px}
  .hero-art{order:-1;max-width:400px}
}
.hero-art{max-width:430px;margin-left:auto;width:100%}
.hero-art img{aspect-ratio:3/4}

/* ---------- fotografia ---------- */
.shot{margin:0}
.shot img,.pillar-shot img,.hero-art img{display:block;width:100%;height:auto;object-fit:cover}
.band-bg img{display:block;width:100%;height:100%;object-fit:cover}
.shot figcaption{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-top:13px;padding-top:12px;border-top:1px solid var(--line);
}
:root:not([data-theme="light"]) .shot img,:root:not([data-theme="light"]) .pillar-shot img{filter:brightness(.93)}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .shot img,:root:not([data-theme="dark"]) .pillar-shot img{filter:none}}

/* ---------- franja industrial ---------- */
.band{position:relative;isolation:isolate;background:var(--deep);color:var(--on-deep);overflow:hidden}
.band-bg{position:absolute;inset:0;z-index:0}
.band-bg img{width:100%;height:100%;opacity:.55}
.band::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(95deg, rgba(11,14,16,.96) 12%, rgba(11,14,16,.74) 52%, rgba(192,45,51,.30));
}
.band .wrap{position:relative;z-index:2;padding-block:84px}
.band-claim{
  font-family:Newsreader,"Iowan Old Style",Georgia,serif;font-weight:300;
  font-size:clamp(23px,2.9vw,34px);line-height:1.24;max-width:23ch;margin-top:20px;text-wrap:balance;
}
.band-foot{margin-top:24px;font-size:14.5px;color:var(--on-deep-muted);max-width:46ch}
@media (max-width:700px){.band .wrap{padding-block:56px}}

/* ---------- disciplines strip ---------- */
.strip{background:var(--deep-2);color:var(--on-deep);border-top:1px solid var(--on-deep-line)}
.strip ul{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--on-deep-line)}
.strip li{padding:22px 24px;border-right:1px solid var(--on-deep-line);display:flex;flex-direction:column;gap:4px}
.strip .k{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-ink)}
.strip .v{font-size:14.5px;color:var(--on-deep)}
@media (max-width:820px){.strip ul{grid-template-columns:repeat(2,1fr)}}
@media (max-width:430px){.strip ul{grid-template-columns:1fr}}

/* ---------- sections ---------- */
section{scroll-margin-top:92px}
.sec{padding-block:96px}
@media (max-width:700px){.sec{padding-block:64px}}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;max-width:760px}
.sec-head h2{font-size:clamp(28px,3.6vw,42px);line-height:1.14;font-weight:300}

/* quiénes somos */
.about{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:60px;align-items:start;margin-top:48px}
.about-copy{display:flex;flex-direction:column;gap:20px;color:var(--ink-soft);font-size:16.5px;max-width:62ch}
.about-copy strong{color:var(--ink);font-weight:500}
.plan{border:1px solid var(--line);background:var(--surface);padding:22px;box-shadow:var(--shadow)}
.plan svg{width:100%;height:auto}
.plan figcaption{
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:38px}}

.disciplines{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:64px;border-top:1px solid var(--line-strong)}
.disciplines li{padding:26px 24px 28px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.disciplines li:first-child{border-left:1px solid var(--line)}
.disciplines .ico{color:var(--brand)}
.disciplines h3{font-size:19px;font-weight:400;line-height:1.25}
.disciplines p{font-size:14px;color:var(--muted);line-height:1.55}
@media (max-width:860px){
  .disciplines{grid-template-columns:repeat(2,1fr)}
  .disciplines li:nth-child(3){border-left:1px solid var(--line)}
}
@media (max-width:520px){
  .disciplines{grid-template-columns:1fr}
  .disciplines li{border-left:1px solid var(--line)}
}

/* servicios */
#servicios{background:var(--surface-2);border-block:1px solid var(--line)}
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:52px}
.pillar{background:var(--surface);display:flex;flex-direction:column}
.pillar-shot{margin:0}
.pillar-shot img{aspect-ratio:16/9}
.pillar-body{padding:30px 32px 34px;display:flex;flex-direction:column;gap:16px}
.pillar-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.pillar .ico{color:var(--brand);flex:none}
.pillar h3{font-size:24px;line-height:1.2;font-weight:400;max-width:18ch}
.pillar > p{font-size:14.8px;color:var(--muted);line-height:1.6;max-width:46ch}
.pillar ul{display:flex;flex-direction:column;gap:0;margin-top:6px;border-top:1px solid var(--line)}
.pillar li{
  font-size:14.4px;color:var(--ink-soft);padding:11px 0 11px 20px;border-bottom:1px solid var(--line);position:relative;
}
.pillar li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:1px;background:var(--brand)}
.pillar li:last-child{border-bottom:0}
@media (max-width:860px){
  .pillars{grid-template-columns:1fr}
  .pillar-body{padding:26px 22px 30px}
}

/* contacto */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:48px}
.contact-card{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.contact-row{padding:24px 26px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:7px}
.contact-row:last-child{border-bottom:0}
.contact-row .k{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.contact-row .v{font-size:17px;line-height:1.45}
.contact-row a.v{color:var(--brand);text-decoration:none;border-bottom:1px solid transparent;align-self:flex-start;word-break:break-word}
.contact-row a.v:hover{border-bottom-color:var(--brand)}
.contact-copy{display:flex;flex-direction:column;gap:20px;color:var(--ink-soft);font-size:16.5px;max-width:52ch}
.map{margin-top:26px;border:1px solid var(--line);background:var(--surface);padding:18px}
.map svg{width:100%;height:auto}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:38px}}

/* footer */
footer{background:var(--deep);color:var(--on-deep);position:relative;isolation:isolate;overflow:hidden}
.foot-grid{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;justify-content:space-between;padding-block:52px 24px;position:relative;z-index:2}
.foot-brand{display:flex;align-items:center;gap:14px}
.foot-brand img{width:48px;height:48px;flex:none}
.foot-brand b{display:block;font-size:20px;font-weight:400;letter-spacing:-.005em;text-transform:none;line-height:1.2}
.foot-brand span{display:block;font-size:13px;color:var(--on-deep-muted);margin-top:5px;max-width:40ch}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 26px}
.foot-nav a{font-size:13.5px;color:var(--on-deep-muted);text-decoration:none}
.foot-nav a:hover{color:var(--on-deep)}
.foot-legal{
  border-top:1px solid var(--on-deep-line);padding-block:20px 34px;position:relative;z-index:2;
  display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;
  font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-deep-muted);
}

.legal-nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.legal-nav a{color:var(--on-deep-muted);text-decoration:none;border-bottom:1px solid transparent}
.legal-nav a:hover{color:var(--on-deep);border-bottom-color:var(--brand)}

/* ---------- paginas de texto legal ---------- */
.doc{max-width:760px;padding-block:66px 84px}
.doc h1{font-size:clamp(30px,4.2vw,44px);line-height:1.12;font-weight:300;margin-block:18px 10px}
.doc .fecha{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.doc h2{font-size:21px;font-weight:400;line-height:1.3;margin-block:44px 14px;padding-top:20px;border-top:1px solid var(--line)}
.doc p{color:var(--ink-soft);font-size:16px;line-height:1.7;margin-block:0 14px;max-width:68ch}
.doc ul.lista{display:flex;flex-direction:column;gap:9px;margin-block:4px 16px}
.doc ul.lista li{color:var(--ink-soft);font-size:16px;line-height:1.6;padding-left:20px;position:relative;max-width:68ch}
.doc ul.lista li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:1px;background:var(--brand)}
.doc dl{display:grid;grid-template-columns:auto 1fr;gap:10px 26px;margin-block:6px 18px;font-size:15.5px}
.doc dt{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:5px}
.doc dd{margin:0;color:var(--ink)}
.doc a{color:var(--brand)}
@media (max-width:560px){.doc dl{grid-template-columns:1fr;gap:3px 0}.doc dd{margin-bottom:12px}}
.pendiente{
  background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand-ink);
  border:1px dashed var(--brand);padding:1px 7px;font-family:"IBM Plex Mono",monospace;
  font-size:12px;letter-spacing:.04em;white-space:normal;
}
.aviso-borrador{border:1px solid var(--brand);background:color-mix(in srgb,var(--brand) 7%,transparent);padding:20px 22px;margin-block:26px 10px}
.aviso-borrador p{margin:0;color:var(--ink);font-size:15px;max-width:none}
.volver{display:inline-flex;align-items:center;gap:9px;margin-top:50px;font-size:14px;color:var(--brand);text-decoration:none}
.volver:hover{border-bottom:1px solid var(--brand)}

.strip .wrap{padding-inline:0}
.sec-lead{color:var(--muted);font-size:16.5px;max-width:58ch}
.nota{color:var(--muted);font-size:15px}
.btn-inline{align-self:flex-start}
.v-sm{font-size:15px;color:var(--ink-soft)}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
