/* Geographic navigation: Europe → browsing region → destination guide. */
.atlas-section { padding-block: 2.5rem; scroll-margin-top: 1.5rem; }
.atlas-heading { max-width: 44rem; margin-bottom: 1.6rem; }
.atlas-heading h2 { margin-block: .6rem 1rem; }
.atlas-layout { display: grid; gap: 1.6rem; align-items: start; }
.atlas-map { min-width: 0; margin: 0; }
.atlas-map-svg { display: block; width: 100%; height: auto; border: 1px solid #bdd0c9; background: #dce9e8; }
.atlas-leader { fill: none; stroke: #52776d; stroke-width: 1.8; pointer-events: none; }
.atlas-anchor { fill: #244e55; pointer-events: none; }
.atlas-pin { cursor: pointer; }
.atlas-pin-hit { fill: #f9f6ed; fill-opacity: .88; stroke: #a0b6ad; stroke-width: 1; }
.atlas-pin-disc { fill: #285b58; stroke: #285b58; stroke-width: 2.5; }
.atlas-pin text { font: 600 34px Arial, sans-serif; fill: #fffdf5; pointer-events: none; }
.atlas-pin-planned .atlas-pin-disc { fill: #f9f6ed; stroke: #678a7c; }
.atlas-pin-planned text { fill: #315b50; }
.atlas-pin:hover .atlas-pin-hit, .atlas-pin:focus-visible .atlas-pin-hit { fill: #e8d5a8; stroke: #173f43; stroke-width: 4; }
.atlas-pin:focus-visible { outline: none; }
.atlas-map figcaption { margin-top: .8rem; font-size: .9rem; line-height: 1.65; color: #52696b; }
.atlas-map-source { margin-top: .5rem; font-size: .9rem; }
.atlas-map-source summary { min-height: 44px; padding-block: .65rem; cursor: pointer; }
.atlas-map-source p { padding: .8rem; background: #ecebdd; }
.atlas-map-source a { display: inline-flex; align-items: center; min-height: 44px; }
.atlas-region-list { list-style: none; padding: 0; margin: 0; display: grid; }
.atlas-region-list li { margin: 0; border-top: 1px solid var(--line); }
.atlas-region-list a { display: grid; grid-template-columns: 2.5rem minmax(0,1fr) 1rem; align-items: start; gap: .8rem; padding: 1.1rem .15rem; text-decoration: none; color: var(--ink); }
.atlas-region-list a:hover strong { text-decoration: underline; text-underline-offset: .2em; }
.atlas-number { display: grid; place-items: center; flex-shrink: 0; width: 2.5rem; height: 2.5rem; background: #285b58; color: #fffdf5; border-radius: 50%; font: 600 1rem var(--sans); }
.atlas-region-list strong { display: block; font: 1.5rem/1.25 var(--serif); margin-bottom: .5rem; }
.atlas-region-list strong + span { display: block; color: #52696b; font-size: 1rem; line-height: 1.6; }
.atlas-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-block: 1rem; font-size: .9rem; }
.atlas-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }
.atlas-region-hero { padding-block: 1rem 1.5rem; max-width: 49rem; }
.atlas-region-hero .eyebrow { margin-bottom: .8rem; }
.atlas-region-hero h1 { margin-bottom: 1.2rem; hyphens: auto; }
.atlas-region-hero .lede { font-size: 1.15rem; }
.atlas-places { display: grid; gap: 1rem; }
.atlas-intro { margin-bottom: 1.2rem; }
.atlas-place { scroll-margin-top: 1rem; padding: 1.25rem; background: #eee9dc; border: 1px solid #dedccc; }
.atlas-place-heading { display: flex; flex-wrap: wrap; align-items: start; gap: .8rem; }
/* Let enlarged headings use a full line when the map key leaves too little room. */
.atlas-place-heading h2 { flex: 1 1 10rem; min-width: 0; }
.atlas-place h2 { font-size: 1.55rem; line-height: 1.25; margin: .2rem 0 .6rem; }
.atlas-place h3 { font-size: 1.4rem; }
.atlas-place .atlas-number { background: transparent; color: #315b50; border: 1px solid #8da69a; }
.atlas-place-ready { background: #e5ece4; border-color: #afc4b6; }
.atlas-place-ready .atlas-number { background: #285b58; color: #fffdf5; }
.atlas-place p { margin-top: .35rem; font-size: 1rem; }
.atlas-place .cg-link { margin-top: .45rem; }
.atlas-status { color: #617567; font-size: .9rem !important; }
.atlas-pocket { margin-top: 1.5rem; padding: 1.4rem; border: 1px solid #c7d2c5; }
.atlas-pocket h2 { font-size: 1.7rem; margin-bottom: .8rem; }
.atlas-pocket ul { padding-left: 1.2rem; }
.atlas-pocket li { padding-block: .35rem; }
.atlas-return { padding-block: 2rem 3rem; }
.atlas-return a { display: inline-flex; align-items: center; min-height: 44px; }
.atlas-ready-heading { padding-block: 2rem 1rem; }
.concept-page .concept-hero { grid-template-columns: 1fr; }
.concept-page .concept-hero-copy { max-width: 49rem; }
.concept-page .concept-hero-copy > p { max-width: 43rem; }
.concept-page .atlas-section { border-top: 1px solid var(--line); }
.atlas-region-list a:focus-visible, .atlas-place a:focus-visible { outline: 3px solid #876b32; outline-offset: 3px; }
@media (min-width: 760px) {
  .atlas-layout { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 2rem; }
  .atlas-map { position: sticky; top: 1rem; }
  .atlas-region-list strong { font-size: 1.7rem; }
  .atlas-section { padding-block: 3.5rem; }
  .atlas-region-hero { padding-block: 1.5rem 2rem; }
}
@media print {
  .atlas-map { position: static; }
  .atlas-place, .atlas-region-list li { break-inside: avoid; }
}

/* Keep long Norwegian labels inside overview cards at larger text sizes. */
.cruising-index-page { overflow-wrap: anywhere; }
.cruising-index-page .cg-atlas-copy { min-width: 0; }

/* Long region names need the same enlarged-text wrapping in every language. */
.atlas-region-page { overflow-wrap: anywhere; }
