/* SpatialDataset is a request-selected presentation, not a second data store.
   All rules are scoped so AerialDataset retains its existing design. */
.is-spatial {
    --ink: #15384c; --text: #294453; --muted: #627482;
    --green: #17465c; --green-hover: #23617b; --lime: #c3eee6;
    --paper: #f9fbfc; --tint: #eef4f7; --line: #d9e4eb;
    --shadow: 0 12px 34px rgba(22,55,77,.065);
}
.is-spatial .site-header { background: rgba(249,251,252,.98); }
.is-spatial .eyebrow { color: #526e7e; }
.is-spatial .button-lime { color: #15384c; }
.is-spatial .cta-panel .eyebrow { color: #c3dce5; }
.is-spatial .prose { color: var(--text); }
.is-spatial :is(a,button,input,select,textarea,summary):focus-visible { outline-color: #247d9f; }
.is-spatial .spatial-hero { padding: 70px 0 66px; }
.is-spatial .spatial-hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 50px; align-items: center; }
.is-spatial .spatial-hero-copy { min-width: 0; }
.is-spatial .spatial-hero h1 { font-size: clamp(42px,4.7vw,66px); letter-spacing: -.05em; line-height: 1.08; }
.is-spatial .spatial-hero h1 em { font-style: normal; color: #23778d; }
.is-spatial .spatial-lead { font-size: 19px; line-height: 1.7; color: var(--muted); max-width: 540px; margin: 24px 0 28px; }
.is-spatial .spatial-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.is-spatial .spatial-actions .button { white-space: normal; text-align: center; }
.is-spatial .spatial-hero-note { margin: 23px 0 0; }
.is-spatial .spatial-hero-visual { min-width: 0; border: 1px solid var(--line); border-radius: 17px; padding: 22px; background: #eff4f7; overflow: hidden; }
.is-spatial .spatial-visual-heading { display: flex; justify-content: space-between; gap: 12px; }
.is-spatial .spatial-visual-heading .eyebrow { font-size: 9px; }
.is-spatial .spatial-hero-visual > img { width: 100%; height: auto; aspect-ratio: 970 / 638; object-fit: contain; }
.is-spatial .spatial-hero-visual > .help-text { font-size: 10px; margin-bottom: 0; }
.is-spatial .spatial-representation-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.is-spatial .spatial-representation-strip span { font-size: 11px; font-weight: 600; background: white; border: 1px solid var(--line); padding: 8px 12px; border-radius: 6px; }
.is-spatial .spatial-pathways .feature-card { padding: 28px; }
.is-spatial .spatial-pathways .eyebrow { font-size: 9px; }
.is-spatial .spatial-pathways .feature-card h3 { font-size: 24px; }
.is-spatial .spatial-editorial { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: start; }
.is-spatial .spatial-editorial > * { min-width: 0; }
.is-spatial .spatial-editorial .prose h3 { font-size: 23px; }
.is-spatial .spatial-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.is-spatial .spatial-guide-card { padding: 28px; border: 1px solid var(--line); background: white; border-radius: 12px; display: flex; flex-direction: column; }
.is-spatial .spatial-guide-card:hover { background: var(--tint); text-decoration: none; }
.is-spatial .spatial-guide-card h3 { font-size: 24px; }
.is-spatial .spatial-guide-card p { color: var(--muted); font-size: 14px; line-height: 1.75; }
.is-spatial .spatial-guide-card .text-link { margin-top: auto; }
.is-spatial .spatial-scene-card .card-content > p { -webkit-line-clamp: unset; display: block; overflow: visible; }
.is-spatial .spatial-capabilities { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.is-spatial .spatial-capabilities span { font-size: 10px; line-height: 1.5; padding: 5px 7px; border-radius: 4px; border: 1px solid var(--line); }
.is-spatial .spatial-capabilities .available { background: #e9f4f2; color: #235b57; border-color: #cde3df; }
.is-spatial .spatial-capabilities .absent { color: #687987; background: #f3f6f8; }
.is-spatial .spatial-scene-card .card-foot { flex-wrap: wrap; gap: 8px 14px; }
.is-spatial .spatial-scene-card h3, .is-spatial .spatial-guide-card h3 { overflow-wrap: anywhere; }
.is-spatial .spatial-browse-note { padding: 17px 20px; background: var(--tint); border-left: 3px solid #458499; border-radius: 0 8px 8px 0; font-size: 13px; max-width: 980px; }
.is-spatial .spatial-browse-note a { display: inline-block; margin-left: 5px; font-weight: 600; }
.is-spatial .catalog-results, .is-spatial .filter-sidebar { min-width: 0; }
.is-spatial .results-bar { gap: 12px; flex-wrap: wrap; }
.is-spatial .filter-form select { max-width: 100%; }
.is-spatial .spatial-guide-heading h1 { max-width: 1000px; }
.is-spatial .spatial-guide-heading > p { max-width: 900px; }
.is-spatial .spatial-guide-heading .spatial-actions { margin-top: 25px; }
.is-spatial .spatial-guide-heading .spatial-actions .help-text { margin: 0; }
.is-spatial .spatial-guide-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 76px; align-items: start; }
.is-spatial .spatial-guide-copy { max-width: 770px; }
.is-spatial .spatial-guide-copy > section { margin-bottom: 38px; }
.is-spatial .spatial-guide-copy h2 { font-size: 29px; line-height: 1.2; }
.is-spatial .spatial-guide-aside .panel { padding: 25px; }
.is-spatial .spatial-guide-aside h2 { font-size: 23px; }
.is-spatial .spatial-checklist { list-style: none; margin: 0 0 25px; padding: 0; }
.is-spatial .spatial-checklist li { border-bottom: 1px solid var(--line); padding: 13px 0; font-size: 13px; line-height: 1.65; }
.is-spatial .spatial-related-guides { display: flex; flex-direction: column; gap: 14px; margin-top: 34px; font-size: 13px; }
.is-spatial .spatial-related-guides h2 { margin-bottom: 2px; }
.is-spatial .spatial-fit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.is-spatial .spatial-fit-grid > div { border: 1px solid var(--line); background: white; border-radius: 8px; padding: 19px; }
.is-spatial .spatial-fit-grid h3 { font-size: 18px; margin-bottom: 12px; }
.is-spatial .spatial-fit-grid strong { font-size: 12px; display: block; margin-bottom: 8px; }
.is-spatial .spatial-fit-grid p { font-size: 12px; color: var(--muted); margin: 0; }
.is-spatial .spatial-sitemap { padding-left: 20px; }
.is-spatial .spatial-sitemap li { margin-bottom: 16px; }
.is-spatial .site-footer .footer-top > div { min-width: 0; }
.is-spatial .site-footer .help-text { max-width: 290px; }
.is-spatial .site-footer .help-text a { display: inline; }
.is-spatial .empty-state .text-link { margin: 16px; }
@media (max-width: 1100px) {
    .is-spatial .header-inner { gap: 22px; }
    .is-spatial .desktop-nav { gap: 18px; }
    .is-spatial .header-actions { gap: 14px; }
    .is-spatial .spatial-hero-grid { gap: 30px; }
    .is-spatial .spatial-guide-layout { gap: 36px; grid-template-columns: minmax(0,1fr) 280px; }
    .is-spatial .spatial-editorial { gap: 38px; }
}
@media (max-width: 960px) {
    .is-spatial .desktop-nav { display: none; }
    .is-spatial .mobile-nav { display: block; }
    .is-spatial .header-actions { margin-left: auto; }
    .is-spatial .spatial-hero-grid { grid-template-columns: 1fr; }
    .is-spatial .spatial-hero-copy { max-width: 760px; }
    .is-spatial .spatial-hero-visual { max-width: 640px; width: 100%; margin: 0 auto; }
    .is-spatial .spatial-hero h1 { max-width: 820px; }
    .is-spatial .spatial-guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .is-spatial .spatial-guide-layout { grid-template-columns: minmax(0,1fr); }
    .is-spatial .spatial-guide-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
}
@media (max-width: 640px) {
    .is-spatial .section-heading { flex-direction: column; align-items: flex-start; gap: 12px; }
    .is-spatial .spatial-hero { padding: 38px 0; }
    .is-spatial .spatial-hero-grid { gap: 30px; }
    .is-spatial .spatial-hero h1 { font-size: 42px; }
    .is-spatial .spatial-lead { font-size: 16px; margin-block: 20px; }
    .is-spatial .spatial-hero-visual { padding: 16px; }
    .is-spatial .spatial-representation-strip { gap: 5px; }
    .is-spatial .spatial-representation-strip span { padding: 6px 8px; font-size: 10px; }
    .is-spatial .spatial-editorial, .is-spatial .spatial-guide-grid, .is-spatial .spatial-guide-aside { grid-template-columns: 1fr; gap: 25px; }
    .is-spatial .spatial-guide-card { padding: 24px; }
    .is-spatial .spatial-guide-heading h1 { font-size: 35px; }
    .is-spatial .spatial-guide-copy h2 { font-size: 25px; }
    .is-spatial .spatial-fit-grid { grid-template-columns: 1fr; }
    .is-spatial .spatial-fit-grid > div { padding: 18px; }
    .is-spatial .spatial-browse-note { padding: 15px; font-size: 12px; }
    .is-spatial .spatial-actions { gap: 15px; }
    .is-spatial .spatial-actions .text-link { font-size: 12px; }
    .is-spatial .spatial-scene-card .card-foot { font-size: 10px; }
}
@media print {
    .is-spatial .spatial-guide-layout, .is-spatial .spatial-editorial { display: block; }
    .is-spatial .spatial-guide-aside { display: none; }
    .is-spatial .spatial-hero { padding: 20px 0; }
}

/* Authored task/environment collections: server-rendered and usable without JS. */
.is-spatial .spatial-collection-heading > p { max-width: 920px; }
.is-spatial .spatial-collection-heading .spatial-actions { margin-top: 26px; }
.is-spatial .spatial-collection-group + .spatial-collection-group { margin-top: 64px; }
.is-spatial .spatial-collection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.is-spatial .spatial-collection-card { display: flex; flex-direction: column; min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper, white); text-decoration: none; transition: border-color .2s; }
.is-spatial .spatial-collection-card:hover { border-color: var(--green); }
.is-spatial .spatial-collection-card:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
.is-spatial .spatial-collection-card .eyebrow { font-size: 10px; line-height: 1.6; }
.is-spatial .spatial-collection-card h3 { font-size: 24px; line-height: 1.22; margin: 17px 0 14px; }
.is-spatial .spatial-collection-card p { color: var(--muted); font-size: 14px; line-height: 1.7; margin-bottom: 24px; }
.is-spatial .spatial-collection-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; justify-content: space-between; margin-top: auto; font-size: 12px; }
.is-spatial .spatial-collection-card-foot .text-link { font-size: 12px; }
.is-spatial .spatial-collection-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); gap: 28px; padding-top: 25px; padding-bottom: 25px; }
.is-spatial .spatial-collection-stats strong { display: block; font-size: 32px; line-height: 1.2; margin-bottom: 8px; }
.is-spatial .spatial-collection-stats span { color: var(--muted); font-size: 12px; }
.is-spatial .spatial-collection-selection { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 70px; align-items: start; }
.is-spatial .spatial-collection-selection h2 { font-size: 27px; }
.is-spatial .spatial-inventory-breakdown { margin: 0 0 24px; }
.is-spatial .spatial-inventory-breakdown > div { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding: 12px 0; font-size: 13px; }
.is-spatial .spatial-inventory-breakdown dd { margin: 0; text-align: right; color: var(--muted); flex-shrink: 0; }
.is-spatial .spatial-collection-pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px; margin-top: 36px; }
.is-spatial .spatial-collection-pager > span { color: var(--muted); font-size: 13px; }
@media (max-width: 960px) {
    .is-spatial .spatial-collection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .is-spatial .spatial-collection-selection { gap: 34px; }
}
@media (max-width: 640px) {
    .is-spatial .spatial-collection-grid, .is-spatial .spatial-collection-selection { grid-template-columns: minmax(0,1fr); gap: 24px; }
    .is-spatial .spatial-collection-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 23px; }
    .is-spatial .spatial-collection-stats strong { font-size: 28px; }
    .is-spatial .spatial-collection-card { padding: 24px; }
    .is-spatial .spatial-collection-heading h1 { font-size: 36px; }
    .is-spatial .spatial-inventory-breakdown > div { gap: 12px; font-size: 12px; }
    .is-spatial .spatial-collection-pager { gap: 12px; }
}

/* Longer workflow navigation remains usable on short mobile viewports. */
@media (max-width: 960px) {
    .is-spatial .mobile-nav nav { max-height: calc(100dvh - 100px); overflow-y: auto; overscroll-behavior: contain; }
}
