/* ============================================================
   Marco Antonio Oltra Cámara — hoja de estilo
   Paleta de origen hidrológico: tinta verde-negra, verde bosque,
   turquesa de lámina de agua y latón como único acento cálido.
   ============================================================ */
:root{
  --paper:#F2F3EE; --surface:#FBFAF6; --surface-2:#E9EBE3;
  --ink:#0C1A18; --ink-2:#2A3A36; --mute:#5D6B66;
  --line:#D8DBD0; --line-soft:#E4E6DC;
  --deep:#0E4A3C; --water:#21756A; --brass:#B08A21; --brass-ink:#7A5E0F;
  --dark-bg:#0C1A18; --dark-panel:#122522; --dark-line:#23362F;
  --dark-text:#E7EBE4; --dark-mute:#9BADA6;
  --closer-bg:#0E4A3C;
  --shadow:0 1px 2px rgba(12,26,24,.05), 0 12px 28px -18px rgba(12,26,24,.35);
  --r:10px; --maxw:1180px; --gutter:clamp(20px,5vw,64px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0A1412; --surface:#101E1B; --surface-2:#162B26;
    --ink:#E7EBE4; --ink-2:#C6D0CA; --mute:#93A49D;
    --line:#23362F; --line-soft:#1B2B26;
    --deep:#2E9179; --water:#5CBFAE; --brass:#D6B457; --brass-ink:#E8CC84;
    --dark-bg:#060E0D; --dark-panel:#0E1C19; --dark-line:#1E2F2A;
    --closer-bg:#0C3A30;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 30px -20px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --paper:#0A1412; --surface:#101E1B; --surface-2:#162B26;
  --ink:#E7EBE4; --ink-2:#C6D0CA; --mute:#93A49D;
  --line:#23362F; --line-soft:#1B2B26;
  --deep:#2E9179; --water:#5CBFAE; --brass:#D6B457; --brass-ink:#E8CC84;
  --dark-bg:#060E0D; --dark-panel:#0E1C19; --dark-line:#1E2F2A;
  --closer-bg:#0C3A30;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 30px -20px rgba(0,0,0,.8);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%}
a{color:inherit}
[hidden]{display:none !important}
h1,h2,h3,h4{font-family:"Newsreader", ui-serif, Georgia, "Times New Roman", serif;
  font-weight:400; letter-spacing:-.012em; text-wrap:balance; margin:0}
p{margin:0}
:focus-visible{outline:2px solid var(--water); outline-offset:3px; border-radius:3px}
.skip{position:absolute; left:-9999px; top:0; background:var(--deep); color:#fff; padding:10px 16px; z-index:200; border-radius:0 0 8px 0}
.skip:focus{left:0}

.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter)}
.mono{font-family:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:500}
.num{font-variant-numeric:tabular-nums}
.lead{font-size:clamp(17px,1.6vw,19px); line-height:1.62; color:var(--ink-2); max-width:62ch}
.dim{color:var(--mute)}

/* secciones + raíl de márgenes (convención de informe técnico) */
.sec{border-top:1px solid var(--line); padding-block:clamp(56px,7vw,96px)}
.sec.plain{border-top:none}
.sec-grid{display:grid; grid-template-columns:168px minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start}
.rail{position:sticky; top:96px}
.rail .mono{color:var(--water); display:block}
.rail-note{font-size:12.5px; line-height:1.5; color:var(--mute); margin-top:10px; max-width:22ch}
@media (max-width:860px){
  .sec-grid{grid-template-columns:1fr; gap:20px}
  .rail{position:static}
  .rail-note{display:none}
}
.h2{font-size:clamp(28px,3.6vw,42px); line-height:1.14}
.h3{font-size:clamp(20px,2.2vw,25px); line-height:1.22}

/* botones */
.btn{display:inline-flex; align-items:center; gap:9px; justify-content:center;
  padding:13px 22px; border-radius:999px; border:1px solid transparent;
  font-size:14.5px; font-weight:600; text-decoration:none; cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  font-family:inherit; line-height:1.2}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brass); color:#191203; box-shadow:0 10px 22px -14px rgba(176,138,33,.9)}
