/* City adviser pages, v2 design (body.city-v2): the metro city pages and the hub.
   Brand tokens come from /assets/fonts/fonts.css; the short names below (--ink, --rust, --line…) are also used
   by the shared site chrome (nav + footer CSS injected by scripts/build-site-chrome.js), so keep them.
   Rules: one face (Foliyo Sans), mono only for registration numbers and figures; no uppercase eyebrows;
   surfaces 12px radius, buttons pill; no shadows on content; light theme like the rest of the site. */
:root{
  --bg:var(--fy-bg,#FAFAF8);
  --bg-warm:var(--fy-bg-warm,#F4F4F0);
  --bg-light:#FFFFFF;
  --card:#FFFFFF;
  --ink:var(--fy-ink,#0F2D21);
  --ink-soft:var(--fy-ink-soft,#244135);
  --ink-mute:var(--fy-ink-mute,#5C6E64);
  --rust:var(--fy-accent,#B8541A);
  --rust-deep:var(--fy-accent-deep,#8E3F12);
  --rust-tint:var(--fy-accent-tint,#FFF2E6);
  --line:rgba(15,45,33,0.10);
  --line-strong:rgba(15,45,33,0.18);
  --shadow-lg:0 16px 40px -16px rgba(15,45,33,0.18);
  --font-sans:var(--fy-font-sans,'Foliyo Sans',sans-serif);
  --font-serif:var(--font-sans);
  --font-mono:var(--fy-font-mono,'Foliyo Mono',monospace);
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:12px;
  --radius-xl:12px;
  --radius-full:9999px;
  --transition-fast:150ms ease;
  --transition-base:250ms cubic-bezier(0.16,1,0.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fy-text-body,17px);
  line-height:var(--fy-leading-body,1.6);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
.container{max-width:1180px;margin:0 auto;padding:0 32px;}
.num,.reg{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
:focus-visible{outline:2px solid var(--rust);outline-offset:2px;border-radius:4px;}

/* Breadcrumb */
.breadcrumb{padding:20px 0 0;font-size:13px;color:var(--ink-mute);}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.breadcrumb li{display:flex;align-items:center;gap:6px;}
.breadcrumb li+li::before{content:'/';color:var(--line-strong);}
.breadcrumb a{color:var(--ink-mute);text-decoration:none;}
.breadcrumb a:hover{color:var(--rust);}
.breadcrumb [aria-current="page"]{color:var(--ink-soft);}

/* Buttons: pill */
.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;
  padding:0 26px;border-radius:var(--radius-full);font:inherit;font-size:16px;font-weight:600;text-decoration:none;
  white-space:nowrap;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);}
.btn-primary{background:var(--ink);color:#FAFAF8;border:1px solid var(--ink);}
.btn-primary:hover{background:var(--rust);border-color:var(--rust);}
.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line-strong);}
.btn-secondary:hover{border-color:var(--ink);}
.btn-primary:active,.btn-secondary:active{transform:translateY(1px);}

/* Hero */
.hero{padding:40px 0 56px;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr);gap:64px;align-items:center;}
.hero h1{font-size:var(--fy-text-display,clamp(32px,4.4vw,52px));font-weight:700;line-height:var(--fy-leading-display,1.08);
  letter-spacing:var(--fy-tracking-display,-0.03em);color:var(--ink);max-width:17ch;margin-bottom:20px;text-wrap:balance;}
.hero h1 em{font-style:normal;}
.hero-lead{font-size:var(--fy-text-lead,18px);line-height:1.6;color:var(--ink-soft);max-width:54ch;margin-bottom:32px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;}

/* Commission chart (hero right) */
.commission-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;}
.cc-header{margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.cc-header h2{font-size:17px;font-weight:700;letter-spacing:-0.01em;color:var(--ink);}
.cc-info-wrap{position:relative;display:inline-flex;}
.cc-info-icon{width:18px;height:18px;border-radius:50%;border:1px solid var(--line-strong);color:var(--ink-mute);font-size:11px;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:help;}
.cc-tooltip{position:absolute;top:calc(100% + 8px);right:-12px;width:min(280px,80vw);background:var(--ink);color:#FAFAF8;font-size:13px;
  line-height:1.55;padding:12px 14px;border-radius:var(--radius-sm);opacity:0;pointer-events:none;transition:opacity 0.15s;z-index:20;}
.cc-info-wrap:hover .cc-tooltip,.cc-info-wrap:focus-within .cc-tooltip{opacity:1;pointer-events:auto;}
.cc-canvas-wrap canvas{width:100%;height:auto;display:block;}
.cc-chart-note{font-size:13px;color:var(--ink-mute);margin:6px 0 14px;}
.cc-metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:14px;margin-bottom:10px;}
.cc-divider{display:none;}
.cc-metric-val{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;letter-spacing:-0.02em;color:var(--ink);line-height:1.1;}
.cc-metric.lost .cc-metric-val{color:var(--rust);}
.cc-metric-label{font-size:13px;color:var(--ink-mute);margin-top:4px;}
.cc-illustrative{text-align:left !important;margin:0 !important;}
.cc-cta{display:none;}

/* Facts band: replaces the hero stats and the trust strip */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.facts dl>div{padding:24px 24px 24px 0;}
.facts dl>div+div{padding-left:24px;border-left:1px solid var(--line);}
.facts dt{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;letter-spacing:-0.02em;color:var(--ink);line-height:1.15;}
.facts dd{font-size:14px;color:var(--ink-mute);line-height:1.45;margin-top:6px;}

/* Sections */
.band{padding:88px 0;}
.band-warm{background:var(--bg-warm);}
.band h2{font-size:var(--fy-text-h2,clamp(26px,3vw,36px));font-weight:700;line-height:var(--fy-leading-heading,1.15);
  letter-spacing:var(--fy-tracking-heading,-0.02em);color:var(--ink);max-width:24ch;text-wrap:balance;}
.band h2 em{font-style:normal;}
.band-intro{font-size:var(--fy-text-body,17px);color:var(--ink-soft);max-width:62ch;margin-top:14px;}
.band-note{font-size:14px;color:var(--ink-mute);max-width:72ch;margin-top:10px;}

/* Local context: heading column + list column */
.local-grid{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,1.2fr);gap:72px;align-items:start;}
.local-head{position:sticky;top:100px;}
.local-list{list-style:none;}
.local-list li{padding:28px 0;border-top:1px solid var(--line);}
.local-list li:first-child{padding-top:0;border-top:none;}
.local-list h3{font-size:20px;font-weight:700;letter-spacing:-0.015em;line-height:1.3;margin-bottom:8px;color:var(--ink);}
.local-list p{font-size:16px;color:var(--ink-soft);max-width:62ch;}
.local-list a{color:var(--rust);font-weight:600;}

/* Directory */
.dir-head{margin-bottom:40px;}
.dir-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.dir-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;
  transition:border-color var(--transition-fast);}
.dir-card:hover{border-color:var(--line-strong);}
/* #ina… links (citations, the structured data) land on the card below the sticky nav. */
.dir-card{scroll-margin-top:84px;}
.dir-card:target{border-color:var(--rust);}
.dir-card-header{padding:20px 20px 16px;display:flex;align-items:center;gap:14px;}
.dir-card-avatar{width:48px;height:48px;border-radius:50%;background:var(--bg-warm);display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:700;color:var(--ink-soft);flex-shrink:0;overflow:hidden;}
.dir-card-avatar img{width:100%;height:100%;object-fit:cover;}
.dir-card-name{font-size:17px;font-weight:700;line-height:1.25;color:var(--ink);margin:0;letter-spacing:normal;}
.dir-card-creds{font-size:13px;color:var(--ink-mute);margin-top:2px;}
.dir-card-location{display:none;}
.dir-card-bio{padding:0 20px 14px;font-size:14px;line-height:1.5;color:var(--ink-soft);}
.dir-card-meta{padding:0 20px 16px;display:flex;flex-direction:column;gap:6px;}
.dir-card-meta-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.45;}
.dir-card-meta-label{color:var(--ink-mute);}
.dir-card-meta-val{color:var(--ink);text-align:right;overflow-wrap:anywhere;}
.dir-card-meta-val a{color:var(--rust);text-decoration:none;font-weight:600;}
.dir-card-meta-val a:hover{text-decoration:underline;}
.dir-card-tags-wrap{margin-top:auto;padding:14px 20px 18px;border-top:1px solid var(--line);}
.dir-card-tags{display:flex;flex-wrap:wrap;gap:6px;}
.dir-card-tag{font-size:13px;color:var(--ink-soft);background:var(--bg-warm);padding:3px 10px;border-radius:var(--radius-full);}
.dir-verify{font-size:14px;color:var(--ink-mute);margin-top:28px;max-width:80ch;}
.dir-verify a{color:var(--rust);font-weight:600;}

/* Registration table */
.ria-table-block{max-width:none;margin:48px 0 0;}
.ria-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);}
.ria-table{width:100%;min-width:640px;border-collapse:collapse;font-size:15px;line-height:1.45;color:var(--ink);}
.ria-table caption{caption-side:top;text-align:left;font-weight:700;font-size:17px;padding:18px 16px 12px;}
.ria-table th,.ria-table td{padding:11px 16px;text-align:left;vertical-align:top;border-top:1px solid var(--line);}
.ria-table thead th{font-size:13px;font-weight:600;color:var(--ink-mute);background:var(--bg-warm);white-space:nowrap;}
.ria-table tbody th{font-weight:600;}
.ria-table .ria-reg{font-family:var(--font-mono);font-size:14px;white-space:nowrap;}
.ria-table a{color:var(--rust);font-weight:600;text-decoration:none;}
.ria-table a:hover{text-decoration:underline;}
.ria-table .na{color:var(--ink-mute);}
.ria-table-note{font-size:13px;line-height:1.55;color:var(--ink-mute);margin-top:12px;max-width:90ch;}

