@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url('/fonts/cormorant-garamond-latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/montserrat-latin.woff2') format('woff2');
}

:root {
  color: #352d37;
  background: #faf7f1;
  font-family: Montserrat, Arial, sans-serif;
  font-synthesis: none;
  --purple: #64257d;
  --purple-dark: #362043;
  --gold: #c8942f;
  --paper: #fffdf9;
  --line: #e7ddcf;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; line-height: 1.75; }
a { color: inherit; }
img { display: block; max-width: 100%; }

.skip-link {
  position: fixed;
  left: 12px;
  top: -80px;
  z-index: 10;
  padding: 10px 14px;
  color: white;
  background: var(--purple);
}
.skip-link:focus { top: 12px; }

.legal-header {
  border-bottom: 1px solid var(--line);
  background: rgba(255, 253, 249, .96);
}
.header-inner,
.legal-main,
.footer-inner {
  width: min(100% - 40px, 980px);
  margin-inline: auto;
}
.header-inner {
  min-height: 96px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand img { width: 112px; height: 76px; object-fit: contain; }
.back {
  color: var(--purple);
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}
.back:hover,
.back:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

.legal-main { padding: clamp(56px, 8vw, 96px) 0; }
.eyebrow {
  margin: 0 0 8px;
  color: var(--gold);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
h1, h2 {
  color: var(--purple-dark);
  font-family: "Cormorant Garamond", Georgia, serif;
  line-height: 1.08;
}
h1 { max-width: 780px; margin: 0 0 18px; font-size: clamp(2.7rem, 7vw, 4.8rem); }
h2 { margin: 2.2rem 0 .7rem; font-size: clamp(1.65rem, 3vw, 2.2rem); }
.updated { margin: 0 0 38px; color: #776d78; font-size: .8rem; }
.legal-card {
  padding: clamp(26px, 5vw, 58px);
  border: 1px solid var(--line);
  border-radius: 26px;
  background: var(--paper);
  box-shadow: 0 20px 55px rgba(57, 31, 67, .06);
}
.legal-card p,
.legal-card li { font-size: .94rem; }
.legal-card ul { padding-left: 1.25rem; }
.legal-card a { color: var(--purple); }
.notice {
  margin: 28px 0;
  padding: 18px 20px;
  border-left: 3px solid var(--gold);
  background: #f7f0e4;
}
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .86rem; }
th, td { padding: 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--purple-dark); background: #f6f0f6; }

.legal-footer { padding: 34px 0; color: #f8f2e9; background: var(--purple-dark); }
.footer-inner { text-align: center; }
.footer-inner nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; }
.footer-inner a { font-size: .78rem; text-underline-offset: 3px; }
.footer-inner p { margin: 18px 0 0; font-size: .72rem; opacity: .75; }

@media (max-width: 600px) {
  .header-inner, .legal-main, .footer-inner { width: min(100% - 28px, 980px); }
  .header-inner { min-height: 80px; }
  .brand img { width: 88px; height: 62px; }
  .legal-card { border-radius: 18px; }
  th, td { min-width: 150px; }
}
