:root {
  --bg: #f7f5ef;
  --surface: #ffffff;
  --ink: #18212a;
  --muted: #52606d;
  --navy: #0f2337;
  --navy-2: #163955;
  --gold: #9b6f20;
  --gold-soft: #e7d7b3;
  --line: #d9dee3;
  --focus: #b45309;
  --max: 72rem;
  --radius: 1rem;
  --shadow: 0 12px 28px rgba(15,35,55,.08);
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body {
  margin: 0;
  min-width: 18rem;
  background: var(--bg);
  color: var(--ink);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: #174f7a; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: .14em; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: .2rem solid var(--focus);
  outline-offset: .2rem;
}
h1,h2,h3 {
  color: var(--navy);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.12;
  text-wrap: balance;
}
h1 { font-size: clamp(2.15rem, 8vw, 4.7rem); margin: 0 0 1rem; letter-spacing: -.025em; }
h2 { font-size: clamp(1.65rem, 4vw, 2.5rem); margin: 0 0 .8rem; }
h3 { font-size: 1.28rem; margin: 0 0 .45rem; }
p,ul { margin-top: 0; }
.container { width: min(100% - 2rem, var(--max)); margin-inline: auto; }
.narrow { width: min(100% - 2rem, 52rem); margin-inline: auto; }
.skip-link {
  position: fixed; top: .5rem; left: .5rem; z-index: 999;
  padding: .65rem .9rem; background: #fff; color: #000;
  border: 2px solid #000; transform: translateY(-160%);
}
.skip-link:focus { transform: none; }
.site-header { background: var(--navy); color: #fff; border-bottom: .24rem solid var(--gold); }
.header-inner { min-height: 4.6rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; gap: .7rem; align-items: center; color: #fff; text-decoration: none; font-weight: 750; }
.brand-mark {
  display:grid; place-items:center; width:2.45rem; height:2.45rem; border:1px solid rgba(255,255,255,.55);
  border-radius:.7rem; font-family: Georgia,serif; font-weight:700; color:#fff;
}
.desktop-nav { display: none; }
.desktop-nav a { color: #fff; text-decoration: none; padding: .45rem .3rem; border-bottom: 2px solid transparent; }
.desktop-nav a[aria-current="page"], .desktop-nav a:hover { border-bottom-color: var(--gold-soft); }
.mobile-nav { position: relative; }
.mobile-nav summary {
  cursor: pointer; list-style: none; padding: .55rem .7rem; border:1px solid rgba(255,255,255,.5);
  border-radius:.6rem; color:#fff; font-weight:700;
}
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav[open] nav {
  position:absolute; right:0; top:3.1rem; z-index:30; width:min(19rem, calc(100vw - 2rem));
  background:#fff; border:1px solid var(--line); border-radius:.8rem; padding:.45rem; box-shadow:var(--shadow);
}
.mobile-nav nav a { display:block; padding:.65rem .75rem; color:var(--navy); text-decoration:none; border-radius:.45rem; }
.mobile-nav nav a:hover, .mobile-nav nav a[aria-current="page"] { background:#edf2f5; }
.hero { padding: clamp(2.7rem, 8vw, 6.8rem) 0 3.6rem; background: linear-gradient(180deg,#f7f5ef 0,#eef3f5 100%); }
.hero-grid { display:grid; gap:2rem; align-items:center; }
.eyebrow { color:var(--gold); font-weight:800; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; }
.lead { font-size:clamp(1.08rem,2.7vw,1.32rem); color:#334554; max-width:52rem; }
.button-row { display:flex; flex-wrap:wrap; gap:.7rem; margin:1.4rem 0; }
.button {
  display:inline-block; background:var(--navy); color:#fff; text-decoration:none; padding:.78rem 1rem;
  border:2px solid var(--navy); border-radius:.7rem; font-weight:760;
}
.button:hover { background:var(--navy-2); }
.button.secondary { background:transparent; color:var(--navy); }
.button.secondary:hover { background:#fff; }
.profile-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1rem; max-width:27rem; margin-inline:auto;
}
.profile-card img { width:100%; border-radius:.75rem; object-fit:contain; background:#faf9f6; }
.profile-card figcaption { padding:.8rem .25rem .15rem; color:var(--muted); font-size:.92rem; }
.section { padding: clamp(3rem,7vw,5.5rem) 0; }
.section.alt { background:#fff; border-block:1px solid #e6e8eb; }
.section-heading { max-width:48rem; margin-bottom:1.6rem; }
.kicker { color:var(--gold); text-transform:uppercase; font-size:.76rem; font-weight:850; letter-spacing:.09em; }
.cards { display:grid; gap:1rem; }
.card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem;
  box-shadow:0 5px 18px rgba(15,35,55,.045);
}
.card p:last-child, .card ul:last-child { margin-bottom:0; }
.fact-grid { display:grid; gap:.8rem; margin-top:1rem; }
.fact { background:#fff; border-left:.26rem solid var(--gold); padding:.85rem 1rem; }
.timeline { display:grid; gap:1rem; }
.role { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem; }
.role-head { display:flex; flex-direction:column; gap:.1rem; margin-bottom:.75rem; }
.role-head p { color:var(--muted); margin:0; }
.role ul, .clean-list { padding-left:1.25rem; }
.role li, .clean-list li { margin:.4rem 0; }
.skill-group + .skill-group { margin-top:1rem; }
.callout {
  background:var(--navy); color:#fff; border-radius:var(--radius); padding:1.4rem;
}
.callout h2,.callout h3 { color:#fff; }
.callout a { color:#fff; }
details.faq { background:#fff; border:1px solid var(--line); border-radius:.8rem; padding:.8rem 1rem; }
details.faq + details.faq { margin-top:.7rem; }
details.faq summary { cursor:pointer; font-weight:780; color:var(--navy); }
details.faq p { margin:.7rem 0 0; }
.contact-grid { display:grid; gap:1.3rem; }
.contact-list { margin:0; padding:0; list-style:none; }
.contact-list li + li { margin-top:.65rem; }
.contact-form { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.25rem; }
label { display:block; font-weight:750; margin:.85rem 0 .25rem; }
input, textarea {
  width:100%; border:1px solid #8a959f; border-radius:.5rem; padding:.72rem; font:inherit; color:var(--ink); background:#fff;
}
textarea { min-height:9rem; resize:vertical; }
.form-note { color:var(--muted); font-size:.9rem; }
.honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.site-footer { background:#0b1a29; color:#dbe5ec; padding:2.2rem 0 5rem; }
.footer-grid { display:grid; gap:1.2rem; }
.site-footer a { color:#fff; }
.footer-small { color:#aebbc6; font-size:.88rem; }
.back-to-top {
  position:fixed; right:.8rem; bottom:.8rem; z-index:20; background:var(--navy); color:#fff;
  border:1px solid rgba(255,255,255,.45); border-radius:999px; padding:.55rem .8rem; text-decoration:none;
  box-shadow:var(--shadow); font-weight:760;
}
.page-hero { padding:3rem 0 2rem; }
.page-hero p { max-width:50rem; font-size:1.08rem; color:#445563; }
.meta-note {
  border:1px solid #d8c69f; background:#fff9ea; color:#4d3a13; padding:.85rem 1rem; border-radius:.7rem;
}
code { background:#edf1f3; padding:.08em .3em; border-radius:.25rem; }
hr { border:0; border-top:1px solid var(--line); margin:2rem 0; }

@media (min-width: 44rem) {
  .cards.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-grid { grid-template-columns:1.3fr 1fr; }
}
@media (min-width: 58rem) {
  .desktop-nav { display:flex; gap:.9rem; align-items:center; }
  .mobile-nav { display:none; }
  .hero-grid { grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr); gap:4rem; }
  .cards.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .contact-grid { grid-template-columns:.85fr 1.15fr; gap:2rem; }
  .role-head { flex-direction:row; justify-content:space-between; align-items:flex-start; gap:1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
@media print {
  .site-header,.site-footer,.back-to-top,.button-row { display:none !important; }
  body { background:#fff; color:#000; }
  .section,.page-hero { padding:1rem 0; }
  a { color:#000; text-decoration:none; }
}
