/* ============================================================
   IRONWOOD FINANCIAL — design system
   Built on an editorial/broadsheet structure: masthead, hairline
   rules, dropcap openers, fact-boxes, numbered reference lists.
   Palette is tuned to the firm's name — dense heartwood browns,
   not the stock terracotta/cream combination.
   ============================================================ */

:root{
  --ink:#211D1A;
  --paper:#FDFCF9;
  --rule:#211D1A;
  --accent:#6E3B23;      /* heartwood brown */
  --accent-soft:#9C7A4B; /* sapwood gold, used sparingly */
  --gray:#6B655D;
  --line:#E4DFD3;
  --panel:#F4EFE5;
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--ink);font-family:'Source Serif 4',serif;line-height:1.7;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}
.wrap{max-width:760px;margin:0 auto;padding:0 24px;}
.wide{max-width:1120px;margin:0 auto;padding:0 24px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* ---------- Masthead / nav ---------- */
header.site{border-bottom:4px solid var(--rule);}
.header-top{display:flex;align-items:center;justify-content:space-between;max-width:1120px;margin:0 auto;padding:20px 28px;gap:20px;}
.header-logo-full{display:block;flex:none;}
.header-logo-mark{display:block;flex:none;}
.header-wordmark{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink);}
.header-wordmark .word-1{font-family:'Source Serif 4',serif;font-weight:600;font-size:34px;letter-spacing:.01em;line-height:1;}
.header-wordmark .word-2{font-family:'Inter',sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.32em;color:var(--gray);margin-top:6px;}
.wordmark{font-family:'Source Serif 4',serif;font-weight:600;font-size:32px;letter-spacing:-0.01em;color:var(--ink);}
.wordmark span{color:var(--accent);}
.subnav{border-top:1px solid var(--rule);}
.subnav-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;flex-wrap:wrap;gap:12px;}
.subnav ul{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;}
.subnav a:hover, .subnav a.active{color:var(--accent);}
.subnav .cta{font-family:'Inter',sans-serif;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid var(--ink);padding:9px 18px;white-space:nowrap;}
.subnav .cta:hover{background:var(--ink);color:var(--paper);}
.subnav .phone{font-family:'Inter',sans-serif;font-size:12.5px;color:var(--gray);}
.nav-toggle{display:none;background:none;border:1px solid var(--ink);font-size:16px;padding:6px 12px;font-family:'Inter',sans-serif;}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{padding:56px 0 32px;text-align:center;border-bottom:1px solid var(--line);margin-bottom:48px;}
.page-hero .section-tag{font-family:'Inter',sans-serif;font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin-bottom:18px;}
.page-hero h1{font-size:clamp(30px,5vw,48px);line-height:1.12;font-weight:600;margin-bottom:16px;}
.page-hero .dek{font-size:18px;color:#3d3936;font-style:italic;max-width:56ch;margin:0 auto;}

/* ---------- Home hero ---------- */
.home-hero{padding:70px 0 56px;border-bottom:4px solid var(--rule);}
.home-hero .est{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:22px;}
.home-hero h1{font-size:clamp(36px,6vw,60px);line-height:1.08;font-weight:600;max-width:16ch;margin-bottom:26px;}
.home-hero .lede{font-size:19px;color:#3d3936;max-width:58ch;margin-bottom:32px;}
.home-hero .actions{display:flex;gap:16px;flex-wrap:wrap;}
.btn{display:inline-block;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:14px 28px;border:1px solid var(--ink);}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);}
.btn-secondary:hover{background:var(--ink);color:var(--paper);}

