/* Public catalogue framing. Lists, controls, details and sorting use workspace components. */
html .public-catalogue-body {
    display: block;
    background: radial-gradient(ellipse at 85% 0%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 45%), var(--background);
}
.catalogue-shell { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.catalogue-shell svg { flex: 0 0 auto; width: 20px; height: 20px; vertical-align: middle; }
.catalogue-topbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 84px; border-bottom: 1px solid var(--border); }
.catalogue-brand { display: flex; align-items: center; gap: 12px; color: var(--text); text-decoration: none; }
.catalogue-brand svg { color: var(--accent); width: 27px; height: 27px; }
.catalogue-brand strong { font-size: 1.2rem; letter-spacing: -.035em; }
.catalogue-brand > span { border-left: 1px solid var(--border); padding-left: 12px; color: var(--muted); font-size: .74rem; }
.catalogue-languages { display: flex; gap: 4px; }
.catalogue-languages a { display: grid; place-items: center; min-width: 38px; min-height: 38px; color: var(--muted); border-radius: 8px; font-size: .72rem; text-decoration: none; }
.catalogue-languages [aria-current] { color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.catalogue-hero { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: center; gap: 48px; padding: 48px 0; }
.catalogue-hero:has(> :only-child) { grid-template-columns: 1fr; }
.catalogue-identity { display: flex; align-items: center; gap: 26px; min-width: 0; }
.catalogue-identity > div { min-width: 0; }
.catalogue-identity h1 { margin: 10px 0 14px; font-size: clamp(2rem, 4vw, 3rem); overflow-wrap: anywhere; }
.catalogue-identity p { margin: 0; line-height: 1.65; }
.catalogue-identity .catalogue-intro { margin-top: 10px; max-width: 530px; color: var(--muted); font-size: .86rem; }
.catalogue-logo { display: block; flex: 0 0 auto; width: 112px; height: 112px; object-fit: contain; border-radius: 16px; border: 1px solid var(--border); background: var(--surface-deep); }
.catalogue-office { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; padding-left: 28px; border-left: 1px solid var(--border); }
.catalogue-icon { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 12px; color: var(--accent); }
.catalogue-office strong { font-size: .85rem; }
.catalogue-office p { margin: 4px 0 0; color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.catalogue-office .button-row { grid-column: 1/-1; gap: 16px; margin: 4px 0 0; }
.catalogue-text-link { color: var(--muted); font-size: .8rem; text-underline-offset: 4px; }
html .public-catalogue-body .catalogue-search { padding: 26px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.catalogue-shell .section-heading h2 { font-size: 1.25rem; margin: 5px 0; }
.catalogue-search .section-heading { margin: 0 0 22px; }
.catalogue-search .small-note { font-size: .74rem; }
html .public-catalogue-body .catalogue-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 16px; margin: 0; padding: 0; border: 0; background: transparent; align-items: end; }
.catalogue-filters label { min-width: 0; margin: 0; }
.catalogue-filters .catalogue-query { grid-column: span 2; }
html .public-catalogue-body .catalogue-filters label > span { color: var(--muted); font-size: .73rem; text-transform: none; letter-spacing: 0; }
html .public-catalogue-body .catalogue-filters :is(input, select) { width: 100%; min-width: 0; height: 44px; min-height: 44px; font-size: .82rem; }
html .public-catalogue-body .catalogue-filter-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; grid-column: 1/-1; gap: 10px; margin: 0; padding: 0; }
html .public-catalogue-body .catalogue-shell .button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; margin: 0; }
.catalogue-results { margin-top: 38px; }
.catalogue-results .section-intro { font-size: .82rem; margin-top: 8px; }
.catalogue-results .list-sort-header { margin-top: 20px; }
.catalogue-empty { margin-top: 24px; padding: 36px 24px; border-style: solid; background: color-mix(in srgb, var(--surface) 55%, transparent); }
.catalogue-empty-icon { display: grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 20px; border-radius: 18px; background: color-mix(in srgb, var(--accent) 8%, transparent); color: var(--accent); }
.catalogue-empty-icon svg { width: 30px; height: 30px; }
.catalogue-empty h3 { margin: 0; font-size: 1.12rem; }
.catalogue-empty p { color: var(--muted); font-size: .85rem; line-height: 1.7; }
.catalogue-empty .button-row { justify-content: center; margin-top: 20px; }
.catalogue-shell .public-land-grid { margin-top: 16px; align-items: start; grid-template-columns: repeat(2, minmax(0, 1fr)); }
html .public-catalogue-body .public-land-card > .workspace-list-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; border: 0; padding: 20px; }
.catalogue-list-title { grid-column: 1/-1; }
.catalogue-details-toggle { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; color: var(--accent); font-size: .74rem; }
.public-land-card[open] .catalogue-details-toggle svg { transform: rotate(180deg); }
.catalogue-shell .public-land-content { border-top: 1px solid var(--border); }
.catalogue-shell .public-land-description { overflow-wrap: anywhere; }
.catalogue-shell .public-land-offer { font-size: .82rem; }
.catalogue-shell.layout-compact .public-land-grid { display: grid; grid-template-columns: 1fr; }
.catalogue-shell.layout-compact .public-land-card { margin: 0; }
html .public-catalogue-body .layout-compact .public-land-card > .workspace-list-row { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.layout-compact .catalogue-list-title, .layout-compact .catalogue-details-toggle { grid-column: auto; }
.catalogue-footer { display: flex; justify-content: space-between; gap: 16px; margin: 36px 0 0; padding: 24px 0; border-top: 1px solid var(--border); color: var(--muted); font-size: .7rem; }
.catalogue-footer b { margin: 0 5px; color: var(--accent); }
.catalogue-shell :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.catalogue-embed .catalogue-shell { padding: 0 20px; max-width: none; }
.catalogue-embed .catalogue-hero { padding-block: 28px; }
@media(max-width: 850px) {
    .catalogue-hero { grid-template-columns: 1fr; gap: 24px; padding: 32px 0; }
    .catalogue-office { grid-template-columns: auto minmax(0, 1fr) auto; border-left: 0; border-top: 1px solid var(--border); padding: 20px 0 0; }
    .catalogue-office .button-row { grid-column: auto; margin: 0; }
    .catalogue-filters .catalogue-query { grid-column: 1/-1; }
    html .public-catalogue-body .catalogue-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(max-width: 600px) {
    .catalogue-shell, .catalogue-embed .catalogue-shell { padding: 0 16px; }
    .catalogue-topbar { min-height: 68px; gap: 12px; }
    .catalogue-brand { gap: 8px; }
    .catalogue-brand > span { display: none; }
    .catalogue-identity { align-items: flex-start; gap: 16px; }
    .catalogue-logo { width: 64px; height: 64px; border-radius: 12px; }
    .catalogue-identity h1 { font-size: 1.8rem; }
    .catalogue-identity .eyebrow { font-size: .57rem; }
    .catalogue-office { grid-template-columns: auto minmax(0, 1fr); }
    .catalogue-office .button-row { grid-column: 1/-1; justify-content: flex-start; }
    html .public-catalogue-body .catalogue-search { padding: 18px; }
    .catalogue-search .small-note { display: none; }
    .catalogue-results { margin-top: 28px; }
    .catalogue-results .section-heading { flex-direction: row; align-items: flex-start; }
    .catalogue-results .status-pill { white-space: nowrap; }
    .catalogue-shell .public-land-grid { grid-template-columns: 1fr; }
    html .public-catalogue-body .layout-compact .public-land-card > .workspace-list-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .layout-compact .catalogue-list-title, .layout-compact .catalogue-details-toggle { grid-column: 1/-1; }
    .catalogue-footer { flex-direction: column; gap: 8px; }
    .catalogue-empty { padding: 28px 18px; }
}
@media(max-width: 380px) {
    html .public-catalogue-body .catalogue-filters { grid-template-columns: 1fr; }
    .catalogue-identity { flex-direction: column; }
}
.catalogue-listing-photo{display:block;width:100%;max-height:360px;object-fit:contain;border-radius:8px;background:var(--surface-deep);margin-bottom:16px}

html .public-catalogue-body .public-land-card > .workspace-list-row > .catalogue-visible-map{grid-column:1/-1;width:100%;margin:0}

@media(min-width:1000px){.catalogue-shell.layout-cards .public-land-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1500px){.catalogue-shell.layout-cards .public-land-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

html .public-catalogue-body .layout-compact .public-land-card > .workspace-list-row{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr))}
@media(max-width:600px){html .public-catalogue-body .layout-compact .public-land-card > .workspace-list-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media(max-width:480px){.catalogue-topbar{flex-wrap:wrap;gap:12px;padding-block:12px}.catalogue-topbar .language-selector{max-width:100%;min-width:0}}

/* Discovery reuses catalogue cards, workspace rows, forms and sorting. */
.discovery-hero{padding-block:36px;align-items:center}
.discovery-hero h1{max-width:760px;font-size:clamp(2rem,4vw,3.5rem);line-height:1.08;letter-spacing:-.04em}
.discovery-total{display:flex;flex-direction:column;gap:6px;min-width:170px;padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface-deep)}
.discovery-total strong{font-size:3rem;color:var(--accent);line-height:1}
.discovery-sections{margin:0 0 28px;gap:12px;flex-wrap:wrap}
.discovery-network{padding:14px 18px 0;margin:0;font-weight:700;color:var(--accent)}
.discovery-recent{margin-bottom:28px}
.discovery-recent .workspace-list-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr) minmax(0,1fr);gap:16px}
@media(max-width:700px){.discovery-hero{grid-template-columns:1fr;align-items:stretch;padding-block:20px}.discovery-total{min-width:0;flex-direction:row;align-items:center;gap:14px}.discovery-total strong{font-size:2rem}.discovery-total small{margin-left:auto}.discovery-sections .button{flex:1 1 100%;justify-content:flex-start}.discovery-recent .workspace-list-row{grid-template-columns:1fr 1fr}.discovery-recent .workspace-list-row>span:last-child{grid-column:1/-1}}

