/* Keystone Federal Group, LLC — Rolex palette, institutional serif
   Design language: old-money restraint. Ivory/paper fields, deep green,
   gold as accent only. Thin double gold rules carry the frame motif
   from the brand lockup. Flat surfaces, square corners, no shadows. */
:root{
  --green:#005534;
  --green-dark:#0B3D2A;
  --green-deep:#062A1D;
  --board:#013823;          /* lockup board green — hero field */
  --gold:#A37E2C;
  --gold-light:#C9A959;
  --ivory:#F8F3E7;
  --paper:#FDFBF4;
  --ink:#1C1A14;
  --muted:#5A5546;
  --line:#D9CFB4;
  --line-gold:rgba(163,126,44,.5);
  --line-gold-soft:rgba(163,126,44,.28);
  --cream-dim:#EFE8D2;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',Helvetica,Arial,sans-serif;
  background:var(--ivory);
  color:var(--ink);
  line-height:1.6;
  font-size:16px;
}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;color:var(--green-dark);line-height:1.15}
h2{font-size:2.35rem;font-weight:700;margin-bottom:10px}
h3{font-size:1.4rem;font-weight:700;margin-bottom:.45rem}
a{color:var(--green)}
img{max-width:100%}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Header */
.site-header{
  background:var(--green-deep);
  border-bottom:4px double var(--gold);
  position:sticky;top:0;z-index:50;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-badge{width:46px;height:46px;object-fit:contain;background:var(--ivory);border-radius:50%;padding:3px}
.brand-text{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.45rem;font-weight:700;color:var(--ivory);letter-spacing:.02em}
.brand-text em{font-style:normal;color:var(--gold-light)}
.main-nav{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.main-nav a{color:var(--ivory);text-decoration:none;font-size:.9rem;font-weight:500;letter-spacing:.05em}
.main-nav a:hover{color:var(--gold-light)}
.main-nav .nav-cta{border:1px solid var(--gold);padding:7px 14px;border-radius:0;color:var(--gold-light)}
.main-nav .nav-cta:hover{background:var(--gold);color:var(--green-deep)}

/* Hero — flat field matched to the lockup board so the board's baked-in
   double-rule frame reads as the section's own frame. */
.hero{
  background:var(--board);
  color:var(--ivory);
  text-align:center;
  padding:52px 0 60px;
  border-bottom:4px double var(--gold);
}
.hero-board{display:block;width:min(880px,94vw);margin:0 auto}
.hero-motto{
  display:flex;align-items:center;justify-content:center;gap:20px;
  max-width:860px;margin:32px auto 0;padding:0 8px;
}
.hero-motto::before,.hero-motto::after{
  content:"";flex:1 1 48px;max-width:130px;height:4px;
  border-top:1px solid rgba(201,169,89,.65);
  border-bottom:1px solid rgba(201,169,89,.65);
}
.hero-motto span{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.12rem;font-weight:600;
  letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;
  color:var(--gold-light);white-space:nowrap;
}
.hero-eyebrow{margin-top:26px;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);font-weight:600;white-space:nowrap}
.hero-tagline{max-width:65ch;margin:16px auto 0;font-size:1.1rem;color:var(--cream-dim);text-wrap:balance}
.hero-sub{margin:14px auto 0;max-width:65ch;font-size:.98rem;color:var(--gold-light);font-weight:500;letter-spacing:.04em;line-height:1.65;text-wrap:balance}
.hero-sub .sub-line{display:block;text-wrap:balance}
.status-chip{
  display:inline-block;margin-top:24px;padding:7px 16px;
  border:1px solid rgba(201,169,89,.55);border-radius:0;
  color:var(--gold-light);font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  background:transparent;
}
.hero-actions{margin-top:28px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 26px;text-decoration:none;font-weight:600;font-size:.95rem;border-radius:0;letter-spacing:.04em}
.btn-gold{background:var(--gold);color:#fff}
.btn-gold:hover{background:var(--gold-light);color:var(--green-deep)}
.btn-outline{border:1px solid var(--ivory);color:var(--ivory)}
.btn-outline:hover{border-color:var(--gold-light);color:var(--gold-light)}

/* Sections — one spacing scale, double hairline gold separators */
.section{padding:64px 0;position:relative}
.section::before,.section::after{
  content:"";position:absolute;left:0;right:0;height:0;
}
.section::before{top:0;border-top:1px solid var(--line-gold)}
.section::after{top:4px;border-top:1px solid var(--line-gold-soft)}
#model::before,#model::after{display:none}  /* hero's double border already closes the hero */
.section-alt{background:var(--paper)}
.section-green::before{border-top-color:rgba(201,169,89,.7)}
.section-green::after{border-top-color:rgba(201,169,89,.4)}
.kicker{font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:10px}
.lede{font-size:1.1rem;color:var(--muted);max-width:65ch;margin-bottom:32px}
.lede-light{color:var(--cream-dim)}
.section-note{font-size:1.02rem;color:var(--muted);max-width:65ch;margin-bottom:28px}

/* Flow */
.flow{display:flex;align-items:stretch;gap:10px;margin:4px 0 36px;flex-wrap:wrap}
.flow-step{
  flex:1 1 200px;background:var(--paper);border:1px solid var(--line);
  padding:20px 18px;position:relative;
}
.flow-num{
  display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:0;
  background:var(--green-dark);color:#fff;font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;font-size:1.05rem;margin-bottom:10px;
}
.flow-step p{font-size:.95rem;color:var(--muted)}
.flow-arrow{align-self:center;font-size:1.4rem;color:var(--gold);font-weight:700}

/* Cards & grids — flat, 1px borders, square corners */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--paper);border:1px solid var(--line);padding:26px 24px}
.section-alt .card{background:var(--ivory)}
.card p{color:var(--muted);margin-bottom:.7rem}
.card p:last-child{margin-bottom:0}
.card ul{margin:6px 0 0 20px;color:var(--muted)}
.card ul li{margin-bottom:5px}
.card-tag{font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:6px}
.card-flagship{border:1px solid var(--gold)}
.card-wide{margin-top:20px}
.leader-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;font-weight:600;color:var(--gold);letter-spacing:.03em;margin-bottom:.5rem}
.status-line{margin-top:24px;padding:18px 22px;border:1px solid var(--line);border-left:2px solid var(--gold);background:var(--paper);color:var(--muted);font-size:.97rem}

