/* Trailpost Plus member pages: the membership page, teacher portal, Edumon settings, library and the student's titles.
   Same colours and type as the home page (css/brand.css). The member bar itself is drawn by js/plus-bar.js.
   Copied to the site's css/plus.css by build_store.py. Each page keeps its own layout styles after this file. */
:root {
  --night: #0c1d16; --night-2: #12291f; --deep: #07130e; --pine: #1d4a37; --moss: #2f6b4f;
  --gold: #f0c35a; --gold-2: #e0ab3a; --paper: #f7f5ef; --card: #ffffff;
  --ink: #17221c; --ink-soft: #4d5a52; --body-soft: #3f4a42; --line: #e4e1d6; --line-dark: #c9c4b5;
  --on-night: #cfdcd3; --mist: #9fb7a9;
  --display: "Fraunces", Georgia, serif; --body: "Inter", system-ui, sans-serif;
  /* the names the member pages were written with */
  --green: var(--pine); --green-2: var(--moss); --brass: var(--gold-2); --honey: var(--gold); --sage: var(--mist);
  --bg: var(--paper); --soft: #eef2ec; --tint: #eef2ec; --tint-tag: #e3ebe4; --cream: #f7f1e8; --on-green: var(--on-night);
}
body { background: var(--paper); font-family: var(--body); color: var(--ink); }
h1, h2, h3 { font-family: var(--display); font-weight: 600; letter-spacing: -.01em; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

/* member bar */
.plusbar { position: sticky; top: 0; z-index: 40; background: rgba(12,29,22,.95); backdrop-filter: blur(14px) saturate(1.3); color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); font-family: var(--body); font-size: 14px; line-height: 1.4; }
.plusbar .pb-in { max-width: 1440px; margin: 0 auto; padding: 10px 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.plusbar .pb-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.plusbar .pb-brand img { height: 26px; width: auto; display: block; }
.plusbar .pb-brand span { font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #1b1606; background: var(--gold); border-radius: 999px; padding: 3px 9px; }
.plusbar nav { display: flex; flex-wrap: wrap; gap: 2px 4px; }
.plusbar nav a { color: var(--on-night); text-decoration: none; font-weight: 500; padding: 7px 11px; border-radius: 999px; white-space: nowrap; transition: background .15s, color .15s; }
.plusbar nav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.plusbar nav a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.12); box-shadow: inset 0 -2px 0 var(--gold); }
.plusbar .who { margin-left: auto; display: flex; align-items: center; gap: 10px; color: var(--mist); font-size: 13px; min-width: 0; }
.plusbar .who > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 240px; }
/* The account email gives way first so the bar stays on one line. */
@media (max-width: 1380px) { .plusbar .who > span#who { display: none; } }
.plusbar .who button, .plusbar .who a.pb-btn { flex: none; min-height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); background: transparent; color: #fff; font: inherit; font-weight: 600; font-size: 13px; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; white-space: nowrap; }
.plusbar .who button:hover, .plusbar .who a.pb-btn:hover { border-color: #fff; }
@media (max-width: 900px) {
  .plusbar { position: static; }
  .plusbar .pb-in { padding: 10px 16px 6px; gap: 6px 12px; }
  .plusbar nav { order: 3; flex: 1 1 100%; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px 4px; }
  .plusbar nav::-webkit-scrollbar { display: none; }
}
@media print { .plusbar { display: none; } }

/* page heading: the dark band from the home page, used at the top of each member page */
.pagehead { position: relative; isolation: isolate; overflow: hidden; background: var(--night); color: #fff; }
.pagehead::before { content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(40% 80% at 88% 10%, rgba(61,160,120,.30), transparent 70%), radial-gradient(30% 70% at 8% 0%, rgba(240,195,90,.12), transparent 70%); }
.pagehead::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px); background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(to bottom, #000 20%, transparent 95%); mask-image: linear-gradient(to bottom, #000 20%, transparent 95%); }
.pagehead .ph-in { max-width: 1440px; margin: 0 auto; padding: 30px 28px 28px; display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; }
.pagehead .ph-in > div:first-child { flex: 1 1 360px; min-width: 0; }
.pagehead .eyebrow { margin: 0 0 6px; font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.pagehead h1 { margin: 0 0 6px; color: #fff; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1.12; }
.pagehead .lede, .pagehead p { color: var(--on-night); margin: 0; max-width: 62ch; }
.pagehead a { color: #fff; }

/* footer for member pages */
footer.plusfoot { margin-top: 48px; background: var(--deep); color: var(--mist); font-size: 14px; }
footer.plusfoot .pf-in { max-width: 1440px; margin: 0 auto; padding: 28px 28px 32px; display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; justify-content: space-between; }
footer.plusfoot img { height: 24px; width: auto; display: block; }
footer.plusfoot nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }
footer.plusfoot a { color: var(--on-night); text-decoration: none; }
footer.plusfoot a:hover { text-decoration: underline; }
footer.plusfoot p { margin: 0; }
@media (max-width: 900px) {
  .pagehead .ph-in, footer.plusfoot .pf-in { padding-left: 16px; padding-right: 16px; }
}
