@font-face{
  font-family:"Fraunces";
  src:url("fonts/fraunces-var-latin.woff2") format("woff2-variations");
  font-weight:400 600;
  font-style:normal;
  font-display:swap;
}
:root{
  color-scheme:light;
  --bg:#F2F1EC;
  --ink:#161514;
  --dim:#6B6864;
  --rule:#161514;
  --hair:#C9C6BE;
  --accent:#A43A2B;
  --label-col:200px;
  --row-y:6px;
  --row-x:13px;
  --sheet-title-col:160px;
  --sheet-title-padding:42px 20px 38px;
  --sheet-title-size:clamp(32px,4.6vw,46px);
  --sheet-mark-size:124px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;
  --sans:ui-sans-serif,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --display:"Fraunces","Iowan Old Style",ui-serif,Georgia,serif;
}
*{box-sizing:border-box}
::selection{background:var(--accent);color:var(--bg)}
html{scroll-padding-top:70px}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--mono);
  font-size:14px;
  line-height:1.55;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1,"zero" 1;
  -webkit-font-smoothing:antialiased;
}
a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid var(--hair);
  transition:color 140ms ease,border-color 140ms ease;
}
a:active{transform:scale(.97);transition:transform 100ms ease}
@media (hover:hover){
  a:hover{color:var(--accent);border-bottom-color:var(--accent)}
}
a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-bottom-color:var(--accent);
  color:var(--accent);
}
:focus:not(:focus-visible){outline:none}
.skip{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip:focus{
  left:8px;
  top:8px;
  width:auto;
  height:auto;
  padding:8px 12px;
  background:var(--ink);
  color:var(--bg);
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  z-index:9999;
}
.site-nav{
  display:flex;
  position:sticky;
  top:0;
  z-index:100;
  justify-content:center;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  background:var(--bg);
  border-bottom:1px solid var(--rule);
  scrollbar-width:thin;
}
.site-nav a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 16px;
  white-space:nowrap;
  border-right:1px solid var(--hair);
  border-bottom:0;
  font-family:var(--mono);
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.site-nav a[aria-current="page"]{background:var(--ink);color:var(--bg)}
/* Current-section highlight stays on Company: a fragment (:target) only tracks
   the last anchor clicked, not the section in view, so it goes stale on scroll. */
@media (max-width:640px){
  :root{
    --label-col:130px;
    --row-y:6px;
    --row-x:10px;
    --sheet-title-col:104px;
    --sheet-title-padding:18px 12px 16px;
    --sheet-title-size:clamp(23px,6.2vw,29px);
    --sheet-mark-size:72px;
  }
  .site-nav{justify-content:flex-start}
  .site-nav a{padding:0 12px}
}
@media (max-width:350px){
  .site-nav a{padding:0 10px;font-size:9px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important}
  .titleblock .seal:hover .seal-img{transform:none!important}
  .aside .stamp,.aside .stamp-warn{transform:none!important}
  .aside .compass:hover .north{transform:none!important}
  a:active,.titleblock .quick-contact a:active{transform:none!important}
}
@media print{
  :root{--bg:#fff;--ink:#000;--dim:#444;--rule:#000;--hair:#888;--accent:#000}
  body{background:#fff;color:#000;font-size:10pt}
  .site-nav,.skip{display:none!important}
  a{color:#000;border-bottom-color:#000;text-decoration:none}
}

/* Company sheet */
/* ── LAYOUT (drawing-sheet feel: left margin block + main frame on right) ── */
.layout{
  display:grid;
  grid-template-columns:220px minmax(0, 880px);
  gap:18px;
  max-width:1140px;
  margin:0 auto;
  padding:16px 20px 40px;
  align-items:start;
}
@media (max-width:1100px){
  .layout{grid-template-columns:1fr;max-width:920px;gap:0;padding:12px 16px 32px}
}
.frame{
  position:relative;
  width:100%;padding:16px 20px 32px;
  border-left:1px solid var(--rule);border-right:1px solid var(--rule);
  background-image:
    repeating-linear-gradient(to bottom,
      transparent 0, transparent 47px,
      var(--hair) 47px, var(--hair) 48px),
    repeating-linear-gradient(to bottom,
      transparent 0, transparent 47px,
      var(--hair) 47px, var(--hair) 48px);
  background-size:5px 100%, 5px 100%;
  background-position:0 0, 100% 0;
  background-repeat:no-repeat;
}
/* ── LEFT MARGIN BLOCK (drawing-sheet aside) ── */
.aside{
  position:sticky; top:70px;
  font-family:var(--mono); font-size:10.5px;
  line-height:1.5; color:var(--ink);
  display:flex; flex-direction:column; gap:14px;
}
.aside .block{border:1px solid var(--rule)}
.aside .block .head{
  background:var(--ink); color:var(--bg);
  padding:5px 10px; font-size:9.5px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
}
.aside .index a{
  position:relative;
  display:flex; align-items:baseline; gap:6px;
  padding:5px 10px; border-bottom:1px solid var(--hair);
  color:var(--ink); border-bottom-color:var(--hair);
  text-transform:uppercase; letter-spacing:.1em; font-size:10px;
  transition:background-color 120ms ease;
}
.aside .index a:last-child{border-bottom:none}
.aside .index a[aria-current="page"],
.aside .index a[aria-current="page"]:hover{
  background:var(--ink); color:var(--bg); border-bottom-color:var(--ink);
}
.aside .index a[aria-current="page"] .code{color:var(--bg)}
@media (hover:hover){
  .aside .index a:hover{background:color-mix(in srgb, var(--ink) 5%, transparent); color:var(--ink); border-bottom-color:var(--hair)}
}
.aside .index a .code{flex-shrink:0; width:46px; color:var(--dim)}
@media (hover:hover){
  .aside .index a:hover .code{color:var(--accent)}
}
/* Dot leader connecting code to section name — TOC convention */
.aside .index a .lead{
  flex:1; align-self:end;
  border-bottom:1px dotted var(--hair);
  height:1em; min-width:8px;
  transform:translateY(-3px);
}
.aside .index a .name{flex-shrink:0}
/* Hover: show section item count from data-count attribute */
.aside .index a[data-count]:hover::after{
  content:attr(data-count);
  position:absolute; right:10px; bottom:5px;
  font-family:var(--mono); font-size:8.5px;
  letter-spacing:.14em; color:var(--accent);
  background:var(--bg); padding:0 4px;
}
.aside .project-entry .body{
  display:grid;
  gap:8px;
  padding:10px;
}
.aside .project-entry .prompt{
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
}
.aside .project-entry .hint{
  color:var(--dim);
  font-size:10px;
  letter-spacing:.08em;
  line-height:1.45;
}
.aside .project-entry a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:6px 0;
  border-top:1px solid var(--hair);
  font-size:10.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.aside .project-entry a.primary{
  display:block;
  border:1px solid var(--ink);
  padding:7px 8px;
  text-align:center;
  color:var(--bg);
  background:var(--ink);
}
@media (hover:hover){
  .aside .project-entry a.primary:hover{
    color:var(--bg);
    background:var(--accent);
    border-color:var(--accent);
  }
}
.aside .project-entry a .code{color:var(--dim)}
/* Rubber-stamp aesthetic: double border, slight rotation, ink-bleed feel */
.aside .stamp{
  position:relative;
  border:2.5px solid var(--ink);
  padding:12px 14px 10px;
  text-align:center; color:var(--ink);
  transform:rotate(-3deg);
  margin:38px 18px 8px;
  background:transparent;
  isolation:isolate;
}
.aside .stamp::before{
  content:'';
  position:absolute; inset:3px;
  border:1px solid var(--ink);
  pointer-events:none;
  opacity:.85;
}
/* Faint ink-bleed: tiny radial speckle gives wet-stamp variation */
.aside .stamp::after{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 30% 40%, transparent 0, transparent 65%, var(--bg) 90%) center/100% 100%;
  mix-blend-mode:screen;
  opacity:.18;
  pointer-events:none;
}
.aside .stamp .script{
  display:block;
  font-family:var(--mono);
  font-size:16px; font-weight:700;
  line-height:1.05; margin-bottom:6px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
}
.aside .stamp .small{
  display:block;
  font-family:var(--mono);
  font-size:8px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--dim);
  font-weight:600;
}
.aside .stamp .date{
  display:block; margin-top:5px;
  font-family:var(--mono); font-size:8.5px;
  letter-spacing:.28em; color:var(--ink);
  font-weight:500;
}
/* Compass + scale bar — drafting reference block */
.aside .compass-body{
  display:flex; align-items:center; gap:14px;
  padding:10px 12px;
}
.aside .compass-body .north{
  flex-shrink:0; color:var(--ink);
  transition:transform 1200ms cubic-bezier(.3,1,.4,1);
  transform-origin:50% 53%;
}
.aside .compass:hover .north{transform:rotate(13deg)}
.aside .compass-body .scale{flex:1; display:flex; flex-direction:column; gap:5px}
.aside .compass-body .scale-bar{
  display:flex; height:6px; border:1px solid var(--ink);
}
.aside .compass-body .scale-bar span{flex:1}
.aside .compass-body .scale-bar span:nth-child(odd){background:var(--ink)}
.aside .compass-body .scale-label{
  font-family:var(--mono); font-size:8px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--dim);
}

/* Aside footer — tiny copyright/joke line at very bottom */
.aside .aside-foot{
  margin:8px 14px 0;
  padding-top:6px;
  border-top:1px dotted var(--hair);
  font-family:var(--mono); font-size:8px;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--dim);
  text-align:center;
}

