:root{
  --ink:#0b0d0c;
  --paper:#f7f5f0;
  --paper-2:#efece3;
  --line:#0b0d0c;
  --accent:#1f6f4a; /* IRS-y green, but warm */
  --accent-2:#c0392b;
  --muted:#5b5b52;
  --radius:2px;
  --maxw:1180px;
  font-size:18px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Helvetica Neue",Arial,sans-serif;
  line-height:1.35;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}

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

/* ---------- top bar ---------- */
.topbar{
  border-bottom:3px solid var(--ink);
  position:sticky;top:0;background:var(--paper);z-index:50;
}
.topbar .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:78px;
}
.logo{
  font-weight:800;font-size:1.6rem;letter-spacing:-0.02em;
  display:flex;align-items:center;gap:10px;
}
.logo .dot{color:var(--accent);}
.nav{display:flex;gap:28px;align-items:center;font-size:1rem;font-weight:600;}
.nav a{padding:8px 0;border-bottom:2px solid transparent;}
.nav a:hover{border-bottom:2px solid var(--ink);}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  border:2px solid var(--ink);border-radius:var(--radius);
  padding:10px 18px;font-weight:700;font-size:0.95rem;
  background:var(--ink);color:var(--paper);
  cursor:pointer;
}
.btn.secondary{background:transparent;color:var(--ink);}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}

/* ---------- hero / search ---------- */
.hero{
  padding:88px 0 64px;
  border-bottom:3px solid var(--ink);
}
.hero h1{
  font-size:clamp(2.6rem,5.2vw,4.4rem);
  font-weight:800;letter-spacing:-0.03em;margin:0 0 18px;
  max-width:900px;
}
.hero h1 span{color:var(--accent);}
.hero p.sub{
  font-size:1.3rem;color:var(--muted);max-width:640px;margin:0 0 44px;
}
.search-shell{
  border:3px solid var(--ink);
  border-radius:6px;
  background:#fff;
  display:flex;align-items:center;
  padding:6px 6px 6px 22px;
  gap:12px;
  max-width:820px;
}
.search-shell svg{flex:0 0 auto;}
.search-shell input{
  flex:1;border:none;outline:none;background:transparent;
  font-size:1.25rem;font-family:inherit;padding:16px 0;
  color:var(--ink);
}
.search-shell input::placeholder{color:#9c998f;}
.search-shell .btn{white-space:nowrap;}

.autofill-row{
  margin-top:22px;display:flex;flex-wrap:wrap;gap:10px;max-width:900px;
}
.chip{
  border:2px solid var(--ink);border-radius:999px;
  padding:9px 16px;font-size:0.92rem;font-weight:600;
  background:#fff;cursor:pointer;transition:transform .12s ease;
}
.chip:hover{background:var(--ink);color:var(--paper);}
.chip.fading{opacity:0;transform:translateY(4px);}

.locale-note{
  margin-top:20px;font-size:0.95rem;color:var(--muted);
  display:flex;align-items:center;gap:8px;
}
.locale-note strong{color:var(--ink);}

/* ---------- section blocks ---------- */
.section{padding:64px 0;border-bottom:3px solid var(--ink);}
.section.no-border{border-bottom:none;}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:36px;gap:20px;flex-wrap:wrap;
}
.section-head h2{
  font-size:2.1rem;font-weight:800;letter-spacing:-0.02em;margin:0;
}
.section-head p{color:var(--muted);margin:6px 0 0;font-size:1.05rem;}
.see-all{font-weight:700;font-size:0.98rem;border-bottom:2px solid var(--ink);padding-bottom:2px;}

/* categories grid */
.cat-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:2px;background:var(--ink);border:2px solid var(--ink);
}
.cat-card{
  background:#fff;padding:26px;min-height:150px;
  display:flex;flex-direction:column;justify-content:space-between;
  cursor:pointer;
}
.cat-card:hover{background:var(--paper-2);}
.cat-card .icon{margin-bottom:14px;}
.cat-card h3{margin:0;font-size:1.15rem;font-weight:800;}
.cat-card span{font-size:0.9rem;color:var(--muted);}