/* Guides: two-column link list */
.guide-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;margin-top:36px;}
.guide-list li{border-top:1px solid var(--line);}
.guide-list a{display:block;padding:18px 0;text-decoration:none;}
.guide-list strong{display:block;font-size:17px;font-weight:600;color:var(--ink);line-height:1.35;}
.guide-list span{display:block;font-size:15px;color:var(--ink-mute);margin-top:4px;}
.guide-list a:hover strong{color:var(--rust);}
.guides-more{margin-top:20px;font-size:15px;}
.guides-more a{color:var(--rust);font-weight:600;}

/* FAQ: heading column + accordion */
.faq-grid{display:grid;grid-template-columns:minmax(0,0.7fr) minmax(0,1.3fr);gap:72px;align-items:start;}
.faq-head{position:sticky;top:100px;}
.faq-group{font-size:15px;font-weight:700;color:var(--ink-mute);margin:44px 0 4px;}
.faq-group:first-child{margin-top:0;}
.faq-list details{border-bottom:1px solid var(--line);}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  padding:20px 0;font-size:17px;font-weight:600;line-height:1.4;color:var(--ink);}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:'+';font-size:22px;line-height:1;color:var(--ink-mute);flex-shrink:0;}
.faq-list details[open] summary::after{content:'\2212';color:var(--rust);}
.faq-list summary:hover{color:var(--rust);}
.details-body{padding:0 0 22px;font-size:16px;line-height:1.65;color:var(--ink-soft);max-width:66ch;}
.details-body p+p{margin-top:12px;}
.details-body ul{padding-left:20px;margin:10px 0;display:flex;flex-direction:column;gap:6px;}
.details-body a{color:var(--rust);font-weight:600;}

