/* Yangbi — resource discovery, decision and delivery. */
:root {
  --forest: #102c26;
  --forest-deep: #09231e;
  --ink: #17372f;
  --text: #354b42;
  --muted: #7b8278;
  --paper: #f5f3eb;
  --white: #fffef9;
  --line: #dcded3;
  --gold: #c4a66b;
  --lime: #d7e9a7;
  --warning: #996e35;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  --serif: "Songti SC", "STSong", "Noto Serif CJK SC", "SimSun", serif;
  --header: 86px;
  --journey: 48px;
  --directory: 408px;
  --detail: 490px;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { background: var(--paper); color: var(--text); font: 14px/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { cursor: pointer; border: 0; background: none; }
button:disabled { opacity: .38; cursor: default; }
a { color: inherit; text-decoration: none; }
input, textarea, select { min-width: 0; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 2px solid #8d9e5b; outline-offset: 3px; }
h1, h2, h3, h4, p { margin: 0; }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
[hidden] { display: none !important; }
.icon-defs, .sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: fixed; top: 8px; left: 16px; padding: 12px 20px; background: var(--lime); color: var(--forest); z-index: 100; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.eyebrow { font-size: 10px; line-height: 1.4; letter-spacing: .16em; font-weight: 650; color: #8d7953; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 44px; padding: 11px 18px; border: 1px solid transparent; font-size: 13px; font-weight: 600; line-height: 1.4; transition: background .18s, color .18s, border-color .18s; }
.button svg { width: 17px; height: 17px; }
.button-dark { background: var(--forest); color: var(--white); }
.button-dark:hover { background: #235445; }
.button-light { background: var(--paper); color: var(--forest); border-color: #e8e7dc; }
.button-light:hover { background: var(--lime); border-color: var(--lime); }
.button-outline, .button-secondary { border-color: var(--line); background: transparent; color: var(--forest); }
.button-outline:hover, .button-secondary:hover { border-color: var(--forest); background: #edf0e3; }
.text-button { padding: 0; font-size: 12px; line-height: 1.5; white-space: nowrap; }
.text-button:hover { color: #8f6c30; }
.icon-button { width: 36px; height: 36px; padding: 8px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid var(--line); color: var(--forest); background: var(--white); }
.icon-button:hover { background: #e9eddf; }
.site-header { height: var(--header); display: flex; align-items: center; gap: 46px; padding: 0 30px; background: var(--forest-deep); color: #f5f2e7; border-bottom: 1px solid #ffffff12; }
.brand { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { width: 42px; height: 44px; display: grid; place-items: center; color: var(--gold); border: 1px solid #bda26788; }
.brand-mark svg { width: 34px; height: 34px; stroke-width: 1.4; }
.brand strong { display: block; font: 700 24px/1.1 var(--serif); letter-spacing: .14em; }
.brand small { display: block; margin-top: 6px; font-size: 10px; color: #c7d2c6; letter-spacing: .08em; }
.primary-nav { display: flex; align-self: stretch; align-items: stretch; gap: 30px; }
.primary-nav button { position: relative; padding: 0; color: #bfcbc2; font-size: 13px; white-space: nowrap; }
.primary-nav button:hover, .primary-nav button.active { color: #fffef4; }
.primary-nav button.active::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--gold); }
.primary-nav button span { display: inline-flex; align-items: center; justify-content: center; margin-left: 5px; min-width: 17px; height: 17px; padding: 0 4px; border: 1px solid #ffffff38; color: var(--lime); font-size: 10px; border-radius: 50%; }
.header-end { margin-left: auto; display: flex; align-items: center; gap: 20px; }
.preview-label { font-size: 10px; color: #b4c3b6; letter-spacing: .02em; }
.header-end .button { min-height: 39px; padding: 9px 15px; font-size: 12px; }
.app-shell { height: calc(100dvh - var(--header)); min-height: 0; }
.journey-bar { height: var(--journey); display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 30px; background: #eceee4; border-bottom: 1px solid #d9ddcf; color: #58675a; }
.journey-label { font-size: 11px; font-weight: 650; white-space: nowrap; }
.journey-label span { margin-left: 13px; color: #929a87; font-size: 9px; letter-spacing: .16em; }
.journey-bar ol { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; gap: 38px; }
.journey-bar li { display: flex; align-items: center; gap: 9px; font-size: 11px; color: #8b9485; }
.journey-bar li b { font: 11px/1 var(--sans); color: #9da58f; }
.journey-bar li.current, .journey-bar li.current b { color: var(--forest); font-weight: 650; }
.journey-bar li + li::before { content: ""; width: 22px; height: 1px; margin-right: 7px; background: #c6cdb9; }
.journey-bar .text-button { font-size: 11px; color: #68725f; }
.workspace { height: calc(100% - var(--journey)); display: grid; grid-template-columns: var(--directory) minmax(0, 1fr); min-height: 0; position: relative; overflow: hidden; }
.workspace.has-detail { grid-template-columns: var(--directory) minmax(0, 1fr) var(--detail); }
.directory { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--paper); border-right: 1px solid var(--line); z-index: 5; }
.directory-head { padding: 25px 25px 18px; border-bottom: 1px solid var(--line); }
.directory-head h1 { color: var(--ink); font: 600 26px/1.35 var(--serif); letter-spacing: -.025em; margin-top: 9px; }
.directory-head > p { font-size: 12px; color: var(--muted); margin-top: 7px; }
.search-box { display: flex; align-items: center; gap: 10px; margin-top: 20px; min-height: 45px; border: 1px solid #bfc8b7; background: #fffef9; padding-left: 12px; }
.search-box > svg { width: 17px; height: 17px; color: #87907c; }
.search-box:focus-within { border-color: #59705b; box-shadow: 0 0 0 1px #59705b; }
.search-box input { flex: 1; width: 100%; height: 42px; border: 0; outline: 0; background: none; font-size: 12px; color: var(--ink); }
.search-box input::placeholder { color: #9a9d91; }
.search-box button { align-self: stretch; width: 40px; display: grid; place-items: center; color: var(--forest); }
.search-box button:hover { background: #edf0e4; }
.purpose-chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 15px; }
.purpose-chips button { min-height: 31px; padding: 5px 4px; border: 1px solid transparent; background: #e9ece1; color: #68755f; font-size: 11px; white-space: nowrap; }
.purpose-chips button:hover { color: var(--forest); border-color: #b9c2a7; }
.purpose-chips button.active { color: var(--white); background: var(--forest); }
.filter-row { margin-top: 13px; display: grid; grid-template-columns: 1fr 1fr auto; gap: 9px; align-items: center; }
.filter-row label { min-width: 0; }
.filter-row select { width: 100%; height: 32px; padding: 0 20px 0 7px; border: 1px solid #d4d9c9; background: transparent; border-radius: 0; font-size: 11px; color: #68745e; }
.filter-reset { font-size: 11px; color: #8a8f7d; padding: 6px 0 6px 3px; }
.results-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 25px; color: #8b9080; font-size: 10px; border-bottom: 1px solid #e4e5da; }
.results-bar > span:first-child { color: #56634e; font-size: 11px; }
.results-bar strong { font: 600 18px/1 var(--serif); color: var(--forest); margin-right: 2px; }
#mobileMap, #mobileList { display: none; }
.resource-list { min-height: 0; flex: 1; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b8bfad transparent; }
.resource-card { position: relative; border-bottom: 1px solid #dfe2d4; background: transparent; transition: background .2s; }
.resource-card:hover { background: #eeeee3; }
.resource-card.selected, .resource-card.active, .resource-card.is-active { background: #e8eddd; box-shadow: inset 3px 0 var(--forest); }
.card-main { display: grid; grid-template-columns: 104px minmax(0, 1fr); width: 100%; min-height: 158px; padding: 17px 21px 17px 25px; gap: 15px; text-align: left; }
.card-photo { position: relative; min-width: 0; height: 128px; overflow: hidden; background: #dbe0ce; }
.card-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .6s; }
.resource-card:hover .card-photo img { transform: scale(1.045); }
.card-photo > span, .photo-placeholder { display: grid; place-items: center; height: 100%; padding: 10px; text-align: center; color: #7d8d6c; font: 18px/1.5 var(--serif); background: linear-gradient(145deg, #e4e7d8, #c8d2b7); }
.card-photo > .photo-caption { position: absolute; display: block; height: auto; bottom: 0; left: 0; right: 0; padding: 14px 7px 5px; background: linear-gradient(transparent,#14312080); color: #f3f4e4; text-align: left; font: 8px/1.4 var(--sans); letter-spacing: .04em; }
.resource-card:not(.has-photo) .card-main { display: block; min-height: 146px; padding-right: 40px; }
.resource-card:not(.has-photo) .card-copy { padding-right: 0; }
.card-copy { min-width: 0; padding-right: 15px; }
.card-topline { display: flex; align-items: center; gap: 7px; min-height: 18px; margin-bottom: 5px; color: #8c927f; font-size: 9px; }
.card-topline span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-type { color: #7c704b; font-size: 9px; letter-spacing: .04em; }
.card-copy h3 { padding-right: 4px; color: var(--ink); font-size: 15px; font-weight: 650; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.card-facts div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.card-facts small { font-size: 9px; color: #8b9480; }
.card-facts strong { font-size: 11px; font-weight: 550; color: #52604a; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.5; }
.card-foot { margin-top: 10px; display: flex; align-items: center; gap: 6px; font-size: 9px; color: #8f947e; line-height: 1.4; }
.card-foot svg { width: 12px; height: 12px; }
.card-foot { justify-content: space-between; gap: 7px; }
.card-foot > span { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.card-foot > span:first-child { max-width: 65%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-foot > span:last-child { color: #8e7c49; white-space: nowrap; }
.tiny-dot { width: 4px; height: 4px; border-radius: 50%; background: #bba46b; flex-shrink: 0; }
.save-card { position: absolute; z-index: 2; top: 16px; right: 14px; width: 27px; height: 29px; display: grid; place-items: center; color: #91987f; background: transparent; }
.save-card svg { width: 16px; height: 17px; }
.save-card:hover, .save-card.active, .save-card.saved, .save-card[aria-pressed="true"] { color: var(--forest); }
.save-card.active svg, .save-card.saved svg, .save-card[aria-pressed="true"] svg { fill: #d3dfb6; }
.directory-bottom { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 25px; border-top: 1px solid var(--line); background: var(--paper); }
.directory-bottom .text-button, .directory-bottom > span { font-size: 10px; color: #808b72; }
.unmatched-cta { flex-shrink: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px 25px; border-top: 1px solid #d8decc; background: #e8ecdf; text-align: left; }
.unmatched-cta strong { display: block; color: var(--forest); font-size: 12px; font-weight: 650; }
.unmatched-cta small { display: block; margin-top: 4px; color: #89917d; font-size: 10px; }
.unmatched-cta svg { color: #708561; width: 18px; }
.unmatched-cta:hover { background: #dce5cc; }
.loading-state, .empty-state { padding: 46px 26px; color: var(--muted); text-align: center; font-size: 12px; }
.loading-state { display: flex; align-items: center; justify-content: center; gap: 12px; }
.empty-state h3 { font: 600 21px/1.4 var(--serif); color: var(--forest); margin-bottom: 10px; }
.empty-state p { max-width: 420px; margin: auto; line-height: 1.8; font-size: 12px; }
.empty-state .button { margin-top: 22px; }
.spinner { display: inline-block; flex-shrink: 0; width: 15px; height: 15px; border: 1.5px solid #929c7e55; border-top-color: currentColor; border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.map-stage { min-width: 0; min-height: 0; position: relative; isolation: isolate; overflow: hidden; background: #7c8870; }
.map-canvas { position: absolute; inset: 0; width: 100%; height: 100%; background: #7d8b74; }
.map-canvas .amap-container { background: #7d8b74 !important; }
.map-shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, #0a241e7a, transparent 42%, transparent 68%, #102e257a), linear-gradient(90deg,#09251c1a,transparent 55%); }
.map-title { position: absolute; z-index: 2; left: 35px; top: 31px; pointer-events: none; color: #fffdf0; text-shadow: 0 2px 18px #061b1399; transition: opacity .2s; }
.map-title .eyebrow { color: #e4dbbe; font-size: 10px; letter-spacing: .15em; }
.map-title h2 { margin: 12px 0 12px; font: 500 clamp(31px, 3vw, 45px)/1.25 var(--serif); letter-spacing: -.035em; }
.map-title p { color: #e3e7d5; font-size: 10px; letter-spacing: .05em; }
.map-switch { position: absolute; top: 23px; right: 24px; z-index: 3; display: flex; padding: 3px; background: #102b25e8; border: 1px solid #eff4d827; box-shadow: 0 4px 22px #0c211e22; }
.map-switch button { padding: 7px 14px; color: #d1d9c6; font-size: 11px; min-height: 31px; }
.map-switch button.active { background: #eef1df; color: var(--forest); }
.map-status { position: absolute; z-index: 3; left: 50%; bottom: 90px; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; width: max-content; max-width: calc(100% - 42px); padding: 12px 17px; font-size: 11px; color: #e9efdd; background: #15382ce8; border: 1px solid #e2eac336; }
.map-status.error { background: #493e2ce8; color: #fbefd5; }
.map-tools { position: absolute; z-index: 3; right: 24px; bottom: 100px; display: flex; flex-direction: column; padding: 3px; background: #f9faefeF; box-shadow: 0 3px 18px #0a221b33; }
.map-tools button { width: 34px; height: 35px; color: var(--forest); display: grid; place-items: center; font-size: 21px; line-height: 1; }
.map-tools button + button { border-top: 1px solid #dce3d1; }
.map-tools #togglePitch { font-size: 10px; font-weight: 700; }
.map-tools #togglePitch.active { background: #e0e9ca; }
.map-tools button:hover { background: #dce6c7; }
.map-tools svg { width: 17px; height: 17px; }
.map-bottom { position: absolute; z-index: 3; bottom: 28px; left: 28px; right: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; pointer-events: none; }
.map-coordinate-note { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 13px; background: #0e2a23dd; border: 1px solid #d9e5c628; color: #e1e8d6; font-size: 10px; pointer-events: auto; }
.status-dot { width: 5px; height: 5px; background: #cee5a2; border-radius: 50%; flex-shrink: 0; }
.map-coordinate-note .text-button { font-size: 10px; color: #d8c797; margin-left: 9px; }
.map-bottom > .button { pointer-events: auto; }
.map-selection { position: absolute; bottom: 90px; left: 28px; z-index: 4; max-width: 290px; background: var(--white); padding: 16px; border-left: 3px solid var(--gold); box-shadow: 0 8px 30px #0d2b2533; }
.map-selection h3 { font-size: 14px; color: var(--forest); }
.map-selection p { margin: 5px 0 10px; font-size: 11px; color: var(--muted); }
.map-selection button { padding: 5px 0; font-size: 11px; color: #8e7039; }
.map-point { display: flex; align-items: center; gap: 7px; cursor: pointer; white-space: nowrap; color: #fffdf1; }
.map-point i { display: block; position: relative; flex-shrink: 0; width: 17px; height: 17px; background: #e3c786; border: 3px solid #fff9dd; border-radius: 50%; box-shadow: 0 0 0 5px #1a382454, 0 3px 10px #061c1a88; transition: transform .2s; }
.map-point i::after { content: ""; position: absolute; left: 3px; top: 13px; width: 1px; height: 14px; background: #fff9db99; }
.map-point span { background: #133a2ceE; padding: 5px 9px; font-size: 10px; line-height: 1.4; border: 1px solid #dfecc04a; box-shadow: 0 2px 10px #09271c44; max-width: 195px; overflow: hidden; text-overflow: ellipsis; }
.map-point:hover i, .map-point.active i, .map-point.selected i { background: #d8f8a3; transform: scale(1.3); box-shadow: 0 0 0 7px #d7efa733,0 3px 14px #061c1a88; }
.map-point:hover span, .map-point.active span, .map-point.selected span { background: #dcebb4; color: #17382a; border-color: #f7ffe6; }
.detail-panel { position: relative; z-index: 7; min-width: 0; min-height: 0; background: var(--white); overflow: auto; overscroll-behavior: contain; border-left: 1px solid #d1dac4; scrollbar-width: thin; scrollbar-color: #b8bfad transparent; }
#detailContent { min-height: 100%; padding-bottom: 0; }
.detail-hero { position: relative; height: 235px; overflow: hidden; background: #d6ddc8; }
.detail-hero > img, .detail-hero .hero-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.detail-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,#0b2a1d3b,transparent 45%,#0e281b26); }
.detail-hero .photo-placeholder { font-size: 30px; }
.detail-hero.no-photo { display: grid; place-items: center; height: 190px; background: linear-gradient(140deg,#c6d2b1,#e4e8d4); }
.no-photo-label { font: 500 34px/1.4 var(--serif); color: #6f815a; letter-spacing: .08em; }
.hero-actions { position: absolute; z-index: 2; top: 16px; left: 17px; right: 17px; display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.hero-actions > div { display: flex; gap: 7px; }
.hero-actions button { color: var(--forest); background: #fffef5eb; border: 1px solid #fffef59c; box-shadow: 0 2px 10px #19332320; min-height: 33px; }
.hero-actions .icon-button { width: 33px; height: 33px; }
.hero-actions .text-button { padding: 7px 10px; font-size: 10px; }
.hero-photo-count { position: absolute; z-index: 2; bottom: 15px; right: 18px; padding: 5px 9px; background: #102f26cc; color: #f5f4e8; font-size: 10px; }
.photo-count { position: absolute; z-index: 2; bottom: 15px; right: 18px; padding: 6px 10px; background: #102f26d9; color: #f5f4e8; font-size: 10px; border: 1px solid #fffef124; }
.detail-head { padding: 25px 28px 20px; }
.detail-head .eyebrow { font-size: 9px; }
.detail-head h2 { margin-top: 9px; color: var(--forest); font: 600 28px/1.45 var(--serif); letter-spacing: -.03em; }
.detail-head > p { margin-top: 9px; font-size: 11px; color: #8b927d; line-height: 1.7; }
.detail-kicker { display: flex; align-items: center; gap: 8px; font-size: 9px; color: #8e967e; flex-wrap: wrap; }
.detail-kicker .card-type { padding: 3px 6px; background: #edf0e3; font-size: 9px; }
.detail-address { display: flex; align-items: flex-start; gap: 5px; margin-top: 11px; color: #89947c; font-size: 11px; line-height: 1.6; }
.detail-address svg { width: 13px; height: 15px; margin-top: 2px; color: #96a283; }
.detail-head .detail-facts { margin: 20px 0 0; padding: 18px 0 0; border-bottom: 0; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.detail-head .detail-facts strong { font-size: 12px; line-height: 1.6; }
.detail-head .detail-badges, .detail-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.detail-badges span, .detail-tags span { padding: 4px 7px; font-size: 9px; color: #6b7959; background: #edf0e3; }
.detail-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 23px; margin: 0 28px 24px; padding: 19px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.detail-facts > div { min-width: 0; }
.detail-facts small, .detail-facts dt { display: block; font-size: 10px; color: #879079; margin-bottom: 5px; }
.detail-facts strong, .detail-facts dd { display: block; color: var(--forest); font-size: 14px; font-weight: 550; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.detail-facts .primary-fact strong { font: 500 25px/1.2 var(--serif); }
.detail-tabs { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; gap: 10px; padding: 0 27px; background: #fffef9f5; border-top: 1px solid #e5e7db; border-bottom: 1px solid #d9dfcb; backdrop-filter: blur(12px); }
.detail-tabs button, .detail-tabs a { position: relative; display: block; padding: 15px 0 13px; color: #8c927f; font-size: 11px; white-space: nowrap; }
.detail-tabs .active { color: var(--forest); font-weight: 650; }
.detail-tabs .active::after { position: absolute; content: ""; bottom: -1px; height: 2px; left: 0; right: 0; background: var(--forest); }
.detail-section { padding: 25px 28px 28px; border-bottom: 1px solid #e1e5d7; scroll-margin-top: 58px; }
.detail-section h3 { color: var(--forest); font: 600 21px/1.35 var(--serif); margin-bottom: 17px; }
.detail-section h4 { font-size: 12px; font-weight: 650; margin: 19px 0 10px; color: #526347; }
.section-title { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; margin-bottom: 18px; }
.section-title h3 { margin-bottom: 0; }
.section-title > span { color: #9ca58b; font-size: 9px; line-height: 1.5; text-align: right; }
.muted-note, .detail-source { color: #98a087; font-size: 10px; line-height: 1.8; margin-top: 14px; }
.internal-evidence { white-space: pre-wrap; word-break: break-word; font: 10px/1.8 ui-monospace,monospace; background: #eef1e3; color: #778866; padding: 15px; max-height: 400px; overflow: auto; }
.condition-list details { margin-top: 7px; color: #7d8c6b; }
.condition-list summary { cursor: pointer; color: #8e7848; font-size: 10px; }
.detail-section > p { color: #737e68; font-size: 12px; line-height: 1.85; }
.detail-section p + p { margin-top: 12px; }
.condition-list { margin: 0; padding: 0; list-style: none; }
.condition-list > div, .condition-list > li { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 15px; padding: 12px 0; border-top: 1px solid #e5e8dc; font-size: 11px; line-height: 1.75; }
.condition-list > :first-child { border-top: 0; padding-top: 0; }
.condition-list small, .condition-list dt, .condition-list .label { font-size: 10px; color: #919783; }
.condition-list strong, .condition-list dd, .condition-list .value { font-size: 11px; font-weight: 450; color: #526048; margin: 0; overflow-wrap: anywhere; }
.condition-list .missing, .missing-value { color: #a48350; }
.decision-callout { margin-top: 20px; padding: 16px; border-left: 2px solid #bca16d; background: #f1eee2; color: #6e674e; }
.decision-callout h4, .decision-callout strong { display: block; font-size: 12px; color: #76633e; margin: 0 0 8px; font-weight: 650; }
.decision-callout p, .decision-callout li { font-size: 11px; line-height: 1.8; color: #8d8062; }
.decision-callout ul { margin: 6px 0 0; padding-left: 16px; }
.decision-callout small { color: #a2946d; font-size: 9px; letter-spacing: .05em; }
.decision-callout ol { margin: 7px 0 0; padding-left: 17px; }
.decision-callout ol li + li { margin-top: 6px; }
.decision-callout h4 { font: 600 16px/1.5 var(--serif); margin-top: 5px; color: #75603b; }
.decision-callout .text-button { margin-top: 10px; color: #8d6f33; font-size: 11px; }
.gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.gallery-grid button, .gallery-grid a, .gallery-grid figure { position: relative; margin: 0; padding: 0; background: #e3e6d9; overflow: hidden; aspect-ratio: 1.35; }
.gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.gallery-grid button:hover img { transform: scale(1.04); }
.gallery-grid figcaption, .gallery-grid span { position: absolute; bottom: 0; left: 0; right: 0; padding: 16px 9px 7px; color: white; font-size: 9px; text-align: left; background: linear-gradient(transparent,#15352499); }
.gallery-note { margin-top: 10px; color: #939a83; font-size: 10px; }
.location-card { border: 1px solid #d9dfce; padding: 17px; background: #f2f4e9; }
.location-card > div { display: flex; gap: 10px; align-items: flex-start; }
.location-card svg { width: 17px; height: 17px; color: #7e9565; }
.location-card strong { font-size: 12px; color: var(--forest); font-weight: 550; }
.location-card p { color: #859079; font-size: 11px; margin-top: 6px; line-height: 1.8; }
.location-card .button, .location-card .text-button { margin-top: 14px; }
.location-card .text-button { color: #7d743f; }
.detail-sticky-actions { position: sticky; bottom: 0; z-index: 8; display: flex; gap: 10px; padding: 15px 26px max(15px,env(safe-area-inset-bottom)); border-top: 1px solid #d9dfcd; background: #fffef9f8; box-shadow: 0 -7px 30px #0f2c2210; backdrop-filter: blur(12px); }
.detail-sticky-actions .button { min-width: 0; flex: 1; min-height: 45px; font-size: 12px; gap: 9px; }
.detail-sticky-actions .button:first-child:not(.button-dark) { flex: 0 0 auto; padding-left: 12px; padding-right: 12px; }
.detail-sticky-actions svg { width: 16px; height: 16px; }
.save-detail { display: grid; place-items: center; border: 1px solid #d2dac3; color: #8a9a70; flex: 0 0 45px; width: 45px; height: 45px; background: transparent; }
.save-detail.saved { background: #e4ecd2; color: var(--forest); }
body:has(.workspace.has-detail) .shortlist-dock { display: none !important; }
.shortlist-dock { position: fixed; z-index: 14; bottom: 25px; left: calc(var(--directory) + (100vw - var(--directory))/2); transform: translateX(-50%); width: max-content; max-width: calc(100vw - var(--directory) - 55px); display: flex; align-items: center; gap: 17px; padding: 13px 15px; background: #fffef7f8; border: 1px solid #dbe0cb; box-shadow: 0 10px 35px #0c281d40; }
.dock-mark { color: #9d864f; padding: 0 4px; }
.dock-mark svg { width: 19px; height: 19px; }
.shortlist-dock > div:not(.dock-thumbs) { min-width: 145px; }
.shortlist-dock strong { display: block; color: var(--forest); font-size: 12px; }
.shortlist-dock > div > span { display: block; color: #90967f; font-size: 10px; margin-top: 3px; }
.dock-thumbs { display: flex; gap: 4px; }
.dock-thumbs img { width: 36px; height: 38px; object-fit: cover; border: 1px solid white; }
.shortlist-dock .button { min-height: 40px; padding: 9px 14px; font-size: 11px; gap: 10px; }
.shortlist-dock .button span { color: var(--lime); }
.modal { padding: 0; border: 1px solid #dce0cf; width: min(1100px,calc(100vw - 64px)); max-width: none; max-height: calc(100dvh - 64px); margin: auto; background: var(--white); color: var(--text); box-shadow: 0 25px 100px #061e1880; overflow: auto; scrollbar-width: thin; scrollbar-color: #b5bea5 transparent; }
.modal::backdrop { background: #061b17b3; backdrop-filter: blur(5px); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; padding: 31px 36px 26px; border-bottom: 1px solid var(--line); background: var(--white); }
.modal-head h2 { color: var(--forest); font: 600 29px/1.4 var(--serif); margin: 8px 0; letter-spacing: -.025em; }
.modal-head p { color: #8a927e; font-size: 12px; line-height: 1.8; }
.modal-head .icon-button { margin-top: 2px; }
.modal-foot { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 36px; border-top: 1px solid var(--line); background: #fffef9fa; backdrop-filter: blur(12px); }
.modal-foot > span { color: #9a9f8d; font-size: 10px; max-width: 340px; }
.modal-foot .button { margin-left: auto; }
.compare-content { min-height: 180px; overflow-x: auto; padding: 24px 36px; }
.compare-table { border-collapse: collapse; width: 100%; font-size: 12px; }
.compare-table th, .compare-table td { min-width: 190px; max-width: 300px; padding: 17px 16px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; line-height: 1.75; }
.compare-table th:first-child, .compare-table td:first-child { position: sticky; left: -1px; min-width: 110px; width: 125px; background: var(--white); color: #879175; font-size: 11px; z-index: 2; }
.compare-table th { font-weight: 550; color: var(--forest); }
.compare-table img { width: 100%; height: 120px; display: block; object-fit: cover; margin-bottom: 13px; }
.compare-table h3 { color: var(--forest); font-size: 15px; line-height: 1.6; margin-bottom: 6px; }
.compare-table .text-button { color: #9b8150; font-size: 10px; }
.compare-table .missing { color: #a88b56; }
.compare-disclaimer { padding: 13px 16px; background: #f0f2e7; color: #8c967c; font-size: 10px; line-height: 1.8; margin-bottom: 13px; }
.compare-remove { display: block; font-size: 10px; color: #a08a5e; padding: 7px 0; margin-top: 3px; }
.compare-table small { display: block; font-size: 10px; color: #929d82; }
.compare-table ul { padding-left: 15px; margin: 0; color: #798d61; font-size: 11px; }
.enquiry-modal { width: min(1040px,calc(100vw - 64px)); }
.enquiry-body { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); }
.enquiry-main { padding: 28px 36px 22px; }
.form-section-heading { display: flex; align-items: center; gap: 11px; margin: 0 0 20px; }
.form-section-heading b { color: #b59a63; font-size: 11px; font-weight: 450; }
.form-section-heading h3 { color: var(--forest); font: 600 19px/1.4 var(--serif); }
.form-section-heading:not(:first-child) { margin-top: 30px; }
.visitor-switch { display: flex; gap: 21px; margin-bottom: 21px; }
.visitor-switch label { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #6a785d; }
input[type="radio"], input[type="checkbox"] { accent-color: var(--forest); width: 15px; height: 15px; margin: 0; flex-shrink: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 18px; }
.form-grid > label { display: block; min-width: 0; color: #5f6d52; font-size: 11px; }
.form-grid label.full { grid-column: 1 / -1; }
.form-grid label > span { color: #ae8350; }
.form-grid input, .form-grid select, .form-grid textarea { display: block; width: 100%; border: 1px solid #d8ddcf; background: #fbfcf5; border-radius: 0; margin-top: 7px; padding: 10px 11px; min-height: 41px; font-size: 12px; line-height: 1.5; color: var(--forest); }
.form-grid textarea { resize: vertical; min-height: 90px; }
.form-grid input::placeholder, .form-grid textarea::placeholder { color: #a5aa98; font-size: 11px; }
.form-grid input:focus, .form-grid textarea:focus, .form-grid select:focus { outline: 0; border-color: #6e865d; box-shadow: 0 0 0 1px #6e865d; }
.enquiry-context { padding: 31px 28px; background: #edf0e3; border-left: 1px solid #dde3d1; }
.enquiry-context h3 { color: var(--forest); font: 600 23px/1.4 var(--serif); margin: 9px 0 20px; }
.enquiry-context h4 { color: #6c7b59; font-size: 12px; margin: 25px 0 12px; font-weight: 600; }
.enquiry-resource, .enquiry-resource-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #d7decb; font-size: 12px; }
.enquiry-resource img, .enquiry-resource-item img { width: 60px; height: 52px; object-fit: cover; }
.enquiry-resource strong, .enquiry-resource-item strong { color: var(--forest); font-size: 12px; font-weight: 550; }
.enquiry-resource small, .enquiry-resource-item small { display: block; color: #879279; font-size: 10px; margin-top: 5px; }
.question-choices { display: flex; flex-direction: column; gap: 8px; }
.question-choices label { display: flex; gap: 8px; align-items: flex-start; font-size: 11px; line-height: 1.7; color: #70825b; cursor: pointer; }
.question-choices label input { margin-top: 3px; }
.question-choices button { padding: 9px 10px; border: 1px solid #cfd8bd; color: #6b7c56; text-align: left; font-size: 11px; }
.question-choices button.active { background: #dce7c9; border-color: #91a56a; }
.submission-note { margin-top: 28px; display: flex; gap: 9px; padding-top: 20px; border-top: 1px solid #d2dbc3; }
.submission-note svg { color: #93a27d; width: 17px; height: 17px; }
.submission-note p { color: #8d9a7c; font-size: 10px; line-height: 1.8; }
.enquiry-consent { padding: 19px 36px; border-top: 1px solid #e0e5d6; }
.enquiry-consent label { display: flex; align-items: flex-start; gap: 9px; font-size: 10px; line-height: 1.8; color: #8b937e; }
.enquiry-consent input { margin-top: 2px; }
.form-error { color: #a6654a; font-size: 11px; }
.tracking-modal { width: min(790px,calc(100vw - 64px)); }
.tracking-body { padding: 27px 36px 35px; }
.tracking-card { padding: 21px 0; border-bottom: 1px solid var(--line); }
.tracking-card:first-child { padding-top: 0; }
.tracking-card h3 { font-size: 17px; color: var(--forest); margin: 6px 0; }
.tracking-card p { font-size: 12px; color: #869078; line-height: 1.8; }
.tracking-card .text-button { margin-top: 12px; color: #877143; }
.tracking-search { display: flex; align-items: stretch; margin: 23px 0 0; gap: 8px; }
.tracking-search input { min-width: 0; flex: 1; border: 1px solid #cfd8c0; padding: 10px 12px; background: var(--white); color: var(--forest); font-size: 12px; }
.tracking-search input::placeholder { color: #9aa58a; font-size: 11px; }
.tracking-search .button { flex-shrink: 0; font-size: 11px; }
.tracking-saved { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.tracking-saved button { padding: 9px 12px; font-size: 11px; color: #6f8257; border: 1px solid #d4ddc5; background: #f3f5eb; }
#trackingError { color: #a47c4f; font-size: 11px; margin-top: 13px; }
.receipt-top { display: flex; gap: 17px; padding: 22px; background: #eaf0dc; margin-bottom: 25px; }
.receipt-icon { width: 35px; height: 35px; border: 1px solid #b5c79c; color: #6a8352; display: grid; place-items: center; flex-shrink: 0; }
.receipt-top h3 { color: var(--forest); font: 600 22px/1.4 var(--serif); }
.receipt-top p { color: #879772; font-size: 11px; line-height: 1.8; margin-top: 9px; }
.case-ref { display: flex; align-items: center; gap: 18px; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.case-ref > span { color: #9da58d; font-size: 10px; }
.case-ref strong { display: block; margin-top: 6px; color: var(--forest); font: 600 18px/1.3 ui-monospace,monospace; }
.case-ref .button { min-height: 37px; font-size: 10px; padding: 8px 12px; }
.private-link-fallback { padding: 0 0 21px; margin: -5px 0 22px; border-bottom: 1px solid var(--line); }
.private-link-fallback summary { cursor: pointer; color: #8b7a4b; font-size: 11px; }
.private-link-fallback input { display: block; width: 100%; height: 40px; margin-top: 12px; padding: 10px 11px; border: 1px solid #d1dcc2; background: #f2f5e9; color: #6a8054; font: 11px/1.5 ui-monospace,monospace; }
.private-link-fallback .muted-note { font-size: 10px; margin-top: 8px; }
.case-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 23px; margin-bottom: 26px; }
.case-meta > div { color: #4c6540; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.case-meta .full { grid-column: 1/-1; }
.case-meta small { display: block; font-size: 10px; color: #8e9b7c; margin-bottom: 4px; }
.case-timeline { list-style: none; margin: 25px 0; padding: 0; }
.case-timeline li { position: relative; margin-left: 5px; padding: 0 0 23px 24px; border-left: 1px solid #d5dfc5; }
.case-timeline li::before { content: ""; position: absolute; top: 6px; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: #a3b58d; box-shadow: 0 0 0 4px #fffef9; }
.case-timeline li:first-child::before { background: var(--forest); }
.case-timeline h4 { margin: 0 0 5px; color: #4c6840; font-size: 12px; font-weight: 600; }
.case-timeline p { font-size: 11px; color: #849470; line-height: 1.8; }
.case-timeline time { display: block; margin-top: 7px; color: #a1ae91; font-size: 9px; }
.internal-note { padding: 8px 10px; color: #a18b61 !important; background: #f3f0e5; margin: 8px 0; }
.tracking-summary { display: flex; justify-content: space-between; gap: 20px; padding: 20px; background: #eef1e5; margin-bottom: 23px; }
.tracking-summary h3 { color: var(--forest); font: 600 22px/1.4 var(--serif); }
.tracking-summary p, .tracking-summary small { color: #839071; font-size: 11px; margin-top: 7px; }
.status-pill, .case-status { display: inline-flex; align-items: center; padding: 4px 8px; background: #e4eacF; color: #6b7a4f; font-size: 10px; white-space: nowrap; }
.tracking-steps, .timeline { list-style: none; margin: 20px 0; padding: 0; }
.tracking-steps li, .timeline li { position: relative; padding: 0 0 25px 26px; border-left: 1px solid #d8dfcd; margin-left: 6px; }
.tracking-steps li::before, .timeline li::before { content: ""; position: absolute; left: -4px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: #a2ad90; }
.tracking-steps li.done::before, .timeline li.done::before { background: var(--forest); }
.tracking-steps strong, .timeline strong { display: block; color: var(--forest); font-size: 12px; font-weight: 550; }
.tracking-steps small, .timeline small { display: block; color: #9aa38b; font-size: 10px; margin: 4px 0 5px; }
.tracking-steps p, .timeline p { color: #7d8b6a; font-size: 11px; line-height: 1.8; }
.case-number { font: 10px/1.5 ui-monospace,monospace; color: #a08b5f; letter-spacing: .03em; }
.case-note { padding: 15px 17px; background: #f1f2e8; border-left: 2px solid #a9b58d; margin: 18px 0; font-size: 11px; color: #7e8c6c; line-height: 1.8; }
.case-links { display: flex; gap: 15px; flex-wrap: wrap; margin-top: 17px; }
.case-links button, .case-links a { color: #8e7441; font-size: 11px; }
.desk-modal { width: min(1150px,calc(100vw - 64px)); }
.desk-body { display: grid; grid-template-columns: 300px minmax(0,1fr); min-height: 470px; }
.case-queue { background: #f0f2e7; border-right: 1px solid #d8dfcb; padding: 13px; max-height: 65dvh; overflow: auto; }
.case-item, .case-queue > button { display: block; width: 100%; padding: 17px 13px; border-bottom: 1px solid #dbe1ce; text-align: left; }
.case-item.active, .case-queue > button.active { background: #dfe8d0; }
.case-item:hover, .case-queue > button:hover { background: #e7eddc; }
.case-item strong, .case-queue > button strong { display: block; color: var(--forest); font-size: 13px; margin: 7px 0 5px; }
.case-item small, .case-queue > button small { display: block; color: #8d987d; font-size: 10px; }
.queue-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 12px 17px; border-bottom: 1px solid #d3dcc1; }
.queue-head strong { color: #647c4b; font-size: 12px; font-weight: 600; }
.queue-head button { font-size: 10px; color: #93a17c; }
.queue-status { display: inline-block; padding: 3px 6px; font-size: 9px; color: #6c814f; background: #e1e8d2; }
#queueFilter { display: block; width: calc(100% - 24px); margin: 14px 12px 7px; height: 35px; padding: 0 9px; background: #f8faef; color: #758964; border: 1px solid #cfd9be; border-radius: 0; font-size: 11px; }
.queue-pagination { display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 20px 9px 10px; border-top: 1px solid #d6dfc8; font-size: 10px; color: #94a480; }
.queue-pagination button { padding: 5px 0; color: #6f8559; font-size: 10px; }
.queue-pagination button:hover:not(:disabled) { color: var(--forest); }
.case-queue > button h3 { margin: 8px 0 6px; color: var(--forest); font-size: 13px; line-height: 1.65; }
.case-queue > button p { margin-top: 5px; font-size: 10px; color: #95a182; }
.desk-detail { padding: 26px 30px; min-width: 0; max-height: 65dvh; overflow: auto; }
.desk-detail h3 { color: var(--forest); font: 600 24px/1.5 var(--serif); margin: 6px 0 17px; }
.desk-detail h4 { color: #677c50; font-size: 12px; margin: 22px 0 13px; }
.desk-detail p, .desk-detail li { color: #7d8c6d; font-size: 12px; line-height: 1.85; }
.desk-detail dl { display: grid; grid-template-columns: 100px 1fr; gap: 10px; font-size: 11px; }
.desk-detail dt { color: #8b997b; }
.desk-detail dd { margin: 0; color: #5a6f45; overflow-wrap: anywhere; }
.desk-detail .form-grid { margin-top: 20px; }
.desk-detail .button { margin-top: 17px; }
.operator-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 23px; border-top: 1px solid #d9e1cc; }
.operator-form label { color: #7b8d65; font-size: 10px; }
.operator-form .full { grid-column: 1/-1; }
.operator-form input, .operator-form textarea, .operator-form select { display: block; width: 100%; padding: 10px; border: 1px solid #d1dcc2; margin-top: 6px; background: #fafcf3; border-radius: 0; font-size: 12px; }
.operator-form .button { margin-top: 0; font-size: 11px; }
.service-modal { width: min(920px,calc(100vw - 64px)); }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; padding: 10px 36px 26px; gap: 0 35px; }
.service-grid article { padding: 26px 0 24px; border-bottom: 1px solid var(--line); }
.service-grid b { display: block; color: #b69b65; font: 400 30px/1 var(--serif); }
.service-grid h3 { color: var(--forest); font: 600 21px/1.4 var(--serif); margin: 13px 0 12px; }
.service-grid p { color: #859175; font-size: 12px; line-height: 1.9; }
.service-disclaimer { padding: 0 36px 30px; color: #9ba38c; font-size: 11px; line-height: 1.8; }
.photo-viewer { width: 94vw; height: 94dvh; max-width: none; max-height: none; border: 0; padding: 0; background: transparent; overflow: hidden; }
.photo-viewer::backdrop { background: #061a14eF; }
.photo-viewer img { width: 100%; height: 100%; object-fit: contain; display: block; }
.photo-viewer .icon-button { position: absolute; top: 10px; right: 10px; z-index: 2; background: #f5f5e8; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 35px; transform: translateX(-50%); padding: 12px 21px; max-width: calc(100vw - 40px); background: #132f27f2; color: #edf3de; border: 1px solid #d7e2bf4d; box-shadow: 0 7px 25px #09271c40; font-size: 12px; text-align: center; }
@media (min-width: 1750px) {
  :root { --directory: 438px; --detail: 510px; }
  .directory-head { padding: 30px 30px 22px; }
  .card-main { grid-template-columns: 116px minmax(0,1fr); padding: 20px 26px 20px 30px; }
  .card-photo { height: 140px; }
  .card-copy h3 { font-size: 16px; }
  .card-facts strong { font-size: 12px; }
  .detail-section { padding: 29px 31px 32px; }
}
@media (max-width: 1350px) {
  .site-header { padding: 0 24px; gap: 32px; }
  .primary-nav { gap: 22px; }
  .header-end { gap: 12px; }
  .preview-label { max-width: 75px; line-height: 1.6; font-size: 9px; }
  .workspace.has-detail .map-title { opacity: 0; }
  .journey-bar { padding: 0 24px; }
  .journey-bar ol { gap: 20px; }
  .journey-bar li + li::before { width: 14px; margin-right: 0; }
  .shortlist-dock { gap: 10px; max-width: calc(100vw - var(--directory) - 40px); }
  .dock-thumbs img { width: 30px; }
}
@media (max-width: 1150px) {
  :root { --directory: 370px; --detail: 440px; }
  .primary-nav { gap: 19px; }
  .primary-nav button { font-size: 12px; }
  .header-end .preview-label { display: none; }
  .site-header { gap: 27px; }
  .brand strong { font-size: 22px; }
  .brand small { font-size: 9px; }
  .directory-head { padding-left: 22px; padding-right: 22px; }
  .directory-head h1 { font-size: 24px; }
  .card-main { grid-template-columns: 91px minmax(0,1fr); padding-left: 21px; gap: 13px; }
  .card-photo { height: 125px; }
  .card-copy h3 { font-size: 14px; }
  .detail-head { padding-left: 24px; padding-right: 24px; }
  .detail-head h2 { font-size: 26px; }
  .detail-section { padding-left: 24px; padding-right: 24px; }
  .journey-label span { display: none; }
  .shortlist-dock > .dock-thumbs { display: none; }
}
@media (max-width: 1050px) {
  .workspace.has-detail { grid-template-columns: var(--directory) minmax(0,1fr); }
  .detail-panel { position: absolute; right: 0; top: 0; bottom: 0; width: min(490px,calc(100% - 100px)); box-shadow: -14px 0 45px #08261c3b; }
  .workspace.has-detail .map-title { opacity: 0; }
  .workspace.has-detail .map-tools, .workspace.has-detail .map-switch, .workspace.has-detail .map-bottom { visibility: hidden; }
  .header-end .button { padding: 9px 11px; font-size: 11px; gap: 8px; }
  .primary-nav { gap: 17px; }
  .journey-bar .text-button { display: none; }
  .journey-bar ol { gap: 20px; }
  .map-title { left: 26px; top: 27px; }
  .map-title h2 { font-size: 35px; }
  .map-switch { right: 17px; top: 18px; }
  .map-switch button { padding: 6px 10px; }
  .shortlist-dock > div:not(.dock-thumbs) { min-width: 120px; }
  .shortlist-dock > .dock-mark { display: none; }
  .shortlist-dock .button { padding: 9px 11px; gap: 7px; }
  .modal { width: calc(100vw - 36px); max-height: calc(100dvh - 36px); }
  .enquiry-body { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); }
  .enquiry-main { padding-left: 27px; padding-right: 27px; }
  .enquiry-context { padding-left: 23px; padding-right: 23px; }
}
@media (max-width: 760px) {
  :root { --header: 74px; --journey: 43px; --directory: 100vw; }
  .site-header { padding: 0 18px; gap: 15px; }
  .brand { gap: 9px; }
  .brand-mark { width: 32px; height: 36px; }
  .brand-mark svg { width: 27px; height: 27px; }
  .brand strong { font-size: 21px; }
  .brand small { font-size: 8px; margin-top: 5px; letter-spacing: .02em; }
  .primary-nav { margin-left: auto; gap: 18px; }
  .primary-nav button { font-size: 11px; }
  .primary-nav button#navExplore, .primary-nav button#navDesk { display: none; }
  .primary-nav button span { font-size: 8px; width: 14px; height: 14px; min-width: 14px; margin-left: 3px; }
  .header-end { display: none; }
  .journey-bar { padding: 0 19px; gap: 10px; }
  .journey-label { display: none; }
  .journey-bar ol { width: 100%; justify-content: space-between; gap: 5px; }
  .journey-bar li { font-size: 10px; gap: 5px; }
  .journey-bar li b { font-size: 9px; }
  .journey-bar li + li::before { display: none; }
  .workspace, .workspace.has-detail { display: block; }
  .directory { height: 100%; border-right: 0; }
  .directory-head { padding: 22px 22px 15px; }
  .directory-head .eyebrow { font-size: 9px; }
  .directory-head h1 { margin-top: 7px; font-size: 25px; }
  .directory-head > p { font-size: 11px; margin-top: 5px; }
  .search-box { margin-top: 15px; min-height: 43px; }
  .search-box input { height: 40px; }
  .purpose-chips { margin-top: 12px; gap: 6px; }
  .purpose-chips button { min-height: 30px; font-size: 10px; }
  .filter-row { margin-top: 11px; }
  .results-bar { padding: 10px 22px; }
  #mobileMap { display: inline-flex; color: var(--forest); font-size: 11px; border-bottom: 1px solid #9cae86; }
  #resultScope { margin-left: auto; margin-right: 8px; font-size: 9px; }
  .resource-list { padding-bottom: 8px; }
  .card-main { padding: 17px 22px; grid-template-columns: 105px minmax(0,1fr); gap: 15px; }
  .card-photo { height: 130px; }
  .card-copy h3 { font-size: 15px; line-height: 1.6; }
  .card-topline { font-size: 9px; margin-bottom: 4px; }
  .card-facts strong { font-size: 11px; }
  .card-foot { font-size: 9px; }
  .save-card { right: 17px; }
  .directory-bottom { padding: 9px 22px; }
  .unmatched-cta { padding: 13px 22px max(13px,env(safe-area-inset-bottom)); }
  .unmatched-cta strong { font-size: 11px; }
  .unmatched-cta small { font-size: 9px; }
  /* Keep a measurable WebGL surface while the directory is foregrounded. */
  .map-stage { display: block; visibility: hidden; pointer-events: none; height: 100%; position: absolute; inset: 0; z-index: 6; }
  .workspace.map-visible .map-stage, .workspace.is-map .map-stage, body.map-visible .map-stage { display: block; visibility: visible; pointer-events: auto; }
  .workspace.map-visible .directory, .workspace.is-map .directory, body.map-visible .directory { visibility: hidden; }
  .workspace.mobile-map .map-stage { display: block; visibility: visible; pointer-events: auto; }
  .workspace.mobile-map .directory { visibility: hidden; }
  .map-title { left: 24px; top: 26px; }
  .map-title h2 { font-size: 35px; }
  .map-title p { font-size: 9px; }
  .map-switch { top: 20px; right: 18px; }
  .map-switch button { font-size: 10px; }
  .map-bottom { left: 18px; right: 18px; bottom: max(23px,env(safe-area-inset-bottom)); gap: 12px; flex-wrap: wrap; }
  .map-coordinate-note { padding: 9px 10px; font-size: 9px; max-width: 100%; gap: 6px; }
  .map-coordinate-note .text-button { font-size: 9px; margin-left: 5px; }
  #mobileList { display: inline-flex; min-height: 40px; font-size: 11px; padding: 10px 14px; }
  .map-tools { bottom: 145px; right: 18px; }
  .map-tools button { width: 32px; height: 34px; }
  .map-status { bottom: 150px; font-size: 10px; }
  .map-point span { font-size: 9px; max-width: 150px; padding: 5px 7px; }
  .map-point i { width: 15px; height: 15px; }
  .detail-panel { position: absolute; inset: 0; width: 100%; z-index: 20; border-left: 0; box-shadow: none; background: var(--white); }
  .detail-hero { height: 230px; }
  .detail-head { padding: 24px 23px 20px; }
  .detail-head h2 { font-size: 27px; }
  .detail-facts { margin-left: 23px; margin-right: 23px; gap: 18px 20px; }
  .detail-tabs { padding: 0 23px; }
  .detail-tabs button, .detail-tabs a { font-size: 11px; padding-top: 15px; padding-bottom: 13px; }
  .detail-section { padding: 24px 23px 27px; }
  .detail-section h3 { font-size: 22px; }
  .detail-section > p, .condition-list strong, .condition-list dd { font-size: 12px; }
  .condition-list > div, .condition-list > li { grid-template-columns: 90px minmax(0,1fr); padding: 13px 0; }
  .detail-sticky-actions { padding: 13px 20px max(13px,env(safe-area-inset-bottom)); }
  .detail-sticky-actions .button { min-height: 44px; font-size: 12px; }
  .shortlist-dock { left: 14px; right: 14px; bottom: max(14px,env(safe-area-inset-bottom)); transform: none; max-width: none; width: auto; padding: 12px; gap: 12px; }
  .shortlist-dock > div:not(.dock-thumbs) { min-width: 0; flex: 1; }
  .shortlist-dock strong { font-size: 11px; }
  .shortlist-dock > div > span { font-size: 9px; }
  .shortlist-dock .button { font-size: 10px; min-height: 38px; padding: 9px 11px; gap: 7px; }
  body:has(.shortlist-dock:not([hidden])) .directory-bottom { padding-bottom: 82px; }
  body:has(.workspace.has-detail) .directory-bottom { padding-bottom: 9px; }
  .modal { width: calc(100vw - 20px); max-height: calc(100dvh - 24px); border: 0; }
  .modal-head { padding: 25px 22px 22px; gap: 15px; }
  .modal-head .eyebrow { font-size: 9px; }
  .modal-head h2 { font-size: 25px; margin: 7px 0; }
  .modal-head p { font-size: 11px; line-height: 1.75; }
  .modal-head .icon-button { width: 30px; height: 30px; padding: 6px; }
  .modal-foot { padding: 15px 21px max(15px,env(safe-area-inset-bottom)); gap: 10px; flex-wrap: wrap; }
  .modal-foot .button { min-height: 43px; font-size: 11px; padding: 10px 13px; }
  .modal-foot > span { order: 3; max-width: none; font-size: 9px; width: 100%; }
  .compare-content { padding: 18px 22px; }
  .compare-table th, .compare-table td { min-width: 180px; padding: 14px 11px; font-size: 11px; }
  .compare-table th:first-child, .compare-table td:first-child { min-width: 85px; width: 85px; font-size: 10px; }
  .compare-table img { height: 105px; }
  .compare-table h3 { font-size: 13px; }
  .enquiry-body { display: flex; flex-direction: column; }
  .enquiry-main { padding: 25px 23px; }
  .enquiry-context { padding: 24px 23px; border-left: 0; border-top: 1px solid #dbe2ce; }
  .enquiry-context h3 { font-size: 22px; margin-bottom: 14px; }
  .form-grid { gap: 16px 14px; }
  .form-grid > label { font-size: 11px; }
  .form-grid input, .form-grid select, .form-grid textarea { font-size: 16px; min-height: 43px; padding: 10px; }
  .form-grid input::placeholder, .form-grid textarea::placeholder { font-size: 10px; }
  .enquiry-consent { padding: 18px 23px; }
  .enquiry-consent label { font-size: 10px; }
  .enquiry-modal .modal-foot .button { width: 100%; }
  .question-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .question-choices label { font-size: 11px; }
  .tracking-search { flex-direction: column; }
  .tracking-search input { min-height: 44px; font-size: 16px; }
  .receipt-top { padding: 17px; gap: 12px; }
  .receipt-top h3 { font-size: 21px; }
  .case-ref { flex-wrap: wrap; gap: 14px; }
  .case-ref strong { font-size: 17px; }
  .case-meta { gap: 17px; }
  .case-meta > div { font-size: 12px; }
  .tracking-body { padding: 23px; }
  .tracking-summary { padding: 17px; gap: 10px; }
  .tracking-summary h3 { font-size: 21px; }
  .desk-body { display: block; min-height: 300px; }
  .case-queue { display: flex; padding: 12px; max-height: none; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .case-item, .case-queue > button { flex-shrink: 0; width: 215px; border-bottom: 0; border-right: 1px solid #d8e0c9; }
  .queue-head { min-width: 130px; padding: 13px 11px; flex-direction: column; align-items: flex-start; justify-content: center; border-bottom: 0; border-right: 1px solid #d3dcc1; }
  #queueFilter { width: 165px; flex-shrink: 0; margin: 15px 13px; align-self: center; }
  .queue-pagination { min-width: 230px; padding: 13px; border-top: 0; border-left: 1px solid #d6dfc8; }
  .private-link-fallback input { font-size: 16px; }
  .desk-detail { padding: 23px; max-height: none; }
  .desk-detail h3 { font-size: 23px; }
  .operator-form { gap: 16px 13px; }
  .operator-form input, .operator-form textarea, .operator-form select { font-size: 16px; }
  .service-grid { padding: 2px 23px 24px; gap: 0; grid-template-columns: 1fr; }
  .service-grid article { padding: 22px 0; }
  .service-grid b { font-size: 25px; }
  .service-grid h3 { font-size: 21px; margin-top: 10px; }
  .service-grid p { font-size: 12px; }
  .service-disclaimer { padding: 0 23px 26px; font-size: 10px; }
  .toast { bottom: 25px; font-size: 11px; width: max-content; max-width: calc(100vw - 40px); }
}
@media (max-width: 380px) {
  .site-header { padding: 0 14px; }
  .brand small { max-width: 100px; }
  .primary-nav { gap: 12px; }
  .primary-nav button { font-size: 10px; }
  .card-main { grid-template-columns: 90px minmax(0,1fr); padding-left: 18px; gap: 12px; }
  .card-copy h3 { font-size: 14px; }
  .card-photo { height: 122px; }
  .form-grid { grid-template-columns: 1fr; }
}
@media (max-height: 780px) and (min-width: 761px) {
  .directory-head { padding-top: 18px; padding-bottom: 14px; }
  .directory-head h1 { font-size: 23px; }
  .directory-head > p { display: none; }
  .search-box { margin-top: 15px; }
  .purpose-chips { margin-top: 11px; }
  .filter-row { margin-top: 10px; }
  .card-main { padding-top: 14px; padding-bottom: 14px; min-height: 143px; }
  .card-photo { height: 118px; }
  .unmatched-cta { padding-top: 12px; padding-bottom: 12px; }
  .results-bar { padding-top: 10px; padding-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.tracking-context { margin: 22px 0; padding: 17px 19px; background: #edf1e5; border: 1px solid #dce5cf; }
.tracking-context summary { cursor: pointer; font-size: 12px; font-weight: 600; }
.tracking-context .condition-list { margin: 15px 0 0; }
.visitor-reply-form { padding-top: 25px; margin-top: 24px; border-top: 1px solid #dce5cf; display: grid; gap: 14px; }
.visitor-reply-form label { display: grid; gap: 8px; color: #748265; font-size: 11px; }
.visitor-reply-form textarea, .visitor-reply-form select { border: 1px solid #d4dfc7; border-radius: 2px; background: #fff; color: #304c35; padding: 12px; font: inherit; width: 100%; }
.visitor-reply-form .button { justify-self: end; }
.map-point { position: relative; display: block; width: 38px; height: 38px; padding: 0; border: 0; background: transparent; transform: none; overflow: visible; }
.map-point > i { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); margin: 0; }
.map-point > span { position: absolute; left: 34px; top: 50%; transform: translateY(-50%); width: max-content; max-width: 185px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.map-point.label-hidden > span { display: none; }
.map-point.label-hidden:hover > span,.map-point.label-hidden:focus-visible > span { display: block; }
.compare-table td { white-space: pre-line; }
@media (max-width:760px) { .visitor-reply-form textarea,.visitor-reply-form select{font-size:16px}.visitor-reply-form .button{width:100%}.detail-hero{height:190px}.detail-head{padding-top:20px;padding-bottom:15px}.detail-head .detail-facts{margin-top:15px;padding-top:14px}.tracking-context{padding:15px}.tracking-context .condition-list>div{grid-template-columns:70px 1fr} }
@media (max-height:780px) and (min-width:761px) { .detail-hero{height:165px}.detail-head{padding-top:20px;padding-bottom:15px}.detail-head h2{font-size:24px}.detail-head .detail-facts{margin-top:14px;padding-top:13px}.directory-head{padding-top:16px;padding-bottom:10px}.purpose-chips{gap:4px}.purpose-chips button{padding-top:7px;padding-bottom:7px}.journey-bar{height:43px}.workspace{height:calc(100dvh - 129px)} }
