/* Páginas legales: cabecera compacta, índice lateral fijo (escritorio) / plegable (móvil), columna de ~70 caracteres */
.phead--legal { padding-bottom: clamp(32px, 5vw, 64px); }
.phead--legal .phead__title { font-size: clamp(2.9rem, 11vw, 6.4rem); }
.phead--legal .phead__roof, .phead--legal .phead__floor { width: min(100%, 560px); }

.legal { padding-block: clamp(40px, 7vw, 110px); background: var(--paper); }
.legal__in { display: grid; gap: 28px; }
.legal__aside { display: none; }
@media (min-width: 1000px) {
  .legal__in { grid-template-columns: 260px minmax(0, 70ch); justify-content: start; column-gap: clamp(48px, 7vw, 120px); }
  .legal__aside { display: block; }
  .legal__mtoc { display: none; }
}
.legal__sticky { position: sticky; top: calc(var(--header-h) + 28px); }
.legal__cap { margin-bottom: 12px; font: 700 .76rem/1 var(--f-display); letter-spacing: .18em; text-transform: uppercase; color: var(--copper-deep); }
.legal__cap--2 { margin-top: 30px; }
.legal__toc { border-top: 1px solid var(--line); }
.legal__toc a { display: flex; gap: 12px; align-items: baseline; min-height: 44px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .92rem; line-height: 1.3; text-decoration: none; color: var(--ink); transition: color .25s, padding-left .35s var(--ease); }
.legal__toc a span { font: 700 .76rem/1 var(--f-display); letter-spacing: .1em; color: var(--copper-deep); }
.legal__toc a:hover { color: var(--copper-deep); padding-left: 6px; }
.legal__others a { display: flex; align-items: center; min-height: 44px; font-size: .9rem; color: var(--muted); text-underline-offset: 4px; }
.legal__others a[aria-current] { color: var(--ink); font-weight: 700; text-decoration: none; }
.legal__mtoc { border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); }
.legal__mtoc summary { display: flex; align-items: center; min-height: 52px; font: 700 .86rem/1 var(--f-display); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.legal__mtoc .legal__toc { margin-bottom: 12px; }

.legal__doc { min-width: 0; max-width: 70ch; font-size: 1.02rem; line-height: 1.72; color: #34312d; }
.legal__updated { margin-bottom: 26px; font-size: .84rem; color: var(--muted); }
.lsec { scroll-margin-top: calc(var(--header-h) + 24px); padding-bottom: 34px; }
.lsec + .lsec { padding-top: 34px; border-top: 1px solid var(--line); }
.lsec h2 { display: flex; gap: 14px; align-items: baseline; margin-bottom: 16px; font: 800 clamp(1.6rem, 3.4vw, 2.3rem)/1 var(--f-display); text-transform: uppercase; color: var(--ink); }
.lsec h2 span { font-size: .5em; letter-spacing: .1em; color: var(--copper-deep); }
.lsec p + p, .lsec p + ul, .lsec ul + p, .lsec p + .lowners, .lsec .lowners + p, .lsec p + .ltable { margin-top: 14px; }
.lsec ul { display: grid; gap: 6px; }
.lsec ul li { position: relative; padding-left: 22px; }
.lsec ul li::before { content: ""; position: absolute; left: 0; top: .78em; width: 12px; height: 2px; background: var(--copper); }
.lsec a { color: var(--copper-deep); text-underline-offset: 3px; overflow-wrap: anywhere; }
.lowners { display: grid; gap: 14px; }
@media (min-width: 700px) { .lowners { grid-template-columns: 1fr 1fr; } }
.lowner { padding: 18px 18px 8px; background: var(--bone); }
.lowner__name { margin-bottom: 8px; font: 800 1.25rem/1.05 var(--f-display); text-transform: uppercase; color: var(--ink); }
.lowner dl div { display: grid; gap: 2px; padding: 8px 0; border-top: 1px solid var(--line); font-size: .86rem; line-height: 1.45; }
.lowner dt { font: 700 .7rem/1.2 var(--f-display); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.lowner dd { overflow-wrap: anywhere; }
.ltable { overflow-x: auto; margin-top: 14px; border-top: 2px solid var(--ink); }
.ltable:focus-visible { outline-offset: 2px; }
.ltable table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .86rem; line-height: 1.45; }
.ltable th { padding: 10px 10px 10px 0; font: 700 .72rem/1.2 var(--f-display); letter-spacing: .14em; text-transform: uppercase; text-align: left; color: var(--muted); border-bottom: 1px solid var(--line); }
.ltable td { padding: 10px 10px 10px 0; vertical-align: top; border-bottom: 1px solid var(--line); }
.ltable td:first-child { font-weight: 700; color: var(--ink); }
.legal__demo { margin-top: 10px; padding: 16px 18px; border: 1px dashed var(--copper-deep); font-size: .88rem; color: var(--muted); }
@media (max-width: 699px) {
  .legal { padding-top: 24px; }
  .legal__doc { font-size: .98rem; line-height: 1.65; }
  .lsec { padding-bottom: 26px; }
  .lsec + .lsec { padding-top: 26px; }
}
.lowner a[href^="tel"] { white-space: nowrap; }
@media (max-width: 699px) {
  .ltable { overflow: visible; }
  .ltable table { min-width: 0; }
  .ltable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ltable tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .ltable td { display: grid; grid-template-columns: 6.2rem minmax(0, 1fr); gap: 10px; padding: 3px 0; border: 0; }
  .ltable td::before { content: attr(data-label); font: 700 .7rem/1.6 var(--f-display); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
}