/* Secondary stamp — scope/status cue in the document register */
.aside .stamp-warn{
  border:2px solid var(--accent);
  padding:7px 12px 6px;
  margin:14px 28px 4px;
  text-align:center;
  transform:rotate(4deg);
  font-family:var(--mono); font-size:10px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent);
}
@media (max-width:1100px){
  .aside{display:none}
}

/* Corner registration marks — drawing-sheet trim crosshairs */
.frame::before, .frame::after,
.frame > .reg-tl, .frame > .reg-tr, .frame > .reg-bl, .frame > .reg-br{
  position:absolute; width:14px; height:14px; cursor:help;
  background:
    linear-gradient(var(--rule),var(--rule)) center/100% 1px no-repeat,
    linear-gradient(var(--rule),var(--rule)) center/1px 100% no-repeat;
  opacity:.55;
  transition:opacity 120ms ease;
}
.frame > .reg-tl:hover, .frame > .reg-tr:hover,
.frame > .reg-bl:hover, .frame > .reg-br:hover{opacity:1}
.frame > .reg-tl{top:6px;left:-7px}
.frame > .reg-tr{top:6px;right:-7px}
.frame > .reg-bl{bottom:6px;left:-7px}
.frame > .reg-br{bottom:6px;right:-7px}
/* Datum strip — thin band at top of frame, right-aligned */
.topstrip{
  display:flex; justify-content:space-between; align-items:center;
  padding:4px var(--row-x);
  border-bottom:1px solid var(--rule);
  font-family:var(--mono); font-size:9.5px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--dim);
}
.topstrip .doc-id{color:var(--dim)}
.topstrip .datum-stamp{display:flex;gap:8px;align-items:center}
@media (max-width:640px){
  .topstrip{
    display:grid; grid-template-columns:1fr auto; gap:10px;
    font-size:8.5px;letter-spacing:.16em;padding:3px 10px
  }
  .topstrip .doc-id{font-size:0;letter-spacing:0}
  .topstrip .doc-id::before{
    content:"Sheet T-001";
    font-size:8.5px; letter-spacing:.16em;
  }
  .topstrip .datum-stamp{justify-content:end;white-space:nowrap}
}

