/* Tipografías alojadas en el propio servidor: ni una petición a terceros.
   IBM Plex Sans, IBM Plex Mono y Source Serif 4 — SIL Open Font License 1.1 */
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/IBMPlexMono-latin-ext-400.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/IBMPlexMono-latin-400.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:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('fuentes/IBMPlexMono-latin-ext-500.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('fuentes/IBMPlexMono-latin-500.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:'IBM Plex Sans';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-ext-400.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-400.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:'IBM Plex Sans';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-ext-500.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-500.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:'IBM Plex Sans';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-ext-600.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('fuentes/IBMPlexSans-latin-600.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:'Source Serif 4';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/SourceSerif4-latin-ext-400.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Source Serif 4';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('fuentes/SourceSerif4-latin-400.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:'Source Serif 4';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('fuentes/SourceSerif4-latin-ext-600.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Source Serif 4';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url('fuentes/SourceSerif4-latin-600.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;
}


:root{
  --ink:#131A18;
  --ink-2:#33403B;
  --muted:#5F6D67;
  --line:#D6DAD4;
  --line-soft:#E4E7E1;
  --ground:#F1F2EF;
  --surface:#FAFAF8;
  --surface-2:#E7EAE4;
  --accent:#16564A;
  --accent-ink:#0E3A32;
  --accent-soft:#E1ECE7;
  --brass:#8E6A22;
  --on-accent:#F7F8F5;
  --ph-bg:#F6E9CE;
  --ph-ink:#6B4E10;
  --shadow:0 1px 2px rgba(19,26,24,.05);
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --maxw:1140px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#E7EBE7;
    --ink-2:#C0C9C4;
    --muted:#8B9794;
    --line:#2B3330;
    --line-soft:#222A27;
    --ground:#0D1311;
    --surface:#141B19;
    --surface-2:#1C2422;
    --accent:#63C1A6;
    --accent-ink:#8FD6C0;
    --accent-soft:#152F29;
    --brass:#CFA65C;
    --on-accent:#0D1311;
    --ph-bg:#33290F;
    --ph-ink:#E8C784;
    --shadow:0 1px 2px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --ink:#E7EBE7;
  --ink-2:#C0C9C4;
  --muted:#8B9794;
  --line:#2B3330;
  --line-soft:#222A27;
  --ground:#0D1311;
  --surface:#141B19;
  --surface-2:#1C2422;
  --accent:#63C1A6;
  --accent-ink:#8FD6C0;
  --accent-soft:#152F29;
  --brass:#CFA65C;
  --on-accent:#0D1311;
  --ph-bg:#33290F;
  --ph-ink:#E8C784;
  --shadow:0 1px 2px rgba(0,0,0,.4);
}

*{box-sizing:border-box}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
@media (max-width:640px){.wrap{padding:0 18px}}

/* ---------- cabecera ---------- */
header.site{
  position:sticky;top:0;z-index:40;
  background:color-mix(in srgb,var(--ground) 92%,transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.bar{display:flex;align-items:center;gap:28px;height:70px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto;color:var(--ink)}
.brand-txt{display:flex;flex-direction:column;gap:2px}
.brand-marca{width:34px;height:34px;flex:0 0 auto;display:block}
.brand b{font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:-.01em}
.brand span{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
nav.main{display:flex;gap:22px;margin-left:auto;align-items:center}
nav.main a{
  text-decoration:none;font-size:14px;color:var(--ink-2);
  padding:6px 0;border-bottom:2px solid transparent;
}
nav.main a:hover{color:var(--accent)}
nav.main a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--ink)}
.hdr-cta{display:flex;align-items:center;gap:14px}
.tel{font-family:var(--mono);font-size:13px;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.tel:hover{color:var(--accent)}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:3px;padding:8px 10px;cursor:pointer;color:var(--ink);font-family:var(--mono);font-size:12px}
@media (max-width:900px){
  nav.main{display:none;margin-left:0}
  .hdr-cta .btn{display:none}
  .burger{display:block}
  header.site nav.main.open{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;left:0;right:0;top:100%;
    background:var(--surface);border-bottom:1px solid var(--line);padding:6px 28px 18px;
  }
  header.site nav.main.open a{padding:12px 0;border-bottom:1px solid var(--line-soft)}
}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;font-weight:500;text-decoration:none;
  padding:11px 20px;border-radius:2px;border:1px solid var(--accent);
  background:var(--accent);color:var(--on-accent);cursor:pointer;
  transition:background .15s ease;font-family:var(--sans);
}
.btn:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--surface-2);border-color:var(--muted);color:var(--ink)}

