/* ============================================================
   SYMOV — Documentos legales
   Lenguaje visual: cajetín de plano técnico / documento controlado
   ============================================================ */
:root{
  --graphite:#121519;
  --graphite-2:#1B1F25;
  --graphite-3:#0C0E11;
  --steel:#146D7E;
  --steel-light:#1E92A8;
  --blueprint:#28506A;
  --signal-yellow:#FFC72C;
  --signal-red:#E5484D;
  --signal-green:#2FAE66;
  --concrete:#EDEAE3;
  --concrete-2:#DDD8CC;
  --white:#FAF9F6;
  --ink:#14161A;
  --line:rgba(255,255,255,0.10);
  --line-2:rgba(255,255,255,0.16);
  --rule:rgba(20,22,26,0.14);
  --rule-2:rgba(20,22,26,0.26);
  --muted:rgba(20,22,26,0.62);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--concrete);
  color:var(--ink);
  font-family:'Barlow',system-ui,sans-serif;
  font-size:16px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
::selection{background:var(--signal-yellow);color:var(--ink);}

/* ---------- Barra superior ---------- */
.lg-top{
  position:sticky;top:0;z-index:60;
  background:var(--graphite-3);
  border-bottom:1px solid var(--line);
}
.lg-top__in{
  max-width:1180px;margin:0 auto;padding:0 32px;
  height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.lg-brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.lg-brand__img{height:30px;width:auto;display:block}
.lg-brand__mark{
  width:26px;height:26px;flex:none;
  display:grid;place-items:center;
  background:var(--signal-yellow);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
}
.lg-brand__mark span{
  width:7px;height:7px;background:var(--graphite-3);border-radius:50%;
}
.lg-brand__txt{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:19px;letter-spacing:.06em;text-transform:uppercase;color:var(--white);
}
.lg-back{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--concrete-2);text-decoration:none;
  display:inline-flex;align-items:center;gap:9px;
  padding:8px 0;border-bottom:1px solid transparent;
  transition:color .25s,border-color .25s;
}
.lg-back:hover{color:var(--signal-yellow);border-color:var(--signal-yellow);}
.lg-back svg{width:13px;height:13px;transition:transform .25s;}
.lg-back:hover svg{transform:translateX(-3px);}

/* ---------- Cajetín (título del documento) ---------- */
.lg-sheet{
  background:var(--graphite);
  color:var(--white);
  position:relative;overflow:hidden;
  border-bottom:3px solid var(--signal-yellow);
}
.lg-sheet::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(40,80,106,.30) 1px,transparent 1px),
    linear-gradient(90deg,rgba(40,80,106,.30) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(120% 90% at 12% 0%,#000 0%,transparent 72%);
  -webkit-mask-image:radial-gradient(120% 90% at 12% 0%,#000 0%,transparent 72%);
  pointer-events:none;
}
.lg-sheet__in{max-width:1180px;margin:0 auto;padding:66px 32px 0;position:relative;}
.lg-eyebrow{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--signal-yellow);
  display:flex;align-items:center;gap:14px;margin:0 0 18px;
}
.lg-eyebrow::before{content:'';width:34px;height:2px;background:var(--signal-yellow);flex:none;}
.lg-sheet h1{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:clamp(38px,6.4vw,68px);line-height:.96;
  letter-spacing:-.005em;text-transform:uppercase;
  margin:0 0 20px;max-width:16ch;
}
.lg-sheet__lead{
  color:var(--concrete-2);font-size:17px;max-width:62ch;margin:0 0 44px;
}

/* Bloque de datos del documento — el "cajetín" del plano */
.lg-block{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line-2);
}
.lg-block__cell{
  padding:18px 22px 22px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.lg-block__cell:last-child{border-right:none;}
.lg-block__k{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(250,249,246,.42);display:block;margin-bottom:7px;
}
.lg-block__v{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:19px;letter-spacing:.02em;text-transform:uppercase;color:var(--white);
}
.lg-block__v em{font-style:normal;color:var(--signal-yellow);}

/* ---------- Cuerpo ---------- */
.lg-body{max-width:1180px;margin:0 auto;padding:0 32px 96px;}
.lg-grid{display:grid;grid-template-columns:230px 1fr;gap:64px;align-items:start;}

/* Índice lateral */
.lg-index{position:sticky;top:96px;padding-top:56px;}
.lg-index__t{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 16px;padding-bottom:12px;
  border-bottom:1px solid var(--rule-2);
}
.lg-index ol{list-style:none;margin:0;padding:0;counter-reset:idx;}
.lg-index li{counter-increment:idx;}
.lg-index a{
  display:grid;grid-template-columns:26px 1fr;gap:6px;
  padding:7px 0;text-decoration:none;
  font-size:13.5px;line-height:1.35;color:var(--muted);
  border-bottom:1px solid transparent;
  transition:color .2s;
}
.lg-index a::before{
  content:counter(idx,decimal-leading-zero);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10.5px;color:rgba(20,22,26,.34);padding-top:2px;
}
.lg-index a:hover,.lg-index a.is-active{color:var(--ink);}
.lg-index a:hover::before,.lg-index a.is-active::before{color:var(--steel);}

/* Cláusulas */
.lg-main{padding-top:56px;counter-reset:cl;}
.lg-cl{
  counter-increment:cl;
  padding:34px 0 30px;
  border-top:1px solid var(--rule);
}
.lg-cl:first-child{border-top:none;padding-top:0;}
.lg-cl__h{
  display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:baseline;
  margin:0 0 16px;
}
.lg-cl__n{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:12px;letter-spacing:.1em;color:var(--steel);
  padding-top:4px;
}
.lg-cl h2{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;
  font-size:clamp(23px,3vw,29px);line-height:1.08;
  text-transform:uppercase;letter-spacing:.005em;margin:0;
}
.lg-cl h3{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:18px;text-transform:uppercase;letter-spacing:.04em;
  margin:28px 0 10px;color:var(--ink);
}
.lg-cl p{margin:0 0 15px;max-width:74ch;}
.lg-cl ul{margin:0 0 16px;padding-left:0;list-style:none;max-width:74ch;}
.lg-cl ul li{
  position:relative;padding-left:22px;margin-bottom:9px;
}
.lg-cl ul li::before{
  content:'';position:absolute;left:2px;top:11px;
  width:7px;height:2px;background:var(--signal-yellow);
}
.lg-cl strong{font-weight:600;}
.lg-cl a{color:var(--steel);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.lg-cl a:hover{color:var(--ink);background:var(--signal-yellow);text-decoration-color:transparent;}

/* Tablas */
.lg-tw{overflow-x:auto;margin:0 0 20px;border:1px solid var(--rule-2);background:rgba(255,255,255,.55);}
table.lg-t{width:100%;border-collapse:collapse;font-size:14px;min-width:560px;}
table.lg-t th{
  text-align:left;background:var(--graphite);color:var(--white);
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
  padding:11px 14px;white-space:nowrap;
}
table.lg-t td{
  padding:13px 14px;border-top:1px solid var(--rule);
  vertical-align:top;line-height:1.5;
}
table.lg-t tr:nth-child(even) td{background:rgba(20,22,26,.028);}
table.lg-t td code{
  font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;
  background:rgba(20,86,106,.10);color:var(--steel);padding:2px 6px;white-space:nowrap;
}
.lg-tag{
  display:inline-block;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 8px;border:1px solid var(--rule-2);white-space:nowrap;
}
.lg-tag--need{background:var(--graphite);color:var(--white);border-color:var(--graphite);}
.lg-tag--opt{background:var(--signal-yellow);color:var(--ink);border-color:var(--signal-yellow);}

/* Nota / aviso */
.lg-note{
  border-left:3px solid var(--steel);
  background:rgba(20,109,126,.07);
  padding:18px 22px;margin:0 0 20px;max-width:74ch;
}
.lg-note p:last-child{margin-bottom:0;}
.lg-note__k{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--steel);display:block;margin-bottom:8px;
}

/* Botón */
.lg-btn{
  display:inline-flex;align-items:center;gap:11px;cursor:pointer;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:14px 22px;border:1px solid var(--ink);background:transparent;color:var(--ink);
  text-decoration:none;transition:background .22s,color .22s;
}
.lg-btn:hover{background:var(--ink);color:var(--white);}
.lg-btn--solid{background:var(--signal-yellow);border-color:var(--signal-yellow);}
.lg-btn--solid:hover{background:var(--ink);border-color:var(--ink);color:var(--white);}

/* Ficha de contacto del responsable */
.lg-card{
  border:1px solid var(--rule-2);background:rgba(255,255,255,.6);
  padding:26px 28px;max-width:74ch;margin:0 0 6px;
}
.lg-card dl{margin:0;display:grid;grid-template-columns:150px 1fr;gap:10px 18px;}
.lg-card dt{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);padding-top:4px;
}
.lg-card dd{margin:0;font-size:15px;}