.btn-primary:hover{background:#C79C2C}
.btn-deep{background:var(--deep); color:#F4FBF8}
.btn-deep:hover{background:var(--water)}
.btn-ghost{border-color:var(--line); color:var(--ink); background:transparent}
.btn-ghost:hover{border-color:var(--water); color:var(--water)}
.btn svg{flex:none}

/* navegación */
.nav{position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid var(--line)}
.nav-in{display:flex; align-items:center; gap:20px; height:70px}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; flex:0 1 auto; min-width:0; color:var(--deep)}
.brand-txt{display:flex; flex-direction:column; line-height:1.05; min-width:0}
.brand-name{font-family:"Newsreader",serif; font-size:16.5px; font-weight:500; letter-spacing:-.01em; color:var(--ink); white-space:nowrap}
.brand-sub{font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.17em;
  text-transform:uppercase; color:var(--mute); margin-top:3px; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis}
.nav-links{display:flex; gap:4px; margin-left:auto; align-items:center}
.nav-links a{text-decoration:none; font-size:14px; font-weight:500; color:var(--ink-2);
  padding:8px 12px; border-radius:7px; transition:color .16s, background .16s}
.nav-links a:hover{color:var(--ink); background:var(--surface-2)}
.nav-links a[aria-current="page"]{color:var(--deep); background:var(--surface-2)}
.nav-cta{margin-left:8px}
.nav-links a.btn-deep{color:#F4FBF8; background:var(--deep)}
.nav-links a.btn-deep:hover{color:#F4FBF8; background:var(--water)}
.nav-links a.btn-primary{color:#191203; background:var(--brass)}
/* barra superior de idiomas: una fila de códigos, sin desplegable */
.topbar{background:var(--surface-2); border-bottom:1px solid var(--line)}
.topbar-in{display:flex; align-items:center; justify-content:flex-end; gap:12px; padding-block:7px}
.topbar .globe{color:var(--mute); display:flex; align-items:center}
.langs{display:flex; align-items:center; flex-wrap:wrap}
.langs a{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.12em;
  text-decoration:none; color:var(--mute); padding:2px 11px;
  border-right:1px solid var(--line); transition:color .16s;
}
.langs a:last-child{border-right:none; padding-right:0}
.langs a:hover{color:var(--water)}
.langs a[aria-current="true"]{color:var(--deep); font-weight:600}
@media (max-width:420px){
  .topbar-in{justify-content:center}
  .langs a{padding:2px 9px}
}

.nav-toggle{display:none; margin-left:auto; background:none; border:1px solid var(--line);
  border-radius:8px; padding:9px 11px; cursor:pointer; color:var(--ink)}
@media (max-width:940px){
  .nav-links{display:none; position:absolute; top:70px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:2px; background:var(--surface);
    border-bottom:1px solid var(--line); padding:14px var(--gutter) 22px}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 10px; font-size:15.5px}
  .nav-cta{margin:10px 0 0}
  .nav-toggle{display:block; flex:none}
  .nav-in{gap:12px}
  .brand-name{font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .brand-sub{display:none}
  .mark{width:36px; height:36px}
}

/* héroe */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
#contours{position:absolute; inset:0; width:100%; height:100%; z-index:0; opacity:.5}
.hero-in{position:relative; z-index:1; padding-block:clamp(56px,8vw,104px) clamp(44px,6vw,80px)}
.hero-eyebrow{color:var(--water); display:flex; flex-wrap:wrap; gap:6px 14px; margin-bottom:22px}
.hero-eyebrow span{white-space:nowrap}
.hero h1{font-size:clamp(33px,5.3vw,60px); line-height:1.05; letter-spacing:-.025em; max-width:18ch; font-weight:400}
.hero h1 em{font-style:italic; color:var(--deep)}
.hero-sub{margin-top:24px; max-width:58ch; font-size:clamp(16.5px,1.5vw,18.5px); line-height:1.62; color:var(--ink-2)}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px}
.hero-creds{display:flex; flex-wrap:wrap; gap:8px 0; margin-top:40px; padding-top:22px; border-top:1px solid var(--line)}
.cred{padding-right:20px; margin-right:20px; border-right:1px solid var(--line);
  font-size:12.5px; color:var(--mute); line-height:1.35}
.cred:last-child{border-right:none}
.cred b{display:block; color:var(--ink); font-weight:600; font-size:13px}

/* franja de contexto */
.ticker{background:var(--surface); border-bottom:1px solid var(--line); overflow:hidden}
.ticker-in{display:flex; flex-wrap:wrap; gap:8px 26px; padding-block:16px; color:var(--mute)}
.ticker-in span{display:inline-flex; align-items:center; gap:8px; font-size:11px}
.ticker-in span::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--water); flex:none}

/* aviso de disponibilidad */
.avail{background:var(--surface-2); border-bottom:1px solid var(--line)}
.avail-in{display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; padding-block:15px}
.avail .dot{width:8px; height:8px; border-radius:50%; background:var(--deep); flex:none;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--deep) 18%, transparent)}
.avail p{font-size:14px; color:var(--ink-2); line-height:1.5; max-width:78ch}
.avail strong{font-weight:600; color:var(--ink)}

