:root{--firm-ink:#17252a;--firm-muted:#66777c;--firm-deep:#0d5657;--firm-teal:#157a78;--firm-paper:#fffdfa;--firm-bg:#f4f2ec;--firm-line:#d9ddd9;--firm-soft:#e2f2ef;--firm-gold:#916d2d}
body[data-taxlazy-page="firms-directory"]{margin:0;background:var(--firm-bg);color:var(--firm-ink);font-family:Poppins,ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.6}
.firms-page{min-height:100vh;background:var(--firm-bg)}.firms-wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.firms-hero{padding:72px 0 64px;background:linear-gradient(145deg,#fffdfa 0%,#f4f2ec 62%,#e2f2ef 140%);border-bottom:1px solid var(--firm-line)}.firms-hero .firms-wrap{max-width:1000px;margin-inline:clamp(24px,5vw,80px)}
.firms-eyebrow{display:block;color:var(--firm-teal);font-size:16px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.firms-hero h1{max-width:900px;margin:14px 0 20px;font-size:clamp(48px,6.2vw,78px);line-height:1.04;letter-spacing:-.045em}.firms-hero p{max-width:880px;margin:0;color:var(--firm-muted);font-size:20px;line-height:1.7}
.firms-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.firms-actions a{min-height:48px;border:1px solid transparent;border-radius:999px;padding:11px 18px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.firms-primary-action{background:var(--firm-deep);color:#fff}.firms-secondary-action{background:var(--firm-paper);color:var(--firm-deep);border-color:rgba(21,122,120,.3)!important}
.firms-content{padding:64px 0 90px}.firms-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:26px}.firms-heading h2{margin:8px 0 0;font-size:clamp(38px,4.4vw,58px);line-height:1.08;letter-spacing:-.04em}.firms-heading p{margin:0;color:var(--firm-muted);font-size:16px;white-space:nowrap}.firms-heading p strong{color:var(--firm-deep);font-size:22px}
.firms-filters{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(180px,.75fr));gap:14px;margin-bottom:26px;padding:20px;border:1px solid var(--firm-line);border-radius:20px;background:rgba(255,253,250,.9);box-shadow:0 14px 40px rgba(23,37,42,.05)}.firms-filters label{display:grid;gap:7px;font-size:16px;font-weight:650}.firms-filters input,.firms-filters select{width:100%;min-height:50px;border:1px solid var(--firm-line);border-radius:12px;background:#fff;padding:11px 13px;font:inherit;font-size:16px;color:var(--firm-ink);outline:0}.firms-filters input:focus,.firms-filters select:focus{border-color:var(--firm-teal);box-shadow:0 0 0 4px rgba(21,122,120,.12)}
.firms-status{margin-bottom:18px;color:var(--firm-muted);font-size:16px}.firms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.firm-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--firm-line);border-radius:22px;background:var(--firm-paper);padding:24px;box-shadow:0 14px 40px rgba(23,37,42,.05)}.firm-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start}.firm-mark{width:74px;height:74px;border-radius:18px;display:grid;place-items:center;background:var(--firm-soft);color:var(--firm-deep);font-size:24px;font-weight:800}.firm-identity h3{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}.firm-identity p{margin:5px 0 0;color:var(--firm-deep);font-size:16px;font-weight:700}.firm-region{display:inline-flex;align-items:center;border-radius:999px;background:var(--firm-soft);padding:6px 10px;color:var(--firm-deep);font-size:16px;font-weight:700;white-space:nowrap}.firm-summary{margin:20px 0 14px;color:var(--firm-muted);font-size:16px;line-height:1.65}.firm-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.firm-tags span{display:inline-flex;border-radius:999px;background:#f0f3f0;padding:6px 10px;color:#526864;font-size:16px;font-weight:650}.firm-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:18px;color:var(--firm-muted);font-size:16px}.firm-meta strong{color:var(--firm-ink)}.firm-services{display:grid;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid var(--firm-line)}.firm-services-title{font-size:16px;font-weight:800;color:var(--firm-ink)}.firm-service{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(21,122,120,.18);border-radius:14px;background:#f5faf8;padding:13px 14px}.firm-service strong{display:block;font-size:16px;line-height:1.35}.firm-service span{display:block;margin-top:3px;color:var(--firm-muted);font-size:16px}.firm-service button{border:0;border-radius:999px;background:var(--firm-deep);color:#fff;padding:9px 13px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;white-space:nowrap}.firm-service button:hover{background:var(--firm-teal)}.firms-empty{grid-column:1/-1;padding:46px 28px;border:1px dashed rgba(21,122,120,.34);border-radius:22px;text-align:center;background:rgba(255,253,250,.72)}.firms-empty h3{margin:0 0 8px;font-size:28px}.firms-empty p{margin:0;color:var(--firm-muted);font-size:16px}
.firm-service-dialog{width:min(680px,calc(100% - 32px));border:1px solid var(--firm-line);border-radius:22px;padding:30px;background:var(--firm-paper);color:var(--firm-ink)}.firm-service-dialog::backdrop{background:rgba(23,37,42,.4)}.firm-service-dialog h2{margin:8px 0 10px;font-size:32px;line-height:1.15}.firm-service-dialog h3{margin:24px 0 8px;font-size:20px}.firm-service-dialog p,.firm-service-dialog li{font-size:16px;color:var(--firm-muted)}.firm-service-dialog ul{padding-left:22px}.firm-dialog-kicker{color:var(--firm-teal);font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.firm-dialog-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:28px;cursor:pointer;color:var(--firm-ink)}
@media(max-width:900px){.firms-filters{grid-template-columns:1fr}.firms-heading{align-items:start;flex-direction:column}.firms-heading p{white-space:normal}.firms-grid{grid-template-columns:1fr}}
@media(max-width:640px){.firms-wrap{width:min(100% - 24px,1180px)}.firms-hero{padding:48px 0}.firms-hero .firms-wrap{margin-inline:auto}.firms-hero h1{font-size:43px}.firms-hero p{font-size:18px}.firms-actions{display:grid}.firms-actions a{width:100%}.firms-content{padding:46px 0 64px}.firms-filters{padding:16px}.firm-card{padding:18px}.firm-card-head{grid-template-columns:1fr}.firm-region{justify-self:start}.firm-service{grid-template-columns:1fr}.firm-service button{justify-self:start}}
