/* ============================================
   Girard Capital Management — site stylesheet
   ============================================ */

:root{
  --ink:#1C2E28;
  --paper:#F6F1E6;
  --paper-dim:#EFE8D8;
  --gold:#A8823D;
  --gold-soft:#C9A972;
  --sage:#52695B;
  --charcoal:#2B2B26;
  --muted:#5a5a50;
  --line: rgba(28,46,40,0.18);
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--charcoal);
  font-family:'Source Serif 4', Georgia, serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}

.display{font-family:'Fraunces', Georgia, serif;}
.label{
  font-family:'Inter', system-ui, sans-serif;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--sage);
}
.wrap{max-width:var(--max); margin:0 auto; padding:0 40px;}

/* ---------- Masthead / nav ---------- */
.masthead{padding:22px 0 0; text-align:center;}
.masthead .crest{width:46px; height:46px; margin:0 auto 10px;}
.wordmark{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500;
  font-size:22px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-decoration:none;
  display:inline-block;
}
.wordmark span{color:var(--gold);}
.rule-double{
  margin-top:16px;
  height:5px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.rule-thin{height:1px; background:var(--line);}
nav.mainnav{
  font-family:'Inter', system-ui, sans-serif;
  display:flex; justify-content:center; gap:36px;
  padding:14px 0;
  font-size:12.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:500;
  flex-wrap:wrap;
}
nav.mainnav a{text-decoration:none; opacity:0.82; border-bottom:1px solid transparent; padding-bottom:3px;}
nav.mainnav a:hover, nav.mainnav a:focus-visible{opacity:1; border-color:var(--gold);}
nav.mainnav a[aria-current="page"]{opacity:1; border-color:var(--gold);}

/* ---------- Buttons ---------- */
.btn{
  font-family:'Inter', system-ui, sans-serif;
  font-size:12.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:600;
  padding:15px 30px;
  background:var(--ink);
  color:var(--paper);
  text-decoration:none;
  display:inline-block;
  border:1px solid var(--ink);
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.btn:hover, .btn:focus-visible{background:transparent; color:var(--ink);}
.btn-gold{background:var(--gold); border-color:var(--gold); color:var(--ink);}
.btn-gold:hover, .btn-gold:focus-visible{background:transparent; color:var(--paper);}
.btn-ghost{
  font-family:'Inter', system-ui, sans-serif;
  font-size:12.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid var(--gold);
  padding-bottom:4px;
}
.btn-row{display:flex; gap:18px; align-items:center; flex-wrap:wrap;}

/* ---------- Sections ---------- */
section{padding:88px 0;}
.section-head{margin-bottom:48px; max-width:62ch;}
.section-head .label{margin-bottom:14px; display:block;}
.section-head h2{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500; font-size:36px;
  margin:0 0 16px; letter-spacing:-0.01em; line-height:1.15;
}
.section-head p{color:var(--muted); font-size:16.5px; margin:0;}
.tone-dim{background:var(--paper-dim);}
.tone-rule{border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* ---------- Page banner (interior pages) ---------- */
.pagehead{padding:70px 0 56px; border-bottom:1px solid var(--line);}
.pagehead h1{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500; font-size:44px; margin:14px 0 16px;
  letter-spacing:-0.01em; line-height:1.1;
}
.pagehead p{font-size:18px; color:var(--muted); max-width:56ch; margin:0;}

/* ---------- Hero (home) ---------- */
.hero{padding:88px 0 76px;}
.hero .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:60px; align-items:center;}
.hero h1{
  font-family:'Fraunces', Georgia, serif;
  font-size:50px; line-height:1.08; font-weight:500;
  margin:18px 0 22px; letter-spacing:-0.01em;
}
.hero h1 em{font-style:italic; color:var(--sage); font-weight:400;}
.hero p.lede{font-size:18.5px; color:#4a4a42; max-width:46ch; margin-bottom:32px;}
.hero-seal{
  aspect-ratio:1;
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  position:relative;
  background:var(--paper-dim);
}
.hero-seal::before{content:''; position:absolute; inset:16px; border:1px solid var(--gold-soft);}
.hero-seal svg{width:58%; height:58%;}

/* ---------- Pillars ---------- */
.pillars{background:var(--ink); color:var(--paper); padding:64px 0;}
.pillars .wrap{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.pillar{padding:0 40px;}
.pillar + .pillar{border-left:1px solid rgba(246,241,230,0.18);}
.pillar .num{
  font-family:'Fraunces', Georgia, serif; font-style:italic;
  color:var(--gold-soft); font-size:15px; margin-bottom:10px; display:block;
}
.pillar h3{font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:23px; margin:0 0 10px;}
.pillar p{font-size:15px; color:rgba(246,241,230,0.78); margin:0;}

/* ---------- Philosophy ---------- */
.philo-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
.philo-grid blockquote{
  font-family:'Fraunces', Georgia, serif; font-style:italic;
  font-size:27px; line-height:1.4; font-weight:400; margin:0;
  color:var(--ink); border-left:2px solid var(--gold); padding-left:28px;
}
.philo-list{list-style:none; margin:0; padding:0;}
.philo-list li{
  padding:20px 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:28px 1fr; gap:16px;
}
.philo-list li:first-child{padding-top:0;}
.philo-list .mark{font-family:'Fraunces', Georgia, serif; font-style:italic; color:var(--gold);}
.philo-list h4{margin:0 0 6px; font-family:'Inter', system-ui, sans-serif; font-size:14px; font-weight:600;}
.philo-list p{margin:0; font-size:15px; color:var(--muted);}

/* ---------- Ledger (services) ---------- */
.ledger{border-top:1px solid var(--ink);}
.ledger-row{
  display:grid; grid-template-columns:56px 1fr 1.6fr; gap:32px;
  padding:30px 0; border-bottom:1px solid var(--line); align-items:baseline;
}
.ledger-row .rn{font-family:'Fraunces', Georgia, serif; font-style:italic; color:var(--gold); font-size:16px;}
.ledger-row h3{font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:22px; margin:0;}
.ledger-row p{margin:0; font-size:15px; color:var(--muted);}

/* ---------- Service detail blocks ---------- */
.svc-block{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px;
  padding:52px 0; border-bottom:1px solid var(--line);
}
.svc-block:last-child{border-bottom:none;}
.svc-block h2{font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:30px; margin:10px 0 0; line-height:1.15;}
.svc-block ul{list-style:none; margin:20px 0 0; padding:0;}
.svc-block li{padding:11px 0 11px 26px; border-bottom:1px solid var(--line); position:relative; font-size:16px;}
.svc-block li::before{
  content:'—'; position:absolute; left:0; color:var(--gold);
  font-family:'Fraunces', Georgia, serif;
}
.svc-block li:last-child{border-bottom:none;}
.svc-block p{margin:0; color:var(--muted);}

/* ---------- Team ---------- */
.team-grid{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:38px;
}
.team-card{flex:0 1 calc((100% - 76px) / 3); min-width:230px;}
.team-card .portrait{
  aspect-ratio:4/5;
  background:var(--paper-dim);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px; overflow:hidden; position:relative;
}
.team-card .portrait img{width:100%; height:100%; object-fit:cover;}
.team-card .portrait .initials{
  font-family:'Fraunces', Georgia, serif; font-style:italic;
  color:var(--gold); font-size:44px;
}
.team-card h3{font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:23px; margin:0 0 4px;}
.team-card .role{
  font-family:'Inter', system-ui, sans-serif; font-size:11.5px;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--sage);
  font-weight:600; margin-bottom:14px; display:block;
}
.team-card p{margin:0; font-size:15.5px; color:var(--muted);}

/* ---------- CTA ---------- */
.cta{background:var(--ink); color:var(--paper); text-align:center;}
.cta .crest-lg{width:56px; height:56px; margin:0 auto 24px;}
.cta h2{font-family:'Fraunces', Georgia, serif; font-weight:500; font-size:38px; margin:0 0 18px;}
.cta p{color:rgba(246,241,230,0.78); max-width:50ch; margin:0 auto 34px; font-size:16.5px;}
.contact-row{
  font-family:'Inter', system-ui, sans-serif;
  display:flex; justify-content:center; gap:44px;
  margin-top:44px; padding-top:36px;
  border-top:1px solid rgba(246,241,230,0.18);
  font-size:13.5px; text-align:left; flex-wrap:wrap;
}
.contact-row .label{color:var(--gold-soft);}
.contact-row a{text-decoration:none;}

/* ---------- Contact form ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 0.8fr; gap:70px; align-items:start;}
.field{margin-bottom:22px;}
.field label{
  font-family:'Inter', system-ui, sans-serif; font-size:11.5px;
  letter-spacing:0.1em; text-transform:uppercase; font-weight:600;
  color:var(--sage); display:block; margin-bottom:8px;
}
.field input, .field textarea, .field select{
  width:100%; padding:13px 14px;
  border:1px solid var(--line); background:var(--paper);
  font-family:'Source Serif 4', Georgia, serif; font-size:16px;
  color:var(--charcoal); border-radius:0;
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);
}
.field textarea{min-height:150px; resize:vertical;}
.detail-list{list-style:none; margin:0; padding:0;}
.detail-list li{padding:18px 0; border-bottom:1px solid var(--line);}
.detail-list li:first-child{padding-top:0;}
.detail-list .label{display:block; margin-bottom:5px;}
.detail-list a{text-decoration:none; border-bottom:1px solid var(--gold);}

/* ---------- Footer ---------- */
footer{padding:44px 0; border-top:1px solid var(--line);}
.foot-wrap{
  display:flex; justify-content:space-between; align-items:flex-start;
  font-family:'Inter', system-ui, sans-serif; font-size:11.5px;
  color:#6b6b60; gap:40px;
}
.foot-nav{display:flex; gap:20px; margin-top:12px;}
.foot-nav a{text-decoration:none;}
.foot-nav a:hover{color:var(--gold);}
.disclosure{max-width:640px; line-height:1.6;}

/* ---------- Accessibility / motion ---------- */
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .team-grid{gap:30px;}
  .team-card{flex:0 1 calc((100% - 30px) / 2);}
}
@media (max-width: 860px){
  .wrap{padding:0 24px;}
  .hero{padding-top:56px;}
  .hero .wrap{grid-template-columns:1fr; gap:40px;}
  .hero-seal{max-width:220px; margin:0 auto;}
  .hero h1{font-size:36px;}
  .pagehead h1{font-size:33px;}
  .section-head h2{font-size:28px;}
  .pillars .wrap{grid-template-columns:1fr; gap:36px;}
  .pillar{padding:0;}
  .pillar + .pillar{border-left:none; border-top:1px solid rgba(246,241,230,0.18); padding-top:32px;}
  .philo-grid{grid-template-columns:1fr; gap:36px;}
  .philo-grid blockquote{font-size:22px;}
  .ledger-row{grid-template-columns:32px 1fr; gap:16px;}
  .ledger-row p{grid-column:1 / -1;}
  .svc-block{grid-template-columns:1fr; gap:24px; padding:40px 0;}
  .contact-grid{grid-template-columns:1fr; gap:44px;}
  .cta h2{font-size:29px;}
  .contact-row{flex-direction:column; gap:20px;}
  .foot-wrap{flex-direction:column;}
  nav.mainnav{gap:16px 22px;}
}
@media (max-width: 560px){
  .team-grid{gap:34px;}
  .team-card{flex:0 1 100%;}
}

/* ============================================
   Insights — listing + article
   ============================================ */

.insight-feature{
  display:grid; grid-template-columns:1fr 0.72fr; gap:56px;
  align-items:center;
  border:1px solid var(--line); background:var(--paper-dim);
  padding:48px; margin-bottom:56px;
}
.insight-feature .kicker{display:block; margin-bottom:14px;}
.insight-feature h2{
  font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:34px; line-height:1.15; margin:0 0 16px; letter-spacing:-0.01em;
}
.insight-feature p{color:var(--muted); margin:0 0 26px;}
.stat-stack{border-top:1px solid var(--ink);}
.stat-stack .stat{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:14px 0; border-bottom:1px solid var(--line); gap:20px;
}
.stat-stack .val{
  font-family:'Fraunces', Georgia, serif; font-size:26px;
  color:var(--ink); font-weight:500; line-height:1;
}
.stat-stack .cap{
  font-family:'Inter', system-ui, sans-serif; font-size:10.5px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--sage);
  text-align:right; font-weight:600;
}

.insight-list{border-top:1px solid var(--ink);}
.insight-item{
  display:grid; grid-template-columns:150px 1fr auto; gap:32px;
  padding:26px 0; border-bottom:1px solid var(--line);
  align-items:baseline; text-decoration:none;
}
.insight-item:hover h3{color:var(--gold);}
.insight-item .date{
  font-family:'Inter', system-ui, sans-serif; font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--sage); font-weight:600;
}
.insight-item h3{
  font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:21px; margin:0 0 6px; transition:color .2s ease;
}
.insight-item p{margin:0; font-size:15px; color:var(--muted);}
.insight-item .arrow{font-family:'Fraunces', Georgia, serif; color:var(--gold); font-size:20px;}

