* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.agency-directory-page {
  margin: 0;
  overflow-x: hidden;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  line-height: 1.55;
}
.agency-shell { width: min(var(--landing-content-max), calc(100% - 40px)); margin-inline: auto; }
.agency-nav {
  position: absolute; z-index: 50; inset: 0 0 auto; display: flex; align-items: center;
  justify-content: space-between; gap: var(--space-6); min-height: var(--landing-header-height);
  padding: 12px max(24px, calc((100% - var(--landing-content-max)) / 2)); color: var(--color-text-inverse);
}
.agency-nav__brand { display: inline-flex; align-items: center; gap: 9px; color: var(--color-text-inverse); font-weight: 800; text-decoration: none; }
.agency-nav__brand img { width: 30px; height: 30px; border-radius: var(--radius-small); }
.agency-nav__links { display: flex; align-items: center; gap: var(--space-6); }
.agency-nav__links a { color: var(--color-text-inverse-muted); font-size: var(--text-sm); text-decoration: none; }
.agency-nav__links a:is(:hover, :focus-visible), .agency-nav__links .is-current { color: var(--color-text-inverse); }
.agency-nav__app { padding: 9px 16px; border: 1px solid var(--landing-border-inverse); border-radius: var(--radius-pill); }
.agency-hero {
  position: relative; isolation: isolate; overflow: hidden; min-height: 690px;
  padding: 136px 0 132px; background: var(--landing-night-gradient); color: var(--color-text-inverse);
}
.agency-hero::before {
  content: ""; position: absolute; z-index: -2; inset: -35%;
  background: conic-gradient(from 210deg at 50% 50%, transparent, color-mix(in srgb, var(--color-aurora-blue) 28%, transparent), transparent 30%, color-mix(in srgb, var(--color-brand) 22%, transparent), transparent 62%, color-mix(in srgb, var(--color-aurora-violet) 24%, transparent), transparent);
  filter: blur(70px); animation: agency-aurora 18s linear infinite;
}
.agency-hero::after {
  content: ""; position: absolute; z-index: -1; inset: 0; opacity: .4;
  background-image: linear-gradient(color-mix(in srgb, var(--color-text-inverse) 6%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-text-inverse) 6%, transparent) 1px, transparent 1px);
  background-size: 52px 52px; mask-image: linear-gradient(to bottom, transparent, var(--color-text), transparent);
}
.agency-hero__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(48px, 7vw, 96px); align-items: center; }
.agency-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin-bottom: var(--space-5); color: var(--color-aurora-cyan); font-size: var(--text-sm); font-weight: 800; letter-spacing: .03em; }
.agency-eyebrow svg, .agency-action svg, .agency-proof svg, .agency-section-label svg { width: 18px; height: 18px; flex: 0 0 auto; }
.agency-hero h1 { max-width: 780px; margin: 0; font-size: clamp(44px, 6.5vw, 78px); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.agency-hero h1 span { color: transparent; background: var(--landing-aurora-gradient); background-clip: text; -webkit-background-clip: text; }
.agency-hero__lead { max-width: 690px; margin: var(--space-6) 0 0; color: var(--color-text-inverse-muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.62; }
.agency-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--space-8); }
.agency-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px;
  padding: 12px 19px; border: 1px solid transparent; border-radius: var(--radius-pill);
  font: 750 var(--text-base)/1 var(--font-sans); text-decoration: none; cursor: pointer;
  transition: transform var(--motion-duration-fast), box-shadow var(--motion-duration-fast), background var(--motion-duration-fast);
}
.agency-action:hover { transform: translateY(-1px); }
.agency-action--aurora { background: var(--landing-aurora-gradient); color: var(--color-forest-night); box-shadow: var(--landing-aurora-shadow); }
.agency-action--glass { border-color: var(--landing-border-inverse); background: var(--landing-surface-inverse); color: var(--color-text-inverse); }
.agency-action--dark { background: var(--color-forest); color: var(--color-text-inverse); box-shadow: var(--landing-button-shadow); }
.agency-action--light { border-color: var(--color-border); background: var(--color-bg-card); color: var(--color-forest); }
.agency-map { position: relative; aspect-ratio: 1; width: min(100%, 460px); margin-inline: auto; }
.agency-map__ring { position: absolute; border: 1px solid color-mix(in srgb, var(--color-aurora-cyan) 30%, transparent); border-radius: 50%; }
.agency-map__ring--outer { inset: 2%; animation: agency-spin 28s linear infinite; }
.agency-map__ring--inner { inset: 22%; border-style: dashed; animation: agency-spin 18s linear infinite reverse; }
.agency-map__core {
  position: absolute; inset: 50% auto auto 50%; display: grid; place-items: center; width: 112px; aspect-ratio: 1;
  transform: translate(-50%, -50%); border: 1px solid color-mix(in srgb, var(--color-aurora-cyan) 36%, transparent);
  border-radius: 34px; background: color-mix(in srgb, var(--color-forest-night) 72%, transparent); box-shadow: var(--landing-aurora-shadow); backdrop-filter: blur(14px);
}
.agency-map__core img { width: 52px; height: 52px; }
.agency-map__core small { color: var(--color-text-inverse-muted); font-weight: 750; }
.agency-map__node {
  position: absolute; display: grid; place-items: center; width: 68px; aspect-ratio: 1; padding: 10px;
  border: 1px solid var(--landing-border-inverse); border-radius: 22px; background: var(--color-bg-card);
  box-shadow: var(--landing-dark-shadow); animation: agency-float 5s ease-in-out infinite;
}
.agency-map__node img { max-width: 100%; max-height: 100%; object-fit: contain; }
.agency-map__node--1 { top: 2%; left: 42%; }
.agency-map__node--2 { top: 30%; right: 0; animation-delay: -.8s; }
.agency-map__node--3 { right: 15%; bottom: 4%; animation-delay: -1.6s; }
.agency-map__node--4 { left: 11%; bottom: 8%; animation-delay: -2.4s; }
.agency-map__node--5 { top: 29%; left: 0; animation-delay: -3.2s; }
.agency-match { position: relative; z-index: 10; margin-top: -82px; }
.agency-match__panel { padding: clamp(24px, 4vw, 42px); border: 1px solid color-mix(in srgb, var(--color-aurora-blue) 18%, var(--color-border)); border-radius: var(--landing-section-radius); background: color-mix(in srgb, var(--color-bg-card) 92%, transparent); box-shadow: var(--landing-aurora-shadow); backdrop-filter: blur(20px); }
.agency-match__head { display: flex; justify-content: space-between; gap: 28px; align-items: end; }
.agency-match__head h2 { max-width: 680px; margin: 0; font-size: clamp(28px, 4vw, 42px); line-height: 1.08; letter-spacing: -.03em; }
.agency-match__head p { max-width: 390px; margin: 0; color: var(--color-text-muted); }
.agency-match__fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 12px; align-items: end; margin-top: var(--space-8); }
.agency-field { display: grid; gap: 7px; min-width: 0; font-size: var(--text-sm); font-weight: 750; }
.agency-field .lf-select__trigger { border-color: color-mix(in srgb, var(--color-forest) 15%, var(--color-border)); background: var(--color-bg-subtle); }
.agency-match__submit { min-height: 48px; white-space: nowrap; }
.agency-main { padding: var(--landing-section-space) 0; }
.agency-section-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-8); }
.agency-section-label { display: inline-flex; align-items: center; gap: 8px; color: var(--color-brand-text); font-weight: 800; }
.agency-section-head h2 { margin: 8px 0 0; font-size: var(--landing-title-size); line-height: 1.08; letter-spacing: -.035em; }
.agency-count { flex: 0 0 auto; color: var(--color-text-muted); }
.agency-list { border-top: 1px solid var(--color-border); }
.agency-card { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 28px; padding: 32px 0; border-bottom: 1px solid var(--color-border); transition: opacity var(--motion-duration-fast), transform var(--motion-duration-fast); }
.agency-card[hidden] { display: none; }
.agency-card.is-match { border-color: color-mix(in srgb, var(--color-brand) 45%, var(--color-border)); }
.agency-card__emblem { display: grid; place-items: center; width: 92px; height: 92px; padding: 14px; border: 1px solid var(--color-border); border-radius: 26px; background: var(--color-bg-card); box-shadow: var(--shadow-card); }
.agency-card__emblem img { max-width: 100%; max-height: 100%; object-fit: contain; }
.agency-card__top { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.agency-card h3 { margin: 0; font-size: clamp(24px, 3vw, 32px); line-height: 1.1; letter-spacing: -.025em; }
.agency-verified, .agency-match-reason { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; border-radius: var(--radius-pill); background: var(--color-matcha-light); color: var(--color-forest); font-size: 12px; font-weight: 800; }
.agency-match-reason { display: none; margin-top: 10px; background: color-mix(in srgb, var(--color-aurora-blue) 12%, var(--color-bg-card)); color: var(--color-onboarding-accent-dark); }
.agency-card.is-match .agency-match-reason { display: inline-flex; }
.agency-card__summary { max-width: 720px; margin: 11px 0 0; color: var(--color-text-secondary); font-size: 16px; }
.agency-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.agency-tag { padding: 5px 9px; border-radius: var(--radius-pill); background: var(--color-bg-dark); color: var(--color-text-secondary); font-size: 13px; font-weight: 700; }
.agency-facts { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 17px; color: var(--color-text-muted); font-size: 13px; }
.agency-facts strong { color: var(--color-text); }
.agency-card__actions { display: flex; flex-direction: column; align-items: stretch; gap: 9px; min-width: 188px; }
.agency-card__actions .agency-action { min-height: 43px; padding: 10px 15px; }
.agency-select { position: relative; }
.agency-select input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.agency-select span { display: flex; align-items: center; justify-content: center; min-height: 43px; padding: 10px 15px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: var(--color-bg-card); color: var(--color-forest); font-size: var(--text-sm); font-weight: 750; cursor: pointer; }
.agency-select input:checked + span { border-color: var(--color-brand-text); background: var(--color-forest); color: var(--color-text-inverse); }
.agency-select input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--color-brand) 30%, transparent); outline-offset: 2px; }
.agency-empty { padding: 40px 0; border-bottom: 1px solid var(--color-border); }
.agency-empty h3 { margin: 0 0 8px; }
.agency-empty p { margin: 0; color: var(--color-text-muted); }
.agency-story { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(42px, 8vw, 110px); padding: var(--landing-section-space) 0; border-top: 1px solid var(--color-border); }
.agency-story h2 { position: sticky; top: 92px; margin: 10px 0 0; font-size: var(--landing-title-size); line-height: 1.08; letter-spacing: -.035em; }
.agency-story__copy { display: grid; gap: var(--space-8); }
.agency-story__copy article { padding-bottom: var(--space-8); border-bottom: 1px solid var(--color-border); }
.agency-story__copy h3 { margin: 0 0 10px; font-size: 22px; }
.agency-story__copy p, .agency-story__copy li { color: var(--color-text-secondary); }
.agency-story__copy p { margin: 0; }
.agency-story__copy ul { margin: 12px 0 0; padding-left: 20px; }
.agency-join { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center; padding: clamp(30px, 5vw, 56px); border-radius: var(--landing-section-radius); background: var(--landing-night-gradient); color: var(--color-text-inverse); }
.agency-join h2 { margin: 0; font-size: clamp(30px, 4vw, 48px); line-height: 1.05; }
.agency-join p { max-width: 700px; margin: 14px 0 0; color: var(--color-text-inverse-muted); }
.agency-faq { padding: var(--landing-section-space) 0 0; }
.agency-faq h2 { margin: 0 0 var(--space-8); font-size: var(--landing-title-size); }
.agency-faq details { border-top: 1px solid var(--color-border); }
.agency-faq details:last-child { border-bottom: 1px solid var(--color-border); }
.agency-faq summary { display: flex; justify-content: space-between; gap: 24px; padding: 20px 0; font-weight: 800; cursor: pointer; list-style: none; }
.agency-faq summary::-webkit-details-marker { display: none; }
.agency-faq summary::after { content: "+"; color: var(--color-brand-text); font-size: 24px; font-weight: 500; }
.agency-faq details[open] summary::after { content: "−"; }
.agency-faq details p { max-width: 820px; margin: -4px 0 22px; color: var(--color-text-secondary); }
.agency-disclaimer { margin: 30px 0 0; color: var(--color-text-hint); font-size: 13px; }
.agency-dialog { width: min(700px, calc(100% - 28px)); max-height: min(860px, calc(100vh - 28px)); padding: 0; overflow: auto; border: 0; border-radius: var(--landing-section-radius); background: var(--color-bg-card); color: var(--color-text); box-shadow: var(--landing-dark-shadow); }
.agency-dialog::backdrop { background: color-mix(in srgb, var(--color-forest-night) 72%, transparent); backdrop-filter: blur(8px); }
.agency-dialog__head { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; gap: 24px; padding: 24px 28px; border-bottom: 1px solid var(--color-border); background: color-mix(in srgb, var(--color-bg-card) 94%, transparent); backdrop-filter: blur(14px); }
.agency-dialog__head h2 { margin: 0; font-size: 27px; }
.agency-dialog__close { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-bg-card); color: var(--color-text); cursor: pointer; }
.agency-dialog__close svg { width: 20px; height: 20px; }
.agency-form { display: grid; gap: 18px; padding: 28px; }
.agency-form__intro { margin: 0; color: var(--color-text-secondary); }
.agency-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.agency-form label:not(.agency-consent):not(.agency-honeypot) { display: grid; gap: 7px; font-size: var(--text-sm); font-weight: 750; }
.agency-form input:not([type="checkbox"]), .agency-form textarea { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-element); background: var(--color-bg-card); color: var(--color-text); font: var(--text-base)/1.45 var(--font-sans); }
.agency-form textarea { min-height: 132px; resize: vertical; }
.agency-form input:focus, .agency-form textarea:focus { outline: 3px solid color-mix(in srgb, var(--color-brand) 22%, transparent); border-color: var(--color-brand-text); }
.agency-form__selection { padding: 14px; border-radius: var(--radius-medium); background: var(--color-bg-subtle); color: var(--color-text-secondary); }
.agency-form__selection strong { color: var(--color-text); }
.agency-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--color-text-secondary); font-size: 13px; }
.agency-consent input { margin-top: 3px; accent-color: var(--color-brand-text); }
.agency-form__status { min-height: 22px; margin: 0; color: var(--color-error); font-size: var(--text-sm); }
.agency-form__status.is-success { color: var(--color-success); }
.agency-form__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.agency-form__privacy { margin: 0; color: var(--color-text-hint); font-size: 12px; }
.agency-honeypot { position: absolute; left: -10000px; }
.agency-brief-dock { position: fixed; z-index: 80; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 18px; border: 1px solid var(--landing-border-inverse); border-radius: var(--radius-pill); background: var(--color-forest-night); color: var(--color-text-inverse); box-shadow: var(--landing-aurora-shadow); transform: translateY(140%); opacity: 0; pointer-events: none; transition: transform var(--motion-duration-medium) var(--motion-ease-out), opacity var(--motion-duration-medium); }
.agency-brief-dock.is-visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
.agency-brief-dock small { color: var(--color-text-inverse-muted); }
.agency-brief-dock .agency-action { min-height: 42px; padding: 10px 15px; }
@keyframes agency-spin { to { transform: rotate(1turn); } }
@keyframes agency-float { 50% { transform: translateY(-8px); } }
@keyframes agency-aurora { to { transform: rotate(1turn); } }
@media (max-width: 920px) {
  .agency-nav__links a:not(.agency-nav__app) { display: none; }
  .agency-hero { min-height: auto; padding-bottom: 150px; }
  .agency-hero__grid { grid-template-columns: 1fr; }
  .agency-map { width: min(82vw, 430px); }
  .agency-match__head, .agency-section-head { align-items: start; flex-direction: column; }
  .agency-match__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agency-card { grid-template-columns: 76px minmax(0, 1fr); }
  .agency-card__emblem { width: 76px; height: 76px; border-radius: 22px; }
  .agency-card__actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; }
  .agency-story { grid-template-columns: 1fr; }
  .agency-story h2 { position: static; }
}
@media (max-width: 640px) {
  .agency-shell { width: min(100% - 28px, var(--landing-content-max)); }
  .agency-nav { padding-inline: 14px; }
  .agency-hero { padding-top: 96px; padding-bottom: 112px; }
  .agency-hero__grid { gap: 20px; }
  .agency-hero h1 { font-size: clamp(42px, 12vw, 50px); }
  .agency-hero__lead { margin-top: 18px; font-size: 16px; }
  .agency-hero__actions { gap: 8px; margin-top: 22px; }
  .agency-hero__actions .agency-action { min-height: 44px; padding: 10px 15px; }
  .agency-map { width: 260px; height: 190px; margin: 8px auto 0; aspect-ratio: auto; }
  .agency-map__ring--outer { inset: 0 24px; }
  .agency-map__ring--inner { inset: 35px 60px; }
  .agency-map__node { width: 44px; padding: 7px; border-radius: 14px; }
  .agency-map__node--1 { top: -4px; left: 108px; }
  .agency-map__node--2 { top: 56px; right: 0; }
  .agency-map__node--3 { right: 42px; bottom: -2px; }
  .agency-map__node--4 { left: 42px; bottom: -2px; }
  .agency-map__node--5 { top: 56px; left: 0; }
  .agency-map__core { width: 70px; border-radius: 22px; }
  .agency-map__core img { width: 36px; height: 36px; }
  .agency-map__core small { display: none; }
  .agency-match { margin-top: -94px; }
  .agency-match__panel { border-radius: 24px; }
  .agency-match__fields, .agency-form__grid { grid-template-columns: 1fr; }
  .agency-match__submit { width: 100%; }
  .agency-card { grid-template-columns: 58px minmax(0, 1fr); gap: 16px; padding: 26px 0; }
  .agency-card__emblem { width: 58px; height: 58px; padding: 8px; border-radius: 17px; }
  .agency-card__summary, .agency-tags, .agency-facts, .agency-match-reason { grid-column: 1 / -1; }
  .agency-card__actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; min-width: 0; }
  .agency-join { grid-template-columns: 1fr; }
  .agency-dialog__head, .agency-form { padding: 20px; }
  .agency-form__footer { align-items: stretch; flex-direction: column; }
  .agency-form__footer .agency-action { width: 100%; }
  .agency-brief-dock { right: 10px; bottom: 10px; left: 10px; justify-content: space-between; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .agency-hero::before, .agency-map__ring, .agency-map__node { animation: none; }
  .agency-action, .agency-brief-dock { transition: none; }
}
