/* Franco Advisory — francoadvisory.com
   Palette: navy #1B2A4A · brass #B8892B · ink #201E1D · bone #F3F2F2 · grey #5C5956 */

:root{
  --navy:#1B2A4A;
  --navy-deep:#16223C;
  --brass:#B8892B;
  --brass-bright:#D8A23E;
  --ink:#201E1D;
  --muted:#5C5956;
  --faint:#8A8683;
  --bone:#F3F2F2;
  --paper:#FFFFFF;
  --line:#DCD8D3;
  --line-soft:#E8E5E1;
  --maxw:1080px;
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block;}
a{color:var(--navy);}

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

/* ---------- skip link ---------- */
.skip{
  position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;
  padding:10px 16px;z-index:100;font-size:14px;
}
.skip:focus{left:0;}

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--line-soft);
  background:var(--paper);
  position:sticky;top:0;z-index:50;
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding-block:18px;
}
.brand{display:block;flex:0 0 auto;}
.brand img{width:186px;}

.nav{display:flex;gap:30px;align-items:center;flex-wrap:wrap;}
.nav a{
  font-size:13px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600;
  color:var(--muted);text-decoration:none;padding-block:6px;
  border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--navy);}
.nav a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--brass);}

/* ---------- type ---------- */
.eyebrow{
  font-size:11px;letter-spacing:1.9px;text-transform:uppercase;
  color:var(--brass);font-weight:600;margin:0 0 14px;
}
h1{
  font-size:clamp(34px,5.4vw,54px);line-height:1.06;font-weight:700;
  letter-spacing:-1.1px;margin:0;color:var(--navy);text-wrap:balance;
}
h2{
  font-size:clamp(24px,3.2vw,32px);line-height:1.18;font-weight:700;
  letter-spacing:-.6px;margin:0 0 16px;color:var(--navy);text-wrap:balance;
}
h3{
  font-size:19px;font-weight:700;letter-spacing:-.2px;
  margin:0 0 8px;color:var(--ink);
}
p{margin:0 0 18px;}
.lede{font-size:clamp(18px,2.1vw,21px);line-height:1.55;color:var(--muted);max-width:60ch;}
.muted{color:var(--muted);}
.small{font-size:15px;}

.rule{height:3px;width:56px;background:var(--brass);border:0;margin:0 0 28px;}

/* ---------- sections ---------- */
section{padding-block:72px;}
section.tight{padding-block:52px;}
.bone{background:var(--bone);border-block:1px solid var(--line-soft);}
.navy{background:var(--navy);color:#fff;}
.navy h2,.navy h1{color:#fff;}
.navy .lede,.navy p{color:#C9D2E2;}
.navy .eyebrow{color:var(--brass-bright);}
.navy a{color:var(--brass-bright);}

/* ---------- hero ---------- */
.hero{padding-block:clamp(64px,9vw,112px) clamp(56px,7vw,88px);}
.hero .lede{margin-top:26px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-size:14px;font-weight:600;letter-spacing:.3px;
  padding:13px 26px;border-radius:2px;text-decoration:none;
  background:var(--navy);color:#fff;border:1px solid var(--navy);
  transition:background .15s ease,color .15s ease;
}
.btn:hover{background:var(--navy-deep);}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--line);}
.btn.ghost:hover{background:var(--bone);}
.navy .btn{background:var(--brass);border-color:var(--brass);color:#16223C;}
.navy .btn:hover{background:var(--brass-bright);}
.navy .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);}
.navy .btn.ghost:hover{background:rgba(255,255,255,.08);}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

/* ---------- grids ---------- */
.grid{display:grid;gap:34px;}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}

.card{
  background:var(--paper);border:1px solid var(--line-soft);
  border-top:3px solid var(--navy);padding:28px 26px 24px;border-radius:2px;
}
.card .num{
  font-size:11px;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--brass);font-weight:600;margin:0 0 10px;
}
.card p:last-child{margin-bottom:0;}

/* ---------- service blocks ---------- */
.service{
  padding-block:44px;border-top:1px solid var(--line-soft);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:40px;
}
.service:first-of-type{border-top:0;padding-top:8px;}
.service h2{margin-bottom:10px;}
.service .kicker{
  font-size:11px;letter-spacing:1.7px;text-transform:uppercase;
  color:var(--brass);font-weight:600;margin:0 0 10px;
}
ul.ticks{margin:0;padding:0;list-style:none;}
ul.ticks li{
  position:relative;padding-left:22px;margin-bottom:11px;color:var(--muted);
}
ul.ticks li::before{
  content:"";position:absolute;left:0;top:11px;
  width:9px;height:2px;background:var(--brass);
}
ul.ticks li b{color:var(--ink);font-weight:600;}

