@font-face {
  font-family:"Latin Modern Roman";
  src:url("lmroman17-regular.otf") format("opentype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
:root {
  --navy:#0d1822;
  --ivory:#f4f1e9;
  --gold:#ad936d;
  --gold-dark:#776141;
  --ink:#20282d;
  --muted:#5d6262;
  --line:#d4cec2;
  --serif:"Latin Modern Roman","Baskerville","Palatino Linotype",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
body { margin:0; font:1rem/1.7 var(--sans); background:var(--ivory); color:var(--ink); -webkit-font-smoothing:antialiased; }
main,section,footer { min-width:0; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
p,h1,h2,h3 { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; overflow-wrap:anywhere; }
a,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,summary:focus-visible { outline:2px solid var(--gold-dark); outline-offset:6px; }
.site-header a:focus-visible,.hero a:focus-visible,.site-footer a:focus-visible { outline-color:var(--gold); }
::selection { color:var(--navy); background:#d8c4a3; }
.skip-link { position:fixed; top:-8rem; left:1rem; z-index:20; color:var(--ink); background:var(--ivory); padding:.75rem 1.25rem; }
.skip-link:focus { top:1rem; }
.site-header { color:var(--ivory); background:var(--navy); }
.header-inner { max-width:1320px; width:88%; margin:auto; min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-bottom:1px solid rgba(173,147,109,.24); }
.header-name { display:flex; align-items:center; min-height:44px; font-family:var(--serif); font-size:1.125rem; letter-spacing:.07em; }
nav { display:flex; gap:2.5rem; flex-wrap:wrap; }
nav a { display:flex; align-items:center; min-height:44px; color:#cbc8c0; font-size:.875rem; padding:.6rem 0; position:relative; }
nav a::after { content:""; position:absolute; height:1px; left:0; right:0; bottom:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
nav a:hover::after,nav a:focus-visible::after { transform:scaleX(1); }
.hero { background:var(--navy); color:var(--ivory); padding:0 6%; }
.hero-identity { min-height:660px; min-height:clamp(34rem,calc(100svh - 11rem),48rem); padding:4rem 0 4.5rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; animation:identity-arrive .8s ease-out; }
.hero-monogram { width:158px; height:auto; margin-bottom:2.8rem; }
h1 { display:flex; flex-direction:column; align-items:center; max-width:100%; text-transform:uppercase; }
.brand-primary { display:block; max-width:100%; font-size:clamp(3.25rem,7.5vw,6.875rem); letter-spacing:.09em; padding-left:.09em; line-height:1.05; }
.brand-secondary { display:block; font-size:clamp(1.5rem,3.2vw,2.4rem); line-height:1.4; letter-spacing:.36em; padding-left:.36em; margin-top:.8rem; }
.identity-rule { width:38px; height:1px; background:var(--gold); margin:2.6rem 0 1.65rem; }
.hero-descriptor { text-transform:uppercase; letter-spacing:.19em; font-size:.8125rem; color:#c8b693; }
.hero-base { max-width:1320px; margin:auto; display:grid; grid-template-columns:1fr 64px 1fr; align-items:center; min-height:76px; border-top:1px solid rgba(173,147,109,.24); color:#b9b9b5; font-size:.75rem; letter-spacing:.05em; }
.hero-base > :last-child { text-align:right; }
.hero-base a { display:flex; min-height:48px; align-items:center; justify-content:center; color:var(--gold); }
.down-arrow { font-size:1.35rem; font-family:var(--serif); transition:transform .2s; }
.hero-base a:hover .down-arrow { transform:translateY(4px); }
.section-shell { max-width:1080px; width:84%; margin:0 auto; }
.office { padding:clamp(4.5rem,8vw,7rem) 0 clamp(4rem,7vw,6rem); text-align:center; }
.eyebrow { font-family:var(--sans); font-size:.875rem; text-transform:uppercase; letter-spacing:.17em; color:var(--gold-dark); }
.office-introduction { max-width:850px; margin:2rem auto 1.75rem; font:400 clamp(1.8rem,3.3vw,2.9rem)/1.35 var(--serif); text-wrap:balance; }
.no-break { white-space:nowrap; }
.office-description { max-width:52ch; margin:auto; color:var(--muted); text-wrap:pretty; }
.ownership { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:4.5rem 0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.65fr); gap:4rem; }
.ownership-heading h2 { font-size:2.5rem; line-height:1.2; padding-top:1.25rem; }
.holdings-list { min-width:0; }
.holding { border-bottom:1px solid var(--line); transition:border-color .25s; }
.holding[open] { border-bottom-color:var(--gold); }
.holding:first-child { border-top:1px solid var(--line); }
.holding summary { display:grid; grid-template-columns:24px minmax(0,1fr) 20px; gap:1rem; align-items:center; list-style:none; cursor:pointer; min-height:84px; padding:1.5rem 0; }
.holding summary::-webkit-details-marker { display:none; }
.holding-number { color:var(--gold-dark); font:400 .875rem var(--serif); }
.holding h3 { font-size:1.65rem; line-height:1.35; transition:color .2s; }
.holding summary:hover h3,.holding summary:focus-visible h3,.holding[open] h3 { color:var(--gold-dark); }
.toggle { position:relative; width:18px; height:18px; }
.toggle::before,.toggle::after { content:""; position:absolute; background:var(--gold-dark); }
.toggle::before { width:14px; height:1px; left:2px; top:8px; }
.toggle::after { width:1px; height:14px; left:8px; top:2px; transition:transform .2s; }
.holding[open] .toggle::after { transform:rotate(90deg); }
.holding-body { padding:0 2.25rem 1.85rem 40px; color:var(--muted); font-size:1rem; }
.holding-body p { max-width:48ch; text-wrap:pretty; }
.holding[open] .holding-body { animation:detail-arrive .25s ease-out; }
.stewardship { padding:4rem 0 5rem; text-align:center; }
.stewardship p { max-width:570px; margin:1.4rem auto 0; font:400 1.4rem/1.6 var(--serif); color:var(--muted); text-wrap:balance; }
.site-footer { color:var(--ivory); background:var(--navy); }
.footer-inner { max-width:1320px; width:88%; margin:auto; padding:2.5rem 0 1.5rem; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:2rem 4rem; }
.footer-identity { display:flex; align-items:center; gap:1rem; font:400 1.25rem/1.4 var(--serif); }
.footer-identity img { width:48px; height:48px; flex-shrink:0; }
.footer-identity span { overflow-wrap:anywhere; }
.footer-location { font-size:.8125rem; color:#b9b9b5; }
.back-to-top { display:flex; align-items:center; min-height:44px; width:fit-content; font-size:.875rem; color:#cbc8c0; }
.back-to-top span { color:var(--gold); margin-left:.75rem; }
.footer-bottom { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:1rem; border-top:1px solid rgba(173,147,109,.24); padding-top:1.25rem; color:#a9aba9; font-size:.75rem; }
.footer-bottom p { text-wrap:pretty; }
@keyframes identity-arrive {
  from { opacity:.85; transform:translateY(6px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes detail-arrive {
  from { opacity:.3; transform:translateY(-3px); }
  to { opacity:1; transform:translateY(0); }
}
@media(max-width:900px) {
  .header-inner { min-height:88px; }
  .ownership { grid-template-columns:1fr; gap:2rem; padding:3.5rem 0; }
  .ownership-heading h2 { padding-top:0; }
  .footer-inner { grid-template-columns:1fr auto; gap:1.5rem; }
  .back-to-top { grid-row:2; }
  .footer-bottom { grid-row:3; }
}
@media(max-width:600px) {
  .header-inner { width:88%; min-height:100px; padding:.5rem 0; flex-direction:column; justify-content:center; gap:0; }
  .header-name { font-size:1.125rem; text-align:center; }
  nav { justify-content:center; gap:2rem; }
  nav a { font-size:.875rem; }
  .hero { padding:0 6%; }
  .hero-identity { min-height:480px; min-height:clamp(28rem,calc(100svh - 10.75rem),40rem); padding:3rem 0; }
  .hero-monogram { width:124px; margin-bottom:2.4rem; }
  .brand-primary { font-size:clamp(2.1rem,10.8vw,4rem); letter-spacing:.065em; padding-left:.065em; }
  .brand-secondary { font-size:clamp(1.2rem,5vw,1.65rem); letter-spacing:.25em; padding-left:.25em; margin-top:.65rem; }
  .identity-rule { margin:2rem 0 1.4rem; }
  .hero-descriptor { font-size:.75rem; letter-spacing:.12em; }
  .hero-base { min-height:68px; grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr); gap:.5rem; font-size:.75rem; letter-spacing:0; }
  .section-shell { width:86%; }
  .office { padding:4.5rem 0 4rem; }
  .office-introduction { font-size:clamp(1.75rem,7.8vw,2.1rem); margin:1.5rem auto; }
  .office-description { font-size:1rem; }
  .ownership-heading h2 { font-size:2.2rem; }
  .holding summary { grid-template-columns:20px minmax(0,1fr) 18px; gap:.7rem; min-height:76px; padding:1.25rem 0; }
  .holding h3 { font-size:1.4rem; }
  .holding-body { padding:0 .4rem 1.5rem 31px; }
  .stewardship { padding:3rem 0 4rem; }
  .stewardship p { font-size:1.35rem; }
  .footer-inner { width:88%; grid-template-columns:1fr; gap:1.3rem; }
  .footer-identity { font-size:1.15rem; }
  .footer-location { grid-row:2; padding-left:64px; }
  .back-to-top { grid-row:3; }
  .footer-bottom { grid-row:4; flex-direction:column; gap:.6rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
}