/* Calm editorial hierarchy, shared by all public service cards. */
.catalogue-shell .public-land-grid{align-items:stretch;gap:20px}
.catalogue-shell .public-land-card{display:flex;flex-direction:column;background:var(--surface-deep);box-shadow:0 3px 12px #00000010}
.catalogue-shell .public-land-card>.catalogue-card-media{order:-1;display:block;width:100%;margin:0;border:0;border-radius:0;aspect-ratio:1/1;overflow:hidden}
.catalogue-shell .public-land-card>img.catalogue-card-media{object-fit:contain;max-height:none;background:var(--surface)}
.catalogue-shell .public-land-card>.land-map-preview img{display:block;width:100%;height:100%;object-fit:fill}
html .public-catalogue-body .public-land-card>.workspace-list-row{gap:12px;padding:18px 18px 12px;background:transparent;display:flex;flex-direction:column;align-items:stretch}
.catalogue-shell .catalogue-list-title{min-width:0}
.catalogue-shell .catalogue-list-title strong{font-size:1rem;line-height:1.4;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:var(--text)}
.catalogue-shell .catalogue-list-title small{display:block;margin-top:6px;color:var(--muted)}
.catalogue-shell .public-land-options{color:var(--muted);font-weight:400;text-transform:none;font-size:.76rem;line-height:1.6;letter-spacing:0}
.catalogue-shell .discovery-network{margin:0;padding:16px 18px 0;font-size:.75rem;font-weight:600;line-height:1.5}
.catalogue-shell .discovery-network a{color:var(--muted);text-decoration:none}
.catalogue-shell .discovery-network a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.catalogue-shell .public-land-content{flex:1;display:flex;flex-direction:column;gap:12px;padding:0 18px 18px;border-top:0}
.catalogue-shell .public-land-offer{font-size:.74rem;line-height:1.5;color:var(--muted)}
.catalogue-shell .public-land-offer strong{font-weight:500;color:var(--muted)}
.catalogue-card-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}
.catalogue-card-price{flex:1 1 120px;min-width:0}
.catalogue-card-price .list-cell{display:block;min-width:0}
.catalogue-card-price strong{font-size:1rem;line-height:1.45;white-space:normal!important;text-overflow:clip!important;color:var(--text)}
.catalogue-card-price small{display:block;color:var(--muted);font-size:.7rem;line-height:1.5;margin-top:4px;white-space:normal!important}
html .public-catalogue-body .public-land-card .button{background:var(--surface);color:var(--text);border:1px solid var(--border);font-size:.74rem;min-height:38px}
html .public-catalogue-body .public-land-card .button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.catalogue-shell .public-land-card .button svg{width:15px;height:15px;color:var(--accent)}
.discovery-total strong{color:var(--text)}

