/* Public Space page: the only owner of its layout, type scale and actions.
   Header, search controls and footer keep the shared Directory components.
   Project drawer styling lives in space-project.css. */
body.is-space-view { background:#fff; color:#111; }
body.is-photo-viewer-open { overflow:hidden; }
.space-page-search { padding:0 var(--hds-public-rail, var(--page)); background:#f7f6f3; }
.space-page-search .directory-search { grid-template-columns:repeat(4,minmax(0,1fr)) auto; }
.space-page-search .directory-search-dates { min-width:0; }
.space-page-search .directory-date-range { display:block; }
.space-page-search [data-hds-date-display] { font-size:14px; }
.space-page-search .directory-search-field { display:grid; align-content:center; gap:7px; min-height:72px; padding:12px 18px; border:0; }
.space-page-search .directory-search-field:first-of-type { padding-left:0; }
.space-page-search .directory-search-field label { margin:0; line-height:1; }
.space-page-search .directory-search-button { min-height:72px; }
.space-page-search .hds-date-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:28px; padding:0; border:0; border-radius:0; background:transparent; color:#111; cursor:pointer; font:inherit; font-size:14px; font-weight:430; line-height:1.25; text-align:left; }
.space-page-search .hds-date-trigger:focus-visible { outline:2px solid #111; outline-offset:4px; }
.space-page-search .hds-date-chevron { color:#77726a; font-size:15px; transform:translateY(-1px); }
.space-page {
  --space-line:#dedede;
  --space-muted:#747474;
  --space-action-width:240px;
  --space-heading-size:16px;
  --space-copy-size:15px;
  --space-label-size:14px;
  --space-action-size:14px;
  --space-copy-leading:22px;
  --space-column-gap:clamp(24px,4vw,56px);
  font-size:var(--space-copy-size);
  font-weight:400;
  line-height:var(--space-copy-leading); padding:0 var(--hds-public-rail, var(--page)); background:#fff; color:#111; }
.space-page *, .space-photo-viewer * { box-sizing:border-box; }
.space-page-heading { padding:24px 0 26px; }
.space-page-topline, .space-page-title-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.space-page-topline { margin-bottom:24px; color:var(--space-muted); font-size:12px; line-height:1.6; }
.space-page-crumbs { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; min-width:0; }
.space-page-ref { flex:none; white-space:nowrap; color:#111; }
.space-page-title-row h1 { min-width:0; margin:0; font-size:clamp(32px,4vw,56px); line-height:1.1; font-weight:400; letter-spacing:-.045em; overflow-wrap:anywhere; }
.space-page button { appearance:none; -webkit-appearance:none; border-radius:0; cursor:pointer; font:inherit; }
.space-page svg { display:block; width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.space-page .space-page-action { display:inline-flex; align-items:center; justify-content:space-between; gap:12px; width:var(--space-action-width); min-height:44px; padding:10px 20px; border:1px solid #d2d2d2; border-radius:0; background:#fff; color:#111; font-size:var(--space-action-size); font-weight:400; line-height:22px; letter-spacing:0; text-align:left; text-transform:none; text-decoration:none; transition:border-color .15s ease,background-color .15s ease; }
.space-page-action svg { width:16px; height:16px; flex-basis:16px; }
.space-page-title-row .space-page-action { flex:none; }
/* A single action track: same width, padding and icon position in every row. */
.space-page-action-row { display:grid; grid-template-columns:minmax(0,1fr) var(--space-action-width); align-items:baseline; gap:24px; }
.space-page-action-row > * { min-width:0; }
.space-page-section .space-page-action-row > p { margin:0; }
.space-page-sources { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 20px; min-width:0; }
.space-page-source { font:inherit; color:#111; white-space:nowrap; }
.space-page-source[aria-disabled="true"] { color:#909090; cursor:default; }
@media(hover:hover) {
  .space-page .space-page-action:hover { border-color:#111; background:#f5f5f5; }
}
.space-page-media { min-width:0; }
.space-page-gallery { position:relative; width:100%; aspect-ratio:3/2; overflow:hidden; background:#f4f4f4; }
.space-page-gallery-item { position:absolute; inset:0; min-width:0; min-height:0; margin:0; }
.space-page-gallery-item img { display:block; width:100%; height:100%; object-fit:contain; }
.space-page .space-page-expand { position:absolute; bottom:22px; right:22px; width:auto; min-width:170px; }
.space-page-empty { display:grid; place-items:center; height:100%; font-size:14px; color:#747474; }
.space-page-summary { display:grid; grid-template-columns:minmax(0,1fr) var(--space-action-width); align-items:start; gap:40px; padding:32px 0; }
.space-page-summary dl { display:grid; grid-template-columns:1.1fr .6fr 1fr; gap:24px; margin:0; }
.space-page-summary dl > div { min-width:0; }
.space-page-summary dt { color:#111; font-size:var(--space-label-size); margin-bottom:8px; }
.space-page-summary dd { margin:0; font-size:var(--space-copy-size); font-weight:400; line-height:var(--space-copy-leading); letter-spacing:-.01em; overflow-wrap:anywhere; }
.space-page-select.is-selected svg { fill:currentColor; }
.space-page .space-page-view-selection { width:100%; margin-top:8px; }
.space-page-tabs { display:flex; gap:32px; padding:0; border-block:1px solid var(--space-line); }
.space-page-tabs a { display:flex; align-items:center; min-height:56px; padding:12px 0; color:var(--space-muted); font-size:var(--space-label-size); text-decoration:none; }
.space-page-tabs a[aria-current] { color:#111; box-shadow:inset 0 -2px #111; }
.space-page-tabs a:hover { color:#111; }
.space-page-section .space-page-location-name { margin-bottom:0; font:inherit; }
.space-page-section { display:grid; grid-template-columns:minmax(150px,.3fr) minmax(0,1fr); align-items:baseline; column-gap:var(--space-column-gap); padding:24px 0; border-bottom:1px solid var(--space-line); scroll-margin-top:104px; }
.space-page-section > * { min-width:0; }
.space-page-section h2, .space-page-related > h2 { margin:0; color:#111; font-size:var(--space-heading-size); font-weight:500; line-height:var(--space-copy-leading); letter-spacing:-.025em; }
/* Shared rubric sweep: paint only, so hover never shifts the grid. */
.space-page-section-label { background:linear-gradient(#f0f0ed,#f0f0ed) no-repeat left bottom / 0 100%; transition:background-size 240ms ease; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.space-page-section:focus-within > h2 .space-page-section-label,
.space-page-section:target > h2 .space-page-section-label,
.space-page-related:focus-within > h2 .space-page-section-label { background-size:100% 100%; }
@media(hover:hover) {
  .space-page-section:hover > h2 .space-page-section-label,
  .space-page-related:hover > h2 .space-page-section-label { background-size:100% 100%; }
}
@media(hover:none) {
  .space-page-section:active > h2 .space-page-section-label,
  .space-page-related:active > h2 .space-page-section-label { background-size:100% 100%; }
}
.space-page-section p { margin:0; font:inherit; }
.space-page-section .space-page-description { max-width:70ch; margin:0; }
.space-page-uses { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:16px; color:#111; font-size:var(--space-label-size); }
.space-page-uses a:hover { color:#111; text-decoration:underline; text-underline-offset:4px; }
.space-page-detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 40px; margin:16px 0 0; }
.space-page-detail-list > div { display:grid; grid-template-columns:minmax(85px,.8fr) minmax(0,1fr); align-items:baseline; gap:16px; }
.space-page-detail-list dt { font:inherit; color:#111; }
.space-page-detail-list dd { margin:0; font:inherit; overflow-wrap:anywhere; }
.space-page a:focus-visible, .space-page button:focus-visible, .space-page-gallery:focus-visible, .space-photo-viewer button:focus-visible { outline:2px solid #111; outline-offset:4px; }
.space-page-select:focus-visible { outline-offset:4px; }
.space-photo-viewer { box-sizing:border-box; width:100%; height:100dvh; max-width:100%; max-height:100dvh; margin:0; padding:16px; padding-bottom:max(16px,env(safe-area-inset-bottom)); border:0; color:#111; background:#fff; }
.space-photo-viewer[open] { display:flex; flex-direction:column; align-items:center; gap:12px; }
.space-photo-viewer::backdrop { background:#fff; }
.space-photo-viewer img { flex:1 1 0; min-height:0; height:0; width:100%; object-fit:contain; }
.space-photo-viewer button { min-width:44px; min-height:44px; padding:12px; border:0; background:transparent; font:inherit; color:inherit; cursor:pointer; }
.space-photo-viewer [data-photo-close] { align-self:flex-end; }
.space-photo-viewer > div { display:flex; flex:0 0 auto; align-items:center; gap:28px; }
.space-photo-viewer [data-photo-count] { font-variant-numeric:tabular-nums; }
/* Related Spaces use a small isolated card, without catalogue override layers. */
.space-page-related { padding:64px 0; min-width:0; }
.space-page-related > h2 { margin-bottom:24px; }
.space-page-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.space-page-related-card { display:block; min-width:0; color:inherit; text-decoration:none; }
.space-page-related-card > img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; background:#f4f4f4; }
.space-page-related-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:16px; }
.space-page-related-heading h3 { margin:0; min-height:44px; font-size:var(--space-heading-size); font-weight:500; line-height:var(--space-copy-leading); letter-spacing:-.01em; }
.space-page-related-heading svg { width:16px; height:16px; flex-basis:16px; }
.space-page-related-card p { margin:4px 0 0; color:#111; font-size:var(--space-label-size); line-height:20px; }
.space-page-related-card .space-page-ref { display:block; margin-top:8px; font-size:var(--space-label-size); }
.space-page-related-card:hover h3 { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1100px) {
  .space-page-summary { gap:24px; }
  .space-page-summary dl { grid-template-columns:1fr 1fr; gap:20px; }
  .space-page-summary dl > div:first-child { grid-column:1/-1; }
}
@media(max-width:980px) {
  .space-page { --space-action-width:220px; --space-column-gap:24px; }
  .space-page-section { grid-template-columns:150px minmax(0,1fr); }
  .space-page-action-row { gap:16px; }
  .space-page-detail-list { grid-template-columns:1fr; }
  .space-page-search .directory-search { grid-template-columns:1fr 1fr; }
  .space-page-search .directory-search-button { grid-column:1/-1; min-height:48px; }
}
@media(max-width:760px) {
  .space-page-sources { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 16px; }
  .space-page-action-row { grid-template-columns:1fr; gap:16px; }
  .space-page-action-row > .space-page-action { width:100%; }
  .space-page-related-grid { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:86%; gap:16px; overflow-x:auto; padding:4px 0 16px; scroll-snap-type:x mandatory; }
  .space-page-related-card { scroll-snap-align:start; }
  .space-page .space-page-select { width:100%; }
  .space-page .space-page-expand { bottom:12px; right:var(--hds-public-rail, var(--page)); }
  .space-page-search .directory-search { grid-template-columns:1fr 1fr; }
  .space-page-search .directory-search-field { min-height:66px; padding:10px 12px; border:0; }
  .space-page-search .directory-search-field:nth-of-type(odd) { padding-left:0; }
  .space-page-search .directory-search-field:nth-of-type(n+3) { border-top:1px solid #e5e2dc; }
  .space-page-search .directory-search-button { grid-column:1/-1; min-height:48px; margin-bottom:12px; }
  .space-page-tabs { gap:26px; }
  .space-page-media { margin-inline:calc(-1 * var(--hds-public-rail, var(--page))); }
  .space-page-heading { padding:20px 0; }
  .space-page-topline { gap:10px; align-items:flex-start; margin-bottom:20px; font-size:12px; }
  .space-page-crumbs { gap:4px 8px; }
  .space-page-crumbs > span:last-child:not(:nth-child(2)) { display:none; }
  .space-page-crumbs > span:nth-last-child(2):not(:nth-child(2)) { display:none; }
  .space-page-title-row { gap:14px; align-items:flex-start; flex-wrap:wrap; }
  .space-page-title-row .space-page-action { width:100%; }
  .space-page-summary { grid-template-columns:1fr; gap:24px; padding:24px 0; }
  .space-page-summary dl { grid-template-columns:1fr 1fr; gap:22px; }
  .space-page-summary dt { margin-bottom:6px; }
  .space-page-summary-action { min-width:0; }
  .space-page-section { grid-template-columns:1fr; gap:16px; padding:24px 0; scroll-margin-top:94px; }
}
@media(max-width:380px) {
  .space-page-title-row { flex-wrap:wrap; gap:6px; }
}
@media(prefers-reduced-motion:reduce) { html:has(.space-page) { scroll-behavior:auto; } .space-page .space-page-action, .space-page-section-label { transition:none; } }
