@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@400;500;600&display=swap');

:root{
  --cream:#F1E8D8;
  --paper:#FAF6EC;
  --ink:#1A1815;
  --navy:#0E1A30;
  --navy-deep:#0A1424;
  --gold:#9C7A3C;
  --gold-light:#C7A868;
  --stone:#6B6355;
  --stone-on-navy:#AFAA9C;
  --rule:rgba(26,24,21,0.16);
  --rule-on-navy:rgba(255,255,255,0.14);
  --max:1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Playfair Display',serif;
  font-weight:500;
  margin:0;
  color:inherit;
  line-height:1.15;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 40px;
}

/* ---------- Header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--cream);
  border-bottom:1px solid var(--rule);
}
.header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:20px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:'Playfair Display',serif;
  font-size:19px;
  letter-spacing:0.02em;
}
.brand img{height:58px;width:auto;margin:-8px 0;}

.nav-links{
  display:flex;
  gap:36px;
  font-size:14px;
  letter-spacing:0.04em;
}
.nav-links a{
  color:var(--ink);
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .2s ease;
}
.nav-links a:hover,
.nav-links a.active{
  border-bottom-color:var(--gold);
}

.nav-toggle{
  display:none;
  background:none;
  border:1px solid var(--rule);
  width:40px;
  height:40px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after{
  content:'';
  display:block;
  width:18px;
  height:1px;
  background:var(--ink);
  position:relative;
}
.nav-toggle span::before{position:absolute;top:-6px;}
.nav-toggle span::after{position:absolute;top:6px;}

/* ---------- Buttons / links ---------- */
.btn{
  display:inline-block;
  padding:14px 30px;
  border:1px solid var(--ink);
  font-size:14px;
  letter-spacing:0.04em;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn-invert{border-color:var(--paper);color:var(--paper);}
.btn-invert:hover{background:var(--paper);color:var(--navy);}
.text-link{
  font-size:14px;
  letter-spacing:0.03em;
  border-bottom:1px solid var(--gold);
  padding-bottom:2px;
}

/* ---------- Sections ---------- */
section{padding:110px 0;}
.section-navy{background:var(--navy);color:var(--paper);}
.section-paper{background:var(--paper);}

.eyebrow{
  font-size:12px;
  letter-spacing:0.14em;
  color:var(--gold);
  margin-bottom:22px;
  display:flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{
  content:'';
  width:28px;
  height:1px;
  background:var(--gold);
}

.rule{
  width:64px;
  height:1px;
  background:var(--gold);
  margin:26px 0;
  border:none;
}
.rule-center{margin-left:auto;margin-right:auto;}

/* ---------- Hero ---------- */
.hero{
  padding:130px 0 110px;
}
.hero h1{
  font-size:52px;
  letter-spacing:-0.01em;
}
.hero-sub{
  font-size:18px;
  color:var(--stone);
  max-width:34ch;
  margin-top:26px;
}
.hero-aside{
  border-left:1px solid var(--rule);
  padding-left:36px;
}
.hero-aside p{
  font-size:15px;
  color:var(--stone);
  margin:0 0 24px;
}

/* ---------- Grids ---------- */
.two-col{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:80px;
}
.three-col{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px;
}
.values-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:28px;
  margin-top:20px;
}
.value-item{
  border-top:1px solid var(--rule-on-navy);
  padding-top:18px;
  font-size:15px;
}

/* ---------- Services list ---------- */
.services-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--rule);
}
.service-row{
  border-bottom:1px solid var(--rule);
  padding:34px 36px 34px 0;
  display:flex;
  gap:18px;
}
.service-row:nth-child(odd){border-right:1px solid var(--rule);padding-left:0;}
.service-row:nth-child(even){padding-left:36px;}
.service-mark{
  color:var(--gold);
  font-size:20px;
  line-height:1;
  margin-top:4px;
}
.service-row h3{font-size:20px;margin-bottom:10px;}
.service-row p{font-size:15px;color:var(--stone);margin:0;max-width:38ch;}

