/* Policies and trust pages: one printed document on the counter with a side index.
   Composes site.css; nothing here changes shared components. */

/* Layout: index card beside the document from 901px, stacked below that */
.policy-layout { display: grid; gap: var(--gap); align-items: start; }
.policy-aside .card { padding: 1.5rem; }
.policy-aside .details { margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.policy-aside .details dd { margin-bottom: .9rem; }
.policy-aside .details dd:last-child { margin-bottom: 0; }
.policy-aside .aside-title {
  margin: 0 0 .6rem;
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 700;
  font-stretch: 90%;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.policy-aside ol { list-style: none; margin: 0; padding: 0; }
.policy-aside li + li { margin-top: .15rem; }
.policy-aside ol a {
  display: block;
  padding: .3rem 0;
  color: var(--ink);
  font-size: .9375rem;
  line-height: 1.35;
  text-decoration: none;
}
.policy-aside ol a:hover { color: var(--link); text-decoration: underline; text-decoration-thickness: 2px; }
.policy-aside .aside-foot { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }

@media (min-width: 901px) {
  .policy-layout { grid-template-columns: 16.5rem minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
  .policy-aside { position: sticky; top: calc(var(--nav-h) + 1.25rem); }
}

/* The document */
.policy-doc { max-width: none; }
.policy-doc .policy-summary {
  max-width: var(--measure);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 1.125rem;
}
.policy-doc .policy-summary strong { color: var(--ink); }
.policy-doc h2 {
  margin: 2.5rem 0 .6rem;
  font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);
  scroll-margin-top: calc(var(--nav-h) + 1.5rem);
}
.policy-doc .policy-summary + h2 { margin-top: 2rem; }
.policy-doc h3 { margin: 1.6rem 0 .4rem; font-size: 1.125rem; }
.policy-doc p + p,
.policy-doc p + ul, .policy-doc p + ol,
.policy-doc ul + p, .policy-doc ol + p { margin-top: .85em; }
.policy-doc ul, .policy-doc ol { max-width: var(--measure); margin: 0; padding-left: 1.4rem; }
.policy-doc li + li { margin-top: .45rem; }
.policy-doc li > ul, .policy-doc li > ol { margin-top: .45rem; }
.policy-doc dl { max-width: var(--measure); margin: 0; }
.policy-doc dt { font-weight: 700; margin-top: .9rem; }
.policy-doc dd { margin: .2rem 0 0; }

/* Tables (subprocessors, retention periods, cookie list) */
.policy-doc .table-wrap { margin-top: 1rem; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.policy-doc table { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: .9375rem; line-height: 1.45; }
.policy-doc th, .policy-doc td { padding: .65rem .6rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.policy-doc th {
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 700;
  font-stretch: 90%;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom-color: var(--felt);
}
.policy-doc td:first-child { font-weight: 700; }

/* Closing line of the document */
.policy-doc .policy-foot { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: .9375rem; }

/* Policy center index */
.policy-list { list-style: none; margin: 0; padding: 0; }
.policy-list li { display: grid; gap: .2rem .6rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.policy-list li:first-child { padding-top: 0; }
.policy-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.policy-list a { font-size: 1.125rem; font-weight: 700; text-decoration-thickness: 2px; }
.policy-list p { max-width: none; color: var(--ink-soft); font-size: .9375rem; }
.policy-list .policy-date {
  color: var(--ink-soft);
  font-size: .75rem;
  font-weight: 700;
  font-stretch: 90%;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (min-width: 641px) {
  .policy-list li { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title date" "desc desc"; align-items: baseline; }
  .policy-list a { grid-area: title; }
  .policy-list .policy-date { grid-area: date; }
  .policy-list p { grid-area: desc; }
}

/* Group heading on the index (a second-level printed heading) */
.policy-group + .policy-group { margin-top: var(--gap); }
.policy-group h2 { font-size: var(--fs-card-title); margin-bottom: 1rem; }