/* Closing CTA: light panel, same theme as the page */
.cta-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:40px 44px;}
.cta-panel h2{font-size:var(--fy-text-h3,clamp(20px,2vw,24px));font-weight:700;letter-spacing:-0.015em;color:var(--ink);}
.cta-panel p{font-size:16px;color:var(--ink-soft);margin-top:8px;max-width:60ch;}

/* Hub: cities grouped by region */
.region-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px;margin-top:40px;}
.region h3{font-size:15px;font-weight:700;color:var(--ink-mute);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.region ul{list-style:none;}
.region a{display:flex;justify-content:space-between;gap:12px;padding:9px 0;text-decoration:none;color:var(--ink);font-weight:600;font-size:16px;}
.region a:hover{color:var(--rust);}
.region .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;color:var(--ink-mute);}
.compare{width:100%;border-collapse:collapse;margin-top:36px;font-size:15px;line-height:1.5;}
.compare th,.compare td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-top:1px solid var(--line);}
.compare thead th{font-size:14px;color:var(--ink-mute);font-weight:600;border-top:none;}
.compare tbody th{font-weight:700;color:var(--ink);width:22%;}
.compare-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.compare-scroll table{min-width:640px;}

/* Hub directory: filter, card footer, empty state */
.dir-card.hidden{display:none;}
.dir-card-footer{padding:12px 20px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;}
.city-badge{color:var(--ink-mute);}
.dir-card-profile-link{color:var(--rust);font-weight:600;text-decoration:none;}
.dir-card-profile-link:hover{text-decoration:underline;}
.empty-state{display:none;padding:40px 24px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--ink-mute);}
.empty-state.visible{display:block;}

/* Hub filter pills */
.pill-bar-wrap{margin:0 0 24px;}
.pill-bar{display:flex;flex-wrap:wrap;gap:8px;}
.pill{font:inherit;font-size:14px;font-weight:600;color:var(--ink-soft);background:transparent;border:1px solid var(--line-strong);
  border-radius:var(--radius-full);padding:7px 16px;cursor:pointer;}
.pill:hover{border-color:var(--ink);}
.pill.active{background:var(--ink);border-color:var(--ink);color:#FAFAF8;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

@media (max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .dir-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .local-grid,.faq-grid{grid-template-columns:1fr;gap:32px;}
  .local-head,.faq-head{position:static;}
  .region-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:768px){
  .container{padding:0 16px;}
  .hero{padding:28px 0 40px;}
  .band{padding:64px 0;}
  .facts dl{grid-template-columns:1fr 1fr;}
  .facts dl>div,.facts dl>div+div{padding:18px 12px 18px 0;border-left:none;}
  .facts dl>div:nth-child(even){padding-left:16px;border-left:1px solid var(--line);}
  .facts dl>div:nth-child(n+3){border-top:1px solid var(--line);}
  .facts dt{font-size:20px;}
  .dir-grid,.guide-list{grid-template-columns:1fr;}
  .cta-panel{grid-template-columns:1fr;padding:28px 22px;}
  .region-grid{grid-template-columns:1fr 1fr;gap:28px;}
  .hero-ctas a{flex:1 1 auto;}
}
