/* Minimal regional infographics; scoped to the Devices route. */
.regional-directory { scroll-margin-top: 85px; }
.regional-directory h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); margin-bottom: 24px; }
.regional-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.regional-column { min-width: 0; }
.regional-group { box-sizing: border-box; padding: 16px 17px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.regional-group + .regional-group { margin-top: 16px; }
.regional-directory h3 { font-size: .91rem; line-height: 1.4; color: var(--blue); letter-spacing: 0; margin: 0 0 13px; }
.regional-group ul { list-style: none; padding: 0; margin: 0; }
.regional-group li { margin: 0; padding: 0; }
.regional-entry { display: grid; grid-template-columns: minmax(0, 1fr) 30px; gap: 8px; align-items: center; padding: 5px 0 8px; }
.regional-link-button { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; box-sizing: border-box; border: 1px solid var(--line); border-radius: 8px; color: var(--blue); background: var(--paper); text-decoration: none; font-size: .88rem; line-height: 1; }
.regional-link-button:hover { border-color: var(--blue); background: #f7f2ef; }
.regional-link-button svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.regional-name { display: block; color: var(--navy); font-size: .85rem; font-weight: 750; line-height: 1.35; }
.regional-detail { display: block; color: var(--muted); font-size: .71rem; line-height: 1.45; margin-top: 3px; }

.regional-directory a:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 6px; }
.regional-note { margin: 22px 0 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.regional-note + .regional-note { margin-top: 8px; }
.regional-note a, .regional-sources a { color: var(--blue); text-underline-offset: 3px; }
.regional-sources { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: .69rem; }
@media (max-width: 760px) { .regional-grid { grid-template-columns: 1fr; gap: 14px; } .regional-group { padding: 14px 15px; } .regional-name { font-size: .94rem; } .regional-detail { font-size: .79rem; } .regional-entry { padding: 6px 0 10px; } }