/* ---------- utilidades tipográficas ---------- */
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);display:block;
}
.lead{font-size:18px;line-height:1.65;color:var(--ink-2);max-width:62ch}
.small{font-size:14px;color:var(--muted)}
.ph{
  font-family:var(--mono);font-size:.92em;
  background:var(--ph-bg);color:var(--ph-ink);
  padding:1px 5px;border-radius:2px;white-space:nowrap;
}

/* ---------- secciones ---------- */
section{padding:64px 0;border-top:1px solid var(--line)}
section.first{border-top:none}
.sec-head{display:flex;gap:32px;align-items:baseline;margin-bottom:36px;flex-wrap:wrap}
.sec-head h2{font-size:30px;flex:1 1 320px}
.sec-head .eyebrow{flex:0 0 130px;padding-top:6px}
@media (max-width:640px){.sec-head .eyebrow{flex-basis:100%}}

/* ---------- hero ---------- */
.hero{padding:72px 0 60px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:56px;align-items:start}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}}
.hero h1{font-size:clamp(34px,4.6vw,52px);letter-spacing:-.015em;margin:18px 0 22px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

.brandpanel{border:1px solid var(--line);box-shadow:var(--shadow);line-height:0}
.brandpanel svg{width:100%;height:auto;display:block}

.ficha{
  border:1px solid var(--line);background:var(--surface);
  padding:22px 22px 18px;box-shadow:var(--shadow);
}
.ficha h3{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:400;margin-bottom:16px}
.ficha dl{margin:0;display:grid;grid-template-columns:1fr;gap:0}
.ficha .row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:13.5px}
.ficha .row:first-child{border-top:none}
.ficha dt{color:var(--muted);flex:0 0 auto}
.ficha dd{margin:0;text-align:right;font-family:var(--mono);font-size:12.5px;color:var(--ink-2)}

