/* Rushmore Academy public pages (the plan chooser and the legal pages): parchment under the fixed top bar, one reading column, the
   school footer. Needs design/tokens.css, base.css, components.css, header.css. Mobile first; the tablet and desktop rules widen it. */
main.pub { max-width: var(--container); padding-top: var(--s-6); }
.pub-head { width: min(100%, var(--narrow)); margin: 0 auto var(--block); text-align: center; }
.pub-head .eyebrow { display: flex; align-items: center; justify-content: center; gap: var(--s-4); }
.pub-head .eyebrow::before, .pub-head .eyebrow::after { content: ''; width: 36px; border-top: 1px solid var(--gold); opacity: .7; }
.pub-head h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); line-height: 1.1; margin: 0 0 var(--s-4); font-weight: 500; }
.pub-head .lead { margin: 0 auto; max-width: 56ch; font-size: clamp(1.1rem, 1.6vw, 1.3rem); }
.pub-head .lead a { color: inherit; }

/* The draft notice: one gold hairline box, read before anything else. */
.notice { width: min(100%, 760px); margin: 0 auto var(--s-6); border: 1px solid var(--gold); border-radius: var(--r-3); padding: 14px 18px; background: var(--card); font-family: var(--font-text); font-size: var(--fs-1); color: var(--text-soft); }
.notice b { font-family: var(--font-display); letter-spacing: .14em; text-transform: uppercase; color: var(--gold-text); font-size: var(--fs-0); margin-right: 10px; }
.notice.warn { border-color: var(--no); }
.notice.warn b { color: var(--no); }
.notice p { margin: 0; max-width: none; }
.notice p + p { margin-top: var(--s-2); }

/* Legal pages: a numbered outline on the reading measure. */
main.legal { max-width: var(--reading); }
.legal h1 { font-size: clamp(2rem, 4.6vw, 3rem); margin-bottom: var(--s-3); }
.legal .meta-line { font-family: var(--font-ui); font-size: var(--fs-1); color: var(--muted); margin: 0 0 var(--s-6); }
.legal h2 { font-size: var(--fs-4); margin-top: var(--s-7); padding-top: var(--s-4); border-top: 1px solid var(--line); }
.legal h3 { font-size: var(--fs-3); margin-top: var(--s-5); }
.legal p, .legal li { font-family: var(--font-text); color: var(--text-soft); }
.legal p { max-width: none; }
.legal b { color: var(--text); }
.legal .toc { list-style: none; padding: 0; margin: 0 0 var(--s-5); columns: 1; }
.legal .toc li { margin: 0; border-top: 1px solid var(--line); }
.legal .toc a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; text-decoration: none; font-family: var(--font-text); font-variant-caps: small-caps; letter-spacing: .06em; color: var(--text); }
.legal .toc a:hover { color: var(--gold-text); }
.legal .toc a::before { content: counter(toc) '.'; counter-increment: toc; min-width: 2.2em; font-family: var(--font-display); font-size: var(--fs-0); letter-spacing: .1em; color: var(--gold-text); }
.legal .toc { counter-reset: toc; }
.legal dl { margin: 0 0 var(--s-4); }
.legal dt { font-family: var(--font-text); font-weight: 600; color: var(--text); margin-top: var(--s-3); }
.legal dd { margin: 4px 0 0; font-family: var(--font-text); color: var(--text-soft); }
.legal table { width: 100%; border-collapse: collapse; font-family: var(--font-text); font-size: var(--fs-1); margin: var(--s-4) 0; }
.legal th { text-align: left; font-family: var(--font-display); font-size: var(--fs-0); letter-spacing: var(--track-caps); text-transform: uppercase; color: var(--gold-text); padding: 8px 10px 8px 0; border-bottom: 1px solid var(--line-strong); font-weight: 600; }
.legal td { padding: 8px 10px 8px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.legal .open { border-left: 2px solid var(--gold); padding: var(--s-3) var(--s-4); background: var(--bg-alt); font-family: var(--font-ui); font-size: var(--fs-1); color: var(--text-soft); margin: var(--s-4) 0; }
.legal .open b { font-family: var(--font-display); letter-spacing: .12em; text-transform: uppercase; font-size: var(--fs-0); color: var(--gold-text); }
@media (min-width: 640px) { .legal .toc { columns: 2; column-gap: var(--s-6); } .legal .toc li { break-inside: avoid; } }

/* The school footer on parchment. */
.site-foot { border-top: 1px solid var(--line-strong); padding: var(--s-7) var(--gutter) calc(var(--s-7) + env(safe-area-inset-bottom)); text-align: center; color: var(--muted); font-family: var(--font-text); font-size: var(--fs-1); }
.site-foot .foot-seal { width: 72px; height: 72px; margin: 0 auto var(--s-4); opacity: .9; }
.site-foot .foot-line { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px var(--s-4); margin: 0 0 var(--s-3); }
.site-foot .caps { color: var(--gold-text); letter-spacing: .22em; } .site-foot .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--gold); opacity: .7; } .site-foot .sc { color: var(--text-soft); }
.site-foot .foot-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 18px; margin: var(--s-3) 0 var(--s-4); }
.site-foot .foot-nav a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; padding: 6px 2px; font-variant-caps: small-caps; letter-spacing: .08em; color: var(--text-soft); border-bottom: 1px solid transparent; }
.site-foot .foot-nav a:hover { color: var(--gold-text); border-bottom-color: var(--gold); }
.site-foot .caption { margin: 0 auto; max-width: 64ch; font-style: italic; }
.site-foot .caption a { color: inherit; }
@media (max-width: 560px) { .site-foot .foot-line { flex-direction: column; gap: 4px; } .site-foot .dot { display: none; } }

/* Sign in: two doors */
.door-grid { display: grid; gap: clamp(1rem, 3vw, 2rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); margin: 2rem 0 2.5rem; }
.door { display: block; border: 1px solid rgba(21, 32, 43, .28); padding: clamp(1.25rem, 3vw, 2rem); text-align: center; }
.door h2 { margin-top: 0; }
.door p { max-width: none; }
.door .btn { margin-top: .5rem; }
.door .caption { margin-top: 1rem; }
