/* Practice-area pages. Every value is a token or a layout number; no hex, no
   font names. See brand/BRAND.md.

   NOTE: the base, nav and footer rules below are duplicated from index.html's
   inline style block. They are duplicated rather than shared because index.html
   is a single self-contained page and extracting its furniture would touch the
   one file that is already live. If a sixth page appears, extract all of this
   into page.css and have index.html use it too. */

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-sans);
  font-size: var(--fs-body); line-height: var(--lh-body);
  color: var(--slate); background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: 600; color: var(--ink); }
a { color: var(--ink); }
.wrap { max-width: var(--max-marketing); margin: 0 auto; padding: 0 var(--gutter); }
section { padding: var(--space-14) 0; }

/* ---- nav ---- */
.site-nav { background: var(--surface); border-bottom: 1px solid var(--line); }
.site-nav .wrap { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); padding-top: 14px; padding-bottom: 14px; }
.site-nav .brand img { display: block; height: 26px; width: auto; }
.navlinks { display: flex; align-items: center; gap: var(--space-8); }
.navlinks a:not(.ts-btn) { font-size: 14.5px; color: var(--slate); text-decoration: none; }
.navlinks a:not(.ts-btn):hover { color: var(--ink); }
.navlinks .ts-btn { font-size: 14px; padding: 9px 16px; }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 6px; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--ink); margin: 5px 0; transition: transform .2s ease, opacity .2s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---- page masthead: ink, but shorter than the home hero, because this is a
       reading page and the reader arrived on purpose ---- */
.p-head { background: linear-gradient(160deg, var(--ink) 55%, var(--ink-mid)); color: #fff; padding: 56px 0 52px; }
.p-head .crumb { font-size: var(--fs-eyebrow); line-height: var(--lh-eyebrow); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gold-light); }
.p-head .crumb a { color: var(--gold-light); text-decoration: none; }
.p-head .crumb a:hover { text-decoration: underline; }
/* deliberately smaller than the home hero's display size: this is a reading
   page the visitor arrived on purpose, not a first impression to win */
.p-head h1 { font-size: clamp(var(--fs-section-head), 3.4vw, var(--fs-display-mobile)); line-height: 1.15;
  letter-spacing: -0.012em; color: #fff; margin-top: 12px; max-width: 22ch; }
.p-head .lede { font-size: var(--fs-lede); line-height: var(--lh-lede); color: var(--on-ink);
  max-width: 60ch; margin-top: 16px; }

/* ---- prose ---- */
.p-body { max-width: var(--prose-max); }
.p-body h2 { font-size: var(--fs-section-head); line-height: var(--lh-section-head); margin-top: var(--space-14); }
.p-body h2:first-child { margin-top: 0; }
.p-body h3 { font-size: 20px; line-height: 1.3; margin-top: var(--space-8); }
.p-body p { margin-top: var(--space-3); }
.p-body p:first-of-type { margin-top: var(--space-3); }
.p-body ul { margin-top: var(--space-3); padding-left: 1.15em; }
.p-body li { margin-top: 8px; }
.p-body strong { color: var(--ink); }

/* ---- phased work plan: a ruled list, numbered in mono ---- */
.phases { border-top: 1px solid var(--line); margin-top: var(--space-5); }
.phase { border-bottom: 1px solid var(--line); padding: var(--space-5) 0;
  display: grid; grid-template-columns: 74px 1fr; gap: var(--space-5); align-items: start; }
.phase__n { font-family: var(--font-mono); font-size: 12px; color: var(--muted); padding-top: 5px; }
.phase h3 { font-size: 19px; line-height: 1.3; margin-top: 0; }
.phase p { font-size: var(--fs-body-s); line-height: var(--lh-body-s); margin-top: 7px; }

/* ---- credential card ---- */
.cred-card { background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: var(--radius-card); padding: 24px 26px; margin-top: var(--space-8); }
.cred-card .eyebrow { font-size: var(--fs-eyebrow); line-height: var(--lh-eyebrow); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gold-deep); }
.cred-card p { font-size: var(--fs-body-s); line-height: var(--lh-body-s); margin-top: 10px; }

/* ---- scope boundary: what this is not. Plain, no alarm color. ---- */
.bounds { border-top: 1px solid var(--line); margin-top: var(--space-8); padding-top: var(--space-5); }
.bounds .eyebrow { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.bounds p { font-size: var(--fs-body-s); line-height: var(--lh-body-s); margin-top: 8px; }

/* ---- closing CTA ---- */
.p-cta { background: var(--surface); border-top: 1px solid var(--line); }
.p-cta h2 { font-size: var(--fs-section-head); line-height: var(--lh-section-head); }
.p-cta p { max-width: 56ch; margin-top: 10px; }
.p-cta .cta-row { display: flex; gap: var(--space-3); flex-wrap: wrap; align-items: center; margin-top: var(--space-5); }
.p-other { border-top: 1px solid var(--line); margin-top: var(--space-14); padding-top: var(--space-5); }
.p-other .eyebrow { font-size: var(--fs-eyebrow); line-height: var(--lh-eyebrow); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.p-other ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding: 0; }
.p-other li { margin: 0; }
.p-other a { font-family: var(--font-mono); font-size: 12px; color: var(--ink); text-decoration: none;
  border: 1px solid var(--line); border-radius: var(--radius-card); padding: 7px 12px; display: inline-block; background: var(--paper); }
.p-other a:hover { border-color: var(--gold-deep); }

/* ---- footer ---- */
.site-footer { background: var(--ink-deep); padding: var(--space-8) 0; }
.site-footer .wrap { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); }
.site-footer .fbrand { display: flex; align-items: center; gap: var(--space-3); font-size: 13.5px; color: var(--on-ink); }
.site-footer .fbrand img { display: block; width: 28px; height: 28px; }
.site-footer .fbrand strong { color: #fff; font-weight: 600; }
.site-footer .flinks { display: flex; gap: var(--space-5); font-size: 13.5px; }
.site-footer .flinks a { color: var(--on-ink); text-decoration: none; }
.site-footer .flinks a:hover { color: var(--gold-light); }

@media (max-width: 899px) {
  section { padding: var(--space-8) 0; }
  .nav-toggle { display: block; }
  .site-nav .wrap { position: relative; }
  .navlinks { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--surface);
    border-bottom: 1px solid var(--line); padding: 8px var(--gutter) 18px; z-index: 20; }
  .navlinks.open { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
  .navlinks a { font-size: 16px; }
  /* the phase label gutter costs ~95px of an already narrow measure */
  .phase { grid-template-columns: 1fr; gap: 0; }
  .phase__n { padding-top: 0; margin-bottom: 6px; }
}
