/* Privacy Shield website: the small foundation under theme.css.
   A reset, a 12-column grid, the navbar and accordion mechanics, and a few utilities.
   No framework, no third-party requests. Look and feel live in theme.css. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: transparent; }
body { margin: 0; font-size: 1rem; line-height: 1.55; }
[hidden] { display: none !important; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .5rem; line-height: 1.2; }
h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.75rem; } h4 { font-size: 1.5rem; } h5 { font-size: 1.25rem; } h6 { font-size: 1rem; }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 2rem; }
ul ul, ol ol, ul ol, ol ul { margin-bottom: 0; }
small { font-size: .875em; }
strong, b { font-weight: 700; }
a { color: var(--ps-accent-700); text-decoration: underline; }
a:hover { color: var(--ps-accent); }
img, svg { vertical-align: middle; }
figure { margin: 0 0 1rem; }
table { border-collapse: collapse; }
th { text-align: left; }
kbd { font-family: inherit; }
label { display: inline-block; }
button, input, textarea { font: inherit; margin: 0; color: inherit; }
button { border-radius: 0; text-transform: none; }
button:not(:disabled), [role="button"] { cursor: pointer; }
textarea { resize: vertical; }
fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
legend { padding: 0; margin-bottom: .5rem; }

/* ---------- grid (no gutters: the design draws its own rules between cells) ---------- */
.row { display: flex; flex-wrap: wrap; }
.row > * { flex-shrink: 0; width: 100%; max-width: 100%; min-width: 0; }
.col-6 { flex: 0 0 auto; width: 50%; }
@media (min-width: 768px) {
  .col-md-2 { flex: 0 0 auto; width: 16.666667%; }
  .col-md-4 { flex: 0 0 auto; width: 33.333333%; }
  .col-md-6 { flex: 0 0 auto; width: 50%; }
}
@media (min-width: 992px) {
  .col-lg-2 { flex: 0 0 auto; width: 16.666667%; }
  .col-lg-3 { flex: 0 0 auto; width: 25%; }
  .col-lg-5 { flex: 0 0 auto; width: 41.666667%; }
  .col-lg-7 { flex: 0 0 auto; width: 58.333333%; }
  .col-lg-9 { flex: 0 0 auto; width: 75%; }
  .align-items-lg-center { align-items: center !important; }
  .justify-content-lg-end { justify-content: flex-end !important; }
}

/* ---------- utilities ---------- */
.m-0 { margin: 0 !important; }
.gap-3 { gap: 1rem !important; }
.align-items-end { align-items: flex-end !important; }
.d-none { display: none !important; }
@media (min-width: 768px) { .d-md-flex { display: flex !important; } }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* ---------- collapsing things (menu and FAQ), driven by assets/js/main.js ---------- */
.collapse:not(.show) { display: none; }

.navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.navbar-collapse { flex-basis: 100%; flex-grow: 1; align-items: center; }
.navbar-nav { display: flex; flex-direction: column; padding: 0; margin: 0; list-style: none; }
.nav-link { display: block; text-decoration: none; }
@media (min-width: 992px) {
  .navbar-expand-lg .navbar-collapse { display: flex !important; flex-basis: auto; }
  .navbar-expand-lg .navbar-nav { flex-direction: row; }
  .navbar-expand-lg .navbar-toggler { display: none; }
}

.accordion-button { display: flex; align-items: center; width: 100%; text-align: left; background: transparent; border: 0; overflow-anchor: none; }
.accordion-button::after { flex-shrink: 0; margin-left: auto; }
