/* Coroute legal pages (privacy, terms): reading layout, section navigation, plain-words summary, print.
   Loaded only by privacy.html and terms.html, after site.css. Tokens from site.css only, no new colours. */

/* ---------- Hero ---------- */
.legal-hero{position:relative;isolation:isolate;padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px);border-bottom:var(--border)}
.legal-hero__inner{display:flex;flex-direction:column;gap:var(--sp-16);max-width:880px}
.legal-hero h1{font-size:clamp(2.5rem,1.8rem + 3vw,4.25rem);line-height:var(--lh-display)}
.legal-hero__meta{color:var(--c-text-2);font-size:var(--fs-small);max-width:40em}
.legal-hero__switch{display:flex;flex-wrap:wrap;gap:var(--sp-8) var(--sp-24);font-size:var(--fs-small);margin-top:var(--sp-4)}
.legal-hero__switch a{color:var(--c-text-2);text-decoration:underline;text-decoration-color:var(--c-line-strong);text-underline-offset:4px}
.legal-hero__switch a:hover{color:var(--c-text);text-decoration-color:var(--c-accent)}
.legal-hero__switch a[aria-current="page"]{color:var(--c-text);text-decoration-color:var(--c-accent)}

/* ---------- Layout: summary, navigation, text ---------- */
.legal-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"summary" "toc" "text";gap:var(--sp-32);padding-block:clamp(32px,5vw,64px) var(--section-y)}
.legal-summary{grid-area:summary}
.legal-nav{grid-area:toc}
.legal-doc{grid-area:text;min-width:0}
.legal-summary,.legal-doc{max-width:760px}
@media (min-width:1024px){
  .legal-layout{grid-template-columns:232px minmax(0,760px);grid-template-areas:"toc summary" "toc text";column-gap:clamp(48px,6vw,96px);row-gap:var(--sp-48);justify-content:start}
  .legal-nav{align-self:stretch}
}

/* ---------- Plain-words summary ---------- */
.legal-summary{background:var(--c-surface-1);border:var(--border);border-radius:var(--r-md);padding:clamp(20px,3vw,36px);position:relative;overflow:hidden}
.legal-summary::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:repeating-linear-gradient(180deg,var(--c-accent) 0 18px,transparent 18px 30px)}
.legal-summary h2{font-size:clamp(1.75rem,1.4rem + 1.4vw,2.375rem);line-height:1.05;margin-top:var(--sp-8)}
.legal-summary__list{list-style:none;margin:var(--sp-24) 0 0;padding:0;display:grid;gap:var(--sp-16)}
.legal-summary__list li{position:relative;padding-left:28px;color:var(--c-text);font-size:var(--fs-body);line-height:1.55}
.legal-summary__list li::before{content:"";position:absolute;left:2px;top:.72em;width:14px;height:2px;background:var(--c-accent);border-radius:1px}
.legal-summary__note{margin-top:var(--sp-24);color:var(--c-text-3);font-size:var(--fs-small)}
.legal-summary__note a{color:var(--c-text-2);text-decoration-color:var(--c-accent-line);text-underline-offset:3px}
@media (min-width:768px){.legal-summary__list{gap:var(--sp-12) var(--sp-32)}}