/* Article */
.article{max-width:720px; margin:0 auto;}
.article .byline{
  font-family:'Inter', system-ui, sans-serif; font-size:11.5px;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--sage);
  font-weight:600; padding-bottom:26px; margin-bottom:38px;
  border-bottom:1px solid var(--line);
}
.article h2{
  font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:27px; margin:52px 0 18px; letter-spacing:-0.01em;
}
.article h3{
  font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:21px; margin:36px 0 12px;
}
.article p{margin:0 0 20px; font-size:17.5px; line-height:1.7;}
.article .standfirst{font-size:20px; color:var(--sage); line-height:1.55; margin-bottom:34px;}
.article blockquote{
  font-family:'Fraunces', Georgia, serif; font-style:italic;
  font-size:23px; line-height:1.45; color:var(--ink);
  border-left:2px solid var(--gold); padding-left:26px;
  margin:38px 0;
}
.article blockquote cite{
  display:block; font-family:'Inter', system-ui, sans-serif;
  font-style:normal; font-size:11px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--sage); margin-top:14px; font-weight:600;
}
.article ul{padding-left:0; list-style:none; margin:0 0 24px;}
.article ul li{
  padding:14px 0 14px 26px; border-bottom:1px solid var(--line);
  position:relative; font-size:16.5px;
}
.article ul li::before{
  content:'—'; position:absolute; left:0; color:var(--gold);
  font-family:'Fraunces', Georgia, serif;
}

