/* The privacy notices (privacy.html, privacy.it.html) share this sheet; it reads tokens.css and type.css.
   t152 (r155): a long-document layout. On a wide screen a sticky table of contents sits beside a reading column
   held to about 80 characters; below 900px it is one column with the contents list above the first section. The
   header sticks, so every anchor jump lands below it (scroll-margin on [id]). Nothing may push the page wider than the
   phone: long addresses, emails and code break. */
*{box-sizing:border-box}
html{scroll-behavior:smooth;
  --bar-height:65px;--toc-width:19rem;--toc-gap:var(--space-20);--reading:48rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html,body{margin:0;font-family:var(--font-public-sans);color:var(--color-text-primary);
  background:var(--color-surface-default);-webkit-font-smoothing:antialiased}
body{font-size:var(--type-body-size);line-height:var(--type-body-leading);overflow-wrap:break-word}
a{color:var(--color-accent-default)}
a:hover{color:var(--color-accent-hover)}
a:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}
code{overflow-wrap:anywhere}
/* type.css lands every [id] below the site's 80px header; this header is shorter */
[id]{scroll-margin-block-start:calc(var(--bar-height) + var(--space-6))}

/* the header: the full width of the page, sticky, wraps its links onto a second row on a narrow phone */
.bar{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .7rem;
  padding:1.15rem var(--layout-page-padding) 1.05rem;background:var(--color-surface-default);
  color:var(--color-accent-default);border-bottom:1px solid var(--color-border-default)}
.bar .mark{width:30px;height:28.7px;flex:0 0 auto}
.bar .word{width:122px;height:14.3px;flex:0 0 auto}
.bar .back{margin-left:auto;font-size:.8rem;font-weight:var(--font-weight-bold);
  text-decoration:none;border:1px solid var(--color-border-default);border-radius:var(--radius-full);
  padding:.45rem 1rem;white-space:nowrap}
.bar .back:hover{border-color:var(--color-accent-default)}
.bar .lang{margin-left:auto;font-size:.8rem;font-weight:var(--font-weight-bold);text-decoration:none;padding:.45rem .2rem}
.bar .lang + .back{margin-left:0}

/* the document: intro, contents, body. One column unless there is room for two. */
main.doc{max-width:calc(var(--toc-width) + var(--toc-gap) + var(--reading) + 2 * var(--layout-page-padding));
  margin-inline:auto;padding:var(--space-10) var(--layout-page-padding) var(--space-16)}
.intro,.body{min-width:0;max-width:var(--reading)}
h1{font-size:var(--type-h1-size);line-height:var(--type-h1-leading);color:var(--color-accent-default);margin:0 0 var(--space-6)}
h2{font-size:var(--type-h3-size);line-height:var(--type-h3-leading);margin:var(--space-14) 0 var(--space-4)}
.body > h2:first-child{margin-top:0}
.lead{font-size:var(--type-lead-size);color:var(--color-text-secondary)}
p,li{margin:0 0 var(--space-4)}
ul{padding-inline-start:1.2em;margin:0 0 var(--space-4)}
.note{font-size:var(--type-caption-size);color:var(--color-text-secondary);border:1px solid var(--color-border-default);
  border-radius:var(--radius-md,8px);padding:.6rem .9rem;margin:0 0 var(--space-6)}

/* the table of contents: the existing section headings, in order */
.toc{font-size:var(--type-caption-size);line-height:var(--font-leading-snug);
  border:1px solid var(--color-border-default);border-radius:var(--radius-lg);
  padding:var(--space-4) var(--space-6);margin:var(--space-6) 0 var(--space-10)}
.toc-title{margin:0 0 var(--space-2);font-weight:var(--font-weight-bold);text-transform:uppercase;
  letter-spacing:.08em;color:var(--color-text-secondary)}
.toc ol{list-style:none;margin:0;padding:0}
.toc li{margin:0}
.toc a{display:block;padding:.4rem 0;text-decoration:none;color:var(--color-text-primary)}
.toc a:hover{color:var(--color-accent-default);text-decoration:underline}

@media (min-width:900px){
  main.doc{display:grid;grid-template-columns:var(--toc-width) minmax(0,var(--reading));
    grid-template-rows:auto 1fr;column-gap:var(--toc-gap);justify-content:center;padding-top:var(--space-14)}
  .intro{grid-column:2;grid-row:1}
  .body{grid-column:2;grid-row:2;padding-top:var(--space-6)}
  .toc{grid-column:1;grid-row:1 / span 2;align-self:start;position:sticky;
    top:calc(var(--bar-height) + var(--space-8));max-height:calc(100vh - var(--bar-height) - var(--space-16));
    overflow-y:auto;margin:0;padding:0 0 0 var(--space-4);border:0;border-radius:0;
    border-inline-start:1px solid var(--color-border-default)}
  .toc a{padding:.45rem 0}
}
@media (min-width:900px) and (max-width:1199px){
  html{--toc-width:14rem;--toc-gap:var(--space-10)}
}

.who{border-inline-start:1px solid var(--color-border-default);padding-inline-start:var(--space-4);
  color:var(--color-text-secondary)}

/* the processors: one card each */
dl.proc{margin:var(--space-6) 0}
dl.proc > div{background:var(--color-surface-raised);border-radius:var(--radius-lg);
  padding:var(--space-6);margin:0 0 var(--space-4)}
dl.proc dt{font-weight:var(--font-weight-bold);margin-bottom:.6rem;color:var(--color-accent-default)}
dl.proc dd{margin:0 0 .6rem}
dl.proc dd:last-child{margin-bottom:0}
dl.proc .k{display:inline-block;min-width:7.5em;color:var(--color-text-secondary);
  font-size:var(--type-caption-size);text-transform:uppercase;letter-spacing:.08em}

.foot{border-top:1px solid var(--color-border-default);margin-top:var(--space-14);padding-top:var(--space-6);
  font-size:var(--type-caption-size);color:var(--color-text-secondary)}

/* t107: the objection form and its confirmation (shown when the server sends the visitor back to #objected) */
form.object{margin:0 0 var(--space-4)}
form.object button{font:inherit;font-weight:var(--font-weight-bold);color:var(--color-accent-default);
  background:none;border:1px solid var(--color-border-default);border-radius:var(--radius-full);padding:.45rem 1rem;cursor:pointer}
form.object button:hover{border-color:var(--color-accent-default)}
form.object button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}
.objected{display:none;color:var(--color-text-secondary)}
.objected:target{display:block}

@media (max-width:480px){
  html{--bar-height:56px}
  .bar{gap:.5rem .4rem;padding-block:.9rem .85rem}
  .bar .mark{width:26px;height:24.9px}
  .bar .word{width:92px;height:10.8px}
  .bar .back,.bar .lang{font-size:.75rem}
  .bar .lang{padding-inline:.15rem}
  .bar .back{padding:.4rem .7rem}
  dl.proc > div{padding:var(--space-4)}
  dl.proc .k{min-width:0;margin-inline-end:.5em}
}