/* ── TITLE BLOCK (engineering drawing convention) ── */
.titleblock{border:1px solid var(--rule);border-bottom:none}
.titleblock-head{
  display:grid; grid-template-columns:1fr var(--sheet-title-col);
  border-bottom:1px solid var(--rule);
}
.titleblock .firm{
  padding:var(--sheet-title-padding); text-align:center;
  font-family:var(--display); font-weight:500;
  font-size:var(--sheet-title-size); line-height:1.02;
  letter-spacing:-.015em; color:var(--ink);
  font-variation-settings:"opsz" 60,"SOFT" 0,"wght" 500;
  border-right:1px solid var(--rule);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  margin:0; gap:14px;
}
.titleblock .firm .record{
  font-family:var(--mono); font-size:10px; font-weight:500;
  letter-spacing:.32em; text-transform:uppercase;
  color:var(--dim); display:inline-flex; align-items:center; gap:10px;
}
.titleblock .firm .record::before, .titleblock .firm .record::after{
  content:''; display:inline-block; width:24px; height:1px; background:var(--hair);
}
.titleblock .seal{
  padding:18px; display:flex; align-items:center; justify-content:center;
}
.titleblock .seal-img{
  display:block; width:var(--sheet-mark-size); height:var(--sheet-mark-size);
  object-fit:contain;
  transition:transform 320ms cubic-bezier(.2,.8,.2,1);
}
.titleblock .seal:hover .seal-img{transform:rotate(-1.5deg) scale(1.03)}
.titleblock .sub{
  padding:9px 16px; text-align:center;
  font-family:var(--mono); font-size:11px; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--dim);
  border-bottom:1px solid var(--rule);
}
.titleblock .sheet{
  display:grid; grid-template-columns:repeat(4, 1fr);
  border-bottom:1px solid var(--rule);
  font-family:var(--mono); font-size:10px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
}
.titleblock .sheet > div{
  padding:6px 10px; text-align:center;
  border-right:1px solid var(--hair);
  color:var(--ink);
}
.titleblock .sheet > div:last-child{border-right:none}
.titleblock .sheet .label{color:var(--dim); margin-right:.4em}
.titleblock .quick-contact{
  display:grid; grid-template-columns:repeat(3, 1fr);
  border-bottom:1px solid var(--rule);
  font-family:var(--mono); font-size:10px;
  letter-spacing:.12em;
}
.titleblock .quick-contact a{
  display:flex; align-items:baseline; justify-content:center; gap:8px;
  min-width:0;
  padding:8px 10px;
  border-right:1px solid var(--hair);
  border-bottom:none;
  transition:background-color 120ms ease,color 140ms ease;
}
.titleblock .quick-contact a:last-child{border-right:none}
.titleblock .quick-contact a:active{transform:scale(.97);transition:transform 100ms ease}
@media (hover:hover){
  .titleblock .quick-contact a:hover{
    background:color-mix(in srgb, var(--ink) 5%, transparent);
    color:var(--ink);
  }
}
.titleblock .quick-contact span{
  flex-shrink:0;
  color:var(--dim);
  font-size:9px;
  text-transform:uppercase;
}
.titleblock .quick-contact strong{
  min-width:0;
  color:var(--ink);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:none;
  word-break:break-word;
}
@media (max-width:640px){
  .titleblock .sheet{grid-template-columns:1fr 1fr; font-size:9.5px;letter-spacing:.1em}
  .titleblock .sheet > div{padding:5px 8px;border-bottom:none}
  .titleblock .sheet > div:nth-child(odd){border-right:1px solid var(--hair)}
  .titleblock .sheet > div:nth-child(even){border-right:none}
  .titleblock .sheet > div:nth-child(n+3){display:none}
  .titleblock .quick-contact{grid-template-columns:1fr 1fr;font-size:12px}
  .titleblock .quick-contact a{
    justify-content:flex-start;
    padding:8px 10px;min-height:44px;
    border-right:none;
    border-bottom:1px solid var(--hair);
  }
  .titleblock .quick-contact a:first-child{border-right:1px solid var(--hair)}
  .titleblock .quick-contact a:last-child{
    grid-column:1 / -1;
    border-bottom:none;
    border-right:none;
  }
  .kv .row.mobile-defer,
  .abbrev .row.mobile-extra{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }
}

