/* ============================================================================
   ROLA — legal pages shared stylesheet
   Silver / Black / White. Tokens inherited from the site build (v4.html).
   Monochrome only: every colour is a neutral grey. No hue of any kind.
   Mobile-first · 360px → 1440px · body ≥16px · tap targets ≥44px
   ============================================================================ */

/* ------------------------------------------------------------ TOKENS */
:root{
  /* Display = Geologica: Montserrat ships NO Greek subset on Google Fonts,
     so every Greek heading fell back to a system serif. Text = Inter. */
  --font-display:"Geologica","Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-text:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --canvas:#D3D7DC;
  --surface:#F4F6F8;
  --metal-a:#C1C6CD;
  --metal-b:#E6E9EC;
  --metal-c:#D8DCE1;
  --ink:#13161A;
  --ink-2:#3A404A;
  --brand:#2A2E33;
  --signal:#13161A;       /* = --ink: emphasis must never be lighter than the text */
  --signal-soft:rgba(19,22,26,.10);
  --accent:#14171A;
  --metal:linear-gradient(180deg,#E6E9EC,#C1C6CD,#D8DCE1);
  --metal-line:linear-gradient(90deg,#E6E9EC,#8f969e,#D8DCE1);
  --whisper:#8A9099;      /* decorative only — cannot pass AA as text */
  --muted:#4A505A;        /* darkened from the v3 value, which fell under AA on the canvas */
  --line:rgba(19,22,26,.14);
  --line-2:rgba(19,22,26,.08);
  --panel:rgba(255,255,255,.55);
  --panel-strong:rgba(255,255,255,.72);
  --glass-border:rgba(255,255,255,.7);
  --shell:clamp(20px,5vw,44px);
  --wrap:1180px;
  --measure:72ch;
  --rhythm:clamp(48px,7vw,88px);
  --r:4px;
  --r-lg:6px;
  --shadow:0 24px 60px -32px rgba(19,22,26,.45);
  --shadow-sm:0 10px 30px -18px rgba(19,22,26,.4);
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ------------------------------------------------------------ RESET */
*{margin:0;padding:0;box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:24px;
  background:var(--canvas);
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--font-text);
  font-size:17px;
  font-weight:400;
  line-height:1.75;
  letter-spacing:.005em;
  color:var(--ink);
  background:linear-gradient(150deg,var(--metal-a) 0%,var(--metal-b) 38%,var(--metal-c) 62%,var(--metal-a) 100%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  min-height:100vh;
}

img,svg{max-width:100%;display:block}
a{color:inherit}
b,strong{font-weight:600;color:var(--ink)}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px;box-shadow:0 0 0 4px rgba(255,255,255,.92)}

/* brushed-metal grain — same language as the site */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.42;mix-blend-mode:overlay;
  background-image:
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,rgba(19,22,26,.012) 1px 2px,transparent 2px 4px),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");
  background-size:auto,150px 150px;
}

/* ------------------------------------------------------------ LAYOUT */
.wrap{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:var(--shell);
}
.skip{
  position:fixed;top:-70px;left:12px;z-index:99;
  background:var(--accent);color:#fff;
  padding:12px 18px;border-radius:var(--r);
  font-weight:600;font-size:.9rem;text-decoration:none;
  min-height:44px;display:inline-flex;align-items:center;
  transition:top .3s var(--ease);
}
.skip:focus{top:12px}

/* ------------------------------------------------------------ HEADER */
.l-hdr{
  position:relative;z-index:2;
  background:var(--panel-strong);
  -webkit-backdrop-filter:blur(14px) saturate(1.25);
  backdrop-filter:blur(14px) saturate(1.25);
  border-bottom:1px solid var(--line);
  padding-block:clamp(16px,3vw,24px) clamp(26px,5vw,44px);
}
.l-hdr-bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;flex-wrap:wrap;
  padding-bottom:clamp(20px,3.4vw,30px);
  border-bottom:1px solid var(--line-2);
}
.l-back{
  display:inline-flex;align-items:center;gap:9px;
  min-height:44px;padding:8px 15px 8px 11px;
  border:1px solid var(--line);border-radius:100px;
  background:var(--panel);
  color:var(--ink);text-decoration:none;
  font-size:.84rem;font-weight:600;letter-spacing:.02em;
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.l-back:hover{background:#fff;border-color:var(--signal)}
.l-back svg{flex-shrink:0}
.l-logo{display:block;width:min(150px,42vw);height:auto}
.l-logo-link{display:inline-flex;align-items:center;min-height:44px;padding:6px 2px}

.l-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  margin-top:clamp(22px,4vw,34px);
  font-size:.7rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--muted);
}
.l-eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--signal);flex:0 0 auto}