/* ---------- Body copy / editorial devices ---------- */
.article-body p{font-size:18px;margin-bottom:22px;color:#2b2823;}
.dropcap p:first-of-type::first-letter{
  font-size:60px;line-height:0.8;float:left;padding-right:10px;padding-top:6px;font-weight:700;color:var(--accent);
}
.article-body h2{font-size:25px;font-weight:600;margin:44px 0 16px;}
.article-body h3{font-size:19px;font-weight:600;margin:8px 0 6px;}
.pull-quote{border-left:3px solid var(--accent);padding:4px 0 4px 24px;margin:36px 0;font-size:21px;font-style:italic;color:#3d3936;}

.fact-box{background:var(--panel);border:1px solid var(--line);padding:26px 28px;margin:36px 0;}
.fact-box .label{font-family:'Inter',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700;margin-bottom:14px;}
.fact-box ul li{font-family:'Inter',sans-serif;font-size:14.5px;padding:9px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;}
.fact-box ul li:first-child{border-top:none;}
.fact-box ul li strong{font-weight:600;text-align:right;}

.ref-list{counter-reset:refnum;margin:36px 0;}
.ref-item{counter-increment:refnum;display:flex;gap:20px;padding:22px 0;border-top:1px solid var(--line);}
.ref-item:last-child{border-bottom:1px solid var(--line);}
.ref-item::before{content:counter(refnum);font-family:'Inter',sans-serif;font-weight:700;font-size:14px;color:var(--accent);border:1px solid var(--accent);border-radius:50%;width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;margin-top:4px;}
.ref-item h3{font-size:18px;font-weight:600;margin-bottom:6px;}
.ref-item p{font-size:15.5px;color:#4a453f;margin:0;}

/* ---------- Section framing ---------- */
.section{padding:64px 0;}
.section-head{margin-bottom:40px;}
.section-head .eyebrow{font-family:'Inter',sans-serif;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:10px;}
.section-head h2{font-size:clamp(24px,3.4vw,34px);font-weight:600;max-width:24ch;}
.rule-top{border-top:1px solid var(--line);}
.rule-top-heavy{border-top:4px solid var(--rule);}

/* ---------- Grids: services, team, stories, related ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.card{border-top:1px solid var(--line);padding-top:16px;}
.card .tag{font-family:'Inter',sans-serif;font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.card h3{font-size:19px;font-weight:600;margin-bottom:8px;}
.card p{font-size:15px;color:var(--gray);}
.card a.more{display:inline-block;margin-top:10px;font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border-bottom:1px solid var(--accent);}
@media(max-width:820px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}}

.stat-row{display:flex;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stat{flex:1;padding:26px 20px;text-align:center;border-left:1px solid var(--line);}
.stat:first-child{border-left:none;}
.stat .num{font-size:36px;font-weight:700;color:var(--accent);display:block;}
.stat .label{font-family:'Inter',sans-serif;font-size:12px;color:var(--gray);text-transform:uppercase;letter-spacing:.05em;margin-top:6px;}
@media(max-width:640px){.stat-row{flex-wrap:wrap;}.stat{flex:1 1 50%;border-left:none;border-top:1px solid var(--line);}.stat:nth-child(1),.stat:nth-child(2){border-top:none;}}

/* ---------- Team ---------- */
.team-member{border-top:1px solid var(--line);padding:26px 0;display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start;}
.team-member .initial{width:80px;height:80px;border-radius:50%;border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',serif;font-size:26px;font-weight:600;color:var(--accent);}
.team-member h3{font-size:19px;font-weight:600;margin-bottom:2px;}
.team-member .role{font-family:'Inter',sans-serif;font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;}
.team-member p{font-size:15px;color:#4a453f;}
@media(max-width:560px){.team-member{grid-template-columns:1fr;}}

/* ---------- Forms ---------- */
.form-panel{background:var(--panel);border:1px solid var(--line);padding:36px;}
.field{margin-bottom:18px;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
label{display:block;font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;margin-bottom:6px;}
input, select, textarea{width:100%;font-family:'Source Serif 4',serif;font-size:15px;padding:11px 12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);}
textarea{min-height:100px;resize:vertical;}
.consent-group{margin-bottom:18px;}
.consent-group h5{font-family:'Inter',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:8px;}
.checkbox-row{display:flex;gap:10px;align-items:flex-start;}
.checkbox-row input{width:auto;margin-top:5px;flex:none;}
.checkbox-row label{font-family:'Inter',sans-serif;font-size:12.5px;font-weight:400;color:#4a453f;line-height:1.55;}
@media(max-width:560px){.two-col{grid-template-columns:1fr;}}

/* ---------- Prose (legal pages) ---------- */
.prose h2{font-size:20px;font-weight:600;margin:32px 0 12px;}
.prose p, .prose li{font-size:15.5px;color:#3d3936;margin-bottom:14px;}
.prose .updated{font-family:'Inter',sans-serif;font-size:12px;color:var(--gray);margin-bottom:28px;}
.prose ul{padding-left:20px;}
.prose li{list-style:disc;}

/* ---------- Footer ---------- */
footer.site{border-top:4px solid var(--rule);padding:52px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:36px;}
.footer-brand p{font-size:14px;color:var(--gray);margin-top:12px;max-width:34ch;}
.footer-col h4{font-family:'Inter',sans-serif;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-bottom:14px;}
.footer-col a{display:block;font-family:'Inter',sans-serif;font-size:14px;padding:5px 0;color:var(--ink);}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{border-top:1px solid var(--line);padding:20px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:'Inter',sans-serif;font-size:12px;color:var(--gray);max-width:1120px;margin:0 auto;}
.footer-bottom a{color:var(--gray);}
.footer-bottom a:hover{color:var(--accent);}
.footer-disclosure{max-width:1120px;margin:18px auto 0;padding:0 24px 32px;font-family:'Inter',sans-serif;font-size:11px;color:#8f887e;line-height:1.6;}

@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;}.subnav ul{display:none;}.nav-toggle{display:block;}}
@media(max-width:700px){
  .header-logo-mark-right{display:none;}
  .header-top{justify-content:center;padding:18px 20px;gap:14px;}
  .header-wordmark .word-1{font-size:26px;}
}
