/* ══════════════════════════════════════════════════════════════════════
   JobTayo — shared stylesheet for the legal pages
   Tokens are copied from index.html so the two never drift apart.
   Consumed by: /imprint, /privacy-policy, /legal/terms, /legal/refund,
                /legal/acceptable-use
   Contrast pairs used here were measured, not guessed:
     #5F6E72 on #FFFFFF  = 5.06  AA
     #0C7A6A on #FFFFFF  = 5.24  AA
     #12181C on #FFFFFF  = 16.4  AAA
     #8FA3A6 on #04070C  = 8.24  AAA
     #4FD8FF on #04070C  = 12.10 AAA
   ══════════════════════════════════════════════════════════════════════ */
:root{
  /* Palette per CLAUDE.md section 7. One deliberate deviation, kept from the
     original Hallmark exploration: the brand teals are FILL colours. #00B6B3 is
     2.52:1 on white and #009E9B is 3.30:1 — both fail WCAG AA as text. --teal-txt
     #00706E carries the same hue at 5.93:1 wherever it has to be read as words.
     Use --teal for fills, rules and marks; --teal-txt for type. */
  --teal:#00B6B3; --teal-d:#009E9B; --teal-l:#E2F6F6; --cyan:#4FD8FF;
  --blue:#3B82F6; --green:#22C55E;
  --cta-1:#1ECFB2; --cta-2:#45B0F7;
  --teal-txt:#00706E; --blue-txt:#1B6DC9;
  --ink:#2D2D3F; --head:#152237; --sub:#6B7280; --line:#E5E7EB; --line-soft:#F0F2F3;
  --paper:#FFFFFF; --bg:#F7F8F9;
  --dk:#152237; --dk-ink:#F4F8F7; --dk-sub:#A9B6C6; --dk-line:rgba(255,255,255,.12);
  --r:18px; --r-sm:12px; --shell:1140px; --measure:720px; --pad:20px;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --disp:"Space Grotesk",var(--sans);
  --logo:"Space Grotesk",var(--sans);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 17px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--pad)}
a{color:var(--blue-txt)}
a:hover{color:var(--teal-txt)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ── header ─────────────────────────────────────────────────────────── */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.hd__in{display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:66px}
.jt{display:inline-flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.jt__mark{width:34px;height:34px;border-radius:9px;flex:none;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--teal),var(--blue))}
.jt__mark svg{width:62%;height:62%}
.jt__name{font:200 21px/1 var(--logo);letter-spacing:-.03em;color:var(--ink)}
.jt__name b{font-weight:800;background:linear-gradient(90deg,var(--teal),var(--blue));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hd a.back{font-size:15px;font-weight:500;text-decoration:none;color:var(--sub);white-space:nowrap}
.hd a.back:hover{color:var(--ink)}

/* ── page head ──────────────────────────────────────────────────────── */
.top{padding:clamp(40px,6vw,72px) 0 clamp(24px,3vw,34px);border-bottom:1px solid var(--line-soft)}
.top .shell{max-width:var(--measure)}
.eyebrow{font:600 11px/1.45 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal-txt);margin:0}
h1{font-family:var(--disp);font-weight:700;color:var(--head);letter-spacing:-.024em;line-height:1.08;
  font-size:clamp(30px,6.4vw,50px);margin:14px 0 0;text-wrap:balance}
.dates{margin:18px 0 0;font-size:15px;color:var(--sub)}
.lede{margin:20px 0 0;font-size:clamp(16.5px,2vw,19px);color:var(--sub);max-width:60ch}

/* ── body prose ─────────────────────────────────────────────────────── */
main{padding:clamp(30px,4vw,52px) 0 clamp(48px,6vw,84px)}
main .shell{max-width:var(--measure)}
h2{font-family:var(--disp);font-weight:600;color:var(--head);letter-spacing:-.018em;line-height:1.2;
  font-size:clamp(22px,3.4vw,28px);margin:52px 0 0;scroll-margin-top:86px;text-wrap:balance}
h2:first-of-type{margin-top:0}
h3{font-family:var(--disp);font-weight:600;color:var(--head);font-size:clamp(17px,2.2vw,19px);line-height:1.35;margin:30px 0 0;
  letter-spacing:-.008em}