h1{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(1.85rem,6.2vw,3.5rem);
  line-height:1.04;letter-spacing:-.025em;
  color:var(--ink);
  margin-top:12px;
  text-wrap:balance;
}
.l-sub{
  margin-top:14px;
  max-width:62ch;
  color:var(--muted);
  font-size:clamp(.96rem,1.4vw,1.06rem);
  line-height:1.65;
}
.l-updated{
  margin-top:20px;
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 15px;
  border:1px solid var(--line);border-radius:100px;
  background:var(--panel);
  font-size:.78rem;font-weight:600;letter-spacing:.02em;
  color:var(--muted);
}

/* ------------------------------------------------------------ MAIN */
main{position:relative;z-index:1;padding-block:clamp(34px,6vw,64px) var(--rhythm)}
.l-doc{max-width:var(--measure)}

/* table of contents */
.l-toc{
  margin-bottom:clamp(30px,5vw,48px);
  padding:clamp(18px,3vw,26px);
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--panel-strong);
  box-shadow:var(--shadow-sm);
  max-width:var(--measure);
}
.l-toc h2{
  margin:0 0 10px;padding:0;border:none;
  font-family:"Inter",sans-serif;font-weight:600;
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);
}
.l-toc ol{margin:0;padding:0;list-style:none;counter-reset:toc;max-width:none}
.l-toc li{margin:0;padding:0}
.l-toc li::before{content:none}
.l-toc a{
  counter-increment:toc;
  display:flex;align-items:baseline;gap:11px;
  min-height:44px;padding:9px 0;
  border-bottom:1px solid var(--line-2);
  color:var(--ink);text-decoration:none;
  font-size:.94rem;line-height:1.45;
  transition:color .25s var(--ease),padding-left .25s var(--ease);
}
.l-toc li:last-child a{border-bottom:none}
.l-toc a::before{
  content:counter(toc,decimal-leading-zero);
  flex-shrink:0;
  font-size:.7rem;font-weight:600;letter-spacing:.08em;
  color:var(--whisper);
}
.l-toc a:hover{color:var(--signal);padding-left:5px}

/* headings */
h2{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.22rem,3.1vw,1.6rem);
  line-height:1.18;letter-spacing:-.018em;
  color:var(--ink);
  margin-top:clamp(38px,6vw,58px);
  padding-top:clamp(22px,3.4vw,30px);
  border-top:1px solid var(--line);
  text-wrap:balance;
}
main .l-doc > h2:first-child{margin-top:0;padding-top:0;border-top:none}
h3{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(1.02rem,2.2vw,1.14rem);
  line-height:1.28;letter-spacing:-.012em;
  color:var(--ink);
  margin-top:30px;
}
h2 + p,h3 + p,h2 + ul,h3 + ul,h2 + .l-note,h2 + .l-table-scroll,h2 + .l-rows{margin-top:14px}

p{margin-top:16px;color:var(--ink-2);max-width:var(--measure)}

ul,ol{margin-top:16px;padding-left:0;list-style:none;max-width:var(--measure)}
li{position:relative;padding-left:24px;margin-top:9px;color:var(--ink-2)}
ul > li::before{
  content:"";position:absolute;left:2px;top:.78em;
  width:8px;height:1px;background:var(--ink);opacity:.5;
}
ol{counter-reset:ol}
ol > li{counter-increment:ol;padding-left:30px}
ol > li::before{
  content:counter(ol) ".";position:absolute;left:0;top:0;
  font-weight:600;font-size:.9em;color:var(--muted);
}
li > ul{margin-top:8px}

/* links inside prose */
main a{
  color:var(--ink);
  text-decoration:underline;
  text-decoration-color:var(--whisper);
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  overflow-wrap:anywhere;
  transition:text-decoration-color .25s var(--ease),color .25s var(--ease);
}
main a:hover{color:var(--signal);text-decoration-color:var(--ink)}

/* ------------------------------------------------------------ PLACEHOLDER — data the client has not supplied */
.tbd{
  display:inline-block;
  padding:1px 9px;
  border:1px dashed var(--ink);
  border-radius:3px;
  background-image:repeating-linear-gradient(45deg,rgba(19,22,26,.07) 0 6px,rgba(255,255,255,.4) 6px 12px);
  color:var(--ink);
  font-weight:600;
  font-size:.86em;
  letter-spacing:.01em;
  line-height:1.5;
  white-space:nowrap;
}

/* ------------------------------------------------------------ NOTE / CALLOUT */
.l-note{
  margin-top:22px;
  padding:clamp(16px,2.6vw,22px) clamp(18px,3vw,26px);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  border-radius:var(--r);
  background:var(--panel-strong);
  box-shadow:var(--shadow-sm);
  max-width:var(--measure);
}
.l-note p{margin-top:10px;color:var(--ink)}
.l-note p:first-of-type{margin-top:0}
.l-note-title{
  display:block;margin-bottom:4px;
  font-family:var(--font-display);font-weight:800;
  font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);
}