.data-table{width:100%; border-collapse:collapse; margin:30px 0; font-size:15px;}
.data-table th{
  font-family:'Inter', system-ui, sans-serif; font-size:10.5px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--sage);
  text-align:left; font-weight:600; padding:0 12px 12px 0;
  border-bottom:1px solid var(--ink);
}
.data-table td{padding:13px 12px 13px 0; border-bottom:1px solid var(--line);}
.data-table td:first-child{font-weight:600;}
.data-table .num{font-family:'Fraunces', Georgia, serif; color:var(--ink);}

.source-note{
  font-size:12.5px; color:#7a7a6e; line-height:1.55;
  font-family:'Inter', system-ui, sans-serif; margin-top:8px;
}
.article-disclosure{
  margin-top:56px; padding-top:28px; border-top:1px solid var(--line);
  font-family:'Inter', system-ui, sans-serif; font-size:11.5px;
  color:#6b6b60; line-height:1.6;
}

@media (max-width: 860px){
  .insight-feature{grid-template-columns:1fr; gap:34px; padding:30px;}
  .insight-feature h2{font-size:26px;}
  .insight-item{grid-template-columns:1fr; gap:8px;}
  .insight-item .arrow{display:none;}
  .article p{font-size:16.5px;}
  .article .standfirst{font-size:18px;}
  .article h2{font-size:23px;}
  .data-table{font-size:13.5px;}
}

