:root {

  --navy:#14213d;
  --navy-soft:#263654;
  --navy-pale:#52627a;

  --gold:#ad7a20;
  --gold-soft:#d7b56f;

  --ivory:#faf7ef;
  --ivory-deep:#efe8da;

  --paper:#ffffff;

  --text:#1d2a42;
  --muted:#627087;

  --line:rgba(166,120,38,.22);
  --navy-line:rgba(20,33,61,.10);

  --shadow:rgba(40,31,18,.11);
}


* {
  box-sizing:border-box;
}


html {

  min-height:100%;

  scroll-behavior:smooth;

  background:var(--ivory);
}


body {

  margin:0;

  min-height:100vh;

  color:var(--text);

  background:
    radial-gradient(
      circle at 82% 4%,
      rgba(255,255,255,.98),
      transparent 30%
    ),
    linear-gradient(
      135deg,
      #fbf8f1,
      #f4eee3 62%,
      #f8f5ed
    );

  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}


a {
  color:inherit;
}


.terms-page {

  min-height:100vh;

  overflow:hidden;
}


/* ============================================================
   HEADER
============================================================ */

.site-header {

  width:min(
    1460px,
    calc(100% - 48px)
  );

  min-height:76px;

  margin:0 auto;

  display:flex;

  align-items:center;

  gap:34px;

  border-bottom:
    1px solid
    rgba(173,122,32,.18);
}


.brand-lockup {

  display:inline-flex;

  align-items:center;

  gap:11px;

  flex:0 0 auto;

  text-decoration:none;
}


.brand-seal {

  width:42px;

  height:42px;

  object-fit:contain;
}


.brand-copy {

  display:flex;

  flex-direction:column;

  line-height:1;
}


.brand-copy strong {

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:20px;

  font-weight:600;

  letter-spacing:.04em;
}


.brand-copy small {

  margin-top:5px;

  color:var(--gold);

  font-size:8px;

  font-weight:800;

  letter-spacing:.18em;
}


.site-navigation {

  margin-left:auto;

  display:flex;

  align-items:center;

  gap:22px;
}


.site-navigation a {

  color:var(--navy-soft);

  text-decoration:none;

  font-size:12px;

  font-weight:650;
}


.site-navigation a:hover {

  color:var(--gold);
}


/* ============================================================
   HERO
============================================================ */

.terms-hero {

  width:min(
    1200px,
    calc(100% - 64px)
  );

  margin:0 auto;

  padding:105px 0 95px;

  text-align:center;
}


.eyebrow,
.section-eyebrow {

  margin:0 0 14px;

  color:var(--gold);

  font-size:10px;

  font-weight:850;

  letter-spacing:.19em;
}


.terms-hero h1 {

  margin:0;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      4rem,
      8vw,
      7.5rem
    );

  font-weight:500;

  line-height:.96;

  letter-spacing:-.055em;
}


.hero-lead {

  max-width:820px;

  margin:31px auto 0;

  color:var(--muted);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      1.1rem,
      2vw,
      1.4rem
    );

  line-height:1.65;
}


.effective-date {

  display:inline-flex;

  margin-top:29px;

  padding:7px 13px;

  border:
    1px solid
    rgba(173,122,32,.28);

  border-radius:999px;

  color:var(--gold);

  background:
    rgba(255,255,255,.48);

  font-size:9px;

  font-weight:800;

  letter-spacing:.08em;
}


/* ============================================================
   PRINCIPLES
============================================================ */

.principle-strip {

  width:min(
    1180px,
    calc(100% - 64px)
  );

  margin:0 auto 100px;

  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  border:
    1px solid
    var(--line);

  background:
    rgba(255,255,255,.48);
}


.principle-strip article {

  min-height:175px;

  padding:27px;

  border-right:
    1px solid
    var(--navy-line);
}


.principle-strip article:last-child {

  border-right:0;
}


.principle-strip span {

  color:var(--gold);

  font-size:8px;

  font-weight:800;
}


.principle-strip strong {

  display:block;

  margin-top:26px;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:19px;

  font-weight:500;
}


.principle-strip p {

  margin:8px 0 0;

  color:var(--muted);

  font-size:11px;

  line-height:1.6;
}


/* ============================================================
   TERMS LAYOUT
============================================================ */

.terms-layout {

  width:min(
    1260px,
    calc(100% - 64px)
  );

  margin:0 auto;

  padding-bottom:110px;

  display:grid;

  grid-template-columns:
    235px
    minmax(0,1fr);

  gap:70px;

  align-items:start;
}