/* Pie: bloque de revisión */
.lg-rev{background:var(--graphite);color:var(--white);border-top:3px solid var(--signal-yellow);}
.lg-rev__in{max-width:1180px;margin:0 auto;padding:44px 32px 52px;}
.lg-rev h2{
  font-family:'Barlow Condensed',sans-serif;font-weight:800;text-transform:uppercase;
  font-size:22px;margin:0 0 20px;letter-spacing:.02em;
}
table.lg-rt{width:100%;border-collapse:collapse;font-size:13.5px;}
table.lg-rt th{
  text-align:left;font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
  color:rgba(250,249,246,.45);padding:0 14px 10px 0;border-bottom:1px solid var(--line-2);
}
table.lg-rt td{padding:12px 14px 12px 0;border-bottom:1px solid var(--line);color:var(--concrete-2);}
table.lg-rt td:first-child{color:var(--signal-yellow);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;}
.lg-rev__foot{
  margin-top:30px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(250,249,246,.42);
}
.lg-rev__foot a{color:var(--concrete-2);text-decoration:none;border-bottom:1px solid transparent;}
.lg-rev__foot a:hover{color:var(--signal-yellow);border-color:var(--signal-yellow);}

/* Foco visible */
a:focus-visible,button:focus-visible{
  outline:2px solid var(--signal-yellow);outline-offset:3px;
}
.lg-sheet a:focus-visible,.lg-rev a:focus-visible{outline-color:var(--signal-yellow);}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .lg-grid{grid-template-columns:1fr;gap:0;}
  .lg-index{position:static;padding-top:40px;}
  .lg-index ol{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 24px;
  }
  .lg-main{padding-top:38px;}
  .lg-block{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .lg-top__in,.lg-sheet__in,.lg-body,.lg-rev__in{padding-left:20px;padding-right:20px;}
  .lg-sheet__in{padding-top:44px;}
  .lg-block{grid-template-columns:1fr;}
  .lg-block__cell{border-right:none;}
  .lg-cl__h{grid-template-columns:1fr;gap:6px;}
  .lg-card dl{grid-template-columns:1fr;gap:4px 0;}
  .lg-card dd{margin-bottom:12px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}
@media print{
  .lg-top,.lg-index,.lg-back{display:none;}
  body{background:#fff;}
  .lg-grid{grid-template-columns:1fr;}
  .lg-sheet,.lg-rev{background:#fff;color:#000;}
  .lg-sheet::before{display:none;}
}