/* Legal documents, documents index and contacts. Builds on flashback.css.
   Reading pages are centred: one text column (~70 characters), or table of contents + text. */

.fb-legal { max-width: 46rem; margin-inline: auto; }
.fb-legal--toc { max-width: 66rem; }
.fb-legal__head { margin-bottom: .5rem; }
.fb-legal__head .fb-legal__edition { margin: -.5rem 0 1.5rem; color: var(--fb-muted); font-size: .9375rem; }
.fb-legal__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; }
.fb-legal__bar--end { justify-content: flex-end; margin-bottom: .5rem; }
.fb-legal__bar .fb-back { margin: 0; }
.fb-langs { display: inline-flex; border: 1px solid var(--fb-line); }
.fb-langs__link {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: .25rem .75rem;
  font-size: .8125rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--fb-muted);
}
.fb-langs__link + .fb-langs__link { border-left: 1px solid var(--fb-line); }
.fb-langs__link:hover { color: var(--fb-ink); }
.fb-langs__link[aria-current] { background: var(--fb-ink); color: var(--fb-milk); }
.fb-legal__body .fb-legal__point { margin-bottom: .75rem; }
.fb-legal__head .fb-page-title { margin-bottom: 1rem; }

.fb-legal__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.fb-legal__toc details {
  border: 1px solid var(--fb-line);
  background: var(--fb-surface);
}
.fb-legal__toc summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.75rem;
  padding: .5rem 1rem;
  cursor: pointer;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  list-style: none;
}
.fb-legal__toc summary::-webkit-details-marker { display: none; }
.fb-legal__toc summary::after { content: "+"; font-size: 1.125rem; font-weight: 400; line-height: 1; }
.fb-legal__toc details[open] summary::after { content: "−"; }
.fb-legal__toc ul { margin: 0; padding: 0 1rem .875rem; list-style: none; font-size: .875rem; line-height: 1.4; }
.fb-legal__toc li + li { margin-top: .125rem; }
.fb-legal__toc a { display: block; padding: .25rem 0; text-decoration: none; color: var(--fb-muted); }
.fb-legal__toc a:hover,
.fb-legal__toc a:focus-visible { color: var(--fb-ink); text-decoration: underline; text-underline-offset: .2em; }

.fb-legal__body { min-width: 0; font-size: 1rem; line-height: 1.65; overflow-wrap: anywhere; }
.fb-legal__body h2 {
  margin: 2.25rem 0 .75rem;
  font-family: var(--fb-head);
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.2;
  scroll-margin-top: 1rem;
}
.fb-legal__body > .fb-legal__section:first-child h2,
.fb-legal__edition + .fb-legal__section h2 { margin-top: 0; }
.fb-legal__body p { margin: 0 0 .75rem; }
.fb-legal__num { font-weight: 600; font-variant-numeric: tabular-nums; }
.fb-legal__point { scroll-margin-top: 1rem; }
.fb-legal__point:target { background: var(--fb-surface); outline: 1px solid var(--fb-line); outline-offset: 2px; }
.fb-legal__list { margin: 0 0 .75rem; padding-left: 1.25rem; }
.fb-legal__list li + li { margin-top: .375rem; }
.fb-legal__doc-title { font-weight: 600; letter-spacing: .02em; }
.fb-legal__body .fb-legal__edition { margin-bottom: 1.5rem; color: var(--fb-muted); font-size: .9375rem; }
.fb-legal__lead,
.fb-legal__body .fb-legal__lead { margin: 0 0 .5rem; font-size: 1.0625rem; line-height: 1.55; color: var(--fb-muted); }
.fb-legal__body .fb-legal__note { margin-top: 1.5rem; color: var(--fb-muted); }
.fb-legal__facts { margin: 0 0 .5rem; }
.fb-legal__facts .fb-lines__row { display: grid; gap: .125rem; padding: .625rem 0; border-top: 1px solid var(--fb-line); }
.fb-legal__facts .fb-lines__row:last-child { border-bottom: 1px solid var(--fb-line); }
.fb-legal__facts dt { font-size: .8125rem; font-weight: 500; color: var(--fb-muted); }
.fb-legal__facts dd { margin: 0; font-weight: 500; }
@media (min-width: 768px) {
  .fb-legal__facts .fb-lines__row { grid-template-columns: 10rem minmax(0, 1fr); gap: 1rem; }
}