/* ============================================================
   INDEX
============================================================ */

.terms-index {

  position:sticky;

  top:28px;

  padding:
    23px 0;

  border-top:
    1px solid
    var(--line);

  border-bottom:
    1px solid
    var(--line);
}


.terms-index > p {

  margin:0 0 17px;

  color:var(--gold);

  font-size:8px;

  font-weight:850;

  letter-spacing:.17em;
}


.terms-index nav {

  display:flex;

  flex-direction:column;
}


.terms-index a {

  padding:6px 0;

  color:var(--muted);

  text-decoration:none;

  font-size:10px;

  line-height:1.35;
}


.terms-index a:hover {

  color:var(--gold);
}


/* ============================================================
   TERM SECTIONS
============================================================ */

.term-section {

  padding:
    0 0 70px;

  margin:
    0 0 70px;

  border-bottom:
    1px solid
    rgba(173,122,32,.16);

  scroll-margin-top:30px;
}


.section-number {

  display:block;

  margin-bottom:13px;

  color:var(--gold);

  font-size:9px;

  font-weight:850;

  letter-spacing:.12em;
}


.term-section h2 {

  margin:
    0 0 27px;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      2rem,
      3.5vw,
      3.15rem
    );

  font-weight:500;

  line-height:1.1;

  letter-spacing:-.035em;
}


.term-section h3 {

  margin:
    35px 0 12px;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:20px;

  font-weight:500;
}


.term-section p {

  max-width:860px;

  margin:
    0 0 17px;

  color:var(--muted);

  font-size:13px;

  line-height:1.78;
}


.term-section ul {

  max-width:830px;

  margin:
    20px 0;

  padding:0;

  list-style:none;
}


.term-section li {

  position:relative;

  padding:
    8px 0
    8px 21px;

  color:var(--muted);

  font-size:12px;

  line-height:1.65;
}


.term-section li::before {

  content:"";

  position:absolute;

  left:0;

  top:15px;

  width:5px;

  height:5px;

  border-radius:50%;

  background:var(--gold);
}


/* ============================================================
   SPECIAL BLOCKS
============================================================ */

.emphasis-box,
.warning-box,
.counsel-note {

  max-width:850px;

  margin:
    30px 0;

  padding:
    25px 27px;

  border-left:
    2px solid
    var(--gold);

  background:
    rgba(255,255,255,.54);
}


.emphasis-box strong,
.warning-box strong,
.counsel-note strong {

  display:block;

  margin-bottom:8px;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:18px;

  font-weight:500;
}


.emphasis-box p,
.warning-box p,
.counsel-note p {

  margin:0;
}


.warning-box {

  background:
    rgba(173,122,32,.055);
}


.counsel-note {

  border:
    1px solid
    rgba(173,122,32,.25);

  border-left:
    3px solid
    var(--gold);

  background:
    rgba(245,240,229,.72);
}


.doctrine {

  max-width:700px;

  margin:
    30px 0;

  padding:
    27px;

  display:grid;

  grid-template-columns:
    repeat(3,1fr);

  gap:1px;

  border:
    1px solid
    var(--line);

  background:
    var(--line);
}


.doctrine strong {

  padding:20px 13px;

  display:flex;

  align-items:center;

  justify-content:center;

  text-align:center;

  color:var(--navy);

  background:
    var(--ivory);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:15px;

  font-weight:500;
}


.inline-link {

  display:inline-block;

  margin-top:4px;

  color:var(--gold);

  text-decoration:none;

  font-size:11px;

  font-weight:750;
}


.inline-link:hover {

  text-decoration:underline;
}


/* ============================================================
   CONTACT
============================================================ */

.contact-card {

  max-width:600px;

  margin-top:27px;

  padding:27px;

  display:flex;

  flex-direction:column;

  gap:8px;

  border:
    1px solid
    var(--line);

  background:
    rgba(255,255,255,.56);
}


.contact-card strong {

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:18px;

  font-weight:500;
}


.contact-card a {

  color:var(--gold);

  text-decoration:none;

  font-size:12px;
}


.contact-card span {

  color:var(--muted);

  font-size:11px;
}


/* ============================================================
   CLOSING
============================================================ */