/* Regulatory footer links */
.foot-nav.reg-links{
  margin-top:10px; padding-top:10px;
  border-top:1px solid var(--line);
  gap:16px; flex-wrap:wrap;
}
.foot-nav.reg-links a{color:#8a8a7c;}
.foot-nav.reg-links a:hover{color:var(--gold);}

/* ---------- Footer contact block ---------- */
.foot-contact{line-height:1.8;}
.foot-contact a{text-decoration:none; border-bottom:1px solid var(--gold); color:inherit;}
.foot-contact a:hover{color:var(--gold);}

/* ---------- Adviser record links ---------- */
.record-link{margin:10px 0 0; font-size:13px;}
.record-link a{text-decoration:none; border-bottom:1px solid var(--gold); color:var(--muted);}
.record-link a:hover{color:var(--gold);}

/* ---------- Booking chooser ---------- */
.booking-group{margin-top:26px;}
.booking-group:first-child{margin-top:0;}
.booking-group .label{display:block; margin-bottom:12px;}

/* ---------- Team photo framing ---------- */
.team-photo--tight {
  object-fit: cover;
  object-position: center 20%;
  transform: scale(1.25);
  transform-origin: center 30%;
}
.booking{margin-top:34px;}
.cta .booking .btn-row{justify-content:center;}
.cta .booking-group .label{color:#b9b3a4;}
.booking-contact{
  display:flex; gap:22px; justify-content:center; flex-wrap:wrap;
  margin:26px 0 0; font-size:14px;
}
.booking-contact a{text-decoration:none; border-bottom:1px solid var(--gold); color:inherit;}
.booking .btn{text-align:center; line-height:1.35;}
@media (max-width: 560px){
  .booking .btn-row{flex-direction:column; align-items:stretch; gap:12px;}
}