/* tesis */
.thesis{display:grid; gap:2px; margin-top:6px}
.thesis-row{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:baseline;
  padding:20px 0; border-bottom:1px solid var(--line-soft)}
.thesis-row:first-child{border-top:1px solid var(--line-soft)}
.thesis-row p{font-size:clamp(16px,1.5vw,18px); line-height:1.5; max-width:58ch}
.thesis-row .tag{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--brass-ink); white-space:nowrap}
@media (max-width:620px){.thesis-row{grid-template-columns:1fr; gap:8px}}

/* motivos / diferenciales */
.reasons{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.reason{background:var(--surface); padding:26px 24px}
.reason h4{font-size:18px; line-height:1.25; margin-bottom:9px}
.reason p{font-size:14px; color:var(--mute); line-height:1.55}
.reason .mark-ico{color:var(--water); margin-bottom:14px; display:block}

/* servicios */
.svc{display:grid; gap:16px}
.svc-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease}
.svc-card:hover{border-color:var(--water); box-shadow:var(--shadow)}
.svc-card.featured{border-color:var(--deep); border-width:1.5px}
.svc-body{padding:clamp(22px,3vw,32px)}
.svc-meta{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:14px}
.chip{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  padding:4px 9px; border-radius:5px; background:var(--surface-2); color:var(--ink-2)}
.chip.hot{background:var(--deep); color:#EAF6F1}
.svc-body h3{margin-bottom:10px}
.svc-body p{font-size:15px; color:var(--ink-2); line-height:1.6; max-width:54ch}
.svc-for{margin-top:16px; font-size:13px; color:var(--mute); border-left:2px solid var(--brass); padding-left:12px}
.svc-side{background:var(--surface-2); padding:clamp(22px,3vw,32px); border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:14px}
.svc-side .mono{color:var(--mute)}
.deliv{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.deliv li{position:relative; padding-left:22px; font-size:13.5px; line-height:1.5; color:var(--ink-2)}
.deliv li::before{content:""; position:absolute; left:0; top:7px; width:11px; height:6px;
  border-left:1.8px solid var(--deep); border-bottom:1.8px solid var(--deep); transform:rotate(-45deg)}
.svc-side .btn{margin-top:auto; width:100%}
@media (max-width:800px){
  .svc-card{grid-template-columns:1fr}
  .svc-side{border-left:none; border-top:1px solid var(--line)}
}

/* fases (secuencia real) */
.phases{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0; border-top:1px solid var(--line)}
.phase{padding:26px 22px 26px 0; border-right:1px solid var(--line-soft)}
.phase:last-child{border-right:none}
.phase-n{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--brass-ink);
  letter-spacing:.1em; display:flex; align-items:center; gap:10px}
.phase-n::after{content:""; height:1px; flex:1; background:var(--line)}
.phase h4{font-size:17.5px; margin:12px 0 8px}
.phase p{font-size:13.5px; color:var(--mute); line-height:1.55}
@media (max-width:760px){
  .phase{border-right:none; border-bottom:1px solid var(--line-soft); padding-right:0}
  .phase:last-child{border-bottom:none}
}

/* casos */
.cases{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px}
@media (max-width:860px){.cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cases{grid-template-columns:1fr}}
/* las rejillas de tarjetas llevan columnas fijas para que no queden huecos vacios */
@media (max-width:760px){.sectors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sectors{grid-template-columns:1fr}
  .reasons{grid-template-columns:1fr}}
.case{background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 24px; display:flex; flex-direction:column; gap:16px}
.case-top{display:flex; align-items:center; justify-content:space-between; gap:12px}
.case h3{font-size:20px; line-height:1.2}
.case dl{margin:0; display:grid; gap:13px}
.case dt{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--water); margin-bottom:4px}
.case dd{margin:0; font-size:14px; line-height:1.55; color:var(--ink-2)}