.closing-statement {

  width:min(
    1100px,
    calc(100% - 64px)
  );

  margin:
    0 auto 110px;

  padding:
    75px;

  text-align:center;

  border:
    1px solid
    var(--line);

  background:
    radial-gradient(
      circle at 50% -10%,
      rgba(215,181,111,.19),
      transparent 42%
    ),
    rgba(255,255,255,.58);

  box-shadow:
    0 25px 65px
    rgba(40,31,18,.07);
}


.closing-mark {

  width:67px;

  height:67px;

  margin:
    0 auto 27px;

  display:grid;

  place-items:center;

  border:
    1px solid
    rgba(173,122,32,.36);

  border-radius:50%;

  color:var(--gold);

  font-size:24px;
}


.closing-statement h2 {

  max-width:900px;

  margin:0 auto;

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:
    clamp(
      2.2rem,
      4.2vw,
      4rem
    );

  font-weight:500;

  line-height:1.08;

  letter-spacing:-.04em;
}


.closing-statement > p:not(.section-eyebrow) {

  max-width:740px;

  margin:
    23px auto 0;

  color:var(--muted);

  font-size:13px;

  line-height:1.75;
}


/* ============================================================
   FOOTER
============================================================ */

.site-footer {

  width:min(
    1380px,
    calc(100% - 64px)
  );

  min-height:125px;

  margin:0 auto;

  display:grid;

  grid-template-columns:
    auto 1fr auto;

  gap:30px;

  align-items:center;

  border-top:
    1px solid
    rgba(173,122,32,.18);
}


.footer-brand {

  display:flex;

  flex-direction:column;
}


.footer-brand strong {

  color:var(--navy);

  font-family:
    Georgia,
    "Times New Roman",
    serif;

  font-size:15px;

  letter-spacing:.05em;
}


.footer-brand span {

  margin-top:4px;

  color:var(--gold);

  font-size:7px;

  font-weight:800;

  letter-spacing:.17em;
}


.site-footer > p {

  margin:0;

  color:var(--muted);

  font-size:10px;
}


.site-footer nav {

  display:flex;

  flex-wrap:wrap;

  justify-content:flex-end;

  gap:17px;
}


.site-footer nav a {

  color:
    rgba(70,78,91,.70);

  text-decoration:none;

  font-size:10px;
}


.site-footer nav a:hover {

  color:var(--gold);
}


/* ============================================================
   ACCESSIBILITY
============================================================ */

:focus-visible {

  outline:
    3px solid
    rgba(173,122,32,.48);

  outline-offset:3px;
}


/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width:1000px) {

  .site-header {

    flex-wrap:wrap;

    padding:17px 0;
  }


  .site-navigation {

    width:100%;

    margin-left:0;

    flex-wrap:wrap;
  }


  .terms-layout {

    grid-template-columns:1fr;

    gap:40px;
  }


  .terms-index {

    position:static;
  }


  .terms-index nav {

    display:grid;

    grid-template-columns:
      repeat(3,1fr);

    gap:
      4px 20px;
  }


  .principle-strip {

    grid-template-columns:1fr;
  }


  .principle-strip article {

    min-height:auto;

    border-right:0;

    border-bottom:
      1px solid
      var(--navy-line);
  }


  .principle-strip article:last-child {

    border-bottom:0;
  }

}


@media (max-width:700px) {

  .site-header,
  .terms-hero,
  .principle-strip,
  .terms-layout,
  .closing-statement,
  .site-footer {

    width:
      calc(100% - 30px);
  }


  .site-navigation {

    gap:14px;
  }


  .site-navigation a {

    font-size:11px;
  }


  .terms-hero {

    padding:
      75px 0;
  }


  .terms-index nav {

    grid-template-columns:
      repeat(2,1fr);
  }


  .doctrine {

    grid-template-columns:1fr;
  }


  .closing-statement {

    padding:
      48px 26px;
  }


  .site-footer {

    grid-template-columns:1fr;

    gap:15px;

    padding:
      30px 0;
  }


  .site-footer nav {

    justify-content:flex-start;
  }

}


@media (max-width:460px) {

  .brand-seal {

    width:36px;

    height:36px;
  }


  .terms-index nav {

    grid-template-columns:1fr;
  }

}


@media (prefers-reduced-motion:reduce) {

  *,
  *::before,
  *::after {

    scroll-behavior:auto !important;

    transition-duration:.001ms !important;

    animation-duration:.001ms !important;

    animation-iteration-count:1 !important;
  }

}