html .public-catalogue-body .catalogue-shell .discovery-network a{color:var(--muted)!important}
html .public-catalogue-body .catalogue-shell .discovery-network a:hover{color:var(--text)!important}
.catalogue-card-price strong{white-space:nowrap!important;font-size:.95rem;color:var(--accent)}

html .public-catalogue-body .catalogue-shell .public-land-card .button.secondary{border-color:color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--text)}
html .public-catalogue-body .catalogue-shell .public-land-card .button.secondary:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface));border-color:var(--accent)}

/* Scan order: type, network, title, location, capacity, optional features, price. */
.catalogue-card-kind{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px 0;color:var(--muted);font-size:.74rem}
.catalogue-card-kind>span{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.catalogue-card-kind svg{width:17px;height:17px;color:var(--accent);opacity:.8}
.catalogue-card-kind .catalogue-rating{margin:0;padding:3px 7px;background:var(--surface);border-radius:6px;font-size:.65rem;line-height:1.3;color:var(--muted)}
.catalogue-shell .discovery-network{padding-top:9px;font-size:.69rem;letter-spacing:.02em}
html .public-catalogue-body .catalogue-shell .catalogue-list-title strong{font-size:1.12rem;line-height:1.3;font-weight:750;letter-spacing:-.015em}
.catalogue-shell .catalogue-list-title small{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:.74rem;font-weight:400}
.catalogue-list-title small svg{width:14px;height:14px;opacity:.7}
.catalogue-card-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:4px 0;font-size:.77rem;color:var(--muted)}
.catalogue-card-metrics>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.catalogue-card-metrics strong{font-size:.82rem;font-weight:650;color:var(--text)}
.catalogue-card-metrics svg{width:15px;height:15px;color:var(--accent);opacity:.65}
html .public-catalogue-body .catalogue-shell .catalogue-card-geography{margin:0;color:var(--muted);font-size:.68rem;line-height:1.5}
.catalogue-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 4px}
.catalogue-card-tags>span{display:inline-block;padding:3px 7px;border:1px solid color-mix(in srgb,var(--border) 65%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface) 60%,transparent);color:var(--muted);font-size:.66rem;font-weight:400;line-height:1.3}
.catalogue-shell .public-land-offer{font-size:.68rem;gap:3px;opacity:.9}
html .public-catalogue-body .catalogue-shell .catalogue-card-price strong{font-size:1.12rem;font-weight:750;letter-spacing:-.025em}
.catalogue-shell:has(.discovery-hero){width:min(1520px,100%);max-width:1520px}
@media(min-width:1280px){.catalogue-shell.layout-cards:has(.discovery-hero) .public-land-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

.catalogue-listing-link { color: inherit; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: .2em; }
.catalogue-detail { max-width: 720px; margin: 32px auto; }
.catalogue-detail h1 { overflow-wrap: anywhere; }
.catalogue-detail .public-land-card > .catalogue-card-media { aspect-ratio: auto; max-height: 420px; }
.catalogue-detail .public-land-card > .land-map-preview { width: min(100%, 420px); align-self: center; aspect-ratio: 1; }
.catalogue-shell.catalogue-home-preview { max-width: none; padding: 0; margin: 64px 0; }
.catalogue-home-preview .catalogue-card-footer { flex-wrap: wrap; }
@media (min-width: 1000px) {
    .catalogue-home-preview .public-land-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.catalogue-home-preview .public-land-card > .land-map-preview { aspect-ratio: 4 / 3; }
.catalogue-home-preview .public-land-card > .workspace-list-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 14px 18px 12px;
}
.catalogue-home-preview .public-land-card .button { display: inline-flex; align-items: center; gap: 6px; }
.catalogue-home-preview .public-land-card { min-width: 0; }
.catalogue-home-preview .lab-section-heading { flex-wrap: wrap; gap: 12px; }
.catalogue-search .discovery-video { margin-block: 4px 16px !important; }