/* ---------- Section navigation (collapsible on mobile, sticky on desktop) ---------- */
.legal-toc{background:var(--c-surface-1);border:var(--border);border-radius:var(--r-md)}
.legal-toc__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);min-height:52px;padding:0 var(--sp-16) 0 var(--sp-16);cursor:pointer;list-style:none;font-family:var(--font-display);font-weight:700;font-size:.875rem;letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--c-text);border-radius:var(--r-md)}
.legal-toc__summary::-webkit-details-marker{display:none}
.legal-toc__summary:focus-visible{outline:none;box-shadow:var(--ring)}
.legal-toc__chev{width:12px;height:12px;border-right:2px solid var(--c-text-2);border-bottom:2px solid var(--c-text-2);transform:translateY(-3px) rotate(45deg);transition:transform var(--d-fast) var(--ease-out);flex:none}
.legal-toc[open] .legal-toc__chev{transform:translateY(3px) rotate(225deg)}
.legal-toc__list{list-style:none;margin:0;padding:var(--sp-4) var(--sp-8) var(--sp-12);border-top:var(--border);counter-reset:none}
.legal-toc__link{display:flex;gap:var(--sp-8);align-items:baseline;padding:12px var(--sp-8);border-radius:var(--r-xs);color:var(--c-text-2);text-decoration:none;font-size:var(--fs-small);line-height:1.35;border-left:2px solid transparent}
.legal-toc__link:hover{color:var(--c-text);background:var(--c-surface-2)}
.legal-toc__link:focus-visible{outline:none;box-shadow:var(--ring)}
.legal-toc__link.is-current{color:var(--c-text);border-left-color:var(--c-accent);background:var(--c-accent-soft)}
.legal-toc__num{font-family:var(--font-display);font-weight:700;color:var(--c-text-3);min-width:1.4em;font-variant-numeric:tabular-nums}
.legal-toc__link.is-current .legal-toc__num{color:var(--c-accent)}
@media (min-width:1024px){
  .legal-toc{position:sticky;top:calc(var(--header-h-compact) + var(--sp-24));max-height:calc(100vh - var(--header-h-compact) - var(--sp-48));overflow-y:auto;background:transparent;border:0;border-radius:0;scrollbar-width:thin}
  .legal-toc__summary{cursor:default;min-height:0;padding:0 0 var(--sp-12) var(--sp-8);color:var(--c-text-3);pointer-events:none}
  .legal-toc__chev{display:none}
  .legal-toc__list{border-top:0;border-left:var(--border);padding:0 0 0 0}
  .legal-toc__link{border-radius:0 var(--r-xs) var(--r-xs) 0;margin-left:-1px;padding:9px var(--sp-8) 9px var(--sp-16)}
}

/* ---------- The legal text ---------- */
.legal-doc{color:var(--c-text-2);font-size:var(--fs-body);line-height:1.7}
@media (min-width:768px){.legal-doc{font-size:1.125rem}}
.legal-doc p + p{margin-top:1em}
.legal-doc a{color:var(--c-text);text-decoration:underline;text-decoration-color:var(--c-accent);text-underline-offset:3px;overflow-wrap:anywhere}
.legal-doc a:hover{color:var(--c-accent)}
.legal-doc b,.legal-doc strong{color:var(--c-text);font-weight:600}
.legal-intro{color:var(--c-text);font-size:1.0625em}
.legal-section{padding-top:clamp(40px,5vw,56px);margin-top:clamp(8px,1vw,16px)}
.legal-section + .legal-section{border-top:var(--border)}
.legal-intro + .legal-section{margin-top:var(--sp-16)}
.legal-section h2{font-size:clamp(1.625rem,1.35rem + 1.1vw,2.125rem);line-height:1.08;color:var(--c-text);margin-bottom:.7em}
.legal-section:target h2{color:var(--c-accent)}

/* Data table: real table from 768 px, labelled rows below that. */
.legal-table-wrap{margin-top:var(--sp-8)}
.legal-table{width:100%;border-collapse:collapse;font-size:1rem;line-height:1.55}
.legal-table th{font-family:var(--font-display);font-weight:700;font-size:var(--fs-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--c-text-3);text-align:left;padding:0 var(--sp-16) var(--sp-12) 0;border-bottom:var(--border-strong)}
.legal-table td{vertical-align:top;text-align:left;padding:var(--sp-16) var(--sp-16) var(--sp-16) 0;border-bottom:var(--border)}
.legal-table td:first-child{color:var(--c-text)}
.legal-table td:last-child{padding-right:0}
@media (min-width:768px){
  .legal-table th:nth-child(1){width:40%}.legal-table th:nth-child(2){width:33%}
}
@media (max-width:767.98px){
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:block;width:100%}
  .legal-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .legal-table tr{background:var(--c-surface-1);border:var(--border);border-radius:var(--r-md);padding:var(--sp-16);margin-top:var(--sp-12)}
  .legal-table td{border:0;padding:0}
  .legal-table td + td{margin-top:var(--sp-12);padding-top:var(--sp-12);border-top:var(--border)}
  .legal-table td + td::before{content:attr(data-label);display:block;font-family:var(--font-display);font-weight:700;font-size:var(--fs-label);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--c-text-3);margin-bottom:var(--sp-4)}
}

