/* Friedman Brueggemeyer - institutional module shell */
:root{
  --canvas:#f2f1ec; --surface:#ffffff; --text:#1f1d1a; --accent:#6d1f2c;
  --accent-dk:#521621; --rule:#c9c4b8; --muted:#5d574d; --base:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--canvas);color:var(--text);
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:var(--base);line-height:1.62}
img{max-width:100%;height:auto}
a{color:var(--accent);text-decoration:underline}
a:hover{color:var(--accent-dk)}
a:focus-visible,.szb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{margin:0 0 .5rem;line-height:1.25;font-weight:700}
p{margin:0 0 1rem}
ul{margin:0;padding:0;list-style:none}

/* text-size switcher, CSS only */
.tx{display:block;height:0;overflow:hidden}
#tx-s:target ~ .page{--base:14px}
#tx-m:target ~ .page{--base:16px}
#tx-l:target ~ .page{--base:19px}
.page{font-size:var(--base)}

.skip{position:absolute;left:-9999px;top:0;z-index:20;background:var(--accent);color:#fff;
  padding:.6rem 1rem;text-decoration:none}
.skip:focus{left:0}

.wrap{max-width:1060px;margin:0 auto;padding:0 20px}

/* 1. identity + utility header */
.idhead{background:var(--surface);border-bottom:1px solid var(--rule)}
.idrow{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:78px;
  padding-top:12px;padding-bottom:12px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.brandtext{display:block}
.bname{display:block;font-size:1.85em;font-weight:700;letter-spacing:.02em;line-height:1.1}
.bdesc{display:block;font-family:Verdana,Geneva,Arial,sans-serif;font-size:.72em;
  letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.util{display:flex;align-items:center;gap:16px;font-family:Verdana,Geneva,Arial,sans-serif;font-size:.75em}
.sizer{display:flex;align-items:center;gap:5px}
.sizer-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.szb{display:inline-block;min-width:26px;padding:3px 6px;border:1px solid var(--rule);
  background:var(--canvas);color:var(--accent);text-align:center;text-decoration:none;line-height:1.2}
.szb:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.idx{color:var(--accent);letter-spacing:.04em;text-transform:uppercase}

/* 2. rectangular top menu bar */
.tabsbar{background:var(--accent)}
.tabs{max-width:1060px;margin:0 auto;padding:0 8px;display:flex;flex-wrap:wrap}
.tabs a{display:block;padding:0 16px;line-height:36px;color:#fff;text-decoration:none;
  font-size:.86em;letter-spacing:.03em;border-right:1px solid rgba(255,255,255,.22)}
.tabs li:first-child a{border-left:1px solid rgba(255,255,255,.22)}
.tabs a:hover{background:var(--accent-dk);color:#fff}
.tabs li.on a{background:var(--surface);color:var(--accent);font-weight:700}

/* 3. breadcrumb */
.crumb{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.78em;color:var(--muted);
  padding:9px 0;border-bottom:1px solid var(--rule)}
.crumb a{color:var(--muted)}
.crumb .sep{color:var(--rule);padding:0 2px}
.crumb-lead{text-transform:uppercase;letter-spacing:.06em}
.crumb [aria-current]{color:var(--text);font-weight:700}

/* grid */
.grid{display:grid;grid-template-columns:236px 1fr;gap:34px;padding:26px 0 44px;align-items:start}
.main{min-width:0}

/* square module headings */
.modh{font-size:1em;letter-spacing:.04em;text-transform:uppercase;margin:0;
  background:var(--accent);color:#fff;padding:7px 10px;border-radius:0}
.module{background:var(--surface);border:1px solid var(--rule);margin-bottom:18px}
.modlist li{border-top:1px solid var(--rule)}
.modlist li:first-child{border-top:0}
.modlist a{display:block;padding:7px 10px;font-size:.88em;text-decoration:none;color:var(--accent)}
.modlist a:hover{background:var(--canvas);text-decoration:underline}
.modlist li.on a{font-weight:700;color:var(--text);border-left:4px solid var(--accent);padding-left:6px}

/* 5. leading article */
.lead-article{background:var(--surface);border:1px solid var(--rule);
  border-top:4px solid var(--accent);padding:24px 34px 12px;margin-bottom:22px}
.leadtitle{font-size:1.9em;margin-bottom:.25rem}
.leadtitle a{color:var(--text);text-decoration:none}
.leadtitle a:hover{color:var(--accent);text-decoration:underline}
.meta{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.74em;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);margin:0 0 1rem}
.meta .dot{padding:0 4px}
.lead-article p,.detail p{max-width:75ch}
.excerpt p{max-width:44ch}
.subh{font-size:1.05em;margin-top:1.4rem;padding-left:10px;border-left:4px solid var(--accent)}
.more{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.8em;margin-bottom:1rem}
.more a{text-transform:uppercase;letter-spacing:.05em}

/* 6. two-column excerpts */
.excerpts{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin-bottom:22px}
.excol{min-width:0}
.excerpt{border-top:1px solid var(--rule);padding:16px 0 2px}
.excol:first-child .excerpt:first-child,.excol:last-child .excerpt:first-child{border-top:0;padding-top:0}
.exh{font-size:1.22em;margin-bottom:.2rem}
.exh a{color:var(--text);text-decoration:none}
.exh a:hover{color:var(--accent);text-decoration:underline}
.excerpt p{font-size:.95em}

/* 7. resources block */
.resblock{background:var(--surface);border:1px solid var(--rule);padding:20px 22px 8px}
.resgrid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.rows li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--rule);
  padding:7px 2px;font-size:.92em}
.rows.lit li{display:block}
.litname{display:block}
.rows.lit .rmeta{display:block;white-space:normal;margin-top:2px}
.rmeta{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.78em;color:var(--muted);white-space:nowrap}

/* detail pages */
.detail{background:var(--surface);border:1px solid var(--rule);
  border-top:4px solid var(--accent);padding:24px 34px 10px}
.ptitle{font-size:2.05em;margin-bottom:.3rem}

/* project register */
.register{border-top:1px solid var(--rule);margin:.5rem 0 1.4rem}
.reg{display:grid;grid-template-columns:minmax(180px,1.1fr) 150px minmax(0,2fr);gap:14px;
  border-bottom:1px solid var(--rule);padding:11px 2px;align-items:baseline}
.reg.noscope{grid-template-columns:minmax(180px,1.1fr) 1fr}
.regname{font-weight:700;color:var(--accent)}
span.regname{color:var(--text)}
.regloc{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.76em;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted)}
.regscope{font-size:.92em;color:var(--text)}