p{margin:14px 0 0}
ul,ol{margin:14px 0 0;padding-left:22px}
li{margin:8px 0}
li::marker{color:var(--teal-txt)}
strong{font-weight:600;color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:44px 0 0}
main .shell>p,main .shell>ul,main .shell>ol{color:var(--sub)}
main .shell>p strong{color:var(--ink)}

/* ── table of contents ──────────────────────────────────────────────── */
.toc{margin:28px 0 0;padding:22px 24px;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r)}
.toc__h{font:600 11px/1.45 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--sub);margin:0}
.toc ol{margin:12px 0 0;padding-left:20px;columns:2;column-gap:28px}
@media(max-width:640px){.toc ol{columns:1}}
.toc li{margin:5px 0;break-inside:avoid;color:var(--sub)}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}

/* ── fact card (company data, controller, etc.) ─────────────────────── */
.facts{margin:22px 0 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.facts__row{display:grid;gap:2px 20px;padding:14px 20px;border-top:1px solid var(--line-soft)}
.facts__row:first-child{border-top:0}
@media(min-width:640px){.facts__row{grid-template-columns:210px 1fr;align-items:baseline}}
.facts__k{font:600 12px/1.45 var(--sans);letter-spacing:.09em;text-transform:uppercase;
  color:var(--sub)}
.facts__v{font-size:16.5px;color:var(--ink)}
.facts__v a{word-break:break-word}

/* ── callout ────────────────────────────────────────────────────────── */
.note{margin:24px 0 0;padding:18px 20px;border-radius:var(--r-sm);
  border:1px solid var(--line);border-left:3px solid var(--teal);background:var(--bg)}
.note p{margin:0;font-size:16px;color:var(--sub)}
.note p+p{margin-top:10px}
.note strong{color:var(--ink)}
.note--warn{border-left-color:var(--blue)}

/* ── footer ─────────────────────────────────────────────────────────── */
.ftr{background:var(--dk);color:var(--dk-ink);padding:clamp(44px,5vw,64px) 0 40px}
.ftr a{color:var(--dk-sub);text-decoration:none}
.ftr a:hover{color:#fff}
.ftr :focus-visible{outline-color:var(--cyan)}
.ftr__grid{display:grid;gap:30px;padding-bottom:30px;border-bottom:1px solid var(--dk-line)}
@media(min-width:760px){.ftr__grid{grid-template-columns:1.5fr 1fr 1fr}}
.ftr__h{font:600 11px/1.45 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin:0 0 14px}
.ftr ul{list-style:none;margin:0;padding:0}
/* Stacked-footer widths: 15px text gave an 18px-tall tap target. */
@media(max-width:759.98px){
  .ftr ul a{display:inline-flex;align-items:center;min-height:44px}
}
.ftr li{margin:9px 0;font-size:15px}
.ftr p{margin:0;font-size:15px;color:var(--dk-sub);max-width:46ch}
.ftr .jt__name{color:var(--dk-ink)}
.legal{margin-top:26px;font-size:13.5px;line-height:1.75;color:rgba(255,255,255,.55)}
.legal a{color:rgba(255,255,255,.72);text-decoration:underline;text-underline-offset:2px}
.legal a:hover{color:#fff}

/* The h1 receives focus after a back-to-top click so screen reader and keyboard
   users continue from the top rather than the bottom. It is not an interactive
   control, so the visible ring is noise — focus placement stays, outline goes. */
h1[tabindex="-1"]:focus{outline:none}

/* ── back to top ──────────────────────────────────────────────────────
   White on every ground these pages have: the body is light, the footer
   is dark, and the button floats over both. */
.totop{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:95;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(4,7,12,.10);
  background:#fff;color:#12181C;display:grid;place-items:center;cursor:pointer;
  box-shadow:0 6px 22px -6px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.9);
  transition:opacity .22s ease,transform .28s cubic-bezier(.34,1.32,.5,1),visibility .22s}
.totop.on{opacity:1;visibility:visible;transform:none}
.totop:hover{transform:translateY(-2px)}
.totop svg{width:19px;height:19px}
@media(prefers-reduced-motion:reduce){.totop{transition:opacity .15s ease,visibility .15s}
  .totop.on,.totop:hover{transform:none}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{
  .hd,.ftr__grid{display:none}
  body{font-size:11pt}
  .ftr{background:none;color:#000;border-top:1px solid #ccc}
  .legal{color:#000}
}