/* ------------------------------------------------------------ IDENTITY ROWS */
.l-rows{
  margin-top:18px;
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--panel-strong);
  overflow:hidden;
  max-width:var(--measure);
}
.l-rows > div{
  display:grid;
  grid-template-columns:minmax(120px,34%) 1fr;
  gap:4px 18px;
  padding:13px clamp(14px,2.4vw,20px);
  border-bottom:1px solid var(--line-2);
  font-size:.94rem;
}
.l-rows > div:last-child{border-bottom:none}
.l-rows dt{
  font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);
  align-self:center;
}
.l-rows dd{color:var(--ink);overflow-wrap:anywhere;line-height:1.6}

/* ------------------------------------------------------------ TABLES */
.l-table-scroll{
  margin-top:18px;
  max-width:var(--measure);
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--panel-strong);
}
table{width:100%;min-width:520px;border-collapse:collapse;font-size:.9rem}
caption{
  padding:14px clamp(14px,2.4vw,18px) 0;
  text-align:left;
  font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
}
th,td{
  padding:13px clamp(12px,2.2vw,18px);
  text-align:left;vertical-align:top;
  border-bottom:1px solid var(--line-2);
  line-height:1.55;
}
th{
  background:rgba(255,255,255,.5);
  font-family:"Inter",sans-serif;font-weight:600;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);
  white-space:nowrap;
}
tbody tr:last-child td{border-bottom:none}
td code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.86em;
  padding:2px 7px;
  border:1px solid var(--line);border-radius:3px;
  background:var(--metal-b);
  color:var(--ink);
  white-space:nowrap;
}
.l-scroll-hint{
  margin-top:8px;
  font-size:.76rem;color:var(--muted);letter-spacing:.02em;
}
@media (min-width:760px){.l-scroll-hint{display:none}}

/* ------------------------------------------------------------ FOOTER */
.l-ftr{
  position:relative;z-index:1;
  margin-top:var(--rhythm);
  padding-top:clamp(40px,6vw,72px);
  padding-bottom:calc(30px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:rgba(226,229,232,.5);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  overflow:hidden;
}
.foot-word{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(3.2rem,17vw,15rem);
  line-height:.82;letter-spacing:-.04em;
  color:var(--ink);opacity:.92;
}
.foot-word b{color:var(--signal);font-weight:900}
.foot-grid{
  display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;
  margin-top:40px;padding-top:32px;
  border-top:1px solid var(--line);
}
.foot-col{display:flex;flex-direction:column;gap:5px;font-size:.9rem;color:var(--muted)}
.foot-col b{
  color:var(--ink);font-weight:600;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  margin-bottom:6px;
}
.foot-col span{line-height:1.55}
.foot-col .foot-logo{display:block;width:min(132px,38vw);height:auto;margin-bottom:12px}
.foot-col a{
  display:inline-flex;align-items:center;
  min-height:44px;
  color:var(--muted);text-decoration:none;
  transition:color .25s var(--ease);
  overflow-wrap:anywhere;
}
.foot-col a:hover{color:var(--ink)}
.foot-col a[aria-current="page"]{color:var(--ink);font-weight:600}
.foot-bottom{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;
  margin-top:34px;
  font-size:.8rem;color:var(--whisper);
}
.foot-bottom span{max-width:60ch;line-height:1.6}
.credit{
  display:inline-flex;align-items:center;min-height:44px;
  color:var(--whisper);text-decoration:none;
  opacity:.75;transition:opacity .3s var(--ease),color .3s var(--ease);
}
.credit:hover{opacity:1;color:var(--ink)}

/* ------------------------------------------------------------ RESPONSIVE */
@media (max-width:900px){
  :root{--measure:100%}
  .l-doc,p,ul,ol,.l-note,.l-rows,.l-table-scroll,.l-toc{max-width:none}
}
@media (max-width:640px){
  body{font-size:16.5px;line-height:1.72}
  .l-hdr-bar{gap:12px}
  .l-rows > div{grid-template-columns:1fr;gap:3px;padding:12px 16px}
  .l-rows dt{align-self:start}
  .foot-grid{gap:22px;margin-top:30px;padding-top:24px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:2px;margin-top:24px}
  .l-ftr{padding-top:36px}
}
@media (max-width:380px){
  .l-back{font-size:.78rem;padding:8px 12px 8px 9px}
  .l-logo{height:22px}
  .foot-word{font-size:2.9rem}
}

/* ------------------------------------------------------------ REDUCED MOTION */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ------------------------------------------------------------ PRINT */
@media print{
  body{background:#fff;color:#000;font-size:11pt}
  body::before,.skip,.l-back,.l-toc,.foot-word,.credit{display:none !important}
  .l-hdr,.l-ftr{background:none;border-color:#999;-webkit-backdrop-filter:none;backdrop-filter:none}
  .l-note,.l-rows,.l-table-scroll{box-shadow:none;background:none}
  h2{break-after:avoid}
  p,li,tr{break-inside:avoid}
  main a{text-decoration:none;color:#000}
}