/* ---------- End of document and back to top ---------- */
.legal-end{margin-top:var(--sp-64);padding-top:var(--sp-24);border-top:var(--border);display:flex;flex-wrap:wrap;gap:var(--sp-16) var(--sp-24);align-items:center;justify-content:space-between;font-size:var(--fs-small);color:var(--c-text-3)}
.legal-totop{display:inline-flex;align-items:center;gap:var(--sp-8);color:var(--c-text);text-decoration:none;font-weight:600;font-size:var(--fs-small);min-height:44px}
.legal-totop:hover{color:var(--c-accent)}
.legal-totop:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-xs)}
.legal-totop .icon{width:18px;height:18px;transform:rotate(-90deg)}
.legal-totop--float{position:fixed;right:max(var(--gutter),env(safe-area-inset-right,0px));bottom:calc(var(--sp-24) + env(safe-area-inset-bottom,0px));z-index:var(--z-sticky);min-height:44px;padding:0 var(--sp-16);background:var(--c-surface-2);border:var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-1);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--d-base) var(--ease-out),transform var(--d-base) var(--ease-out),visibility 0s linear var(--d-base)}
.legal-totop--float.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.legal-totop--float:hover{background:var(--c-surface-3);color:var(--c-text)}
@media (prefers-reduced-motion:reduce){.legal-totop--float{transform:none}}

/* ---------- Print: just the document ---------- */
@media print{
  .skip-link,.site-header,.mobile-menu,.site-footer,.legal-nav,.legal-totop,.legal-end,.legal-hero__switch{display:none !important}
  body,.site-main{background:#fff !important;color:#000 !important}
  .site-main{padding-top:0 !important;animation:none !important}
  .topo::before,.topo::after{display:none !important}
  .legal-hero{padding:0 0 12pt;border-bottom:1px solid #999}
  .legal-hero h1{font-size:22pt;color:#000}
  .legal-hero__meta,.legal-hero .eyebrow{color:#333}
  .legal-layout{display:block;padding:12pt 0 0;max-width:none}
  .legal-summary,.legal-doc{max-width:none}
  *{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .legal-summary{background:none;border:1px solid #999;border-radius:0;padding:10pt 12pt;margin-bottom:14pt;break-inside:avoid}
  .legal-summary::before{display:none}
  .legal-summary h2,.legal-section h2{color:#000;font-size:15pt}
  .legal-summary__list li,.legal-summary__note,.legal-doc,.legal-intro,.legal-doc b{color:#000;font-size:10.5pt}
  .legal-summary__list li::before{background:none;border-top:2px solid #000}
  .legal-doc a,.legal-summary__note a{color:#000}
  .legal-section{padding-top:14pt;margin-top:0;border-top:0 !important}
  .legal-section h2{break-after:avoid;margin-bottom:6pt}
  .legal-table{font-size:9.5pt}
  .legal-table thead{position:static;width:auto;height:auto;clip:auto}
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:revert}
  .legal-table tr{break-inside:avoid;background:none;border:0}
  .legal-table td,.legal-table td:first-child,.legal-table th{color:#000;border-bottom:1px solid #bbb;padding:5pt 6pt 5pt 0}
  .legal-table td + td::before{content:none}
}
/* Below 1280 px the floating button is a 44 px square with the label for screen readers only, so it covers less text. */
@media (max-width:1279.98px){
  .legal-totop--float{width:44px;padding:0;justify-content:center}
  .legal-totop--float .legal-totop__label{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ---------- 3.55: the legal hero in the home page's language (kicker pill, sky, the convoy on the road) ---------- */
.legal-hero{overflow:hidden;padding-bottom:calc(clamp(96px,13vw,190px) + clamp(8px,2vw,24px));background:radial-gradient(900px 380px at 85% -10%,var(--c-brand-light),transparent 70%),linear-gradient(180deg,var(--c-surface) 0%,var(--c-sky) 62%,var(--c-bg) 100%)}
.legal-hero > .container{position:relative;z-index:1}
.legal-hero__inner > .eyebrow:first-child{display:inline-flex;width:fit-content;align-items:center;gap:10px;padding:6px 14px 6px 10px;border-radius:var(--r-full);background:var(--c-surface);border:var(--border);box-shadow:var(--shadow-sm);font-size:var(--fs-xs);letter-spacing:.02em;text-transform:none;color:var(--c-text-2)}
.legal-hero__inner > .eyebrow:first-child::before{width:8px;height:8px;border-radius:50%;background:var(--c-brand);box-shadow:0 0 0 4px var(--c-brand-light)}
.legal-hero h1{font-weight:800;letter-spacing:-0.035em}
.legal-summary,.legal-toc{border-radius:var(--r-xl)}