/* Narrow phones: drop the EMAIL/CALL/START labels so the 2-col contact grid
   fits without breaking long values */
@media (max-width:420px){
  .titleblock .quick-contact span{display:none}
  .titleblock .quick-contact strong{letter-spacing:.01em}
}

/* ── KV META (4 state rows) ── */
.kv{border:1px solid var(--rule);border-top:none}
.kv .row{display:grid;grid-template-columns:var(--label-col) 1fr;
         border-bottom:1px solid var(--hair);
         transition:background-color 120ms ease}
.kv .row:hover{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.kv .row:last-child{border-bottom:none}
.kv .k{
  padding:var(--row-y) var(--row-x); border-right:1px solid var(--rule);
  font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink);
}
.kv .v{padding:var(--row-y) var(--row-x);color:var(--ink);word-break:break-word;font-size:13px;line-height:1.45}

/* ── SECTION HEADER BAND ── */
.sec-head{
  margin:0; display:grid; grid-template-columns:var(--label-col) 1fr auto;
  border:1px solid var(--rule);border-top:none;
  font-size:11px; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; background:var(--ink); color:var(--bg);
}
.sec-head .n{padding:6px var(--row-x);border-right:1px solid var(--bg)}
.sec-head .t{padding:6px var(--row-x)}
.sec-head .c{padding:6px var(--row-x);border-left:1px solid var(--bg);opacity:.7}

