/* =========================================================
   Legal pages — aligned to Ossler index sizing conventions
   ========================================================= */
.legal-page-shell {
  --legal-width: 1360px;
  --legal-gutter: clamp(28px, 4vw, 64px);
  --legal-section-y: clamp(72px, 7.2vw, 92px);
  --legal-line: rgba(31,38,33,.13);
  background: var(--background, #f3f3f0);
  color: var(--ink, #1f2621);
}
.legal-page { min-height: 100vh; padding-top: clamp(132px, 10vw, 160px); }
.legal-container { width:min(var(--legal-width), calc(100% - 2 * var(--legal-gutter))); margin-inline:auto; }
.legal-hero { padding: 0 0 var(--legal-section-y); border-bottom:1px solid var(--legal-line); }
.legal-kicker { margin:0 0 18px; color:var(--orange,#f36f45); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.legal-hero h1 { max-width: 13ch; margin:0; font-size:clamp(48px,5.2vw,76px); font-weight:300; line-height:.95; letter-spacing:-.055em; text-wrap:balance; }
.legal-hero__lead { max-width: 58ch; margin:24px 0 0; color:var(--muted,#69716c); font-size:clamp(18px,1.25vw,21px); line-height:1.6; }
.legal-meta { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:26px; color:var(--muted,#69716c); font-size:14px; }
.legal-layout { display:grid; grid-template-columns:minmax(0, .33fr) minmax(0, .67fr); gap:clamp(44px,6vw,92px); padding:var(--legal-section-y) 0 calc(var(--legal-section-y) + 24px); }
.legal-nav { position:sticky; top:128px; align-self:start; display:grid; gap:8px; }
.legal-nav a { display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid var(--legal-line); color:var(--muted,#69716c); text-decoration:none; font-size:14px; }
.legal-nav a:hover { color:var(--ink,#1f2621); }
.legal-copy { min-width:0; display:grid; gap:0; }
.legal-section { padding:0 0 clamp(42px,5vw,64px); margin:0 0 clamp(42px,5vw,64px); border-bottom:1px solid var(--legal-line); }
.legal-section:last-child { border-bottom:0; margin-bottom:0; }
.legal-section h2 { margin:0 0 24px; font-size:clamp(30px,3.2vw,44px); font-weight:300; line-height:1.03; letter-spacing:-.045em; }
.legal-section h3 { margin:28px 0 10px; font-size:clamp(19px,1.5vw,23px); font-weight:600; line-height:1.25; }
.legal-section p,.legal-section li,.legal-section address { color:var(--muted,#69716c); font-size:clamp(16px,1.02vw,18px); line-height:1.7; font-style:normal; }
.legal-section strong { color:var(--ink,#1f2621); font-weight:600; }
.legal-section a { color:var(--ink,#1f2621); text-decoration-thickness:1px; text-underline-offset:3px; }
.legal-section ul { margin:14px 0 0; padding-left:1.2rem; }
.legal-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 34px; border-top:1px solid var(--legal-line); }
.legal-fact { padding:18px 0; border-bottom:1px solid var(--legal-line); }
.legal-fact span { display:block; margin-bottom:5px; color:var(--muted,#69716c); font-size:12px; letter-spacing:.07em; text-transform:uppercase; }
.legal-fact strong,.legal-fact a { color:var(--ink,#1f2621); font-size:17px; line-height:1.45; }
.legal-callout { margin-top:24px; padding:22px 24px; border:1px solid rgba(243,111,69,.22); border-radius:16px; background:rgba(243,111,69,.07); }
.legal-callout p { margin:0; }
.legal-source-link { display:inline-flex; align-items:center; gap:10px; margin-top:18px; padding:12px 18px; border:1px solid var(--legal-line); border-radius:999px; color:var(--ink,#1f2621)!important; text-decoration:none!important; font-weight:600; }
.legal-source-link:hover { border-color:var(--orange,#f36f45); }
@media (max-width: 860px) {
  .legal-page { padding-top:112px; }
  .legal-layout { grid-template-columns:1fr; padding-top:56px; }
  .legal-nav { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .legal-facts { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .legal-nav { grid-template-columns:1fr; }
  .legal-hero h1 { font-size:clamp(44px,13vw,60px); }
}


/* =========================================================
   Full legal-page content system
   ========================================================= */
.legal-layout--privacy .legal-copy { max-width: 880px; }
.legal-section__index {
  margin: 0 0 12px !important;
  color: var(--orange,#f36f45) !important;
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1.2 !important;
  text-transform: uppercase;
}
.legal-section > p { margin: 0 0 16px; }
.legal-section > p:last-child { margin-bottom: 0; }
.legal-list { display: grid; gap: 12px; margin: 20px 0 0 !important; padding-left: 1.15rem !important; }
.legal-list li { padding-left: .35rem; }
.legal-list li::marker { color: var(--orange,#f36f45); }
.legal-link-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.legal-link-list a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--legal-line);
  border-radius: 999px;
  background: rgba(255,255,255,.34);
  color: var(--ink,#1f2621);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}
.legal-link-list a:hover { border-color: rgba(243,111,69,.6); }
.legal-service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 28px; }
.legal-service {
  min-width: 0;
  padding: clamp(20px,2.2vw,28px);
  border: 1px solid var(--legal-line);
  border-radius: 18px;
  background: rgba(255,255,255,.32);
}
.legal-service > span {
  display: block;
  margin-bottom: 12px;
  color: var(--orange,#f36f45);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.legal-service h3 { margin: 0 0 12px; font-size: clamp(20px,1.55vw,24px); font-weight: 500; letter-spacing: -.025em; }
.legal-service p { margin: 0 0 14px; font-size: 15px; line-height: 1.62; }
.legal-service a { font-size: 13px; font-weight: 600; }
.legal-rights-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:24px 0; background:var(--legal-line); border:1px solid var(--legal-line); border-radius:18px; overflow:hidden; }
.legal-rights-grid > div { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:18px 20px; background:var(--background,#f3f3f0); }
.legal-rights-grid strong { font-size:15px; }
.legal-rights-grid span { color:var(--muted,#69716c); font-size:12px; white-space:nowrap; }
.legal-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.legal-actions .legal-source-link { margin-top:0; }
.legal-callout--neutral { border-color: var(--legal-line); background: rgba(255,255,255,.3); }
@media (max-width: 860px) {
  .legal-layout--privacy .legal-copy { max-width:none; }
  .legal-service-grid { grid-template-columns:1fr; }
  .legal-rights-grid { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .legal-service { border-radius:14px; padding:20px; }
  .legal-link-list { display:grid; }
  .legal-link-list a { width:100%; }
  .legal-actions { display:grid; }
  .legal-actions .legal-source-link { width:100%; justify-content:center; }
  .legal-rights-grid > div { padding:16px; }
}