/* ---------- Leadership ---------- */
.leader{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:56px;
  padding:64px 0;
  border-bottom:1px solid var(--rule);
}
.leader:last-of-type{border-bottom:none;}
.leader-photo{
  aspect-ratio:4/5;
  background:var(--navy);
  color:var(--gold-light);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Playfair Display',serif;
  font-size:48px;
  letter-spacing:0.04em;
}
.leader-role{
  font-size:13px;
  letter-spacing:0.06em;
  color:var(--gold);
  margin-bottom:14px;
}
.leader h2{font-size:30px;margin-bottom:4px;}
.leader p{color:var(--stone);max-width:62ch;}
.leader p+p{margin-top:16px;}

/* ---------- Contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
}
.contact-item{margin-bottom:30px;}
.contact-item .label{
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--gold);
  margin-bottom:8px;
}
.contact-item .value{font-size:17px;}
.contact-note{
  font-size:14px;
  color:var(--stone);
  margin-top:44px;
  border-top:1px solid var(--rule);
  padding-top:24px;
}

form.inquiry{display:flex;flex-direction:column;gap:22px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:13px;letter-spacing:0.04em;color:var(--stone);}
.field input,
.field textarea{
  background:transparent;
  border:none;
  border-bottom:1px solid var(--rule);
  padding:10px 2px;
  font-family:'Inter',sans-serif;
  font-size:16px;
  color:var(--ink);
  outline:none;
  transition:border-color .2s ease;
}
.field input:focus,
.field textarea:focus{border-color:var(--gold);}
.field textarea{resize:vertical;min-height:110px;}
.form-status{font-size:14px;color:var(--stone);min-height:20px;}

/* ---------- Footer ---------- */
footer{
  background:var(--navy-deep);
  color:var(--stone-on-navy);
  padding:64px 0 36px;
}
.footer-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:40px;
  padding-bottom:40px;
  border-bottom:1px solid var(--rule-on-navy);
}
.footer-brand{
  font-family:'Playfair Display',serif;
  color:var(--paper);
  font-size:18px;
}
.footer-tag{font-size:13px;margin-top:10px;max-width:32ch;}
.footer-links{display:flex;gap:60px;}
.footer-col h4{
  font-family:'Inter',sans-serif;
  font-size:12px;
  letter-spacing:0.08em;
  color:var(--gold-light);
  margin-bottom:16px;
  font-weight:600;
}
.footer-col a{
  display:block;
  font-size:14px;
  color:var(--stone-on-navy);
  margin-bottom:10px;
}
.footer-col a:hover{color:var(--paper);}
.footer-bottom{
  padding-top:26px;
  font-size:12px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
}

/* ---------- Page intro (non-home pages) ---------- */
.page-intro{padding:150px 0 90px;}
.page-intro .eyebrow{margin-bottom:26px;}
.page-intro h1{font-size:44px;max-width:18ch;}
.page-intro .lede{
  font-size:18px;
  color:var(--stone);
  max-width:60ch;
  margin-top:24px;
}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  .wrap,.header-inner{padding-left:24px;padding-right:24px;}
  .hero{grid-template-columns:1fr;gap:40px;padding-top:90px;}
  .hero h1{font-size:38px;}
  .hero-aside{border-left:none;padding-left:0;border-top:1px solid var(--rule);padding-top:28px;}
  .two-col{grid-template-columns:1fr;gap:40px;}
  .three-col{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:repeat(2,1fr);}
  .services-list{grid-template-columns:1fr;}
  .service-row:nth-child(odd){border-right:none;padding-left:0;}
  .service-row:nth-child(even){padding-left:0;}
  .leader{grid-template-columns:1fr;}
  .leader-photo{max-width:220px;}
  .contact-grid{grid-template-columns:1fr;gap:56px;}
  .nav-links{
    position:absolute;
    top:100%;left:0;right:0;
    background:var(--cream);
    flex-direction:column;
    gap:0;
    border-bottom:1px solid var(--rule);
    display:none;
  }
  .nav-links.open{display:flex;}
  .nav-links a{padding:16px 24px;border-bottom:1px solid var(--rule);}
  .nav-toggle{display:flex;}
  section{padding:70px 0;}
  .page-intro{padding:110px 0 60px;}
  .footer-top{flex-direction:column;}
  .footer-links{gap:40px;}
}

/* ---------- Home hero + mini grid (moved from inline styles so they respond on mobile) ---------- */
.hero-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:70px;
  align-items:end;
}
.hero-actions{
  margin-top:40px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:20px 28px;
}
.mini-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:36px;
}
@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .mini-grid{grid-template-columns:1fr;gap:28px;}
}
