@font-face { font-family: Manrope; src: url('/fonts/Manrope-Regular.woff') format('woff'); font-weight: 200 500; font-display: swap; }
@font-face { font-family: Manrope; src: url('/fonts/Manrope-SemiBold.woff') format('woff'); font-weight: 600 900; font-display: swap; }

:root {
  color-scheme: light;
  --ink: #191a18;
  --navy: #10243e;
  --mustard: #e3b52b;
  --paper: #faf9f6;
  --white: #fffefa;
  --line: #e1ded3;
  --muted: #5e6058;
  font: 16px Manrope, Arial, sans-serif;
  scroll-behavior: smooth;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button, summary { cursor: pointer; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #86651a; outline-offset: 4px; }
.icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.primary, .quiet {
  display: inline-flex; align-items: center; justify-content: center; gap: 17px;
  min-height: 44px; padding: 10px 17px; border-radius: 6px; border: 1px solid var(--line);
  background: var(--white); font-size: .85rem; font-weight: 700;
  transition: background .2s, border-color .2s;
}
.primary { background: var(--ink); border-color: var(--ink); color: white; }
.primary:hover { background: #373a33; border-color: #373a33; }
.quiet:hover { border-color: #aaa391; }
.site-nav {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  min-height: 82px; padding: 12px max(5vw, 20px); border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 11px; font-size: 1.9rem; font-weight: 800; line-height: 1; letter-spacing: -.055em; }
.brand .market-icon { width: 43px; height: 43px; }
.brand-lockup { display: grid; gap: 3px; justify-items: start; }
.urvis-wordmark { display: block; width: auto; object-fit: contain; }
.brand .urvis-wordmark { height: 23px; }
.brand small { display: block; margin-top: 0; font-size: .52rem; letter-spacing: .21em; }
.nav-actions, .actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nav-actions .quiet { border-color: transparent; background: transparent; }
#home, #profile-page { width: min(1180px, calc(100% - 64px)); margin: 0 auto; }
#home { padding: 42px 0 64px; }
#home { width: 100%; padding: 0; }
.welcome { color: var(--navy); position: relative; isolation: isolate; overflow: hidden; text-align: center; min-height: calc(100svh - 82px); display: grid; grid-template: auto 1fr / minmax(0, 1fr); background: linear-gradient(#f9faf5, #eff3e7); }
.welcome-copy { position: relative; z-index: 1; padding: clamp(36px, 7vh, 85px) 16px 8px; }
.eyebrow { margin: 0 0 10px; color: #78632b; font-size: .69rem; font-weight: 800; letter-spacing: .16em; }
h1, h2 { letter-spacing: -.055em; }
.welcome h1 { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: .18em; margin: 0; font-size: clamp(2.6rem, 5.4vw, 5.4rem); font-weight: 600; line-height: 1.08; }
.welcome h1 .urvis-wordmark { height: .91em; align-self: center; animation: title-arrive .8s cubic-bezier(.22,.7,.25,1) both; }
.welcome h1 span { color: #936e23; font-size: .66em; letter-spacing: -.045em; animation: title-arrive .8s .15s both; }
.welcome-intro { max-width: 500px; margin: 13px auto 0; color: var(--muted); line-height: 1.55; animation: title-arrive .75s .24s both; }
.city-scene { display: block; align-self: end; width: 100%; min-width: 730px; max-width: none; height: auto; margin: 0; }
.search-card { display: grid; justify-items: center; padding: 24px 0 0; animation: title-arrive .75s .31s both; }
@keyframes title-arrive { from { opacity: 0; transform: translateY(16px); } }
.address-bar {
  display: flex; align-items: center; gap: 5px; min-width: 0; padding: 5px;
  border: 1px solid #dedacc; border-radius: 28px; background: var(--white); box-shadow: 0 3px 12px #322c241a;
}
.search-card .address-bar { width: min(100%, 620px); }
.address-bar input { flex: 1; min-width: 0; border: 0; border-radius: 24px; padding: 8px 12px; background: transparent; font-size: .9rem; }
.address-bar .map-round { width: 37px; height: 37px; flex: 0 0 37px; border: 0; box-shadow: none; }
.address-bar .map-round:hover { background: #f1cc62; }
label { display: grid; gap: 6px; font-size: .82rem; font-weight: 700; }
input, select, textarea {
  width: 100%; min-width: 0; padding: 11px 12px; min-height: 44px; border: 1px solid #d5d1c4;
  border-radius: 6px; background: white; font-weight: 500;
}
body.viewer-open { overflow: hidden; }
body.viewer-open > :is(.site-nav, #home, footer) { visibility: hidden; }
@media (prefers-reduced-motion: no-preference) {
  body.viewer-open > :is(.site-nav, #home, footer) { animation: scene-retreat .36s ease-out both; }
}
@keyframes scene-retreat {
  from { visibility: visible; opacity: 1; transform: scale(1); }
  to { visibility: hidden; opacity: 0; transform: scale(.975); }
}
.viewer { --panel-width: clamp(320px, 28vw, 410px); position: fixed; z-index: 10; inset: 0; overflow: hidden; background: #e7e8dc; animation: map-enter .4s ease-out both; }
@keyframes map-enter { from { opacity: 0; transform: scale(1.025); } }
#map { position: absolute; inset: 0; background: #e7e8dc; }
.viewer-toolbar { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 600; display: flex; align-items: center; gap: 8px; pointer-events: none; }
.viewer-toolbar > * { pointer-events: auto; }
.viewer-toolbar .address-bar { width: min(555px, 57vw); min-height: 49px; }
.viewer-toolbar .address-bar input:focus-visible { outline-offset: 0; }
.viewer-toolbar .address-bar input { font-size: .94rem; }
.map-home { flex: 0 0 auto; display: grid; place-items: center; width: 47px; height: 47px; padding: 4px; border: 1px solid #dedacc; border-radius: 50%; background: var(--mustard); box-shadow: 0 3px 12px #322c2429; }
.map-home img { width: 34px; height: 34px; border-radius: 50%; }
 .viewer-search-actions { position: absolute; z-index: 609; top: 70px; right: 12px; display: flex; align-items: center; gap: 6px; }
.filters-trigger { display: flex; gap: 7px; align-items: center; min-height: 44px; padding: 0 12px; border: 2px solid #fff; border-radius: 24px; background: var(--mustard); color: var(--navy); box-shadow: 0 3px 12px #322c241a; font-size: .84rem; font-weight: 800; }
.filters-trigger[aria-expanded=true] { background: #f6e8b6; }
#filter-count { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 4px; border-radius: 20px; background: var(--navy); color: white; font-size: .69rem; }
.filter-panel { position: absolute; z-index: 620; top: 121px; right: 12px; bottom: 86px; width: min(345px, calc(100% - 24px)); display: flex; flex-direction: column; overflow: auto; overscroll-behavior: contain; border: 1px solid #dedacc; border-radius: 16px; background: var(--white); box-shadow: 0 7px 24px #10243e38; animation: filters-enter .24s ease-out both; }
@keyframes filters-enter { from { opacity: 0; transform: translateX(14px); } }
.filter-fields { display: grid; gap: 15px; flex: 1; align-content: start; padding: 17px; }
.filter-quick { display: flex; flex-wrap: wrap; gap: 5px; margin-top: -8px; }
.filter-quick .chip { padding: 5px 8px; font-size: .71rem; }
.filter-quick [aria-pressed=true] { background: #f2df9f; border-color: #b68c29; }
.filter-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 7px; padding: 12px; border-top: 1px solid var(--line); background: var(--paper); }
.filter-actions .primary { background: var(--mustard); color: var(--ink); border-color: #c49a1f; }
.viewer-sidebar { position: absolute; z-index: 500; top: 73px; left: 12px; bottom: 38px; width: var(--panel-width); display: flex; flex-direction: column; overflow: hidden; border: 1px solid #dedacc; border-radius: 16px; background: #f4f5f8; box-shadow: 0 5px 20px #24251d26; animation: panel-enter .25s ease-out both; }
#map-detail { width: clamp(320px, 28vw, 425px); z-index: 510; }
#map-detail.beside-list { left: calc(var(--panel-width) + 20px); }
@keyframes panel-enter { from { opacity: 0; transform: translateX(-10px); } }
.side-head { display: flex; align-items: center; gap: 6px; padding: 12px; border-bottom: 1px solid #e6e1d4; background: var(--white); }
.side-head > div { flex: 1; min-width: 0; }
.side-head .eyebrow { margin-bottom: 4px; font-size: .61rem; }
.side-head h2 { margin: 0; font-size: 1.14rem; letter-spacing: -.025em; }
.side-round { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; border: 1px solid #e0d9c6; border-radius: 50%; background: var(--white); }
.side-round:hover { background: #f5e9ba; }
.side-content { padding: 10px; overflow: auto; overscroll-behavior: contain; }
.side-content .card h3 { font-size: .99rem; }
.side-content .card .profile-head { align-items: flex-start; }
.side-content .card p { margin: 5px 0 10px; }
.side-content .actions { margin-top: 10px; }
.side-content .actions :is(button, a) { min-height: 36px; padding: 6px 10px; font-size: .77rem; }
#status { position: absolute; z-index: 450; bottom: 5px; left: 12px; max-width: calc(100% - 160px); margin: 0; padding: 4px 7px; border-radius: 6px; background: #fffdfaee; color: var(--muted); font-size: .69rem; pointer-events: none; }
#status:empty { display: none; }
.map-tools { position: absolute; z-index: 550; display: flex; align-items: center; bottom: 32px; right: 12px; gap: 6px; }
.viewer #map .maplibregl-ctrl-bottom-left { bottom: 23px; }
.viewer #map .maplibregl-ctrl-bottom-right { bottom: 3px; }
.viewer #map .maplibregl-ctrl-top-right { top: 118px; }
.map-round {
  display: grid; place-items: center; width: 43px; height: 43px; border: 2px solid #fffdfa;
  border-radius: 50%; background: var(--mustard); box-shadow: 0 2px 7px #322c2444; list-style: none;
}
.map-round::-webkit-details-marker { display: none; }
.map-round:hover, .map-round[aria-pressed=true], .layer-menu[open] summary { background: #fffdfa; }
.layer-panel {
  position: absolute; bottom: 52px; right: 0; width: 210px; padding: 13px; border: 1px solid #dedacc;
  border-radius: 13px; background: #fffdfa; box-shadow: 0 4px 16px #322c242b; font-size: .8rem;
}
.basemaps { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 8px; }
.basemaps button { display: grid; gap: 5px; border: 1px solid transparent; border-radius: 7px; background: transparent; padding: 5px; font-size: .69rem; }
.basemaps button[aria-pressed=true] { background: #f5e7b4; border-color: #d8b845; }
.swatch { height: 36px; border-radius: 4px; }
.streets { background: linear-gradient(32deg, transparent 46%, #fffef3 47% 54%, transparent 55%), linear-gradient(103deg, #ced8bf 30%, #fffef3 31% 36%, #e5e8d7 37%); }
.satellite { background: linear-gradient(32deg, transparent 47%, #cfccb2 48% 50%, transparent 51%), linear-gradient(113deg, #243c2d, #7f8a6a 68%, #465842); }
.maplibregl-map { font-family: inherit; }
.card, .profile { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 15px; margin-bottom: 8px; }
.card h3 { margin: 3px 0; }
.card p, .meta { color: var(--muted); font-size: .85rem; }
.chip { display: inline-block; padding: 4px 8px; border-radius: 14px; background: #ecebe2; font-size: .74rem; margin: 3px; }
.featured { background: #f9e8b7; }
.avatar { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; color: #fff; background: var(--navy); font-size: .78rem; font-weight: 800; }
.avatar img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.profile-cover { display: block; aspect-ratio: 4/1; min-height: 76px; overflow: hidden; border-radius: 10px; background: linear-gradient(118deg, #10243e, #355c82 62%, #7493ac); }
.profile-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.professional-detail .profile-head, .profile-preview-detail .profile-head { margin: -15px 5px 9px; }
.professional-detail .avatar, .profile-preview-detail .avatar { border: 3px solid var(--white); }
.professional-detail h3, .profile-preview-detail h3 { margin: 21px 0 0; }
.professional-detail h3 a:hover, .professional-row h3 a:hover { text-decoration: underline; }
.profile-return { display: inline-flex; align-items: center; min-height: 37px; padding: 6px 13px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); color: var(--navy); font-size: .86rem; font-weight: 800; }
.public-profile { margin-top: 14px; color: var(--navy); }
.profile-identity, .profile-section { border: 1px solid var(--line); border-radius: 16px; background: var(--white); }
.profile-identity { overflow: hidden; }
.profile-identity .profile-cover { border-radius: 0; aspect-ratio: 4.8/1; min-height: 105px; }
.profile-identity-copy { padding: 0 clamp(16px, 3vw, 32px) 20px; }
.profile-identity .avatar { width: clamp(65px, 10vw, 106px); height: clamp(65px, 10vw, 106px); margin: -36px 0 10px; border: 4px solid var(--white); font-size: 1.3rem; }
.profile-byline { margin: 7px 0 13px; color: var(--muted); }
.profile-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.profile-badges .chip { margin: 0; }
.verification { color: #125a38; background: #e6f5eb; }
.verification-badge { display: inline-flex; width: .95em; height: .95em; margin-inline-start: .25em; vertical-align: -.05em; color: #167449; }
.verification-badge svg { width: 100%; height: 100%; }
.profile-columns { display: grid; grid-template-columns: minmax(0, 2fr) minmax(245px, 1fr); gap: 14px; margin-top: 14px; align-items: start; }
.profile-sections { display: grid; gap: 14px; }
.profile-section { padding: clamp(15px, 3vw, 25px); overflow-wrap: anywhere; }
.profile-section h2 { margin: 0 0 10px; font-size: 1.24rem; }
.profile-section h3 { margin: 13px 0 5px; font-size: .94rem; }
.profile-section p { margin: 6px 0; line-height: 1.6; color: var(--muted); white-space: pre-line; }
.profile-contact .actions { margin-top: 14px; }
@media (max-width: 680px) { .profile-columns { grid-template-columns: 1fr; } .profile-contact { grid-row: 1; } }
.editor-media { max-width: 420px; grid-column: 1/-1; padding-bottom: 12px; }
.editor-media .avatar { margin: -18px 0 0 9px; border: 3px solid var(--white); }
.side-content .professional-row { padding: 0; margin-bottom: 5px; overflow: hidden; }
.professional-row:hover, .professional-row.selected { border-color: #7392ad; background: #f3f7fb; }
.row-open { display: flex; align-items: center; gap: 8px; width: 100%; min-height: clamp(62px, calc((100dvh - 245px)/10), 84px); padding: 6px 8px; border: 0; background: transparent; color: var(--navy); text-align: start; }
.row-open:focus-visible { outline-offset: -3px; }
.row-media { position: relative; flex: 0 0 54px; height: 48px; }
.row-media .profile-cover { width: 100%; height: 100%; min-height: 0; border-radius: 7px; }
.row-media .avatar { position: absolute; bottom: 3px; left: 4px; width: 29px; height: 29px; border: 2px solid white; font-size: .63rem; }
.row-copy { flex: 1; min-width: 0; display: grid; gap: 2px; }
.row-copy strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; font-size: .86rem; line-height: 1.2; }
.row-copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: .72rem; }
.row-featured { color: #896512; }
.row-open .icon { flex: 0 0 14px; transform: rotate(180deg); }
.profile-photo-link { display: inline-flex; flex: 0 0 auto; }
.profile-contact-menu > summary { list-style: none; cursor: pointer; }
.profile-contact-menu > summary::-webkit-details-marker { display: none; }
.profile-contact-menu[open] { flex-basis: 100%; }
.contact-channels { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.profile-head { display: flex; gap: 12px; align-items: center; }
#profile-page { padding: 36px 0; }
#profile-page h1 { margin: 0; font-size: clamp(1.7rem, 4vw, 3.2rem); }
.pin { position: relative; display: grid; place-items: center; width: var(--pin-size, 42px); height: var(--pin-size, 42px); background: var(--navy); border: 3px solid var(--mustard); border-radius: 50%; color: white; font-weight: 800; box-shadow: 0 4px 12px #122b566b; transition: width .22s, height .22s; }
.pin::after { content: ''; position: absolute; bottom: -7px; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid var(--navy); }
.pin img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.pin b { position: absolute; right: -6px; top: -4px; background: #1768b0; color: white; border: 2px solid white; border-radius: 50%; font-size: .67rem; padding: 1px 3px; }

footer { display: flex; flex-wrap: wrap; gap: 12px; padding: 20px max(5vw,20px); border-top: 1px solid var(--line); font-size: .8rem; }
footer button { background: none; border: 0; text-decoration: underline; }
dialog { width: min(650px, calc(100% - 28px)); max-height: 88vh; border: 1px solid var(--line); border-radius: 16px; padding: 20px; color: var(--ink); background: var(--white); box-shadow: 0 15px 80px #0005; }
dialog::backdrop { background: #10243e77; }
.close-row { text-align: right; }
.stack { display: grid; gap: 12px; }
.stack input[type=checkbox] { width: auto; min-height: auto; }
.stack fieldset { border: 1px solid var(--line); border-radius: 9px; }
.stack fieldset label, .check { display: flex; align-items: flex-start; gap: 8px; }
.warning { padding: 10px; background: #fff4da; border-radius: 8px; }
.postal-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.postal-grid button[aria-pressed=true] { background: var(--mustard); color: var(--ink); }
@media (max-width: 740px) {
  #profile-page { width: calc(100% - 32px); }
  .site-nav { min-height: 67px; padding-inline: 16px; }
  .brand { font-size: 1.5rem; gap: 7px; }
  .brand .market-icon { width: 33px; height: 33px; }
  .brand .urvis-wordmark { height: 19px; }
  .brand small { font-size: .43rem; }
  .nav-actions { gap: 1px; }
  .nav-actions button { padding: 7px 8px; gap: 5px; font-size: .75rem; }
  .viewer-toolbar { gap: 5px; left: 7px; right: 7px; top: 7px; }
  .viewer-toolbar .address-bar { flex: 1; width: auto; }
  .viewer-toolbar .address-bar input { font-size: .81rem; padding-inline: 7px; }
  .viewer-toolbar .address-bar .map-round { width: 32px; height: 32px; flex-basis: 32px; }
  .viewer-toolbar .address-bar .icon { width: 17px; height: 17px; }
  .map-home { width: 42px; height: 42px; }
  .map-home img { width: 29px; height: 29px; }
  .filter-panel { top: 107px; right: 7px; width: min(345px, calc(100% - 14px)); }
  
  .viewer #map .maplibregl-ctrl-top-right { top: 102px; }
  .welcome { min-height: calc(100svh - 67px); }
  .city-scene { position: relative; left: 50%; transform: translateX(-50%); }
}
@media (max-width: 900px) {
 .viewer-sidebar, #map-detail, #map-detail.beside-list { top: auto; bottom: 80px; left: 8px; right: 8px; width: auto; max-height: min(47dvh, 440px); }
 .viewer-sidebar[inert] { visibility: hidden; }
}
@media (max-width: 410px) {
  #status { max-width: calc(100% - 145px); font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }

.viewer-account-dock { position: absolute; z-index: 610; top: 12px; right: 12px; display: flex; align-items: center; gap: 4px; padding: 4px; background: var(--white); border: 1px solid #dedacc; border-radius: 28px; box-shadow: 0 3px 12px #322c2429; }
.viewer-dock-legal { display: grid; place-items: center; width: 37px; height: 37px; border: 0; border-radius: 50%; background: none; }
.viewer-dock-legal:hover { background: #f5e9ba; }
.viewer-account { width: 39px; height: 39px; flex-basis: 39px; background: #242821; color: white; border: 0; }
.viewer-account:hover { background: #3d473d; }
.viewer-footer {
  position: absolute; z-index: 450; bottom: 5px; left: 8px; display: flex; align-items: center; gap: 8px;
  max-width: calc(100% - 170px); min-height: 23px; padding: 2px 7px; border-radius: 6px; background: #fffdfaee;
  color: var(--muted); font-size: .68rem;
}
.viewer-footer button { padding: 0; border: 0; background: none; white-space: nowrap; text-decoration: underline; }
.viewer-footer #status { position: static; max-width: none; padding: 0; background: none; }
html:has(dialog[open]), body:has(dialog[open]) { overflow: hidden; }
dialog::backdrop { background: #2a261a50; backdrop-filter: blur(8px); }
dialog { max-height: min(88vh, 88dvh); }
dialog.dialog-wide { width: min(830px, calc(100% - 28px)); }
#dialog-content h2 { margin-top: 0; }
.account-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 17px; }
.account-heading h2 { margin: 0; }
.account-initials { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid #ded8c0; border-radius: 50%; background: #eee7ce; font-weight: 800; }
.account-grid { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 2.7fr); gap: 14px; }
.account-tabs { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; margin-bottom: 10px; }
.account-grid .account-tabs { flex-direction: column; align-items: stretch; }
.account-tabs button { justify-content: flex-start; text-align: left; }
.account-tabs [aria-pressed=true] { background: #f1e7c9; border-color: #d7c692; }
.account-card { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); padding: 15px; }
.account-card h3 { margin-top: 0; }
.account-card p { line-height: 1.55; }
.account-card dt { font-weight: 700; }
.account-card dd { margin: 3px 0 12px; }
.personal-pin { background: #315744; border-color: white; }
#professional-form fieldset label:not(:has(input[type=checkbox])) { display: grid; margin-block: 8px; }
@media (max-width: 740px) {
  .viewer-toolbar { right: 53px; }
  .viewer-account-dock { top: 7px; right: 7px; }
  .viewer-account { width: 33px; height: 33px; flex-basis: 33px; }
  .viewer-dock-legal { display: none; }
  .account-grid { grid-template-columns: 1fr; }
  .account-grid .account-tabs { flex-direction: row; }
  .viewer-footer { max-width: calc(100% - 135px); }
}

.professional-marker { border: 0; padding: 0; background: transparent; cursor: pointer; }
.balloon {
  position: relative; display: grid; place-items: center; width: var(--balloon-size, 48px); height: var(--balloon-size, 48px);
  margin-bottom: 8px; border: 2px solid #fff; border-radius: 50%; isolation: isolate; color: white;
  font-size: .9rem; font-weight: 800; background: radial-gradient(circle at 32% 23%, #84a9ff, #2859df 44%, #122d92 84%);
  box-shadow: 0 4px 10px #10243e65;
}
.balloon::before { content: ''; position: absolute; left: 50%; bottom: -7px; width: 15px; height: 15px; transform: translateX(-50%) rotate(45deg); border-radius: 0 0 4px; border-right: 2px solid white; border-bottom: 2px solid white; background: #10243e; z-index: -1; }
.balloon .icon { width: 58%; height: 58%; color: #f1ca58; }
.balloon img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.balloon .verification-badge { position: absolute; bottom: -3px; right: -4px; z-index: 1; width: 17px; height: 17px; border: 1px solid white; border-radius: 50%; background: white; }
.professional-marker:hover .balloon, .professional-marker:focus-visible .balloon { border-color: #e4b62b; }
.address-pin { width: 14px; height: 14px; border: 3px solid #fffefa; border-radius: 50%; background: var(--navy); box-shadow: 0 1px 5px #10243e88; pointer-events: none; }
.profile-preview { padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.profile-preview .balloon { margin: 5px auto 14px; }
.profile-preview-map { height: 245px; margin-bottom: 10px; border-radius: 10px; overflow: hidden; }
.raster-marker { background: none; border: none; }
.raster-marker .raster-bottom { transform: translate(-50%, -100%); }
.raster-marker .raster-center { display: block; transform: translate(-50%, -50%); }
.viewer #map .leaflet-bottom.leaflet-left { bottom: 23px; }
.viewer #map .leaflet-top.leaflet-right { top: 116px; }

.address-bar, .editor-address, .filter-panel label { position: relative; }
.address-options {
 position: absolute; top: calc(100% + 5px); left: 0; right: 0; z-index: 730;
 max-height: min(310px, 43dvh); overflow: auto; padding: 5px; text-align: left;
 border: 1px solid #dae2eb; border-radius: 15px; color-scheme: light; background: #fff; color: var(--navy); box-shadow: 0 7px 24px #10243e30;
}
.address-options [role=option] { padding: 10px 12px; border-radius: 9px; cursor: pointer; font-size: .9rem; font-weight: 500; }
.address-options [role=option]:hover, .address-options [aria-selected=true] { background: #ebf2fa; }
.filter-panel select, .filter-panel select option { color-scheme: light; color: var(--navy); background: white; }
body.professional-editor-open { overflow: hidden; }
#professional-workspace {
 position: fixed; z-index: 750; inset: 0; overflow: auto; background: #f5f4ec;
 padding: clamp(16px,4vw,50px); animation: map-enter .24s ease-out both;
}
.editor-head, .editor-layout { max-width: 1050px; margin-inline: auto; }
.editor-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 20px; }
.editor-head h1 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.7rem); }
.editor-layout { display: grid; grid-template-columns: minmax(190px, 245px) minmax(0,1fr); align-items: start; gap: 14px; }
.editor-tabs, .editor-content { padding: 14px; border: 1px solid #e1ded0; border-radius: 15px; background: var(--white); }
.editor-tabs { display: grid; gap: 6px; }
.editor-tabs button { padding: 12px 9px; border: 1px solid transparent; border-radius: 8px; background: transparent; text-align: left; font-size: .84rem; font-weight: 700; }
.editor-tabs button span { padding-right: 5px; color: #836829; }
.editor-tabs [aria-current=step] { background: #f1e8cd; border-color: #e1d3aa; }
.editor-content { padding: clamp(14px, 3vw, 28px); }
.editor-content [data-editor-step]:not([hidden]) { animation: editor-step-in .27s ease-out both; }
@keyframes editor-step-in { from { opacity: 0; transform: translateX(7px); } }
.editor-content h2 { margin: 0 0 16px; font-size: 1.5rem; }
.editor-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.postal-control { margin-top: 16px; padding: 12px; background: #f8f6ed; border: 1px solid #e3dece; border-radius: 12px; }
.postal-control h3, .postal-control p { margin: 0 0 8px; }
.postal-map { height: min(42dvh,350px); min-height: 225px; margin-top: 9px; border: 1px solid #dedacc; border-radius: 11px; overflow: hidden; }
.postal-selection { margin-top: 8px; }
.postal-selection label { max-width: 220px; }
.postal-options { display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0; }
.postal-options .quiet { min-height: 32px; padding: 4px 8px; }
.postal-options .quiet[aria-pressed=true] { background: #eedb96; border-color: #b99b3a; }
.professional-marker.marker-enter .balloon { animation: marker-land .38s cubic-bezier(.2,.72,.34,1.2) both; transform-origin: 50% 100%; }
.professional-marker.marker-exit { pointer-events: none; }
.professional-marker.marker-exit .balloon { animation: marker-leave .17s ease-in both; transform-origin: 50% 100%; }
@keyframes marker-land { from { opacity: 0; transform: translateY(-14px) scale(.72); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes marker-leave { to { opacity: 0; transform: translateY(-7px) scale(.78); } }
@media(max-width:650px) {
 .editor-layout { grid-template-columns: 1fr; }
 .editor-tabs { display: flex; flex-wrap: wrap; }
 .editor-fields { grid-template-columns: 1fr; }
}

.viewer-footer .urvis-wordmark { height: 12px; }
.footer-brand { display: inline-flex; align-items: center; gap: 5px; }
.footer-brand .urvis-wordmark { height: 17px; }

.account-email { margin: 5px 0 0; font-size: .83rem; color: var(--muted); overflow-wrap: anywhere; }
.account-demo-note { margin: 0 0 13px; padding: 9px 11px; border-radius: 8px; background: #f8edd3; color: #664a14; font-size: .82rem; }
.account-initials { flex: 0 0 auto; background: var(--navy); color: #fff; border: 0; }
.profile-state { display: inline-block; margin: 0; padding: 4px 9px; border-radius: 16px; background: #eaf1fa; color: var(--navy); font-size: .8rem; font-weight: 800; }
.account-quote h4 { margin: 0 0 6px; color: var(--navy); }
.account-quote p { white-space: pre-line; }
.account-saved a:hover { text-decoration: underline; }
.welcome h1 { flex-wrap: nowrap; align-items: center; gap: .16em; }
.welcome h1 span { font-size: .48em; line-height: 1.2; }
@media(max-width:740px){
.viewer-sidebar,#map-detail,#map-detail.beside-list{max-height:min(66dvh,620px);bottom:84px}
.side-content{padding:6px}
.side-content .professional-row{margin-bottom:4px}
.viewer-toolbar .address-bar input,.filter-fields input,.filter-fields select,dialog input,dialog textarea{font-size:16px}
.map-tools{bottom:calc(29px + env(safe-area-inset-bottom));gap:8px}
.map-tools .map-round{min-width:44px;min-height:44px}
}
.language-picker{display:inline-flex;align-items:center;gap:3px;color:var(--navy);font-size:.76rem}
.language-picker select{padding:4px 5px;min-height:40px;width:auto;max-width:105px;border:0;border-radius:18px;background:var(--white)}
 .mobile-view-label { display: none; }
@media(max-width:740px){
 .site-nav { padding: max(8px, env(safe-area-inset-top)) 10px 8px; gap: 6px; }
 .nav-actions { flex-wrap: wrap; justify-content: flex-end; gap: 3px; }
 .nav-actions button { min-height: 44px; }
 .nav-actions [data-register] span { display: none; }
 .nav-actions .language-picker select { max-width: 82px; }
 .welcome { min-height: 0; grid-template-rows: auto auto; }
 .welcome-copy { min-width: 0; padding: clamp(28px, 7svh, 60px) 16px 24px; }
 .welcome-intro { font-size: .94rem; }
 .welcome h1 { font-size: clamp(2rem, 10vw, 3.3rem); }
 .search-card { display: block; padding-top: 18px; }
 .search-card .address-bar { margin-inline: auto; }
 .city-scene { position: static; transform: none; width: 100%; min-width: 0; height: clamp(155px, 30svh, 260px); object-fit: cover; object-position: center; }

 .viewer { --phone-top: max(8px, env(safe-area-inset-top)); --phone-bottom: calc(32px + env(safe-area-inset-bottom)); }
 .viewer-toolbar { top: var(--phone-top); right: 7px; }
 .viewer-toolbar .map-home { width: 44px; height: 44px; }
 .viewer-toolbar .address-bar .map-round, .search-card .map-round { width: 44px; height: 44px; flex-basis: 44px; }
 .address-bar input, .viewer-toolbar .address-bar input { font-size: 16px; }
 .viewer-account-dock { top: calc(var(--phone-top) + 61px); }
 .viewer-account-dock .viewer-account { min-width: 44px; min-height: 44px; }
 .viewer-footer { bottom: calc(4px + env(safe-area-inset-bottom)); }
 .map-tools { bottom: var(--phone-bottom); gap: 5px; }
 .viewer-search-actions { top: auto; bottom: var(--phone-bottom); left: 8px; right: auto; z-index: 556; }
 #map-sidebar,#map-detail,#map-detail.beside-list,.filter-panel { top: auto; bottom: calc(var(--phone-bottom) + 53px); max-height: min(68dvh, 630px); }
 .filter-panel { left: 8px; right: 8px; width: auto; }

 .professional-row h3,.row-services { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
 .professional-row .profile-head>div { min-width: 0; }
 #map-detail .profile-cover { max-height: 90px; }
 #map-detail .professional-detail { padding: 10px; }
 .dialog-wide { max-width: calc(100vw - 16px); }
}
@media(max-width:350px){
 .viewer-toolbar .address-bar #clear-location { display: none; }
}

#selected-services .chip { background: #f5e7b4; border-color: #d6bb65; }
#postal-preview-status { margin: -8px 0 0; }
#map .professional-marker .balloon { transition: width .22s ease, height .22s ease, margin .22s ease; }
#map .featured-marker { z-index: 2; }
#map .professional-marker .balloon::before { background: #183aa6; }
#map .featured-marker .balloon { border-color: #168953; background: radial-gradient(circle at 34% 26%, #c5efcf, #258a58 44%, #0b4930 85%); }
#map .featured-marker .balloon::before { background: #146544; }
#map:not(.regular-pins) .professional-marker:not(.featured-marker) .balloon,
#map:not(.featured-pins) .featured-marker .balloon {
 width: var(--dot-size, 13px); height: var(--dot-size, 13px); margin-bottom: 1px; border-width: 1px;
 background: radial-gradient(circle at 34% 26%, #a5bfff, #2f62eb 42%, #153498 82%);
 box-shadow: 0 2px 4px #10243e88;
}
#map:not(.featured-pins) .featured-marker .balloon { background: radial-gradient(circle at 34% 26%, #c5efcf, #258a58 44%, #0b4930 85%); }
#map:not(.regular-pins) .professional-marker:not(.featured-marker) .balloon > *,
#map:not(.featured-pins) .featured-marker .balloon > * { visibility: hidden; }
#map:not(.regular-pins) .professional-marker:not(.featured-marker) .balloon::before,
#map:not(.featured-pins) .featured-marker .balloon::before { display: none; }
#map:not(.regular-pins) .professional-marker { padding: 7px 8px 0; margin-bottom: -1px; }
@media (max-width:900px) {
 #map-sidebar { max-height: min(76dvh, 630px); }
 #list .row-open { min-height: 62px; }
 #list .row-media { flex-basis: 46px; }

}

.address-bar { gap: 0; padding: 2px 4px; }
.address-bar input { min-height: 34px; padding-block: 5px; }
.viewer-toolbar .address-bar { min-height: 41px; }
.address-bar .map-round,
.address-bar .map-round:hover { background: transparent; color: var(--navy); }
.address-bar .map-round:hover .icon { color: #725208; }
@media (max-width:740px) {
 .viewer-toolbar .address-bar { min-height: 46px; }
 .viewer-toolbar .address-bar .map-round,
 .search-card .address-bar .map-round { height: 40px; }
 .viewer-account-dock { top: calc(var(--phone-top) + 54px); }
}

/* Separate the cards from the cool panel surface with the Marketplace palette. */
#map-sidebar .professional-row { background: #fffaf0; border-color: #ded1b0; }
#map-sidebar .professional-row:hover { background: #fcf1d4; border-color: #c9a451; }
#map-sidebar .professional-row.selected { background: #f8eac2; border-color: #b68c29; box-shadow: inset 3px 0 #b68c29; }
#map-detail .professional-detail { background: #f5faff; border-color: #c3d4e5; }

.viewer-account-dock .globe-picker { position: relative; justify-content: center; width: 38px; height: 38px; border-radius: 50%; }
.globe-picker select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.globe-picker:focus-within { outline: 2px solid #86651a; outline-offset: 2px; }
.viewer #map .leaflet-control-zoom { display: none; }
.viewer-search-actions .map-round { width: 44px; height: 44px; border-color: white; }
.viewer-search-actions .map-round[aria-expanded=true] { background: #f6e8b6; }
.layer-zoom { display: flex; justify-content: center; gap: 6px; margin-top: 10px; padding-top: 9px; border-top: 1px solid #dedacc; }
.layer-zoom button { min-width: 44px; min-height: 44px; padding: 0; font-size: 1.25rem; }
.layer-zoom button:disabled { opacity: .45; cursor: default; }

#map.national-pins { --dot-size: 6px; }
#map.dense-pins { --dot-size: 7px; }
#map.dense-pins.national-pins { --dot-size: 5px; }


.active-filters { display: flex; flex: 0 1 auto; gap: 5px; min-width: 0; max-width: max(0px, calc(100% - 154px)); margin-right: 112px; padding: 4px; align-items: center; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; border: 1px solid #dedacc; border-radius: 24px; background: var(--white); box-shadow: 0 3px 12px #322c241a; }
.active-filter { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; min-height: 33px; padding: 4px 8px; border: 0; border-radius: 18px; background: #244ed0; color: white; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.active-filter:hover { background: #18399f; }
.active-filter .icon { width: 15px; height: 15px; }
.active-filter:focus-visible { outline-offset: -3px; outline-color: white; }
@media (max-width: 740px) {
 .viewer-toolbar { flex-wrap: wrap; }
 .active-filters { flex-basis: 100%; max-width: none; margin-right: 0; }
 .viewer:has(.active-filters:not([hidden])) .viewer-account-dock { top: calc(var(--phone-top) + 102px); }
 .active-filter { min-height: 36px; }
}

.quote-fields,.quote-line { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.quote-line { grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,.7fr) auto; align-items: end; }
#offer-form blockquote, #dialog-content > blockquote { margin: 0 0 10px; padding-left: 10px; border-left: 3px solid var(--mustard); overflow-wrap: anywhere; }
.quote-document { color: var(--navy); background: white; border: 1px solid var(--line); border-radius: 12px; padding: clamp(15px, 4vw, 30px); margin-bottom: 12px; overflow-wrap: anywhere; }
.quote-document header { border-bottom: 3px solid var(--mustard); margin-bottom: 14px; }
.quote-document header img { display: block; width: 95px; height: auto; }
.quote-document header p { margin: 4px 0 10px; }
.quote-document dl { display: grid; grid-template-columns: max-content 1fr; gap: 5px 12px; }
.quote-document dd { margin: 0; }
.quote-document table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.quote-document :is(th,td) { padding: 7px 5px; border-bottom: 1px solid var(--line); text-align: start; }
.quote-document :is(th,td):not(:first-child) { text-align: end; white-space: nowrap; }
.quote-document .quote-totals { margin-inline-start: auto; width: min(100%, 270px); }
.quote-totals dd { text-align: end; }
.quote-document p { white-space: pre-wrap; }
.quote-document footer { display: block; padding: 12px 0 0; font-size: .76rem; line-height: 1.45; }
.account-quote :is(button,a) { margin-top: 8px; }
@media(max-width:560px) {
 .quote-line { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; }
 .quote-line label:first-child { grid-column: 1/-1; }
}
@media print {
 @page { margin: 13mm; }
 html:has(dialog[open] .quote-document:not([hidden] *)),
 body:has(dialog[open] .quote-document:not([hidden] *)) { overflow: visible !important; background: white; }
 body:has(dialog[open] .quote-document:not([hidden] *)) > :not(#dialog) { display: none !important; }
 body:has(dialog[open] .quote-document:not([hidden] *)) #dialog { position: static; display: block; width: auto; height: auto; max-width: none; max-height: none; padding: 0; margin: 0; border: 0; box-shadow: none; overflow: visible; }
 body:has(dialog[open] .quote-document:not([hidden] *)) #dialog::backdrop { display: none; }
 #dialog:has(.quote-document:not([hidden] *)) :is(.close-row,.quote-no-print,[role=status]) { display: none; }
 .quote-document { padding: 0; border: 0; }
 .quote-document tr, .quote-document footer { break-inside: avoid; }
}

.draw-zone-tools { position: absolute; z-index: 625; left: 50%; bottom: 86px; transform: translateX(-50%); width: max-content; max-width: calc(100% - 24px); border: 1px solid var(--line); border-radius: 14px; padding: 10px; background: var(--white); box-shadow: 0 4px 18px #10243e26; }
.draw-zone-tools p { margin: 0 0 7px; font-size: .85rem; }
.drawing-zone .viewer-sidebar { visibility: hidden; }
.drawing-zone #map :is(.professional-marker,.leaflet-container) { cursor: crosshair; }
.drawing-zone #map .professional-marker { pointer-events: none; }
.drawing-zone #map { cursor: crosshair; }
