.p-legal{
  --paper:  #FFFFFF;
  --ink:    #16120F;
  --ink-2:  #453C34;
  --mute:   #7B6E63;
  --rule:   #E4DED5;
  --fire:   #C2410C;

  background:var(--paper); color:var(--ink);
}
.p-legal main{ background:var(--paper); }
.p-legal ::selection{ background:var(--fire); color:#fff; }

.lg{
  max-width:46rem; margin:0 auto;
  padding:clamp(8rem,16vh,12rem) clamp(1.2rem,5vw,2rem) clamp(5rem,10vh,8rem);
}

.lg-head{ border-bottom:1px solid var(--rule); padding-bottom:clamp(1.8rem,4vh,2.6rem); }
.lg-label{
  font-family:var(--serif); font-style:italic;
  font-size:1.02rem; color:var(--mute);
}
.lg-h{
  margin-top:.7rem;
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.4rem,7vw,4rem); line-height:1.02; letter-spacing:-.03em;
}
.lg-h em{ font-style:italic; color:var(--fire); }
.lg-lead{
  margin-top:1.3rem; max-width:44ch;
  font-size:clamp(1rem,1.1vw,1.12rem); line-height:1.7; color:var(--ink-2);
}

.lg-body{ font-size:1rem; line-height:1.75; color:var(--ink-2); }
.lg-sec{ margin-top:clamp(2.4rem,5vh,3.4rem); }
.lg-sec h2{
  margin-bottom:.8rem;
  font-family:var(--serif); font-weight:400; font-size:1.45rem;
  letter-spacing:-.01em; color:var(--ink);
}
.lg-sec p + p{ margin-top:.9rem; }
.lg-sec ul{ margin-top:.9rem; padding-left:1.1rem; list-style:none; }
.lg-sec li{ position:relative; padding-left:.9rem; }
.lg-sec li + li{ margin-top:.5rem; }
.lg-contact{
  display:grid; gap:.35rem;
  margin-top:clamp(2.6rem,5vh,3.4rem); padding-top:1.6rem;
  border-top:1px solid var(--rule);
  font-style:normal; font-size:.95rem; color:var(--ink-2);
}
.lg-contact a{ color:var(--fire); border-bottom:1px solid transparent; width:max-content; }
.lg-contact a:hover{ border-color:currentColor; }

.lg-progress{
  position:fixed; inset:0 0 auto; height:2px; z-index:60; pointer-events:none;
}
.lg-progress span{
  display:block; height:100%; background:var(--fire);
  transform:scaleX(0); transform-origin:0 50%;
}
.lg-h .w{ display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.08em; margin-bottom:-.08em; }
.lg-h .w > span{ display:inline-block; }
.lg-head{ position:relative; border-bottom-color:transparent; }
.lg-head::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:var(--rule); transform-origin:0 50%;
  transform:scaleX(var(--rule-x,1));
}
.lg-contact a{ transition:border-color .3s ease, letter-spacing .3s ease; }
@media (prefers-reduced-motion:reduce){
  .lg-progress{ display:none; }
}

.lg-sec ul{ padding-left:0; }
.lg-sec li{ padding-left:1.6rem; }
.lg-sec li::before{
  content:""; position:absolute; left:0; top:.5em;
  width:.78rem; height:.78rem; background:var(--fire);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 .8 15.2 8 8 15.2.8 8z' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 4.6 11.4 8 8 11.4 4.6 8z'/%3E%3C/svg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 .8 15.2 8 8 15.2.8 8z' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 4.6 11.4 8 8 11.4 4.6 8z'/%3E%3C/svg%3E") no-repeat center/contain;
  transform-origin:50% 50%;
  transform:rotate(var(--pan-r,0deg)) scale(var(--pan-s,1));
  transition:transform .5s cubic-bezier(.3,1.6,.5,1);
}
.lg-sec li:hover::before{ --pan-r:45deg; }

.lg-sec{ position:relative; }
.lg-sec h2{
  position:relative; display:inline-block;
  margin-bottom:1.3rem; padding-bottom:.55rem;
  font-size:clamp(1.55rem,2.4vw,1.9rem); line-height:1.15;
  transition:color .5s ease;
}
.lg-wave{
  position:absolute; left:0; bottom:0; width:100%; min-width:5rem; height:.5rem;
  overflow:visible; pointer-events:none;
}
.lg-wave path{
  fill:none; stroke:var(--fire); stroke-width:1.4; stroke-linecap:round;
  stroke-dasharray:1; stroke-dashoffset:var(--wave,0);
}
.lg-sec.is-current h2{ color:var(--fire); }
.lg-sec > p:first-of-type::first-letter{
  float:left; margin:.12em .5rem 0 0;
  font-family:var(--serif); font-size:3.3em; line-height:.78; color:var(--ink);
}
.lg-sec + .lg-sec::before{
  content:"~"; display:block; margin-bottom:clamp(1.6rem,4vh,2.4rem);
  text-align:center; font-family:var(--serif); font-style:italic;
  font-size:1.6rem; line-height:1; color:var(--rule);
}