/* Umbrella band */
.umbrella-band{
  margin-top:20px;background:var(--ivory);border:1px solid var(--line);
  padding:22px 26px;text-align:center;
}
.umbrella-band p{color:var(--muted);max-width:78ch;margin:0 auto;font-size:1rem}
.umbrella-band strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.15rem;color:var(--green-dark);letter-spacing:.02em}

/* Codes table */
.codes-table{width:100%;border-collapse:collapse;font-size:.95rem}
.codes-table td{padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted)}
.codes-table td:first-child{font-weight:700;color:var(--green-dark);white-space:nowrap;width:110px;font-variant-numeric:tabular-nums}

/* Contact */
.section-green{background:var(--green-deep);color:var(--ivory)}
.contact-inner{text-align:center}
.contact-badge{width:104px;height:104px;object-fit:contain;background:var(--ivory);border-radius:50%;padding:6px;margin-bottom:18px}
.section-green h2{color:var(--ivory)}
.section-green .lede{margin-left:auto;margin-right:auto}
.contact-phone{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.5rem;font-weight:700;margin:4px 0 12px}
.contact-phone a{color:var(--gold-light);text-decoration:none}
.contact-phone a:hover{text-decoration:underline}
.contact-address{font-size:1.02rem;color:var(--cream-dim);line-height:1.6}
.contact-note{margin:20px auto 0;max-width:640px;font-size:.92rem;color:var(--gold-light)}

/* Footer — double-rule top border + framed inner, echoing the lockup */
.site-footer{background:#04150E;color:#CFC7AE;padding:44px 0 36px;text-align:center;border-top:4px double var(--gold)}
.footer-inner{
  border:1px solid rgba(201,169,89,.4);
  outline:1px solid rgba(201,169,89,.22);outline-offset:5px;
  padding:36px 24px 30px;
}
.footer-logo{width:min(400px,80vw);margin-bottom:20px}
.footer-legal{font-size:.94rem;color:var(--cream-dim)}
.footer-status{font-size:.87rem;margin-top:6px}
.footer-tagline{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:.92rem;font-weight:600;color:#A79C7C;
  letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;margin:22px 0 0;
}
.footer-motto{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.25rem;font-weight:600;color:var(--gold-light);
  letter-spacing:.55em;text-indent:.55em;margin:10px 0 10px;
}
.footer-copy{font-size:.8rem;color:#8A8268}

/* Even line lengths everywhere — balanced, never staggered */
h1,h2,h3,.kicker,.card h3,.flow-step h3,.leader-name{text-wrap:balance}
p{text-wrap:pretty}
.lede,.section-note{text-wrap:balance}

/* Responsive */
@media (max-width:860px){
  .grid-2{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .flow{flex-direction:column}
  .flow-arrow{transform:rotate(90deg)}
  h2{font-size:2rem}
  .section{padding:52px 0}
  .hero{padding:40px 0 48px}
  .main-nav{gap:16px}
  .contact-phone{font-size:2rem}
  .footer-motto{letter-spacing:.3em;text-indent:.3em}
  .hero-eyebrow{font-size:.64rem;letter-spacing:.16em}
}
@media (max-width:640px){
  .hero-motto{gap:0;margin-top:26px}
  .hero-motto::before,.hero-motto::after{display:none}
  .hero-motto span{font-size:3.2vw;letter-spacing:.13em;text-indent:.13em;white-space:nowrap;line-height:1.5}
  .hero-eyebrow{font-size:1.85vw;letter-spacing:.06em;line-height:1.5}
  .status-chip{font-size:.6rem;letter-spacing:.1em;white-space:nowrap;padding:7px 10px}
  .main-nav{gap:12px;justify-content:center}
  .main-nav a{font-size:.82rem}
  .footer-inner{padding:28px 16px 24px}
  .footer-tagline{letter-spacing:.14em;text-indent:.14em;font-size:3.1vw;white-space:nowrap;line-height:1.6}
}