/* ---------- engagement profile ---------- */
.profile{
  background:var(--paper);border:1px solid var(--line-soft);border-radius:2px;
  padding:34px 32px;
}
.facts{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;
  border-bottom:1px solid var(--line-soft);padding-bottom:26px;margin-bottom:28px;
}
.facts dt{
  font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--faint);font-weight:600;margin-bottom:5px;
}
.facts dd{margin:0;font-size:16px;font-weight:600;color:var(--navy);line-height:1.35;}

.workstream{margin-bottom:26px;}
.workstream:last-child{margin-bottom:0;}
.workstream h3{font-size:16px;margin-bottom:6px;}
.workstream p{margin:0;color:var(--muted);font-size:16px;}

/* ---------- portrait ---------- */
.grid-portrait{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start;}
.portrait{
  width:100%;border-radius:2px;border:1px solid var(--line-soft);
  display:block;background:var(--bone);
}
.portrait-caption{
  margin:16px 0 0;font-size:12.5px;line-height:1.5;color:var(--faint);
  padding-top:14px;border-top:2px solid var(--brass);
}
.portrait-caption b{display:block;color:var(--navy);font-size:15px;font-weight:700;margin-bottom:2px;}

.headshot-sq{
  width:210px;max-width:60%;border-radius:2px;display:block;
  border:1px solid rgba(255,255,255,.18);
}
.contact-intro{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:48px;align-items:center;}

/* ---------- timeline ---------- */
.timeline{border-left:2px solid var(--line);padding-left:28px;margin:0;}
.timeline .item{margin-bottom:34px;position:relative;}
.timeline .item:last-child{margin-bottom:0;}
.timeline .item::before{
  content:"";position:absolute;left:-35px;top:7px;width:10px;height:10px;
  background:var(--brass);border-radius:50%;
}
.timeline .when{
  font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--faint);font-weight:600;margin:0 0 4px;
}
.timeline h3{margin-bottom:6px;}
.timeline p{color:var(--muted);margin-bottom:0;}

/* ---------- contact ---------- */
.contact-list{margin:0;padding:0;list-style:none;}
.contact-list li{
  display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:baseline;
  padding-block:16px;border-bottom:1px solid rgba(255,255,255,.14);
}
.contact-list li:last-child{border-bottom:0;}
.contact-list .label{
  font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--brass-bright);font-weight:600;
}
.contact-list .value{font-size:18px;color:#fff;}
.contact-list .value a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);}
.contact-list .value a:hover{border-bottom-color:var(--brass-bright);}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:#C9D2E2;padding-block:48px 40px;}
.footer-inner{
  display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;align-items:flex-start;
}
.site-footer img{width:170px;}
.footer-nav{display:flex;flex-direction:column;gap:9px;}
.footer-nav a{
  color:#C9D2E2;text-decoration:none;font-size:14px;
}
.footer-nav a:hover{color:var(--brass-bright);}
.footer-meta{font-size:13px;color:#8FA0BC;line-height:1.7;}
.footer-meta a{color:#C9D2E2;text-decoration:none;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:20px;
  font-size:12.5px;color:#7E8EA9;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .service{grid-template-columns:1fr;gap:20px;}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid-portrait{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;}
  .contact-intro{grid-template-columns:1fr;gap:28px;}
  .headshot-sq{width:180px;}
}

@media (max-width:640px){
  body{font-size:16px;}
  .wrap{padding-inline:16px;}
  section{padding-block:52px;}
  .header-inner{flex-direction:column;align-items:flex-start;gap:14px;padding-block:14px;}
  .brand img{width:158px;}
  .nav{gap:18px;}
  .nav a{font-size:12px;letter-spacing:1.1px;}
  .grid-2,.grid-3,.grid-4,.grid-portrait,.contact-intro{grid-template-columns:1fr;}
  .grid{gap:22px;}
  .portrait{max-width:340px;}
  .headshot-sq{width:160px;max-width:50%;}
  .facts{grid-template-columns:1fr;gap:16px;}
  .profile{padding:24px 20px;}
  .contact-list li{grid-template-columns:1fr;gap:4px;}
  .hero-actions .btn{width:100%;text-align:center;}
  .footer-inner{flex-direction:column;gap:26px;}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important;}
}

@media print{
  .site-header,.hero-actions{display:none;}
  body{font-size:12pt;}
}