/* 8. footer */
.modfoot{background:var(--surface);border-top:3px solid var(--accent);margin-top:10px;
  padding:28px 0 34px}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.fcol .modh{margin-bottom:8px}
.fcol .modlist a{padding:5px 0;font-size:.86em}
.fnote{font-size:.85em;color:var(--muted);max-width:34ch}
.legal{font-family:Verdana,Geneva,Arial,sans-serif;font-size:.76em}

@media (max-width:900px){
  .grid{grid-template-columns:1fr;gap:0;padding-top:18px}
  .rail{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:20px}
  .rail .module{flex:1 1 260px;margin-bottom:0}
  .excerpts{grid-template-columns:1fr;gap:0}
  .excol:last-child .excerpt:first-child{border-top:1px solid var(--rule);padding-top:16px}
  .resgrid{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .idrow{flex-direction:column;align-items:flex-start;gap:10px}
  .util{align-self:flex-start;flex-wrap:wrap}
  .bname{font-size:1.5em}
  .tabs a{line-height:44px;padding:0 12px;font-size:.88em}
  .leadtitle{font-size:1.5em}
  .ptitle{font-size:1.6em}
  .lead-article,.detail,.resblock{padding-left:16px;padding-right:16px}
  .reg,.reg.noscope{grid-template-columns:1fr;gap:3px}
  .fgrid{grid-template-columns:1fr}
  .rail{display:block}
  .rail .module{margin-bottom:14px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
