:root {
  --grv-ink: #12201b;
  --grv-deep: #1c3229;
  --grv-paper: #f3f1ea;
  --grv-card: #fbfaf5;
  --grv-rule: #cfd6cd;
  --grv-text: #1d2420;
  --grv-soft: #4b5a53;
  --grv-teal: #0f6b5a;
  --grv-mint: #58e0a8;
  --grv-loss: #b3261e;
  --grv-col: 46rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--grv-paper);
  color: var(--grv-text);
  font: 400 1.0625rem/1.7 Charter, "Iowan Old Style", Georgia, "Times New Roman", serif;
}

a { color: var(--grv-teal); text-underline-offset: 0.15em; }
a:hover { color: var(--grv-loss); }
img, svg { max-width: 100%; height: auto; }
b { font-weight: 700; }

.grv-skip {
  position: absolute; left: -100vw; top: 0; z-index: 20;
  background: var(--grv-mint); color: var(--grv-ink); padding: 0.55rem 0.9rem;
}
.grv-skip:focus { left: 0; }

/* ---------- top band ---------- */
.grv-top { background: var(--grv-ink); color: #e6efe9; padding: 0.85rem 1rem 1.15rem; }
.grv-top__in { max-width: 62rem; margin: 0 auto; display: grid; gap: 0.8rem; }
.grv-mark { margin: 0; font: 700 1.125rem/1.2 "Trebuchet MS", Verdana, sans-serif; letter-spacing: 0.01em; }
.grv-mark a { color: #fff; text-decoration: none; }
.grv-mark small {
  display: block; margin-top: 0.2rem; font-weight: 400; font-size: 0.8125rem; color: #9fb7ac;
}
.grv-nav {
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.4rem;
  font: 400 0.9375rem/1.2 "Trebuchet MS", Verdana, sans-serif;
}
.grv-nav a {
  color: #dbe8e1; text-decoration: none; padding: 0.35rem 0.7rem;
  border: 1px solid #2f4a41; border-radius: 999px;
}
.grv-nav a:hover { background: var(--grv-deep); color: #fff; }
.grv-nav a[aria-current] { background: var(--grv-mint); color: var(--grv-ink); border-color: var(--grv-mint); font-weight: 700; }

/* the one conversion control: big, own plate, full line on a phone */
.grv-go {
  display: block; width: 100%;
  background: var(--grv-mint); color: var(--grv-ink);
  border: 3px solid #b6f5da; border-radius: 0.65rem;
  padding: 1rem 1.15rem; text-decoration: none; text-align: center;
  font: 700 1.25rem/1.25 "Trebuchet MS", Verdana, sans-serif;
  box-shadow: 0 0 0 4px rgba(88, 224, 168, 0.22);
}
.grv-go:hover { background: #8cf0c6; color: var(--grv-ink); }
.grv-go small {
  display: block; margin-top: 0.3rem; font-weight: 400; font-size: 0.8125rem; line-height: 1.35;
}
@media (min-width: 52rem) {
  .grv-top__in { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .grv-go { grid-column: 1 / -1; max-width: 40rem; font-size: 1.375rem; padding: 1.15rem 1.4rem; }
}

/* ---------- main ---------- */
.grv-main { max-width: var(--grv-col); margin: 0 auto; padding: 1.4rem 1rem 3rem; counter-reset: grv-sec; }
.grv-trail { font: 400 0.8125rem/1.5 "Trebuchet MS", Verdana, sans-serif; color: var(--grv-soft); margin: 0 0 1rem; }
.grv-trail a { color: var(--grv-soft); }
.grv-trail b { color: var(--grv-ink); }

h1 { font: 700 1.9rem/1.2 Georgia, "Times New Roman", serif; color: var(--grv-ink); margin: 0 0 1rem; }
.grv-lede { font-size: 1.1875rem; line-height: 1.6; margin: 0 0 1rem; }
.grv-lede:first-of-type { border-left: 5px solid var(--grv-teal); padding-left: 0.9rem; }

h2 {
  font: 700 1.375rem/1.3 Georgia, "Times New Roman", serif; color: var(--grv-ink);
  margin: 2.4rem 0 0.6rem; counter-increment: grv-sec;
}
h2::before {
  content: "\00a7" counter(grv-sec); display: inline-block; margin-right: 0.5rem;
  font: 700 0.8125rem/1 "Trebuchet MS", Verdana, sans-serif; color: var(--grv-teal);
  border: 1px solid var(--grv-teal); border-radius: 0.3rem; padding: 0.2rem 0.4rem; vertical-align: 0.15em;
}
h3 { font: 700 1.125rem/1.3 Georgia, serif; margin: 0 0 0.35rem; }
p { margin: 0 0 1rem; }

.grv-fig { margin: 1.4rem 0; }
.grv-fig img { display: block; width: 100%; border-radius: 0.6rem; border: 1px solid var(--grv-rule); }
.grv-fig figcaption { font: 400 0.8125rem/1.5 "Trebuchet MS", Verdana, sans-serif; color: var(--grv-soft); margin-top: 0.4rem; }

.grv-fact { margin: 0 0 0.6rem; padding: 0.6rem 0.85rem; background: var(--grv-card); border: 1px solid var(--grv-rule); border-left: 4px solid var(--grv-loss); border-radius: 0.3rem; }
.grv-fact b { color: var(--grv-loss); }
.grv-say { margin: 1.2rem 0; padding: 0.9rem 1.1rem; background: var(--grv-deep); color: #e8f5ee; border-radius: 0.5rem; }
.grv-say p { margin: 0 0 0.5rem; }
.grv-say p:last-child { margin: 0; font: 400 0.8125rem/1.4 "Trebuchet MS", Verdana, sans-serif; color: #9fe9c9; }

/* cards */
.grv-cards { display: grid; gap: 0.9rem; grid-template-columns: 1fr; margin-top: 0.8rem; }
@media (min-width: 40rem) { .grv-cards { grid-template-columns: 1fr 1fr; } }
.grv-card { background: var(--grv-card); border: 1px solid var(--grv-rule); border-radius: 0.6rem; padding: 0.9rem; display: flex; flex-direction: column; gap: 0.5rem; }
.grv-card img { width: 100%; max-width: 15rem; border: 0; }
.grv-card p { margin: 0; font-size: 0.9375rem; line-height: 1.55; flex: 1; }
.grv-card__links { display: flex; flex-wrap: wrap; gap: 0.5rem; font: 700 0.875rem/1.2 "Trebuchet MS", Verdana, sans-serif; }
.grv-card__links a { padding: 0.45rem 0.7rem; border-radius: 0.4rem; text-decoration: none; border: 1px solid var(--grv-teal); }
.grv-card__links a:first-child { background: var(--grv-card); }
.grv-card__links a:last-child { background: var(--grv-teal); color: #fff; }

/* FAQ table */
.grv-ask { width: 100%; border-collapse: collapse; font-size: 1rem; background: var(--grv-card); }
.grv-ask caption { text-align: left; font: 700 0.8125rem/1.4 "Trebuchet MS", Verdana, sans-serif; color: var(--grv-soft); padding-bottom: 0.3rem; }
.grv-ask th, .grv-ask td { text-align: left; vertical-align: top; padding: 0.7rem 0.8rem; border: 1px solid var(--grv-rule); }
.grv-ask th { width: 34%; font-weight: 700; color: var(--grv-ink); background: #ebe9df; }
@media (max-width: 36rem) {
  .grv-ask, .grv-ask tbody, .grv-ask tr, .grv-ask th, .grv-ask td { display: block; width: 100%; }
  .grv-ask th { border-bottom: 0; }
}

/* foot */
.grv-foot { background: var(--grv-ink); color: #c4d6cc; padding: 1.6rem 1rem 2.2rem; font: 400 0.875rem/1.6 "Trebuchet MS", Verdana, sans-serif; }
.grv-foot__in { max-width: 62rem; margin: 0 auto; }
.grv-foot a { color: var(--grv-mint); }
.grv-foot nav { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; margin-bottom: 1rem; }
.grv-foot p { margin: 0 0 0.75rem; max-width: 52rem; }
.grv-care { scroll-margin-top: 1rem; border-top: 1px solid #2f4a41; padding-top: 0.9rem; }

/* age dialog */
.grv-gate { border: 0; border-radius: 0.8rem; padding: 0; width: min(30rem, calc(100vw - 2rem)); background: var(--grv-card); color: var(--grv-text); box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.45); }
.grv-gate::backdrop { background: rgba(10, 22, 17, 0.72); }
.grv-gate__in { padding: 1.3rem 1.3rem 1.1rem; border-top: 8px solid var(--grv-teal); border-radius: 0.8rem; }
.grv-gate__q { font: 700 1.25rem/1.3 Georgia, serif; margin: 0 0 0.6rem; }
.grv-gate__go { display: block; width: 100%; margin: 1rem 0 0.8rem; padding: 0.9rem 1rem; font: 700 1.0625rem/1.2 "Trebuchet MS", Verdana, sans-serif; background: var(--grv-teal); color: #fff; border: 0; border-radius: 0.5rem; cursor: pointer; }
.grv-gate__go:hover { background: #0a5244; }
.grv-gate__no { display: inline-block; font: 400 0.9375rem/1.3 "Trebuchet MS", Verdana, sans-serif; color: var(--grv-soft); }
.grv-gate__fine { font-size: 0.8125rem; line-height: 1.5; color: var(--grv-soft); margin: 0.8rem 0 0; }