/* panel oscuro */
.dark{background:var(--dark-bg); color:var(--dark-text); border-top:1px solid var(--dark-line)}
.dark h2,.dark h3{color:var(--dark-text)}
.dark .rail .mono{color:var(--brass)}
.dark .rail-note{color:var(--dark-mute)}
.cos{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px;
  background:var(--dark-line); border:1px solid var(--dark-line); border-radius:var(--r); overflow:hidden}
.co{background:var(--dark-panel); padding:clamp(24px,3vw,34px); display:flex; flex-direction:column; gap:14px}
.co-role{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--brass)}
.co h3{font-size:26px}
.co p{font-size:14.5px; line-height:1.6; color:var(--dark-mute)}
.co-facts{list-style:none; padding:0; margin:6px 0 0; display:grid; gap:7px}
.co-facts li{font-size:13px; color:var(--dark-mute); padding-left:16px; position:relative}
.co-facts li::before{content:"—"; position:absolute; left:0; color:var(--brass)}
.co-link{margin-top:auto; text-decoration:none; color:#8FD8C7; font-family:"IBM Plex Mono",monospace;
  font-size:12px; letter-spacing:.06em; border-bottom:1px solid rgba(143,216,199,.35);
  align-self:flex-start; padding-bottom:2px}
.co-link:hover{color:var(--brass); border-color:var(--brass)}

/* portfolio */
.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px}
.filter{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  padding:7px 14px; border-radius:999px; border:1px solid var(--line); background:transparent;
  color:var(--ink-2); cursor:pointer; transition:.16s}
.filter:hover{border-color:var(--water); color:var(--water)}
.filter[aria-pressed="true"]{background:var(--deep); border-color:var(--deep); color:#EAF6F1}
.pubs{display:grid; gap:0; border-top:1px solid var(--line)}
.pub{display:grid; grid-template-columns:104px minmax(0,1fr) auto; gap:20px; align-items:start;
  padding:20px 0; border-bottom:1px solid var(--line-soft)}
.pub-kind{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--water); padding-top:4px}
.pub h4{font-size:18px; line-height:1.28; margin-bottom:6px}
.pub p{font-size:13.5px; color:var(--mute); line-height:1.55; max-width:64ch}
.pub-yr{font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--mute);
  font-variant-numeric:tabular-nums; padding-top:4px}
@media (max-width:640px){
  .pub{grid-template-columns:1fr auto; gap:6px 14px}
  .pub-kind{grid-column:1; padding-top:0}
  .pub-yr{grid-row:1; grid-column:2; padding-top:0}
  .pub-body{grid-column:1/-1}
}

/* trayectoria */
.tl{display:grid; gap:0; margin-top:4px}
.tl-item{display:grid; grid-template-columns:132px minmax(0,1fr); gap:24px;
  padding:24px 0; border-bottom:1px solid var(--line-soft)}
.tl-item:first-child{border-top:1px solid var(--line-soft)}
.tl-when{font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.08em;
  color:var(--brass-ink); padding-top:5px}
.tl-item h4{font-size:19px; margin-bottom:4px}
.tl-org{font-size:13px; color:var(--water); font-weight:600; margin-bottom:8px}
.tl-item p{font-size:14px; color:var(--ink-2); line-height:1.6; max-width:62ch}
@media (max-width:640px){.tl-item{grid-template-columns:1fr; gap:6px}.tl-when{padding-top:0}}

.tags{display:flex; flex-wrap:wrap; gap:8px}
.tag-pill{border:1px solid var(--line); border-radius:999px; padding:7px 14px;
  font-size:13px; color:var(--ink-2); background:var(--surface)}
.tag-pill strong{font-weight:600; color:var(--ink)}

/* sectores */
.sectors{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.sector{background:var(--surface); padding:22px 20px}
.sector h4{font-size:16.5px; margin-bottom:6px}
.sector p{font-size:13px; color:var(--mute); line-height:1.5}

/* formulario */
.form-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px}
.field{display:flex; flex-direction:column; gap:7px}
.field.full{grid-column:1/-1}
.field label{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--mute)}
.field input,.field select,.field textarea{font-family:inherit; font-size:15px; color:var(--ink);
  background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:12px 13px; width:100%;
  transition:border-color .16s, box-shadow .16s}
