/* Scope the typography to city profiles. */
/* Directory cards: crest, title, copy and facts occupy predictable rows. */
.rn-journal .city-grid {align-items:stretch}
.rn-journal .city-grid .city-card > a {box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 52px;grid-template-rows:56px auto auto auto auto;gap:12px 16px;align-content:start;height:100%;padding:22px}
.rn-journal .city-grid .city-card-coat {float:none!important;grid-column:2;grid-row:1;align-self:start;justify-self:end;width:52px!important;height:56px!important;margin:0!important;padding:0!important;background:transparent!important;border-radius:0!important}
.rn-journal .city-grid .city-card-coat img {display:block;width:100%!important;height:56px!important;object-fit:contain}
.rn-journal .city-grid .city-region {grid-column:1;grid-row:1;align-self:start;min-width:0;margin:0;font-size:11px;line-height:1.5;overflow-wrap:normal}
.rn-journal .city-grid .city-card h3 {grid-column:1/-1;grid-row:2;min-width:0;min-height:2.36em;margin:0;font-size:clamp(20px,1.6vw,26px);line-height:1.18;letter-spacing:-.02em;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:manual}
.rn-journal .city-grid .city-mini-brief {grid-column:1/-1;grid-row:3;clear:none!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.65em;max-height:4.65em;margin:0!important;font-size:14px!important;line-height:1.55!important}
.rn-journal .city-grid .city-population {grid-column:1/-1;grid-row:4;margin:0;font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums}
.rn-journal .city-grid .city-population span {margin-top:3px;font-size:11px;line-height:1.5}
.rn-journal .city-grid .city-card-statuses {grid-column:1/-1;grid-row:5;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:54px;margin:0}
/* Shared directory controls: research and technology catalogues. */
.rn-journal .directory-controls {display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:16px;align-items:end;width:100%;max-width:none;margin:24px 0 28px}
.rn-journal .directory-controls > label,
.rn-journal .directory-controls > label:has(select) {display:flex;flex-direction:column;gap:8px;min-width:0;max-width:none;margin:0;font-size:13px;font-weight:500;line-height:20px;color:var(--muted)}
.rn-journal .directory-controls input,
.rn-journal .directory-controls select {box-sizing:border-box;display:block;width:100%;height:52px;min-height:52px;margin:0;padding:13px 16px;border:1px solid var(--line,#a5aab4);border-radius:8px;background-color:var(--paper,#fff);color:var(--ink,#081329);font-family:inherit;font-size:16px;line-height:24px;box-shadow:none}
.rn-journal .directory-controls select {-webkit-appearance:none;appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 7.5 5 5 5-5' stroke='%23798394' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px 20px}
.rn-journal .directory-controls input::placeholder {color:var(--muted,#798394);opacity:.8}
.rn-journal .directory-controls input:focus-visible,
.rn-journal .directory-controls select:focus-visible {outline:2px solid var(--action,#315adc);outline-offset:3px}
.rn-journal .directory-controls.tech-controls {grid-template-columns:repeat(3,minmax(0,1fr))}
.rn-journal .directory-controls.tech-controls > label:first-child {grid-column:1/-1}
@media(max-width:640px) {
 .rn-journal .directory-controls,
 .rn-journal .directory-controls.tech-controls {grid-template-columns:minmax(0,1fr);gap:16px;margin:20px 0 24px}
}
/* Normalize Safari's native select and align every directory control. */
.rn-journal form.city-search {display:block;width:100%;max-width:none;margin:24px 0 32px;padding:0}
.rn-journal .city-search .city-search-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 120px;align-items:end;gap:16px;width:100%}
.rn-journal .city-search .city-search-fields > label {display:flex;flex-direction:column;gap:8px;min-width:0;max-width:none;margin:0;color:var(--muted);font-size:13px;line-height:20px;font-weight:500}
.rn-journal .city-search input,
.rn-journal .city-search select,
.rn-journal .city-search .city-search-fields > button {box-sizing:border-box;display:block;width:100%;height:52px;min-height:52px;max-height:none;margin:0;border-radius:8px;font-family:inherit;font-size:16px;line-height:24px}
.rn-journal .city-search input,
.rn-journal .city-search select {padding:13px 16px;border:1px solid var(--line,#a5aab4);background-color:var(--paper,#fff);color:var(--ink,#081329);box-shadow:none}
.rn-journal .city-search select {-webkit-appearance:none;appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 7.5 5 5 5-5' stroke='%23798394' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px 20px}
.rn-journal .city-search input::placeholder {color:var(--muted,#798394);opacity:.8}
.rn-journal .city-search .city-search-fields > button {padding:13px 20px;border:1px solid var(--ink,#081329);background:var(--ink,#081329);color:var(--paper,#fff);font-weight:700;text-align:center;cursor:pointer;white-space:nowrap}
.rn-journal .city-search .city-search-fields > button:hover {background:var(--action,#315adc);border-color:var(--action,#315adc);color:#fff}
.rn-journal .city-search input:focus-visible,
.rn-journal .city-search select:focus-visible,
.rn-journal .city-search button:focus-visible {outline:2px solid var(--action,#315adc);outline-offset:3px}
@media(max-width:640px) {
 .rn-journal .city-search .city-search-fields {grid-template-columns:minmax(0,1fr);gap:16px}
 .rn-journal form.city-search {margin:20px 0 28px}
}
.rn-journal .city-profile-head {padding-bottom:8px}
.rn-journal .city-profile-identity > div:not(.city-profile-coat) {min-width:0!important}
.rn-journal .city-summary {grid-template-columns:minmax(0,1fr);gap:7px;padding:18px 20px;align-items:start}
.rn-journal .city-summary > * {min-width:0;margin:0}
.rn-journal .city-summary > span:first-child {font-size:24px;line-height:1.3;font-variant-numeric:tabular-nums}
.rn-journal .city-summary > span:nth-child(2),
.rn-journal .city-summary > a {font-size:13px;line-height:1.5}
.rn-journal .city-about .city-facts-source {font-size:12px!important;line-height:1.6!important;margin:16px 0 10px}
.rn-journal .city-about .city-symbol-source {font-size:12px!important;line-height:1.6;margin:10px 0 0!important}
.rn-journal .city-symbol-source summary {cursor:pointer}
.rn-journal .city-about .city-symbol-source p {font-size:13px!important;line-height:1.6!important;margin:10px 0 0;max-width:70ch;overflow-wrap:anywhere}
@media(max-width:760px) {
 .rn-journal .city-profile-identity {display:grid!important;grid-template-columns:minmax(0,1fr) 64px;gap:12px 16px!important;align-items:center!important}
 .rn-journal .city-profile-identity > div:not(.city-profile-coat) {display:contents!important}
 .rn-journal .city-profile-coat {grid-column:2;grid-row:1;width:64px!important;height:76px!important;padding:7px!important;border-radius:9px!important;margin:0!important;align-self:center}
 .rn-journal .city-profile-coat img {height:60px!important;width:100%!important;object-fit:contain}
 .rn-journal .city-profile-identity .eyebrow {grid-column:1;grid-row:1;align-self:center;font-size:11px;line-height:1.5;letter-spacing:.07em;margin:0;max-width:100%;overflow-wrap:normal}
 .rn-journal .city-profile-head h1 {grid-column:1/-1;margin:4px 0 6px;font-size:clamp(28px,7.8vw,36px);line-height:1.12;letter-spacing:0;word-break:normal;overflow-wrap:normal;hyphens:manual;max-width:100%}
 .rn-journal .city-summary {grid-column:1/-1;width:100%;display:grid!important;grid-template-columns:minmax(0,1fr)!important;padding:17px 18px;gap:6px}
 .rn-journal .city-summary > span:first-child {font-size:23px}
 .rn-journal .city-summary > a {font-size:13px;overflow-wrap:normal}
 .rn-journal .city-about.prose {margin:20px 0 24px!important;max-width:100%!important}
 .rn-journal .city-about.prose > p:not(.city-facts-source) {font-size:17px;line-height:1.65;margin:0 0 16px}
 .rn-journal .city-anchors {font-size:14px;padding:14px 16px;gap:12px 22px;margin-bottom:26px}
}

/* Population-sort field, after the shared form rules. */
.rn-journal .city-search .city-search-fields {grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(230px,1fr) 112px}
@media(max-width:1100px) {
 .rn-journal .city-search .city-search-fields {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px) {
 .rn-journal .city-search .city-search-fields {grid-template-columns:minmax(0,1fr)}
}