/* international strip */
.intl-strip{display:flex;flex-wrap:wrap;gap:12px;}
.flag-chip{
  border:2px solid var(--ink);border-radius:999px;padding:10px 18px 10px 14px;
  display:flex;align-items:center;gap:10px;font-weight:700;background:#fff;cursor:pointer;
}
.flag-chip:hover{background:var(--paper-2);}

/* expert cards */
.expert-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:22px;
}
.expert-card{
  border:2px solid var(--ink);border-radius:var(--radius);
  background:#fff;padding:22px;display:flex;flex-direction:column;gap:12px;
  transition:box-shadow .12s ease, transform .12s ease;
}
.expert-card:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-3px,-3px);}
.expert-top{display:flex;gap:14px;align-items:center;}
.avatar{
  width:56px;height:56px;border-radius:50%;border:2px solid var(--ink);
  background:var(--paper-2);display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:1.2rem;flex:0 0 auto;
}
.expert-name{font-weight:800;font-size:1.15rem;}
.expert-role{color:var(--muted);font-size:0.92rem;}
.badge-row{display:flex;flex-wrap:wrap;gap:6px;}
.badge{
  font-size:0.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;
  padding:4px 8px;border-radius:3px;border:1.5px solid var(--ink);
}
.badge.ea{background:var(--accent);color:#fff;border-color:var(--accent);}
.badge.cpa{background:var(--ink);color:#fff;}
.expert-line{font-size:0.98rem;color:var(--ink);}
.expert-zones{font-size:0.85rem;color:var(--muted);display:flex;gap:6px;align-items:center;}

/* footer */
.footer{padding:48px 0 60px;}
.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.footer-cols{display:flex;gap:64px;flex-wrap:wrap;}
.footer-col h4{margin:0 0 12px;font-size:0.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.footer-col a{display:block;margin-bottom:8px;font-weight:600;}
.footer-col a:hover{text-decoration:underline;}

/* ---------- profile page ---------- */
.profile-hero{
  border-bottom:3px solid var(--ink);padding:56px 0 40px;
}
.profile-top{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;}
.avatar-lg{
  width:120px;height:120px;border-radius:50%;border:3px solid var(--ink);
  background:var(--paper-2);display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:2.4rem;flex:0 0 auto;
}
.profile-id h1{font-size:2.6rem;margin:0 0 6px;font-weight:800;letter-spacing:-0.02em;}
.profile-company{font-size:1.2rem;color:var(--muted);margin-bottom:10px;}
.profile-oneliner{font-size:1.25rem;max-width:640px;margin:14px 0 18px;}
.meta-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.cta-row{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap;}

.profile-grid{
  display:grid;grid-template-columns:2fr 1fr;gap:2px;background:var(--ink);
  border:2px solid var(--ink);margin-top:0;
}
@media (max-width:860px){.profile-grid{grid-template-columns:1fr;}}
.panel{background:#fff;padding:32px;}
.panel h2{font-size:1.4rem;font-weight:800;margin:0 0 18px;}

.qa-item{border-top:2px solid var(--paper-2);padding:18px 0;}
.qa-item:first-child{border-top:none;padding-top:0;}
.qa-q{font-weight:800;font-size:1.05rem;margin-bottom:8px;display:flex;gap:10px;}
.qa-a{color:var(--ink);font-size:0.98rem;line-height:1.5;}
.qa-meta{font-size:0.82rem;color:var(--muted);margin-top:8px;}

.side-block{margin-bottom:34px;}
.side-block:last-child{margin-bottom:0;}
.side-block h3{font-size:0.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;}
.zone-list{display:flex;flex-wrap:wrap;gap:8px;}
.zone-pill{border:2px solid var(--ink);border-radius:999px;padding:6px 12px;font-size:0.88rem;font-weight:700;}
.spec-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.spec-list li{display:flex;gap:10px;align-items:flex-start;font-size:0.98rem;}
.cred-box{border:2px solid var(--accent);border-radius:var(--radius);padding:16px;display:flex;gap:12px;align-items:flex-start;background:#f0f7f3;}
.cred-box h4{margin:0 0 4px;font-size:1rem;}
.cred-box p{margin:0;font-size:0.88rem;color:var(--muted);}

.skiplink{position:absolute;left:-999px;top:0;}
.skiplink:focus{left:12px;top:12px;background:var(--ink);color:#fff;padding:10px 16px;z-index:999;}
