/* Styles limités aux pages régionales : aucune modification des autres boutons du site. */
.regions-page .landing { padding-top: 24px; }
.regions-page .crumbs { margin-bottom: 16px; }
.regions-index-head .landing-lead { max-width: 88ch; margin-bottom: 12px; }
.regions-directory { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 24px; align-items: start; }
.regions-directory > .landing-section { min-width: 0; }
.regions-directory .region-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.regions-page .region-card { position: relative; min-width: 0; align-items: center; gap: 14px; padding: 14px; }
.regions-page .region-card-icon { width: 54px; height: 54px; flex: none; object-fit: contain; }
.regions-page .region-card .region-number { position: absolute; top: 8px; left: 8px; width: 22px; height: 22px; font-size: 11px; }
.regions-page .region-card .landing-card-text { flex: 1; }
.regions-page .region-card a { min-height: 30px; text-underline-offset: 3px; }
.regions-page .region-card .muted { line-height: 1.6; }
.regions-index-map { grid-column: 2; grid-row: 1; position: sticky; top: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 12px; }
.regions-index-map summary { min-height: 44px; padding: 10px 4px; font-weight: 600; color: var(--primary); cursor: pointer; }
.regions-index-map img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; margin: 8px auto; }
.regions-index-map .small { margin: 10px 0 0; }
.regions-map-legend { margin: 8px 0; font-size: .8rem; line-height: 1.5; color: var(--primary); }
.regions-map-enlarge { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; font-size: .82rem; line-height: 1.4; color: var(--primary); text-align: center; text-underline-offset: 3px; }
.regions-map-enlarge svg { flex: none; }
.regions-map-enlarge:hover { background: var(--muted); }
.regions-map-enlarge:focus-visible { outline: 3px solid var(--accent, #087d79); outline-offset: 3px; }
.regions-map-credit { margin: 10px 0 0; color: var(--muted-foreground); font-size: .7rem; line-height: 1.5; overflow-wrap: anywhere; }
.regions-map-credit a { color: inherit; text-underline-offset: 2px; }
.region-overview { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 12px 24px; padding: 24px; margin: 0 0 18px; border: 1px solid var(--border); border-radius: 18px; background: linear-gradient(110deg,var(--surface),#f0f8f7); }
.region-silhouette { grid-column: 1; grid-row: 1 / 5; width: 120px; height: 120px; object-fit: contain; align-self: start; }
.region-heading, .region-summary, .region-overview .region-collection, .region-overview .region-actions { grid-column: 2; min-width: 0; }
.region-heading .section-kicker { margin: 0 0 6px; }
.region-heading .landing-title { max-width: none; margin: 0; font-size: clamp(1.8rem,3vw,2.5rem); line-height: 1.15; text-wrap: initial; }
.region-title-prefix { display: block; font-size: 1rem; font-weight: 500; letter-spacing: normal; margin-bottom: 6px; }
.region-summary { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); gap: 12px 24px; width: 100%; max-width: 540px; margin: 0; }
.region-summary > div { display: flex; flex-direction: column; }
.region-summary dt { flex: 1; font-size: .78rem; color: var(--muted-foreground); }
.region-summary dd { margin: 0; font-size: 1.45rem; font-weight: 700; color: var(--primary); line-height: 1.4; }
.region-collection { margin: 0 0 12px; font-size: .84rem; color: var(--muted-foreground); }
.region-overview .region-collection { margin: 0; }
.region-collection time { font-weight: 600; color: var(--primary); }
.region-collection small { display: block; margin-top: 3px; font-size: .78rem; }
.region-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; max-width: 640px; gap: 10px; margin: 0; }
.region-actions .btn { display: flex; align-items: center; justify-content: center; text-align: center; width: 100%; min-height: 48px; height: auto; padding: 12px 16px; line-height: 1.45; white-space: normal; text-decoration: none; }
.region-actions .btn:not(.btn-ghost) { background: #087d79; color: #fff; }
.region-actions .btn:not(.btn-ghost):hover { background: #066763; }
.region-introduction { max-width: 96ch; margin: 0 0 18px; color: #48566b; line-height: 1.65; font-size: .94rem; }
.region-no-sources { grid-column: 2; margin: 0; color: var(--muted-foreground); font-size: .84rem; }
.region-actions .btn:disabled { opacity: .65; cursor: not-allowed; }
.regions-page > .landing > .region-actions { margin: 0 auto 24px; }
.region-neighbours { margin: 24px 0; padding: 18px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; }
.region-neighbours h2 { margin: 0 0 12px; font-size: 1.15rem; }
.region-neighbours ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.region-neighbours a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 10px; border: 1px solid var(--border); border-radius: 10px; text-decoration: none; color: var(--primary); }
.region-neighbours a:hover { background: var(--muted); text-decoration: underline; }
.region-neighbours img { width: 32px; height: 32px; object-fit: contain; }
.region-geography-credit { margin: 24px 0 0; font-size: .78rem; color: var(--muted-foreground); line-height: 1.65; }
.regions-page .region-category-grid .landing-card { padding: 12px; }
.regions-page .inst-list { grid-template-columns: minmax(0,1fr); }
.regions-page .inst-group { min-width: 0; }
.regions-page .inst-identity { max-width: 100%; }
.regions-page .inst-identity h3 { overflow-wrap: anywhere; }
.region-neighbours li, .region-neighbours a { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 1000px) {
 .regions-directory { grid-template-columns: minmax(0,1fr) 240px; gap: 18px; }
 .regions-directory .region-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 760px) {
 .regions-page .landing { padding-top: 18px; }
 .regions-directory { display: flex; flex-direction: column; gap: 16px; }
 .regions-directory > * { width: 100%; }
 .regions-index-map { order: -1; position: static; }
 .regions-index-map img { height: 220px; max-height: 240px; width: 100%; }
 .regions-index-map .small { font-size: .78rem; }
 .regions-page .region-card a { min-height: 44px; }
 .region-overview { grid-template-columns: 88px minmax(0,1fr); gap: 12px; padding: 16px; }
 .region-silhouette { grid-row: 1; width: 88px; height: 88px; }
 .region-heading .landing-title { font-size: clamp(1.45rem,5.5vw,1.9rem); overflow-wrap: anywhere; }
 .region-title-prefix { font-size: .85rem; margin-bottom: 4px; line-height: 1.4; }
 .region-summary, .region-overview .region-collection, .region-overview .region-actions { grid-column: 1 / -1; }
 .region-no-sources { grid-column: 1 / -1; }
 .region-summary { gap: 8px 20px; }
 .region-summary dd { font-size: 1.3rem; }
 .region-introduction { font-size: .9rem; }
 .regions-page .inst-children .btn { white-space: normal; height: auto; min-height: 40px; line-height: 1.5; }
 .region-actions { grid-template-columns: minmax(0,1fr); max-width: none; }
 .region-geography-credit { overflow-wrap: anywhere; }
}
@media (forced-colors: active) {
 .region-overview { background: Canvas; }
 .region-actions .btn:not(.btn-ghost) { background: ButtonFace; color: ButtonText; border: 2px solid ButtonText; }
}
@media print {
 .regions-index-map { position: static; }
 .regions-map-enlarge { display: none; }
 .region-actions { display: none; }
}