@media (min-width: 992px) {
  .fb-legal__layout--toc { grid-template-columns: 15rem minmax(0, 1fr); gap: 3.5rem; align-items: start; }
  .fb-legal__toc { position: sticky; top: 1.5rem; max-height: calc(100vh - 3rem); overflow: auto; }
  .fb-legal__toc details { border: 0; background: none; }
  .fb-legal__toc summary { min-height: 0; padding: 0 0 .75rem; cursor: default; pointer-events: none; }
  .fb-legal__toc summary::after,
  .fb-legal__toc details[open] summary::after { content: none; }
  .fb-legal__toc ul { padding: .75rem 0 0; border-top: 1px solid var(--fb-line); }
}

/* Documents index --------------------------------------------------------------- */

.fb-legal--index .fb-legal__lead { margin-bottom: 1.75rem; }
.fb-doclist { margin: 0 0 1.5rem; padding: 0; list-style: none; border-top: 1px solid var(--fb-ink); }
.fb-doclist__item { border-bottom: 1px solid var(--fb-line); }
.fb-doclist__link {
  display: grid;
  gap: .25rem;
  padding: 1rem 2rem 1rem 0;
  position: relative;
  text-decoration: none;
}
.fb-doclist__link::after { content: "→"; position: absolute; right: .25rem; top: 1rem; transition: transform .15s; }
.fb-doclist__link:hover::after { transform: translateX(.25rem); }
.fb-doclist__title { font-family: var(--fb-head); font-size: 1.25rem; font-weight: 500; line-height: 1.25; }
.fb-doclist__link:hover .fb-doclist__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.fb-doclist__summary { font-size: .9375rem; color: var(--fb-muted); }

/* Contacts ------------------------------------------------------------------------ */
/* Two equal columns that start on the same line: support on the left, the order question
   on the right, separated by a hairline. One column on phones. */

.fb-contacts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.fb-contacts__support .fb-page-title { margin-bottom: .75rem; }
.fb-contacts__lead { max-width: 30rem; margin: 0 0 2rem; font-size: 1.0625rem; line-height: 1.55; color: var(--fb-muted); }
.fb-contacts__label {
  margin: 0 0 .25rem;
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fb-muted);
}
.fb-contacts__phone {
  display: inline-block;
  font-family: var(--fb-head);
  font-size: clamp(1.875rem, 8vw, 2.5rem);
  font-weight: 500;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
}
.fb-contacts__phone:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.fb-contacts__meta { display: grid; gap: .125rem; margin: .75rem 0 0; }
.fb-contacts__person { font-weight: 500; }
.fb-contacts__meta span + span { color: var(--fb-muted); }
.fb-contacts__actions { display: grid; gap: .5rem; margin-top: 1.5rem; }
.fb-contacts__more { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.fb-contacts__more li { display: flex; flex-wrap: wrap; gap: .25rem .75rem; }
.fb-contacts__more li + li { margin-top: .5rem; }

.fb-contacts__order { padding-top: 2rem; border-top: 1px solid var(--fb-line); }
.fb-contacts__title {
  margin: 0 0 .5rem;
  font-family: var(--fb-head);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
}
.fb-contacts__intro { margin: 0 0 1.25rem; color: var(--fb-muted); }
.fb-steps { margin: 0 0 1.5rem; padding: 0; list-style: none; counter-reset: step; }
.fb-steps li {
  position: relative;
  display: grid;
  gap: .125rem;
  padding: .875rem 0 .875rem 2.75rem;
  border-top: 1px solid var(--fb-line);
  counter-increment: step;
  line-height: 1.5;
}
.fb-steps li:last-child { border-bottom: 1px solid var(--fb-line); }
.fb-steps li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: .875rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 1px solid var(--fb-ink);
  border-radius: 50%;
  font-size: .8125rem;
  font-weight: 600;
}
.fb-steps strong { font-weight: 600; }
.fb-steps span { color: var(--fb-muted); }
.fb-contacts__warning {
  margin: 0 0 1.5rem;
  padding-left: .875rem;
  border-left: 2px solid var(--fb-ink);
  font-size: .9375rem;
}
.fb-contacts__links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: 0; list-style: none; }

@media (min-width: 576px) {
  .fb-contacts__actions { grid-template-columns: repeat(2, max-content); }
}
@media (min-width: 992px) {
  .fb-contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; align-items: start; }
  .fb-contacts__support { padding-right: 4rem; }
  .fb-contacts__order { padding: 0 0 0 4rem; border-top: 0; border-left: 1px solid var(--fb-line); }
}
