/* ONE shared presentation contract for all eight catalog products.
   Change common dimensions here. Product styles own content modules, not chrome. */
html.map-redesign[data-map-product] {
  --catalog-width: 1180px;
  --catalog-gutter: 16px;
  --catalog-reader-width: 780px;
  --catalog-control-height: 44px;
  --catalog-reader-surface: #0b141c;
  --catalog-reading-gutter: clamp(18px, 3vw, 32px);
}

/* Common directory frame: identity/count, search, full alphabet, card list. */
html.map-redesign[data-map-product] .editorial-main {
  width:min(calc(100% - 2 * var(--catalog-gutter)),var(--catalog-width)); margin:0 auto; padding:0 0 32px;
}
html.map-redesign[data-map-product] .editorial-directory.workspace { width:100%; padding:0; margin:0; }
html.map-redesign[data-map-product] .editorial-heading { padding:4px 0 6px; }
html.map-redesign[data-map-product] .catalog-title-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 4px; }
html.map-redesign[data-map-product] .catalog-title-row [data-editorial-count] { flex-shrink:0; }
html.map-redesign[data-map-product] .catalog-title-row h1 { margin:0; }
html.map-redesign[data-map-product] .catalog-title-row [data-editorial-count] { margin:0; font:400 14px/1.45 var(--font-ui); color:var(--catalog-muted); }
html.map-redesign[data-map-product] .brand-stud { color:var(--map-accent); }
html.map-redesign[data-map-product] .brand-rest { color:var(--brand-suffix,#dfd6c7); font-weight:800; }
html.map-redesign[data-map-product] .editorial-reader-secondary { margin:0 20px 20px; }
html.map-redesign[data-map-product] .sheet .catalog-reader-tools--topic-only .reader-navigation-field { flex-basis:100%; }
html.map-redesign[data-map-product] .editorial-heading>p { margin:0 0 8px; font:400 16px/1.5 var(--font-ui); }
html.map-redesign[data-map-product] .editorial-search { margin:0; }
html.map-redesign[data-map-product] .editorial-search .search-row { flex-wrap:nowrap; }
html.map-redesign[data-map-product] .editorial-search input { width:100%; padding-inline:14px; }
html.map-redesign[data-map-product] .editorial-az { position:sticky; top:calc(var(--site-header-h,70px) + var(--disclaimer-h,0px)); margin-top:6px; }
html.map-redesign[data-map-product] .editorial-az button { border:0; background:transparent; cursor:pointer; }
html.map-redesign[data-map-product] .az-btn:disabled { opacity:.3; cursor:default; }
html.map-redesign[data-map-product] .editorial-results { display:none; }
html.map-redesign[data-map-product] .editorial-card .ledger-row { text-decoration:none; height:100%; }
html.map-redesign[data-map-product] .editorial-card .editorial-context { grid-column:1 / -1; color:var(--catalog-ink); font:600 17px/1.6 var(--font-ui); }
html.map-redesign[data-map-product] .editorial-card .row-meta { font:500 14px/1.45 var(--font-ui); }
html.map-redesign[data-map-product] .map-card .row-fact { margin:0; }

/* One reader frame and control anatomy, regardless of content/loading adapter. */
html.map-redesign[data-map-product] :is(.sheet,dialog.editorial-sheet) {
  position:fixed; inset:var(--catalog-header-h,var(--site-header-h,70px)) 0 0 auto;
  width:min(var(--catalog-reader-width),100%); max-width:100%; height:auto;
  max-height:calc(100dvh - var(--catalog-header-h,var(--site-header-h,70px)));
  margin:0; padding:0; box-sizing:border-box; overflow:hidden;
  background:var(--catalog-reader-surface); color:var(--catalog-ink);
  border:1px solid var(--catalog-line); border-radius:18px 0 0 0;
}
html.map-redesign[data-map-product] dialog.editorial-sheet { transform:none; visibility:visible; }
html.map-redesign[data-map-product] dialog.editorial-sheet:not([open]) { display:none; }
html.map-redesign[data-map-product] dialog.editorial-sheet[open] { display:flex; flex-direction:column; }
html.map-redesign[data-map-product] .editorial-sheet::backdrop { background:#0008; }
html.map-redesign[data-map-product] .sheet .sheet-bar {
  display:flex; flex-direction:column; flex:none; gap:10px; padding:10px 12px;
  background:var(--catalog-reader-surface); border-bottom:1px solid var(--catalog-line);
}
html.map-redesign[data-map-product] .sheet .sheet-bar-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; min-width:0; }
html.map-redesign[data-map-product] .sheet .sheet-bar-text { flex:1; min-width:0; }
html.map-redesign[data-map-product] .sheet .sheet-title {
  margin:0; display:block; font:700 18px/1.3 var(--font-display); color:var(--catalog-ink);
  letter-spacing:-.015em; white-space:normal; overflow:visible; overflow-wrap:anywhere;
}
html.map-redesign[data-map-product] .sheet .sheet-bar-actions { display:flex; flex:none; gap:6px; align-items:flex-start; }
html.map-redesign[data-map-product] .sheet :is(.sheet-close,.sheet-share) {
  position:static; display:grid; place-items:center; flex:none; min-height:var(--catalog-control-height);
  width:auto; min-width:44px; margin:0; padding:8px 12px; border:1px solid var(--catalog-line);
  border-radius:12px; color:var(--catalog-ink); background:transparent; font:650 16px/1.2 var(--font-ui);
}
html.map-redesign[data-map-product] .sheet .sheet-close { order:2; width:44px; padding:0; font-size:22px; }
html.map-redesign[data-map-product] .sheet .sheet-share { order:1; border-color:color-mix(in srgb,var(--map-accent) 50%,transparent); background:rgb(var(--map-accent-rgb) / .08); }
html.map-redesign[data-map-product] .sheet .catalog-reader-tools { display:flex; flex-wrap:nowrap; gap:12px; width:100%; min-width:0; }
html.map-redesign[data-map-product] .sheet .reader-navigation-field { display:grid; gap:6px; flex:1 1 0; min-width:0; font:650 14px/1.3 var(--font-ui); color:var(--catalog-muted); }
html.map-redesign[data-map-product] .sheet .reader-navigation-field[hidden] { display:none!important; }
html.map-redesign[data-map-product] .sheet .reader-navigation-field select {
  appearance:none; -webkit-appearance:none; box-sizing:border-box; width:100%; min-width:0;
  min-height:var(--catalog-control-height); max-width:100%; margin:0; padding:10px 32px 10px 12px;
  border:1px solid var(--catalog-line); border-radius:10px; color:var(--catalog-ink);
  background-color:#16222c; background-image:linear-gradient(45deg,transparent 50%,#c2ccd5 50%),linear-gradient(135deg,#c2ccd5 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%; background-size:5px 5px; background-repeat:no-repeat;
  font:400 16px/1.3 var(--font-ui); text-overflow:ellipsis;
}
html.map-redesign[data-map-product] .sheet .sheet-scroll { flex:1 1 0; min-height:0; height:auto; overflow:auto; overscroll-behavior:contain; }
html.map-redesign[data-map-product] .sheet :is(.sheet-intro,.sheet-body) { padding-inline:var(--catalog-reading-gutter); }
html.map-redesign[data-map-product] .sheet.catalog-reader-flow .sheet-scroll { flex:1 1 auto; }
html.map-redesign[data-map-product] .sheet.catalog-reader-flow .sheet-bar { position:static; }
html.map-redesign[data-map-product] .sheet [data-editorial-full-page] { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
html.map-redesign[data-map-product] .editorial-sheet [data-editorial-reader] { width:auto; max-width:none; margin:0; padding:20px var(--catalog-reading-gutter); overflow-wrap:anywhere; }
html.map-redesign[data-map-product] .editorial-sheet h1 { display:block; margin:0 0 20px; max-width:100%; font:780 34px/1.2 var(--font-display); letter-spacing:-.025em; overflow-wrap:anywhere; white-space:normal; }
@media(max-width:680px) {
  html.map-redesign[data-map-product] :is(.sheet,dialog.editorial-sheet) { left:0; width:100%; border-radius:18px 18px 0 0; }
  html.map-redesign[data-map-product] .editorial-sheet [data-editorial-reader] { padding:18px var(--catalog-reading-gutter); }
  html.map-redesign[data-map-product] .editorial-sheet h1 { font-size:30px; }
}
html.map-redesign[data-map-product] {
  --catalog-muted: #c2ccd5;
}
html.map-redesign[data-theme="paper"][data-map-product] {
  --catalog-muted: #455c6c;
}
html.map-redesign[data-map-product] h1.brand {
  font-family:var(--font-display); font-weight:800; font-size: clamp(1.5rem, 2.5vw, 1.85rem); line-height: 1.2; letter-spacing: -.025em;
}
html.map-redesign[data-map-product] .directory-count {
  font-size: .875rem; line-height: 1.45;
}
html.map-redesign[data-map-product] .map-card .ledger-row {
  padding: 20px 20px 0; gap: 14px 18px; grid-template-columns: minmax(0, 1fr) 112px;
}
html.map-redesign[data-map-product] .map-card--text .ledger-row {
  grid-template-columns: minmax(0, 1fr);
}
html.map-redesign[data-map-product] .map-card--text .map-card-side,
html.map-redesign[data-map-product] .map-card-open { display: none; }
html.map-redesign[data-map-product] .map-card .row-main { gap: 12px; }
/* Reserve the image column for the title row only. Complete fronts use the
   available card width, including below a short thumbnail. */
html.map-redesign[data-map-product] .map-card .ledger-row { grid-template-rows:none; grid-auto-rows:auto; }
html.map-redesign[data-map-product] .map-card :is(.row-main,.map-card-side) { grid-row:1; }
html.map-redesign[data-map-product] .map-card .row-front { grid-column:1 / -1; grid-row:2; min-width:0; display:flex; flex-direction:column; gap:12px; }
html.map-redesign[data-map-product] .map-card .ledger-row > :is(.row-meta,.row-fact,.row-footer) { grid-column:1 / -1; grid-row:auto; }
html.map-redesign[data-map-product] .map-card .row-name {
  font-size: clamp(1.5rem, 2vw, 1.625rem); font-weight: 780; line-height: 1.22; letter-spacing: -.02em;
}
html.map-redesign[data-map-product] .map-card .row-blurb {
  display: block; -webkit-line-clamp: unset; overflow: visible; max-height: none;
  font-size: 1.0625rem; line-height: 1.6; color: var(--catalog-ink);
}
html.map-redesign[data-map-product] .map-card :is(.type-pill,.row-route,.row-goal,.row-signal),
html.map-redesign[data-map-product] :is(.row-open-label,.row-fact,.letter-heading-label) {
  font-size: .875rem; line-height: 1.45;
}
html.map-redesign[data-map-product] .map-card .type-pill {
  font-family: var(--font-ui); text-transform: none; letter-spacing: 0; padding: 4px 8px;
}
html.map-redesign[data-map-product] .row-footer { padding-block: 13px; gap: 8px 16px; }
html.map-redesign[data-map-product] .row-open-label { color: var(--catalog-ink); font-weight: 700; }
html.map-redesign[data-map-product] .map-card-side { align-self: start; min-height: 0; }
html.map-redesign[data-map-product] .map-card-art { position: relative; inset: auto; width: 100%; border-radius: 12px; }
html.map-redesign[data-map-product] .map-card-art img { height: 100px; mask-image: none; border-radius: 12px; }
/* Photo thumbnails support the title; they must not make short titles reserve
   a large empty header. Keep Research's informative structures at their size. */
html.map-redesign[data-map-product]:not([data-map-product="research"]) .map-card:not(.map-card--text) .ledger-row { grid-template-columns:minmax(0,1fr) 76px; }
html.map-redesign[data-map-product]:not([data-map-product="research"]) .map-card-art img { height:64px; }
html.map-redesign[data-map-product] .map-art-caption {
  position: static; padding: 6px 0 0; font-size: .875rem; line-height: 1.4; background: none; color: var(--catalog-muted); text-align: left;
}
@media (max-width: 639px) {
  html.map-redesign[data-map-product] .map-card .ledger-row { padding: 18px 16px 0; grid-template-columns: minmax(0, 1fr) 76px; gap: 12px; }
  html.map-redesign[data-map-product] .map-card--text .ledger-row { grid-template-columns: minmax(0, 1fr); }
html.map-redesign[data-map-product] .map-card-art img { height: 76px; }
}
@media print {
  body.editorial-printing > :not(#editorial-sheet) { display:none!important; }
  html.map-redesign[data-map-product] body.editorial-printing #editorial-sheet { position:static; display:block; width:100%; height:auto; max-height:none; border:0; overflow:visible; color:#111; background:#fff; }
  body.editorial-printing #editorial-sheet .sheet-scroll { height:auto; max-height:none; overflow:visible; }
  body.editorial-printing #editorial-sheet :is(.sheet-bar,.editorial-feedback,.editorial-reader-secondary) { display:none!important; }
  body.editorial-printing #editorial-sheet * { color:#111!important; background:#fff!important; }
}