.field textarea{min-height:120px; resize:vertical; line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--water);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--water) 16%, transparent)}
.field input::placeholder,.field textarea::placeholder{color:color-mix(in srgb, var(--mute) 70%, transparent)}
/* campo señuelo anti-spam: fuera de la vista y fuera del foco */
.hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden}

.form-note{font-size:12.5px; color:var(--mute); margin-top:4px; line-height:1.5}
.form-note a{color:var(--water)}

/* contacto */
.contact-grid{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,48px); align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}}
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:clamp(22px,3vw,30px)}
.contact-list{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden}
.contact-row{background:var(--surface); padding:16px 18px; display:flex; gap:14px; align-items:center; text-decoration:none}
a.contact-row:hover{background:var(--surface-2)}
.contact-row .ico{width:34px; height:34px; border-radius:8px; background:var(--surface-2);
  display:grid; place-items:center; color:var(--deep); flex:none}
.contact-row .k{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--mute)}
.contact-row .v{font-size:14.5px; color:var(--ink); word-break:break-word}
.book{margin-top:16px; border:1px dashed var(--line); border-radius:var(--r); padding:22px; background:var(--surface)}
.book h4{font-size:18px; margin-bottom:6px}
.book ol{margin:14px 0 0; padding-left:20px; display:grid; gap:8px; font-size:13.5px; color:var(--ink-2)}

/* cierre */
.closer{background:var(--closer-bg); color:#F1F8F5; text-align:center; padding-block:clamp(52px,7vw,84px)}
.closer h2{color:#FFFFFF; font-size:clamp(26px,3.4vw,38px); max-width:22ch; margin-inline:auto}
.closer p{margin:16px auto 28px; max-width:54ch; color:rgba(241,248,245,.84); font-size:16px}

/* pie */
.foot{background:var(--dark-bg); color:var(--dark-mute); padding-block:clamp(44px,6vw,68px) 28px;
  border-top:1px solid var(--dark-line)}
.foot-grid{display:grid; grid-template-columns:minmax(0,1.4fr) repeat(auto-fit,minmax(150px,1fr)); gap:32px}
.foot h5{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--brass); margin:0 0 14px; font-weight:500}
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.foot a{color:var(--dark-mute); text-decoration:none; font-size:14px}
.foot a:hover{color:var(--dark-text)}
.foot .brand{color:var(--brass)}
.foot .brand-name{color:var(--dark-text)}
.foot-bio{font-size:13.5px; line-height:1.6; margin-top:16px; max-width:42ch}
.foot-bar{margin-top:40px; padding-top:20px; border-top:1px solid var(--dark-line);
  display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between; font-size:12px}
.foot-bar nav{display:flex; flex-wrap:wrap; gap:8px 18px}

/* monograma */
.mark{width:42px; height:42px; flex:none}
.mark rect{fill:none; stroke:currentColor; stroke-width:1.4}
.mark text{font-family:"IBM Plex Sans",sans-serif; font-size:11px; font-weight:600; fill:currentColor}

/* cabecera de página interior */
.page-head{padding-block:clamp(44px,6vw,76px) clamp(28px,4vw,44px); border-bottom:1px solid var(--line)}
.page-head .mono{color:var(--water)}
.page-head h1{font-size:clamp(32px,4.6vw,52px); line-height:1.08; margin-top:16px; max-width:19ch}
.page-head p{margin-top:18px; max-width:60ch; font-size:17px; color:var(--ink-2); line-height:1.6}

/* páginas legales */
.prose{max-width:70ch}
.prose h2{font-size:22px; margin:36px 0 12px}
.prose h3{font-size:18px; margin:24px 0 8px}
.prose p,.prose li{font-size:15px; line-height:1.7; color:var(--ink-2)}
.prose p{margin-bottom:14px}
.prose ul{padding-left:20px; margin:0 0 16px}
.prose li{margin-bottom:7px}
.prose .todo{background:color-mix(in srgb, var(--brass) 16%, transparent);
  border-left:3px solid var(--brass); padding:2px 8px; border-radius:3px;
  font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--ink)}

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