/* ── PRACTICE (k:v grid) ── */
.practice{border:1px solid var(--rule);border-top:none}
.practice .row{display:grid;grid-template-columns:var(--label-col) 1fr;
                                border-bottom:1px solid var(--hair);
                                transition:background-color 120ms ease}
.practice .row:hover{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.practice .row:last-child{border-bottom:none}
.practice .k{
  padding:var(--row-y) var(--row-x); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  border-right:1px solid var(--rule); color:var(--ink);
}
.practice .v{padding:var(--row-y) var(--row-x);
                            font-size:13px; color:var(--ink); line-height:1.45;
                            word-break:break-word}
.practice .sheet-link{font-weight:600;border-bottom:1px solid var(--hair)}
.practice .sheet-link::after{content:" \2197";color:var(--accent);font-size:.85em}

/* ── CONTACT ── */
.contact{border:1px solid var(--rule);border-top:none}
.contact .row{display:grid;grid-template-columns:var(--label-col) 1fr;
              border-bottom:1px solid var(--hair);
              transition:background-color 120ms ease}
.contact .row:hover{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.contact .row:last-child{border-bottom:none}
.contact .k{
  padding:var(--row-y) var(--row-x); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  border-right:1px solid var(--rule); color:var(--ink);
}
.contact .v{padding:var(--row-y) var(--row-x);font-family:var(--mono);font-size:13px;color:var(--ink)}
.contact .v a{display:inline-block;padding:2px 0;min-height:auto;line-height:1.5}

/* ── ENGAGEMENT (aligns with the practice grid; phase number is a label prefix) ── */
.engagement{border:1px solid var(--rule);border-top:none}
.engagement .row{display:grid;grid-template-columns:var(--label-col) 1fr;
                 border-bottom:1px solid var(--hair);
                 transition:background-color 120ms ease}
.engagement .row:hover{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.engagement .row:last-child{border-bottom:none}
.engagement .k{
  padding:var(--row-y) var(--row-x); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  border-right:1px solid var(--rule); color:var(--ink);
  display:flex; align-items:baseline; gap:8px;
}
.engagement .k .num{
  font-family:var(--mono); font-weight:500; font-size:10px;
  letter-spacing:.12em; color:var(--dim);
}
.engagement .v{padding:var(--row-y) var(--row-x);
               font-size:13px; color:var(--ink); line-height:1.45}
@media (max-width:430px){
  .engagement .row{grid-template-columns:1fr}
  .engagement .k{border-right:none;border-bottom:1px dashed var(--hair);padding-bottom:3px}
  .engagement .v{padding-top:5px}
}

/* ── ABBREVIATIONS — 2-column glossary, drawing-doc convention ── */
.abbrev{border:1px solid var(--rule);border-top:none}
.abbrev .grid{
  display:grid; grid-template-columns:1fr 1fr;
}
.abbrev .row{
  display:grid; grid-template-columns:80px 1fr;
  padding:5px var(--row-x);
  border-bottom:1px solid var(--hair);
  font-size:12px; line-height:1.4;
  transition:background-color 120ms ease;
}
.abbrev .row:hover{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.abbrev .grid > .row:nth-child(odd){border-right:1px solid var(--hair)}
.abbrev .row .term{
  font-family:var(--mono); font-weight:600; font-size:10.5px;
  letter-spacing:.1em; color:var(--ink);
}
.abbrev .row .def{color:var(--ink)}
@media (max-width:640px){
  .abbrev .grid{grid-template-columns:1fr}
  .abbrev .grid > .row{border-right:none !important}
  .count-swap[data-compact]{font-size:0}
  .count-swap[data-compact]::after{
    content:attr(data-compact);
    font-size:10px;
    letter-spacing:.14em;
  }
}
/* abbr underline aesthetic — subtle dotted */
abbr[title]{
  text-decoration:underline dotted var(--hair);
  text-underline-offset:2px;
  cursor:help;
}

/* ── GENERAL NOTES — drawing-doc numbered list ── */
.notes{border:1px solid var(--rule);border-top:none;padding:var(--row-y) 0 calc(var(--row-y) + 2px)}
.notes ol{margin:0;padding:0;list-style:none;counter-reset:gn}
.notes li{
  counter-increment:gn;
  display:grid; grid-template-columns:42px 1fr;
  padding:5px var(--row-x);
  border-bottom:1px solid var(--hair);
  font-size:12.5px; line-height:1.5; color:var(--ink);
}
.notes li:last-child{border-bottom:none}
.notes li::before{
  content:counter(gn, decimal-leading-zero) ".";
  font-family:var(--mono); font-weight:600; color:var(--dim);
  letter-spacing:.06em;
}

/* ── FOOTER ── */
.company-page footer{
  border:1px solid var(--rule); border-top:none;
  padding:0; text-align:left;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em;
  color:var(--ink); line-height:1.6;
}
.company-page footer p{
  margin:0;
  display:grid;
  grid-template-columns:var(--label-col) 1fr;
  border-bottom:1px solid var(--hair);
}
.company-page footer p:last-child{border-bottom:none}
.company-page footer .f-label{
  padding:7px var(--row-x);
  border-right:1px solid var(--rule);
  color:var(--ink);
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.company-page footer .f-value{
  min-width:0;
  padding:7px var(--row-x);
  color:var(--dim);
  overflow-wrap:anywhere;
}
.company-page footer .disclaimer .f-value{
  font-size:10px;
  letter-spacing:.03em;
  line-height:1.55;
}
.company-page footer .signature{
  font-size:10px;
  letter-spacing:.04em;
  text-transform:none;
}
.company-page footer .terms{
  font-size:10px;
  letter-spacing:.04em;
  text-transform:none;
}
.company-page footer .terms a{white-space:nowrap;border-bottom-color:var(--hair)}
.company-page footer .legal .f-value{color:var(--ink)}
/* Print-only QR code in footer — SVG fetched only when printing */
.qr-print{display:none}
@media print{
  .qr-print{
    display:flex; flex-direction:column; align-items:center;
    margin:12pt auto 6pt;
  }
  .qr-print::before{
    content:''; display:block; width:60pt; height:60pt;
    background:url('qr.svg') center/contain no-repeat;
    margin-bottom:6pt;
  }
  .qr-print span{
    font-family:ui-monospace,monospace; font-size:7pt;
    letter-spacing:.1em; color:#000;
  }
}

/* ── RESPONSIVE ── */
@media (max-width:640px){
  .frame{padding:10px 10px 24px;border-left:none;border-right:none;
         background-image:none}
  .frame > .reg-tl, .frame > .reg-tr, .frame > .reg-bl, .frame > .reg-br{display:none}
  body{font-size:14px}
  .titleblock-head{grid-template-columns:minmax(0,1fr) var(--sheet-title-col)}
  .titleblock .firm{gap:10px;
                    border-right:1px solid var(--rule);border-bottom:none}
  .titleblock .firm .record{font-size:9.5px;letter-spacing:.28em}
  .titleblock .firm .record::before, .titleblock .firm .record::after{width:18px}
  .titleblock .seal{padding:10px}
  .titleblock .sub{font-size:10px;letter-spacing:.14em;padding:7px 10px}
  .kv .k,.contact .k{font-size:10px;letter-spacing:.1em}
  .kv .v,.contact .v{font-size:12.5px}
  .contact .v a{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;line-height:1.5}
  .sec-head{font-size:11px;letter-spacing:.12em}
  .practice .k{font-size:11px;letter-spacing:.08em}
  .practice .v{font-size:14px}
  .engagement .k{font-size:11px}.engagement .v{font-size:14px}
  .abbrev .row{font-size:13px}.abbrev .row .term{font-size:11px}
  .notes li{font-size:13.5px}
  .company-page footer{font-size:11px;letter-spacing:.06em}
  .company-page footer .f-label{font-size:11px;letter-spacing:.08em}
  .company-page footer .disclaimer .f-value{font-size:11px}
}
@media (max-width:340px){
  .topstrip{font-size:7.5px;letter-spacing:.1em}
  .topstrip .doc-id::before{font-size:7.5px;letter-spacing:.1em;white-space:nowrap}
  .titleblock-head{grid-template-columns:1fr}
  .titleblock .firm{border-right:none}
  .titleblock .seal{display:none}
}
/* Stack k:v on narrow phones — labels won't fit at 130px even */
@media (max-width:430px){
  .kv .row,.practice .row,.contact .row{
    grid-template-columns:1fr;
  }
  .kv .k,.practice .k,.contact .k{
    border-right:none;
    border-bottom:1px dashed var(--hair);
    padding-bottom:3px;
  }
  .kv .v,.practice .v,.contact .v{
    padding-top:5px;
  }
  .company-page footer p{grid-template-columns:1fr}
  .company-page footer .f-label{
    border-right:none;
    border-bottom:1px dashed var(--hair);
    padding-bottom:3px;
  }
  .company-page footer .f-value{padding-top:5px}
  .sec-head{grid-template-columns:auto 1fr auto}
  .sec-head .n{padding-right:8px}
}

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce){
  .titleblock .seal:hover .seal-img{transform:none !important}
  .aside .stamp,.aside .stamp-warn{transform:none !important}
  .aside .compass:hover .north{transform:none!important}
  a:active,.titleblock .quick-contact a:active{transform:none!important}
}

/* ── Reduced transparency */
@media (prefers-reduced-transparency:reduce){
  .layout{background:var(--bg)}
}

/* ── High contrast: strengthen hairline borders */
@media (prefers-contrast:more){
  :root{--hair:#A8A59E}
}

/* ── PRINT ── */
@page{margin:0.6in 0.5in 0.5in 0.5in}
@media print{
  .layout{display:block;max-width:none;padding:0;gap:0}
  .frame{max-width:none;padding:0;border:none;background-image:none}
  .aside,.frame > .reg-tl,.frame > .reg-tr,.frame > .reg-bl,.frame > .reg-br{
    display:none !important
  }
  .titleblock,.kv,.practice,.contact,.sec-head,.company-page footer{
    border-color:#000; page-break-inside:avoid; break-inside:avoid
  }
  .sec-head{background:#000;color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .titleblock .seal-img{
    -webkit-print-color-adjust:exact;print-color-adjust:exact
  }
  .titleblock .firm .record::before,.titleblock .firm .record::after{background:#666}
  .company-page footer .legal,.company-page footer .disclaimer{color:#000}
  main{break-before:auto}
  h1,h2,.sec-head{page-break-after:avoid;break-after:avoid}
}

/* Service sheets and 404 */
.service-page .sheet{
  width:min(820px,calc(100% - 48px));
  margin:24px auto 60px;
  border:1px solid var(--ink);
  background:var(--bg);
}
.service-page .datum{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:7px 12px;
  border-bottom:1px solid var(--ink);
  color:var(--dim);
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.service-page .title{
  display:grid;
  grid-template-columns:1fr var(--sheet-title-col);
  border-bottom:1px solid var(--ink);
}
.service-page .title-copy{padding:var(--sheet-title-padding)}
.service-page .eyebrow{margin:0 0 16px;color:var(--dim);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.service-page h1{margin:0;font-family:var(--display);font-size:var(--sheet-title-size);font-weight:500;line-height:1.02;letter-spacing:-.015em}
.service-page .dek{max-width:690px;margin:22px 0 0;color:var(--dim);font-size:13px;line-height:1.7}
.service-page .mark{display:grid;place-items:center;border-left:1px solid var(--ink);padding:18px}
.service-page .mark img{width:var(--sheet-mark-size);height:var(--sheet-mark-size)}
.service-page .meta,.service-page .register{border-bottom:1px solid var(--ink)}
.service-page .row{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--hair)}
.service-page .row:last-child{border-bottom:0}
.service-page .k{padding:9px 14px;border-right:1px solid var(--ink);font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}
.service-page .v{padding:9px 14px}
.service-page .section-title{
  display:grid;
  grid-template-columns:90px 1fr auto;
  margin:0;
  padding:0;
  border-bottom:1px solid var(--ink);
  background:var(--ink);
  color:var(--bg);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.service-page .faq .k{text-transform:none;letter-spacing:.02em;font-size:11px;font-weight:600}
.service-page .section-title span{padding:7px 13px}
.service-page .section-title .n{border-right:1px solid var(--bg)}
.service-page .section-title .count{border-left:1px solid var(--bg);opacity:.75}
.service-page .intake{padding:28px;border-bottom:1px solid var(--ink)}
.service-page .intake-grid{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.service-page .intake h2{margin:0 0 8px;font-size:12px;letter-spacing:.15em;text-transform:uppercase}
.service-page .intake p{margin:0;color:var(--dim);font-size:12px;line-height:1.65}
.service-page .actions{display:flex;gap:8px}
.service-page .button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--ink);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.service-page .button.primary{background:var(--ink);color:var(--bg)}
.service-page .button:hover,.service-page .button:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.service-page .notice{margin-top:13px;color:var(--dim);font-size:10px}
.service-page footer{display:grid;grid-template-columns:1fr auto;gap:20px;padding:12px 14px;color:var(--dim);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.service-page footer .inquiries{grid-column:1 / -1;border-top:1px solid var(--hair);padding-top:8px;margin-top:4px}
.service-page footer .inquiries a{color:var(--ink);border-bottom-color:var(--hair)}
.service-page .not-found{padding:72px 42px}
.service-page .not-found .code{margin:0;color:var(--accent);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.service-page .not-found h1{margin-top:14px}
.service-page .not-found p{max-width:600px;margin:20px 0 30px;color:var(--dim)}
@media (max-width:640px){
  .service-page .sheet{width:calc(100% - 28px);margin:24px auto 40px}
  .service-page .datum{letter-spacing:.1em}
  .service-page .title{grid-template-columns:1fr var(--sheet-title-col)}
  .service-page .dek{font-size:12px}
  .service-page .row{grid-template-columns:1fr}
  .service-page .k{border-right:0;border-bottom:1px dashed var(--hair);padding-bottom:5px}
  .service-page .v{padding-top:7px}
  .service-page .section-title{grid-template-columns:70px 1fr auto}
  .service-page .section-title .count{display:none}
  .service-page .intake{padding:22px 16px}
  .service-page .intake-grid{grid-template-columns:1fr}
  .service-page .actions{flex-wrap:wrap}
  .service-page footer{grid-template-columns:1fr}
}
@media (max-width:350px){
  .service-page .title{grid-template-columns:1fr}
  .service-page .mark{display:none}
}
@media print{
  .service-page .sheet{width:100%;margin:0;border-color:#000}
  .service-page .button.primary{color:#fff!important;background:#000!important}
}
