/* Interactive office map, styled for the original Brennan design. */
.office-map-layout{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--paper);overflow:hidden}
.office-map-art{background:radial-gradient(ellipse at 50% 65%,#1a354b,var(--navy-deep) 75%);color:white;padding:2.5rem 0 1.5rem;min-width:0}
.office-map-heading{padding:0 2.5rem}.office-map-heading h2{color:white;margin-bottom:1rem}.office-map-heading>p:last-child{font-size:1rem;color:#c4d0df;margin-bottom:0}
.map-kicker{color:#e0c694;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem}
.map-selection{padding:0 2.5rem;color:#e0c694;font-size:.95rem;min-height:2rem;margin:0}
.office-map-list{padding:2.5rem;align-self:center;min-width:0}.office-map-list>h3{font-size:1.7rem;margin:0 0 .75rem}.office-map-list>p{font-size:1rem;color:var(--muted);margin-bottom:1.5rem}
.office-map-row{border-top:1px solid var(--line)}.office-map-row:last-of-type{border-bottom:1px solid var(--line)}
.office-map-row summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 0;cursor:pointer;list-style:none;font-family:var(--serif);font-size:1.4rem;color:var(--navy);transition:color .2s}
.office-map-row summary::-webkit-details-marker{display:none}.office-map-row summary small{display:block;font: .9rem/1.5 var(--sans);color:var(--muted);margin-top:.35rem}.office-map-row[open] summary,.office-map-row summary:hover{color:var(--gold-text)}
.office-toggle{font:1.6rem var(--sans);transition:transform .25s}.office-map-row[open] .office-toggle{transform:rotate(45deg)}
.office-map-row summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.office-map-detail{padding:0 0 1.4rem;font-size:1rem}.office-map-detail address{font-style:normal;margin-bottom:.8rem}.office-map-detail a{color:var(--gold-text);text-underline-offset:4px}
.office-map-call{margin-top:1.75rem}.office-map-call .btn{width:100%;text-align:center}.office-map-phone{display:block;text-align:center;margin-top:.75rem;font-size:1.15rem}
.nj-office-map{display:block;width:100%;max-width:640px;margin:-4px auto -22px;height:auto}
.nj-state{fill:#29445a;stroke:#809099;stroke-width:1.2;stroke-linejoin:round}
.map-state-name{font:500 12px var(--sans);letter-spacing:4px;fill:#a9bac8}
.map-ocean{font:italic 12px var(--serif);letter-spacing:2.5px;fill:#7890a4}
.map-north{stroke:#a1afbc;stroke-width:1.2;fill:none}.map-compass{font:10px var(--sans);fill:#a1afbc}
.map-office{cursor:pointer;outline:none}.map-hit{fill:transparent}.map-connector{fill:none;stroke:#8596a6;stroke-width:1;transition:stroke 250ms ease}
.map-dot{fill:#eff2f5;stroke:#12283d;stroke-width:2;transition:fill 250ms ease}
.map-halo{fill:#c4a05e;opacity:0;transition:opacity 320ms ease}
.map-label-bg{fill:transparent;stroke:transparent;transition:fill 250ms ease,stroke 250ms ease}
.map-office-label{font:500 14px var(--sans);fill:#d4dce5;transition:fill 250ms ease}
.map-office.is-active .map-halo{opacity:.25}.map-office.is-active .map-dot{fill:var(--gold)}.map-office.is-active .map-connector{stroke:var(--gold);stroke-width:1.5}.map-office.is-active .map-office-label{fill:#ebcd99}.map-office.is-active .map-label-bg{fill:#c4a05e15;stroke:#c4a05e66}
.map-office:hover .map-office-label{fill:#fff}.map-office:focus-visible .map-label-bg{stroke:white;stroke-width:2}
@media(max-width:820px){.office-map-layout{grid-template-columns:1fr}.office-map-art{padding-top:2rem}.office-map-heading,.map-selection{padding-inline:1.5rem}.office-map-list{padding:2rem 1.5rem}.nj-office-map{max-width:540px;margin:0 auto}.office-map-call .btn{white-space:normal}}
@media(prefers-reduced-motion:reduce){.office-map-section *{transition:none!important}}
/* Regional imagery in the original map background position. */
.office-map-art{position:relative;isolation:isolate;overflow:hidden;background:var(--navy-deep)}
.office-map-art::before{content:"";position:absolute;inset:0;z-index:-1;background:url('../assets/sea-girt-sunset-marsh.jpeg') center center/cover no-repeat;opacity:.25;pointer-events:none}
.office-map-art .map-photo-credit{font-size:.7rem;line-height:1.5;color:#d4dce5;padding:1rem 2.5rem 0;margin:0}
@media(max-width:820px){.office-map-art .map-photo-credit{padding-inline:1.5rem}}
