

/* ============================================================
   POLICY PAGES
   A sticky index on the left that follows you down the page,
   and the clauses as numbered cards on the right.
   ============================================================ */
.lgl__top{ background:var(--ground-2); padding:calc(104px + env(safe-area-inset-top,0px)) 0 clamp(34px,5vh,58px); border-bottom:1px solid var(--line); }
.crumbs{ display:flex; gap:.6rem; align-items:center; font-size:.78rem; color:var(--muted); margin-bottom:1.2rem; }
.crumbs a{ color:var(--accent-dk); font-weight:700; }
.lgl__top h1{ font-family:var(--f-display); font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.08; letter-spacing:-.02em; color:var(--ink); margin:0; max-width:20ch; }
.lgl__top h1 em{ font-style:italic; font-weight:400; color:var(--accent-dk); }
.lgl__lede{ margin:1.2rem 0 0; max-width:66ch; font-size:clamp(1rem,1.2vw,1.1rem); line-height:1.7; color:var(--body); }
.lgl__ver{ display:flex; flex-wrap:wrap; gap:.5rem; margin:1.6rem 0 0; }
.lgl__ver span{ font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-dk); background:var(--accent-pale); border:1px solid rgba(var(--accent-rgb),.22); padding:.32rem .7rem; border-radius:7px; }
.lgl__sibs{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.lgl__sib{ font-size:.82rem; font-weight:700; color:var(--body); border:1px solid var(--line-2); border-radius:999px; padding:.5rem 1.05rem; transition:all .3s var(--ease); }
.lgl__sib:hover{ border-color:var(--accent); color:var(--accent-dk); }
.lgl__sib.is-current{ background:var(--ink); border-color:var(--ink); color:#fff; }

.lgl{ padding:clamp(34px,6vh,64px) 0 clamp(40px,7vh,80px); background:var(--ground); }
.lgl__wrap{ display:grid; grid-template-columns:290px 1fr; gap:clamp(28px,4vw,62px); align-items:start; }
.lgl__wrap > *{ min-width:0; }

.lgl__stick{ position:sticky; top:96px; }
.lgl__sidettl{ font-family:var(--f-display); font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 .9rem; }
.lgl__find{ position:relative; margin-bottom:.9rem; }
.lgl__find svg{ position:absolute; left:12px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--muted); pointer-events:none; }
.lgl__find input{ width:100%; padding:.62rem .8rem .62rem 34px; border:1px solid var(--line-2); border-radius:10px; background:var(--card); font:inherit; font-size:.86rem; color:var(--ink); }
.lgl__find input:focus{ outline:2px solid var(--accent); outline-offset:1px; }

.lgl__idx{ list-style:none; margin:0; padding:0; display:grid; gap:1px; max-height:min(58vh,620px); overflow:auto; }
.lgl__idx a{ display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:baseline; padding:.5rem .7rem; border-radius:8px; border-left:2px solid transparent; font-size:.86rem; line-height:1.45; color:var(--body); transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.lgl__idx b{ font-size:.7rem; font-weight:800; color:var(--muted); font-variant-numeric:tabular-nums; }
.lgl__idx a:hover{ background:var(--accent-pale); color:var(--accent-dk); }
.lgl__idx a.on{ background:var(--accent-pale); border-left-color:var(--accent); color:var(--accent-dk); font-weight:700; }
.lgl__idx a.on b{ color:var(--accent); }
.lgl__idx li.hide{ display:none; }
.lgl__none{ font-size:.84rem; color:var(--muted); margin:.6rem 0 0; }
.lgl__print{ background:none; border:0; padding:0; font-family:inherit; display:inline-block; margin-top:1.1rem; font-size:.72rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--accent-dk); cursor:pointer; }

.lgl__body{ display:grid; gap:clamp(14px,1.8vw,20px); }
.lgl__sec{
  background:var(--card); border:1px solid var(--line); border-radius:16px;
  padding:clamp(22px,2.6vw,34px); scroll-margin-top:100px;
}
.lgl__sec:focus{ outline:none; }
/* each clause folds away under its heading */
.lgl__sec{ padding:0; transition:border-color .3s var(--ease), box-shadow .3s var(--ease); }
.lgl__sec .lgl__kick{ padding:clamp(16px,2vw,22px) clamp(20px,2.6vw,34px) 0; margin:0 0 -1.05rem; font-size:.62rem; }
.lgl__sec h2{ margin:0; }
.lgl__tog{ all:unset; box-sizing:border-box; width:100%; cursor:pointer; display:flex; gap:.8rem; align-items:baseline;
  padding:clamp(18px,2.2vw,26px) clamp(20px,2.6vw,34px); border-radius:16px; }
.lgl__tog:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }
.lgl__h{ flex:1; }
.lgl__chev{ flex:none; align-self:center; width:32px; height:32px; border-radius:50%; background:var(--accent-pale); position:relative; transition:transform .45s var(--ease), background .3s var(--ease); }
.lgl__chev::before{ content:""; position:absolute; left:50%; top:46%; width:8px; height:8px; border-right:2px solid var(--accent-dk); border-bottom:2px solid var(--accent-dk); transform:translate(-50%,-50%) rotate(45deg); }
.lgl__tog:hover .lgl__chev{ background:var(--accent-soft); }
.lgl__sec.open{ border-color:rgba(var(--accent-rgb),.35); box-shadow:0 14px 34px rgba(var(--ink-rgb),.06); }
.lgl__sec.open .lgl__chev{ transform:rotate(180deg); background:var(--accent); }
.lgl__sec.open .lgl__chev::before{ border-color:#fff; }
.lgl__panel{ display:grid; grid-template-rows:1fr; }
.js .lgl__panel{ grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease); }
.js .lgl__sec.open .lgl__panel{ grid-template-rows:1fr; }
.lgl__in{ overflow:hidden; min-height:0; padding:0 clamp(20px,2.6vw,34px); }
.lgl__sec.open .lgl__in{ padding-bottom:clamp(20px,2.6vw,32px); }
.js .lgl__sec:not(.open) .lgl__in{ visibility:hidden; transition:visibility 0s .45s; }
.lgl__all{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.8rem; font-weight:700; color:var(--muted); }
.lgl__all button{ font:inherit; font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-dk); background:var(--accent-pale); border:1px solid rgba(var(--accent-rgb),.25); border-radius:999px; padding:.45rem 1rem; cursor:pointer; }
.lgl__all button:hover{ background:var(--accent); color:#fff; }
.lgl__sec:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.lgl__kick{ font-size:.66rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:0 0 .5rem; }
.lgl__sec h2{ display:flex; gap:.8rem; align-items:baseline; font-family:var(--f-display); font-size:clamp(1.2rem,1.9vw,1.5rem); font-weight:600; color:var(--ink); line-height:1.25; margin:0 0 1rem; letter-spacing:-.01em; }
.lgl__no{ font-size:.78rem; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; flex:none; padding-top:.2rem; }
.lgl__sec h3{ font-family:var(--f-display); font-size:1rem; font-weight:700; color:var(--ink); margin:1.5rem 0 .6rem; }
.lgl__sec p{ margin:0 0 .9rem; color:var(--body); line-height:1.75; font-size:.95rem; }
.lgl__sec p:last-child, .lgl__sec ul:last-child, .lgl__sec ol:last-child{ margin-bottom:0; }
.lgl__sec ul, .lgl__sec ol{ margin:0 0 .9rem; padding-left:1.1rem; display:grid; gap:.45rem; color:var(--body); font-size:.95rem; line-height:1.65; }
.lgl__sec li::marker{ color:var(--accent); }
.lgl__sec strong{ color:var(--ink); font-weight:700; }
.lgl__sec a{ color:var(--accent-dk); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

/* a boxed aside inside a clause — contact blocks, the important bits */
.lgl__box{ background:var(--accent-pale); border:1px solid rgba(var(--accent-rgb),.22); border-radius:12px; padding:1.1rem 1.25rem; margin:1.1rem 0; }
.lgl__box p:last-child{ margin-bottom:0; }
.lgl__box h3{ margin-top:0; }
.lgl__warn{ background:rgba(var(--warm-rgb),.1); border-color:rgba(var(--warm-rgb),.4); }
.lgl__warn strong{ color:var(--ink); }

.lgl__top-btn{
  position:fixed; right:20px; bottom:20px; z-index:80;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--line-2);
  background:var(--card); color:var(--accent-dk); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -16px rgba(var(--ink-rgb),.5);
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.lgl__top-btn[hidden]{ display:none; }
.lgl__top-btn svg{ width:18px; height:18px; }
.lgl__top-btn:hover{ transform:translateY(-3px); }

.lgl__close{ background:var(--ground-2); text-align:center; }
.lgl__close .lede{ margin:1rem auto 0; max-width:62ch; }
.lgl__closebtns{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:2rem; }

@media (max-width:980px){
  .lgl__wrap{ grid-template-columns:1fr; }
  .lgl__stick{ position:static; }
  .lgl__idx{ max-height:none; }
}
@media print{
  .nav, .mega, .sheet, .lgl__side, .lgl__top-btn, .lgl__close, .foot, .progress{ display:none !important; }
  .lgl__sec{ border:0; padding:0 0 1.2rem; break-inside:avoid; }
  .js .lgl__panel{ grid-template-rows:1fr !important; }
  .js .lgl__in{ visibility:visible !important; padding:0 !important; }
  .lgl__chev, .lgl__all{ display:none !important; }
  .lgl__tog{ padding:0 0 .6rem; }
  .lgl__wrap{ display:block; }
}
@media (prefers-reduced-motion:reduce){
  .lgl__idx a, .lgl__sib, .lgl__top-btn{ transition:none; }
  .lgl__top-btn:hover{ transform:none; }
}
