/* Page group C: PUB-08 Grades, PUB-09 Pricing, PUB-11 FAQ. Tokens from site.css (GB-04). */

/* Page hero (dark, text only) */
.hero--page { padding: 64px 0 64px; }
@media (min-width: 600px) { .hero--page { padding: 80px 0 80px; } }
@media (min-width: 1024px) { .hero--page { padding: 72px 0 80px; } }
.page-hero { display: grid; gap: 20px; justify-items: start; }
.page-hero .hero__lede { max-width: 33em; }
.page-hero .btn-row { margin-top: 12px; }
@media (max-width: 599px) { .page-hero .btn-row { width: 100%; } }
.br-m { display: none; }
@media (max-width: 599px) { .br-m { display: inline; } }

/* ===== PUB-09 Pricing ===== */
.pc-stack { display: grid; gap: 32px; }
.pc-cards { align-items: start; }
.pc-card { display: grid; gap: 22px; padding: 28px 20px; align-content: start; }
@media (min-width: 1024px) { .pc-card { padding: 40px 32px; } }
.pc-card__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px; }
.pc-card__title { font: 400 30px/1.15 var(--f-display); color: var(--ink); }
@media (min-width: 1024px) { .pc-card__title { font-size: 34px; } }
.pc-toggle { display: inline-flex; justify-self: start; gap: 2px; padding: 3px; border: 1px solid var(--border-strong); border-radius: var(--r-ctl); background: var(--sunken); }
.pc-toggle button { min-height: 40px; padding: 0 20px; border: 1px solid transparent; border-radius: 3px; background: transparent; font: 600 16px/1 var(--f-ui); color: var(--muted); cursor: pointer; }
.pc-toggle button[aria-checked="true"] { background: var(--card); color: var(--ink); border-color: var(--border-strong); box-shadow: var(--shadow-1); }
@media (pointer: coarse), (max-width: 599px) { .pc-toggle button { min-height: 44px; } }
.pc-price__row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; color: var(--muted); font-size: 15px; }
.pc-price__row .ph { font-size: 34px; padding: 6px 10px; }
@media (min-width: 1024px) { .pc-price__row .ph { font-size: 40px; } }
.pc-price__sub { color: var(--muted); font-size: 15px; margin-top: 8px; }
.pc-steps { list-style: decimal; padding-left: 1.4em; display: grid; gap: 10px; }
.pc-steps li { padding-left: 4px; }
.pc-terms { line-height: 1.75; }
.pc-terms strong { color: var(--ink); font-weight: 600; }
@media (max-width: 599px) { .pc-cards .btn { width: 100%; } .pc-cards .soon { width: 100%; } }
.pc-split { align-items: start; }
@media (min-width: 1024px) { .pc-split { grid-template-columns: minmax(0, 560px) minmax(0, 1fr); } .pc-split .head { max-width: 420px; } }
.pc-prose { display: grid; gap: 20px; font-size: 17px; line-height: 1.7; }
.pc-prose .banner { font-size: 15px; }

/* ===== PUB-11 FAQ ===== */
.fq-search { display: grid; gap: 12px; margin-top: 28px; width: 100%; max-width: 484px; }
.fq-search__label { font: 600 15px/1.3 var(--f-ui); color: #fff; }
.fq-search__field { position: relative; }
.fq-search__field .i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.fq-search__field input { width: 100%; min-height: 52px; padding: 10px 16px 10px 46px; border: 1px solid var(--border-strong); border-radius: var(--r-ctl); background: var(--card); font: 400 17px/1.3 var(--f-ui); color: var(--ink); }
.fq-search__field input::placeholder { color: var(--placeholder); }
.fq-search__field input:focus { outline: 2px solid var(--teal-dark); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(95,196,184,.25); }
.fq-chips { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 32px; border-bottom: 1px solid var(--border); }
.fq-chip { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--border-strong); background: var(--card); font: 400 16px/1 var(--f-ui); color: var(--body); cursor: pointer; }
.fq-chip:hover { border-color: var(--ink); }
.fq-chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; font-weight: 600; }
.fq-count { font-size: 16px; color: var(--body); }
.fq-count:empty { display: none; }
.fq-count strong { font-weight: 600; color: var(--ink); }
.fq-clear-link { background: none; border: 0; padding: 0; font: inherit; color: var(--teal-600); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 24px; }
.fq-results-title { font: 600 20px/1.3 var(--f-ui); color: var(--ink); margin: 32px 0 16px; padding-top: 24px; border-top: 1px solid var(--border); }
.fq-group { display: grid; gap: 16px; padding: 40px 0; border-bottom: 1px solid var(--border); }
.fq-group:last-child { border-bottom: 0; }
@media (min-width: 1024px) { .fq-group { grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 48px; } }
.fq-group__title { font: 600 20px/1.3 var(--f-ui); color: var(--ink); padding-top: 4px; }
.fq-list .fq-item { list-style: none; }
.fq.is-searching .fq-group { padding: 0; border: 0; display: block; }
.fq.is-searching .fq-group__title { display: none; }
.fq.is-searching .fq-count { padding-top: 8px; }
.fq-empty { display: grid; gap: 16px; justify-items: start; max-width: 560px; padding: 28px 24px; margin-top: 16px; }
.fq-empty__title { font: 400 28px/1.2 var(--f-display); }

/* ===== PUB-08 Grades ===== */
.gr-joined { display: grid; gap: 8px; margin-bottom: 48px; max-width: 760px; }
.gr-preview-note { font: 600 12px/1.4 var(--f-mono); letter-spacing: .04em; color: var(--prov-fg); }
.gr-table-wrap { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-card); overflow: hidden; }
.gr-table { width: 100%; border-collapse: collapse; }
.gr-table th, .gr-table td { text-align: left; padding: 18px 20px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.gr-table tbody tr:last-child th, .gr-table tbody tr:last-child td { border-bottom: 0; }
.gr-table thead th { font: 600 12px/1.4 var(--f-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); background: var(--sunken); }
.gr-table tbody th { font: 600 17px/1.35 var(--f-ui); color: var(--ink); }
@media (min-width: 1024px) { .gr-table th, .gr-table td { padding: 20px 28px; } .gr-table tbody th { width: 28%; } }
.gr-label { display: none; }
@media (max-width: 599px) {
  .gr-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .gr-table, .gr-table tbody, .gr-table tr, .gr-table th, .gr-table td { display: block; }
  .gr-table tr { padding: 20px 20px 16px; border-bottom: 1px solid var(--border); }
  .gr-table tbody tr:last-child { border-bottom: 0; }
  .gr-table th, .gr-table td { padding: 0; border: 0; }
  .gr-table tbody th { margin-bottom: 8px; }
  .gr-table td { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 40px; }
  .gr-label { display: inline; color: var(--muted); font-size: 16px; }
}
.gr-split { align-items: start; }
.gr-k2 { display: grid; gap: 4px; }
.gr-k2 .head { margin-bottom: 20px; }
.gr-wait { display: grid; gap: 16px; justify-items: start; padding: 28px 20px; }
@media (min-width: 1024px) { .gr-wait { padding: 40px 40px; } }
.gr-wait__title { font: 400 32px/1.15 var(--f-display); color: var(--ink); }
.fq-count--sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