/* ---------- columnas de público ---------- */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
@media (max-width:860px){.cols3{grid-template-columns:1fr}}
.col{padding:26px 28px;border-left:1px solid var(--line-soft)}
.col:first-child{border-left:none;padding-left:0}
@media (max-width:860px){.col{border-left:none;padding-left:0;border-top:1px solid var(--line-soft)}.col:first-child{border-top:none}}
.col h3{font-size:19px;margin-bottom:10px}
.col ul{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.col li{font-size:14px;color:var(--ink-2);padding-left:16px;position:relative}
.col li::before{content:"—";position:absolute;left:0;color:var(--accent)}


/* ---------- áreas ---------- */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
@media (max-width:900px){.areas{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.areas{grid-template-columns:1fr}}
.area{
  background:var(--surface);padding:24px;text-decoration:none;
  display:flex;flex-direction:column;gap:9px;min-height:180px;
  transition:background .15s ease;
}
.area:hover{background:var(--accent-soft)}
.area .ref{font-family:var(--mono);font-size:11px;color:var(--brass);letter-spacing:.08em}
.area h3{font-size:20px}
.area p{font-size:14px;color:var(--muted);line-height:1.55}
.area .go{margin-top:auto;font-size:13px;color:var(--accent);font-weight:500}

.materias{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px;border-top:1px solid var(--line)}
@media (max-width:860px){.materias{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.materias{grid-template-columns:1fr}}
.materias span{font-size:14px;color:var(--ink-2);padding:10px 0;border-bottom:1px solid var(--line-soft);line-height:1.45}

/* ---------- proceso ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
@media (max-width:880px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.step{border-top:2px solid var(--accent);padding-top:14px}
.step .k{font-family:var(--mono);font-size:11px;color:var(--brass);letter-spacing:.1em;display:block;margin-bottom:6px}
.step h3{font-size:17px;margin-bottom:8px}
.step p{font-size:14px;color:var(--muted)}

/* ---------- casos ---------- */
.cases{display:flex;flex-direction:column}
.case{display:grid;grid-template-columns:150px minmax(0,1fr) 200px;gap:32px;padding:24px 0;border-top:1px solid var(--line-soft);align-items:start}
.case:first-child{border-top:none}
@media (max-width:820px){.case{grid-template-columns:1fr;gap:12px}}
.case .who{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding-top:4px}
.case h3{font-size:18px;margin-bottom:8px}
.case p{font-size:14.5px;color:var(--ink-2)}
.case .out{background:var(--surface);border:1px solid var(--line);padding:14px 16px}
.case .out .n{font-family:var(--serif);font-size:24px;color:var(--brass);display:block;font-variant-numeric:tabular-nums}
.case .out .l{font-size:12.5px;color:var(--muted);display:block;margin-top:4px}

/* ---------- equipo ---------- */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media (max-width:820px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.team{grid-template-columns:1fr}}
.person{display:flex;flex-direction:column;gap:10px}
.portrait{
  aspect-ratio:4/5;background:var(--surface-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11px;color:var(--muted);text-align:center;padding:12px;
}
.person h3{font-size:17px}
.person .role{font-size:13px;color:var(--accent);font-weight:500}
.person p{font-size:13.5px;color:var(--muted)}

/* ---------- publicaciones ---------- */
.posts{display:flex;flex-direction:column}
.post{display:grid;grid-template-columns:110px minmax(0,1fr);gap:26px;padding:18px 0;border-top:1px solid var(--line-soft)}
.post:first-child{border-top:none}
@media (max-width:600px){.post{grid-template-columns:1fr;gap:6px}}
.post .date{font-family:var(--mono);font-size:12px;color:var(--muted);padding-top:3px}
.post h3{font-size:17px;margin-bottom:5px}
.post p{font-size:14px;color:var(--muted)}

.obras{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.obra{display:grid;grid-template-columns:56px minmax(0,1fr) 190px;gap:26px;padding:22px 0;border-bottom:1px solid var(--line-soft);align-items:start}
@media (max-width:780px){.obra{grid-template-columns:44px minmax(0,1fr);gap:16px}.obra .pie{grid-column:2}}
.obra .n{font-family:var(--mono);font-size:12px;color:var(--brass);padding-top:6px;font-variant-numeric:tabular-nums}
.obra h3{font-size:19px;line-height:1.3}
.obra .autor{font-size:13px;color:var(--muted);margin-top:6px}
.obra p{font-size:14.5px;color:var(--ink-2);margin-top:10px}
.obra .pie{font-family:var(--mono);font-size:12px;color:var(--muted);padding-top:6px;line-height:1.7}
.obra .pie b{display:block;color:var(--ink-2);font-weight:500}

.pubs{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pub{padding:15px 0;border-bottom:1px solid var(--line-soft)}
.pub h3{font-size:17px;line-height:1.35;font-weight:600}
.pub .meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:6px;line-height:1.6}
.pub .meta .anio{color:var(--brass)}

/* ---------- CTA final ---------- */
.cta{background:var(--accent);color:var(--on-accent);padding:52px 0}
.cta .wrap{display:flex;gap:36px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cta h2{font-size:28px;max-width:20ch}
.cta p{font-size:15px;opacity:.85;max-width:44ch;margin-top:10px}
.cta .btn{background:var(--ground);color:var(--accent-ink);border-color:var(--ground)}
.cta .btn:hover{background:var(--surface);border-color:var(--surface);color:var(--accent-ink)}

/* ---------- área detalle ---------- */
.crumb{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:18px}
.crumb a{color:var(--accent);text-decoration:none}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:48px;align-items:start;margin-top:36px}
@media (max-width:880px){.detail-grid{grid-template-columns:1fr;gap:32px}}
.detail h3{font-size:18px;margin:32px 0 12px}
.detail ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px}
.detail li{font-size:15px;color:var(--ink-2)}
.panel{border:1px solid var(--line);background:var(--surface);padding:20px}
.panel h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;margin:0 0 14px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{font-family:var(--mono);font-size:11.5px;border:1px solid var(--line);padding:4px 8px;color:var(--ink-2);background:var(--ground)}
.panel .deliver{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.panel .deliver li{font-size:13.5px;color:var(--ink-2);padding-left:15px;position:relative}
.panel .deliver li::before{content:"›";position:absolute;left:0;color:var(--accent)}

.plate{margin-top:30px;border:1px solid var(--line);line-height:0}
.plate svg{width:100%;height:auto;display:block}
.panel.call{background:var(--accent-soft);border-color:var(--accent)}
.panel.call p{font-size:14px;color:var(--ink-2);margin:0 0 14px}
.panel.call .tel-big{font-family:var(--mono);font-size:17px;color:var(--ink);display:block;margin-bottom:14px;text-decoration:none}
.panel.call .tel-big:hover{color:var(--accent)}

/* ---------- contacto ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:48px;align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr;gap:36px}}
form.enquiry{display:flex;flex-direction:column;gap:16px;margin-top:8px}
.field{display:flex;flex-direction:column;gap:6px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.pair{grid-template-columns:1fr}}
label{font-size:13px;color:var(--ink-2);font-weight:500}
label .req{color:var(--brass)}
input,select,textarea{
  font-family:var(--sans);font-size:15px;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:2px;
  padding:10px 12px;width:100%;
}
textarea{resize:vertical;min-height:110px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.5}
.consent input{width:16px;height:16px;flex:0 0 auto;margin-top:3px;accent-color:var(--accent)}
.consent a{color:var(--accent)}
.formnote{font-size:12.5px;color:var(--muted);font-family:var(--mono)}
.sent{border:1px solid var(--accent);background:var(--accent-soft);color:var(--ink);padding:14px 16px;font-size:14px}
.contact-block{border-top:1px solid var(--line-soft);padding:16px 0}
.contact-block:first-child{border-top:none;padding-top:0}
.contact-block .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:6px}
.contact-block .v{font-size:15px;color:var(--ink)}
.contact-block a{color:var(--accent);text-decoration:none}
.llegar{border:1px solid var(--line);background:var(--surface);padding:18px 20px;margin-top:24px}
.llegar h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;margin:0 0 10px}
.llegar p{font-size:13.5px;color:var(--muted);line-height:1.55}
.llegar-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.llegar-btns a{font-family:var(--mono);font-size:12px;border:1px solid var(--line);padding:7px 11px;text-decoration:none;color:var(--ink-2);background:var(--ground)}
.llegar-btns a:hover{border-color:var(--accent);color:var(--accent)}

/* aviso de error al volver del formulario */
.form-error{border:1px solid var(--brass);background:var(--warn-soft,var(--surface-2));color:var(--ink);padding:14px 16px;font-size:14px;margin-bottom:18px}

/* ---------- banner de cookies (demostración) ---------- */
.cookiedemo{border:1px solid var(--line);background:var(--surface);padding:22px;max-width:640px}
.cookiedemo p{font-size:14px;color:var(--ink-2)}
.cookiedemo .acts{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.cookiedemo .btn{padding:9px 16px;font-size:13px}

/* ---------- documentos legales ---------- */
.legal-doc{max-width:72ch}
.legal-doc h2{font-size:21px;margin:38px 0 10px}
.legal-doc h3{font-size:16px;margin:24px 0 6px}
.legal-doc p,.legal-doc li{font-size:15px;color:var(--ink-2);line-height:1.7}
.legal-doc p+p{margin-top:12px}
.legal-doc ul,.legal-doc ol{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:7px}
.updated{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:10px}
.callout{border-left:3px solid var(--brass);background:var(--surface);padding:16px 18px;margin:24px 0 0;font-size:14px;color:var(--ink-2);max-width:72ch}
.callout strong{color:var(--ink);display:block;margin-bottom:8px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:400}
.callout ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.tbl-scroll{overflow-x:auto;margin-top:16px}
.data-tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px}
.data-tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:400;padding:0 16px 8px 0;border-bottom:1px solid var(--line);white-space:nowrap}
.data-tbl td{padding:11px 16px 11px 0;border-bottom:1px solid var(--line-soft);vertical-align:top;color:var(--ink-2);line-height:1.55}
.data-tbl td:first-child{color:var(--ink);font-weight:500}
.legal-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.legal-nav a{font-family:var(--mono);font-size:12px;border:1px solid var(--line);padding:7px 12px;text-decoration:none;color:var(--ink-2);background:var(--surface)}
.legal-nav a:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- tabla legal ---------- */
.legal-tbl{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}
.legal-tbl td{border-top:1px solid var(--line-soft);padding:10px 0;vertical-align:top}
.legal-tbl td:first-child{color:var(--muted);width:220px;padding-right:20px}
.legal-tbl td:last-child{font-family:var(--mono);font-size:13px}

/* ---------- pie ---------- */
footer.site{border-top:1px solid var(--line);background:var(--surface);padding:44px 0 32px;margin-top:0}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr;gap:28px}}
footer.site h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:400;margin:0 0 12px}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
footer.site a{font-size:14px;color:var(--ink-2);text-decoration:none}
footer.site a:hover{color:var(--accent)}
.foot-legal{margin-top:34px;padding-top:18px;border-top:1px solid var(--line-soft);font-family:var(--mono);font-size:11.5px;color:var(--muted);line-height:1.8}
.view[hidden]{display:none}

/* --- añadidos de producción --- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--on-accent);padding:10px 16px;z-index:100}
.skip:focus{left:0}
