.bih-map-page {
  background: #f4f8f1;
  color: #1d3c30;
}

.bih-map-main {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 72px;
}

.bih-map-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 0.68fr);
  align-items: center;
  gap: 28px;
  overflow: hidden;
  min-height: 380px;
  padding: clamp(26px, 5vw, 64px);
  border: 1px solid #d4e7d6;
  border-radius: 30px;
  background: linear-gradient(125deg, #e5f5df 0%, #fbf4dc 62%, #ffe8c9 100%);
  box-shadow: 0 18px 45px #244e3514;
}

.bih-map-hero__copy { position: relative; z-index: 1; max-width: 620px; }
.bih-map-eyebrow {
  margin: 0 0 10px;
  color: #16825d;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  line-height: 1.3;
  text-transform: uppercase;
}

.bih-map-hero h1,
.bih-map-section-heading h2,
.bih-map-footer-cta h2,
.bih-map-detail h1 {
  margin: 0;
  color: #173e32;
  font-family: inherit;
  font-size: clamp(2rem, 5vw, 3.65rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.bih-map-hero__copy > p:not(.bih-map-eyebrow) {
  max-width: 540px;
  margin: 18px 0 24px;
  color: #486456;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.65;
}

.bih-map-hero__art {
  position: relative;
  justify-self: center;
  width: min(100%, 440px);
  height: 320px;
}

.bih-map-hero__art img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bih-map-spark { position: absolute; z-index: 1; color: #e89a30; font-size: 34px; }
.bih-map-spark--one { top: 8px; left: 18px; }
.bih-map-spark--two { right: -2px; bottom: 42px; color: #26a77b; font-size: 24px; }

.bih-map-name-story { margin: 32px 0 0; padding: clamp(23px, 4vw, 38px); border: 1px solid #d5e5d5; border-radius: 26px; background: linear-gradient(125deg, #fffefa 0%, #eaf5ed 100%); box-shadow: 0 12px 30px #244e350d; }
.bih-map-name-story__heading { max-width: 760px; margin: 0 auto 22px; text-align: center; }
.bih-map-name-story h2 { margin: 0; color: #173e32; font-size: clamp(1.55rem, 3.4vw, 2.25rem); font-weight: 900; letter-spacing: -.035em; line-height: 1.15; }
.bih-map-name-story__heading > p:last-child { margin: 10px 0 0; color: #5a6f62; line-height: 1.55; }
.bih-map-name-story__parts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bih-map-name-story__parts article { display: flex; align-items: flex-start; gap: 14px; padding: 19px; border: 1px solid #d9e8db; border-radius: 19px; background: #fffefa; }
.bih-map-name-story__parts article > span { flex: 0 0 36px; font-size: 28px; line-height: 1.2; }
.bih-map-name-story__parts h3 { margin: 0 0 5px; color: #176044; font-size: 1.16rem; }
.bih-map-name-story__parts p { margin: 0; color: #536b5b; line-height: 1.55; }
.bih-map-name-story__wrapup { margin: 18px 0 0; color: #244337; font-weight: 750; line-height: 1.55; text-align: center; }
.bih-map-name-story__source { display: block; width: fit-content; margin: 13px auto 0; color: #176044; font-size: .87rem; text-align: center; }

.bih-map-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 48px;
  padding: 12px 19px;
  border: 0;
  border-radius: 15px;
  background: #16825d;
  box-shadow: 0 6px 0 #0e6144;
  color: #fff;
  font-weight: 850;
  line-height: 1.2;
  text-decoration: none;
  transition: transform 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.bih-map-button:hover { background: #0f704f; color: #fff; transform: translateY(-2px); box-shadow: 0 8px 0 #0e6144; }
.bih-map-button:focus-visible,
.bih-map-spot:focus-visible,
.bih-map-place-card a:focus-visible { outline: 3px solid #f0a736; outline-offset: 3px; }
.bih-map-button--hero { background: #ed9f35; box-shadow: 0 6px 0 #b97017; color: #2e3b2e; }
.bih-map-button--hero:hover { background: #f2aa48; box-shadow: 0 8px 0 #b97017; color: #2e3b2e; }

.bih-map-game,
.bih-map-places { margin-top: clamp(52px, 8vw, 88px); }
.bih-map-section-heading { max-width: 680px; margin: 0 auto 26px; text-align: center; }
.bih-map-section-heading h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); }
.bih-map-section-heading > p:not(.bih-map-eyebrow) { margin: 10px 0 0; color: #5a6f62; font-size: 1.05rem; line-height: 1.55; }

.bih-map-game__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(280px, 0.68fr);
  align-items: center;
  gap: clamp(18px, 3vw, 36px);
  padding: clamp(16px, 3vw, 30px);
  border: 1px solid #d8e6d6;
  border-radius: 28px;
  background: #fffefa;
  box-shadow: 0 16px 42px #244e3512;
}

.bih-map-board-wrap { min-width: 0; overflow: auto; overscroll-behavior: contain; }
.bih-map-board {
  position: relative;
  width: min(100%, 560px);
  aspect-ratio: var(--map-ratio);
  margin: 0 auto;
  border: 5px solid #fff;
  border-radius: 22px;
  background: #dcefe0;
  box-shadow: 0 10px 28px #183f3030;
  isolation: isolate;
}

.bih-map-board > img { display: block; width: 100%; height: 100%; border-radius: 17px; object-fit: fill; }
.bih-map-spot {
  position: absolute;
  z-index: 2;
  display: grid;
  width: clamp(24px, 3.2vw, 32px);
  height: clamp(24px, 3.2vw, 32px);
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #ed9f35;
  box-shadow: 0 3px 8px #183b2d80;
  color: #fff;
  text-decoration: none;
  transform: translate(-50%, -50%);
  transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.bih-map-spot span { font-size: 12px; line-height: 1; }
.bih-map-spot:hover { z-index: 3; transform: translate(-50%, -50%) scale(1.18); }
.bih-map-spot.is-target { z-index: 4; width: 42px; height: 42px; border-width: 3px; background: #ffcb45; box-shadow: 0 0 0 7px #fff9, 0 0 0 12px #f6b43555, 0 6px 14px #183b2d7a; color: #174d38; animation: map-pulse 1.25s ease-in-out infinite; }
.bih-map-spot.is-found { border-color: #fff; background: #16825d; box-shadow: 0 3px 8px #183b2d72; }
.bih-map-spot.is-wrong { animation: map-shake 280ms ease; }

@keyframes map-pulse { 50% { box-shadow: 0 0 0 10px #fff8, 0 0 0 17px #f6b43525, 0 6px 14px #183b2d7a; } }
@keyframes map-pulse-mobile { 50% { box-shadow: 0 0 0 6px #fff8, 0 0 0 11px #f6b43525, 0 4px 10px #183b2d7a; } }
@keyframes map-shake { 25% { translate: -4px 0; } 75% { translate: 4px 0; } }

.bih-map-card {
  position: relative;
  min-height: 300px;
  padding: 27px 24px 22px;
  overflow: hidden;
  border: 2px solid #f2d68b;
  border-radius: 24px;
  background: linear-gradient(160deg, #fff7d8 0%, #fffdf4 72%);
  box-shadow: 0 9px 24px #58431712;
}

.bih-map-card__icon { display: grid; width: 42px; height: 42px; place-items: center; margin-bottom: 13px; font-size: 35px; line-height: 1; }
.bih-map-card__eyebrow { margin: 0 0 8px; color: #ae6b17; font-size: .75rem; font-weight: 900; letter-spacing: .14em; }
.bih-map-card h3 { margin: 0; color: #243f33; font-size: clamp(1.25rem, 2.2vw, 1.75rem); font-weight: 850; line-height: 1.25; }
.bih-map-card__message { min-height: 48px; margin: 12px 0 20px; color: #526757; line-height: 1.5; }
.bih-map-progress { margin-top: 18px; }
.bih-map-progress__track { height: 12px; overflow: hidden; border-radius: 10px; background: #e1e9d9; }
.bih-map-progress__track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #31a879, #e8b432); transition: width 260ms ease; }
.bih-map-progress p { margin: 7px 0 0; color: #627364; font-size: .88rem; }
.bih-map-progress strong { color: #1c7655; }
.bih-map-reward { display: flex; gap: 12px; align-items: flex-start; margin: 16px 0; padding: 13px; border: 1px solid #cae9d2; border-radius: 15px; background: #eff9ef; }
.bih-map-reward[hidden] { display: none; }
.bih-map-reward > span { font-size: 25px; }
.bih-map-reward > img { flex: 0 0 105px; width: 105px; height: 78px; object-fit: contain; }
.bih-map-reward strong { color: #176044; }
.bih-map-reward p { margin: 5px 0 0; color: #4b6556; font-size: .92rem; line-height: 1.45; }
.bih-map-button--next { width: 100%; cursor: pointer; }
.bih-map-button--next[hidden], .bih-map-reset[hidden] { display: none; }
.bih-map-reset { display: block; margin: 12px auto 0; padding: 5px; border: 0; background: transparent; color: #536b5b; cursor: pointer; font: inherit; font-size: .9rem; text-decoration: underline; }
.bih-map-card__note { margin: 18px 0 0; color: #7b877b; font-size: .82rem; }

.bih-map-place-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.bih-map-place-card { position: relative; display: flex; align-items: flex-start; gap: 13px; min-height: 164px; padding: 16px; border: 1px solid #d8e6d6; border-radius: 19px; background: #fffefa; box-shadow: 0 7px 20px #244e350d; transition: transform 160ms ease, box-shadow 160ms ease; }
.bih-map-place-card:hover { transform: translateY(-3px); box-shadow: 0 12px 25px #244e3518; }
.bih-map-place-card__pin { position: absolute; top: 13px; right: 14px; font-size: 18px; }
.bih-map-place-card__art { flex: 0 0 82px; width: 82px; height: 82px; margin-top: 3px; border-radius: 14px; background: #f0f6e9; object-fit: contain; }
.bih-map-place-card__copy { flex: 1; min-width: 0; }
.bih-map-place-card__copy > p:first-child { margin: 0 25px 7px 0; color: #16825d; font-size: .68rem; font-weight: 850; letter-spacing: .07em; line-height: 1.35; text-transform: uppercase; }
.bih-map-place-card h3 { margin: 0; font-size: 1.08rem; font-weight: 850; line-height: 1.25; }
.bih-map-place-card h3 a { color: #173e32; text-decoration: none; }
.bih-map-place-card h3 a:hover { color: #16825d; text-decoration: underline; }
.bih-map-place-card__copy > span { display: block; margin-top: 6px; color: #66776a; font-size: .86rem; line-height: 1.35; }
.bih-map-place-card__fact { margin: 8px 0 0; color: #506859; font-size: .83rem; line-height: 1.42; }

.bih-map-footer-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 70px; padding: 34px clamp(20px, 4vw, 46px); border-radius: 25px; background: #e5f2df; }
.bih-map-footer-cta h2 { font-size: clamp(1.55rem, 3vw, 2.2rem); }
.bih-map-footer-cta p:not(.bih-map-eyebrow) { margin: 8px 0 0; color: #506859; }

.bih-map-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 0 0 28px; color: #728174; font-size: .94rem; }
.bih-map-breadcrumb a, .bih-map-back a { color: #16825d; font-weight: 750; text-decoration: none; }
.bih-map-breadcrumb a:hover, .bih-map-back a:hover { text-decoration: underline; }
.bih-map-detail__hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr); align-items: center; gap: clamp(24px, 5vw, 62px); padding: clamp(24px, 5vw, 58px); border: 1px solid #d8e6d6; border-radius: 30px; background: linear-gradient(125deg, #e9f5e2 0%, #fff7de 100%); box-shadow: 0 15px 36px #244e3512; }
.bih-map-detail h1 { font-size: clamp(2.5rem, 6vw, 4rem); }
.bih-map-detail__title--image { width: min(100%, 320px); margin: 0 0 8px; }
.bih-map-detail__title--image img { display: block; width: 100%; height: auto; max-height: 226px; object-fit: contain; object-position: left center; filter: drop-shadow(0 5px 7px #244e3526); }
.bih-map-detail__landmark { margin: 13px 0 0 !important; color: #16825d !important; font-size: 1.2rem; font-weight: 850; }
.bih-map-detail__copy > p:not(.bih-map-eyebrow) { max-width: 600px; margin: 16px 0 23px; color: #506759; font-size: 1.08rem; line-height: 1.7; }
.bih-map-detail .map-inline-link { color: #176044; font-weight: 750; text-decoration: underline dotted; text-underline-offset: 3px; }
.bih-map-detail .map-inline-link:hover { text-decoration-style: solid; }
.bih-map-detail .map-inline-link:focus-visible { outline: 3px solid #f0c030; outline-offset: 3px; border-radius: 2px; }
.bih-map-feature-detail .map-inline-link { color: #176044; font-weight: 750; text-decoration: underline dotted; text-underline-offset: 3px; }
.bih-map-feature-detail .map-inline-link:hover { text-decoration-style: solid; }
.bih-map-feature-detail .map-inline-link:focus-visible { outline: 3px solid #f0c030; outline-offset: 3px; border-radius: 2px; }
.bih-map-detail__map { width: min(100%, 340px); margin: 0 auto; padding: 12px; border: 1px solid #dce8d8; border-radius: 22px; background: #fffefa; box-shadow: 0 12px 27px #22442d21; }
.bih-map-detail__map-art { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1000 / 966; border-radius: 14px; }
.bih-map-detail__map-art img { display: block; width: 100%; height: 100%; object-fit: fill; }
.bih-map-detail__focus { position: absolute; left: var(--focus-x); top: var(--focus-y); width: 32px; height: 32px; border: 4px solid #fff; border-radius: 50%; background: #f5ae2f66; box-shadow: 0 0 0 7px #ed9f35, 0 0 0 14px #ed9f3545; transform: translate(-50%, -50%); }
.bih-map-detail__map figcaption { margin: 11px 3px 1px; color: #617363; font-size: .88rem; text-align: center; }
.bih-map-landmark { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); align-items: center; gap: clamp(22px, 4vw, 48px); margin: 30px 0; padding: clamp(20px, 4vw, 38px); border: 1px solid #d6e6d8; border-radius: 26px; background: linear-gradient(120deg, #f3f8e9 0%, #eef7f4 100%); }
.bih-map-landmark__figure { display: flex; min-height: 225px; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: 16px; border: 1px solid #e2e9dc; border-radius: 20px; background: #fffefa; }
.bih-map-landmark__figure img { display: block; width: 100%; max-width: 260px; height: auto; max-height: 230px; object-fit: contain; filter: drop-shadow(0 7px 9px #244e351c); }
.bih-map-landmark--park .bih-map-landmark__figure { min-height: 450px; }
.bih-map-landmark--park .bih-map-landmark__figure img { max-width: 360px; max-height: 420px; }
.bih-map-landmark__figure figcaption { margin-top: 10px; color: #718071; font-size: .83rem; line-height: 1.4; text-align: center; }
.bih-map-landmark__copy .bih-map-eyebrow { margin-bottom: 9px; }
.bih-map-landmark__copy h2 { margin: 0; color: #173e32; font-size: clamp(1.55rem, 3.2vw, 2.25rem); line-height: 1.2; }
.bih-map-landmark__copy > p:last-child { max-width: 690px; margin: 13px 0 0; color: #506759; font-size: 1.05rem; line-height: 1.7; }
.bih-map-detail__facts { margin: 38px 0; }
.bih-map-detail__facts .bih-map-section-heading { margin-bottom: 18px; }
.bih-map-detail__facts .bih-map-section-heading h2 { font-size: clamp(1.55rem, 3vw, 2.2rem); }
.bih-map-detail__fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bih-map-detail__fact { display: flex; gap: 13px; align-items: flex-start; min-height: 130px; margin: 0; padding: 21px; border: 1px solid #cfe5d2; border-radius: 21px; background: #fffefa; box-shadow: 0 8px 23px #244e350a; }
.bih-map-detail__fact > span { flex: 0 0 28px; font-size: 22px; }
.bih-map-detail__fact p { margin: 0; color: #536b5b; line-height: 1.6; }
.bih-map-detail__challenge { display: flex; align-items: center; gap: 17px; margin: 30px 0; padding: 23px clamp(18px, 4vw, 32px); border: 1px solid #f0d78e; border-radius: 22px; background: #fff7dc; }
.bih-map-detail__challenge > span { font-size: 31px; }
.bih-map-detail__challenge > div { flex: 1; }
.bih-map-detail__challenge h2 { margin: 0; color: #244337; font-size: clamp(1.08rem, 2vw, 1.4rem); line-height: 1.35; }
.bih-map-detail__challenge .bih-map-eyebrow { margin-bottom: 6px; }
.bih-map-source { margin: 20px 0 30px; color: #66776a; font-size: .9rem; }
.bih-map-source a { color: #16825d; }
.bih-map-detail__blog { margin: 34px 0; padding: 24px clamp(20px, 4vw, 32px); border: 1px solid #d8e6d6; border-radius: 22px; background: #fffefa; }
.bih-map-detail__blog h2 { margin: 0 0 14px; color: #173e32; font-size: clamp(1.25rem, 2.4vw, 1.8rem); }
.bih-map-detail__blog ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bih-map-detail__blog a { display: flex; justify-content: space-between; gap: 16px; padding: 12px 14px; border-radius: 13px; background: #f1f7eb; color: #176044; font-weight: 750; text-decoration: none; }
.bih-map-detail__blog a:hover { background: #e4f1df; text-decoration: underline; }
.bih-map-detail__books li { display: grid; gap: 7px; }
.bih-map-book-context { margin: 0; padding: 0 14px 7px; color: #506759; font-size: .94rem; line-height: 1.55; }
.bih-map-neighbors { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 35px; }
.bih-map-neighbors a { display: flex; flex-direction: column; gap: 8px; padding: 19px 21px; border: 1px solid #d8e6d6; border-radius: 18px; background: #fffefa; color: #173e32; text-decoration: none; }
.bih-map-neighbors a:hover { border-color: #93c5a2; }
.bih-map-neighbors span { color: #6c7c6e; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.bih-map-back { margin: 26px 0 0; text-align: center; }
.bih-map-not-found { min-height: 420px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

.bosnia-map-promo { display: flex; align-items: center; gap: 26px; max-width: 1100px; margin: 36px auto; padding: 28px; border: 1px solid #d3e5d5; border-radius: 25px; background: linear-gradient(120deg, #e6f5df, #fff3d9); }
.bosnia-map-promo img { display: block; width: 140px; height: 170px; border: 5px solid white; border-radius: 16px; object-fit: cover; object-position: center top; box-shadow: 0 8px 22px #244e3525; }
.bosnia-map-promo h2 { margin: 0 0 8px; color: #173e32; }
.bosnia-map-promo p:not(.bih-map-eyebrow) { color: #516c5d; line-height: 1.55; }
.bosnia-map-promo .bih-map-eyebrow { margin-bottom: 7px; }

.bih-map-features { margin-top: clamp(50px, 7vw, 78px); }
.bih-map-features--rivers { padding: clamp(18px, 3vw, 30px); border: 1px solid #cce5e8; border-radius: 28px; background: linear-gradient(140deg, #e8f7f6 0%, #f5fbf6 100%); }
.bih-map-features--mountains { padding: clamp(18px, 3vw, 30px); border: 1px solid #d5e5cd; border-radius: 28px; background: linear-gradient(140deg, #eef6e8 0%, #fbf8e9 100%); }
.bih-map-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.bih-map-feature-card { display: flex; min-width: 0; min-height: 164px; align-items: stretch; gap: 13px; padding: 16px; border: 1px solid #d7e8df; border-radius: 19px; background: #fffefa; box-shadow: 0 7px 20px #244e350d; transition: transform 160ms ease, box-shadow 160ms ease; }
.bih-map-feature-card:hover { transform: translateY(-3px); box-shadow: 0 12px 25px #244e3518; }
.bih-map-features--rivers .bih-map-feature-card { border-color: #cfe6e9; }
.bih-map-feature-card__copy { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; }
.bih-map-features--rivers .bih-map-place-card__art { background: #e8f7f6; }
.bih-map-features--mountains .bih-map-place-card__art { background: #eef6e8; }
.bih-map-feature-card__copy h3 { margin: 0; font-size: 1.08rem; font-weight: 850; line-height: 1.25; }
.bih-map-feature-card h3 a { color: #173e32; text-decoration: none; }
.bih-map-feature-card h3 a:hover { color: #16825d; text-decoration: underline; }
.bih-map-feature-card__copy > p { flex: 1; margin: 9px 0 12px; color: #536b5b; font-size: .9rem; line-height: 1.5; }
.bih-map-feature-card__more { margin-top: auto; color: #16825d; font-size: .84rem; font-weight: 850; text-decoration: none; }
.bih-map-feature-card__more:hover { text-decoration: underline; }
.bih-map-feature-card__more span { margin-left: 3px; }
.bih-map-related-features { margin: 36px 0; padding: 25px clamp(18px, 4vw, 32px); border: 1px solid #d3e5d5; border-radius: 24px; background: #eff7ec; }
.bih-map-related-features > .bih-map-section-heading { margin-bottom: 20px; }
.bih-map-related-features h2 { margin: 0; color: #173e32; font-size: clamp(1.45rem, 3vw, 2rem); }
.bih-map-related-features__group + .bih-map-related-features__group { margin-top: 18px; }
.bih-map-related-features__group h3 { margin: 0 0 9px; color: #244337; font-size: 1rem; }
.bih-map-related-features__group ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.bih-map-related-features__group a { display: inline-flex; gap: 9px; align-items: center; padding: 9px 13px; border: 1px solid #cfe3d0; border-radius: 999px; background: #fffefa; color: #176044; font-size: .9rem; font-weight: 750; text-decoration: none; }
.bih-map-related-features__icon { display: block; width: 26px; height: 26px; flex: 0 0 26px; border-radius: 7px; background: #eef6e8; object-fit: contain; }
.bih-map-related-features__group a:hover { border-color: #8ebc98; background: #e8f4e5; }
.bih-map-feature-detail__hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr); align-items: center; gap: clamp(24px, 5vw, 62px); padding: clamp(24px, 5vw, 58px); border: 1px solid #d8e6d6; border-radius: 30px; background: linear-gradient(125deg, #e8f7f6 0%, #fff7de 100%); box-shadow: 0 15px 36px #244e3512; }
.bih-map-feature-detail__copy h1 { margin-bottom: 14px; }
.bih-map-feature-detail__fact { max-width: 600px; margin: 0 0 22px; color: #506759; font-size: 1.1rem; line-height: 1.7; }
.bih-map-feature-detail__map { width: min(100%, 340px); margin: 0 auto; padding: 12px; border: 1px solid #dce8d8; border-radius: 22px; background: #fffefa; box-shadow: 0 12px 27px #22442d21; }
.bih-map-feature-detail__map-art { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1000 / 966; border-radius: 14px; }
.bih-map-feature-detail__map-art img { display: block; width: 100%; height: 100%; object-fit: fill; }
.bih-map-feature-detail__marker { position: absolute; width: 24px; height: 24px; border: 3px solid #fff; border-radius: 50%; background: #23a5af; box-shadow: 0 0 0 5px #23a5af99, 0 3px 8px #183b2d80; transform: translate(-50%, -50%); }
.bih-map-feature-detail__map figcaption { margin: 11px 3px 1px; color: #617363; font-size: .88rem; text-align: center; }
.bih-map-river-spring { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(0, 1.15fr); align-items: center; gap: clamp(24px, 5vw, 58px); margin: 32px 0; padding: clamp(20px, 4vw, 38px); border: 1px solid #d6e6d8; border-radius: 26px; background: linear-gradient(120deg, #f3f8e9 0%, #eef7f4 100%); }
.bih-map-river-spring__figure { display: flex; min-height: 220px; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: 14px; border: 1px solid #e2e9dc; border-radius: 20px; background: #fffefa; }
.bih-map-river-spring__figure img { display: block; width: 100%; max-width: 450px; height: auto; max-height: 340px; object-fit: contain; filter: drop-shadow(0 7px 9px #244e351c); }
.bih-map-river-spring__figure figcaption { margin-top: 8px; color: #718071; font-size: .85rem; line-height: 1.4; text-align: center; }
.bih-map-river-spring__copy .bih-map-eyebrow { margin-bottom: 9px; }
.bih-map-river-spring__copy h2 { margin: 0; color: #173e32; font-size: clamp(1.55rem, 3.2vw, 2.25rem); line-height: 1.2; }
.bih-map-river-spring__copy > p:last-child { max-width: 650px; margin: 16px 0 0; color: #506759; font-size: 1.06rem; line-height: 1.72; }
.bih-map-river-route { margin: 27px 0; padding: clamp(20px, 4vw, 32px); border: 1px solid #cfe3d0; border-radius: 23px; background: #f1f7eb; }
.bih-map-river-route .bih-map-eyebrow { margin-bottom: 7px; }
.bih-map-river-route h2 { margin: 0; color: #173e32; font-size: clamp(1.35rem, 2.8vw, 1.9rem); }
.bih-map-river-route > p:last-child { margin: 10px 0 0; color: #506759; font-size: 1.02rem; line-height: 1.75; }
.bih-map-river-life, .bih-map-river-facts { margin: 40px 0; }
.bih-map-river-life__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.bih-map-river-life__card { min-height: 205px; padding: 21px; border: 1px solid #d8e6d6; border-radius: 19px; background: #fffefa; box-shadow: 0 8px 20px #244e3508; }
.bih-map-river-life__card > span { font-size: 1.6rem; }
.bih-map-river-life__card h3 { margin: 10px 0 8px; color: #244337; font-size: 1.12rem; }
.bih-map-river-life__card p { margin: 0; color: #506759; line-height: 1.65; }
.bih-map-river-facts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.bih-map-river-facts__grid article { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid #f0d78e; border-radius: 18px; background: #fff9e6; }
.bih-map-river-facts__grid article > span { flex: 0 0 auto; }
.bih-map-river-facts__grid p { margin: 0; color: #506759; line-height: 1.65; }
.bih-map-mountain-profile { display: grid; grid-template-columns: minmax(250px, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(24px, 5vw, 58px); margin: 32px 0; padding: clamp(20px, 4vw, 38px); border: 1px solid #d6e6d8; border-radius: 26px; background: linear-gradient(120deg, #f3f8e9 0%, #eef7f4 100%); }
.bih-map-mountain-profile__figure { display: flex; min-height: 220px; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: 12px; border: 1px solid #e2e9dc; border-radius: 20px; background: #fffefa; }
.bih-map-mountain-profile__figure img { display: block; width: 100%; max-width: 500px; height: auto; max-height: 350px; object-fit: contain; filter: drop-shadow(0 7px 9px #244e351c); }
.bih-map-mountain-profile__figure figcaption { margin-top: 8px; color: #718071; font-size: .85rem; line-height: 1.4; text-align: center; }
.bih-map-mountain-profile__copy .bih-map-eyebrow { margin-bottom: 9px; }
.bih-map-mountain-profile__copy h2 { margin: 0; color: #173e32; font-size: clamp(1.55rem, 3.2vw, 2.25rem); line-height: 1.2; }
.bih-map-mountain-profile__intro { max-width: 650px; margin: 16px 0 0; color: #506759; font-size: 1.06rem; line-height: 1.72; }
.bih-map-mountain-profile__activity { margin-top: 19px; padding: 17px 18px; border: 1px solid #d7e7d4; border-radius: 17px; background: #fffefa; }
.bih-map-mountain-profile__activity strong, .bih-map-mountain-wildlife strong { color: #244337; }
.bih-map-mountain-profile__activity p, .bih-map-mountain-wildlife p { margin: 7px 0 0; color: #506759; line-height: 1.65; }
.bih-map-mountain-facts { margin: 40px 0; }
.bih-map-mountain-facts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.bih-map-mountain-facts__grid article { display: flex; align-items: flex-start; gap: 12px; padding: 19px; border: 1px solid #f0d78e; border-radius: 18px; background: #fff9e6; }
.bih-map-mountain-facts__grid article > span { flex: 0 0 auto; }
.bih-map-mountain-facts__grid p { margin: 0; color: #506759; line-height: 1.68; }
.bih-map-mountain-wildlife { display: flex; align-items: flex-start; gap: 13px; margin-top: 15px; padding: 17px 19px; border: 1px solid #d6e6d8; border-radius: 18px; background: #f1f7eb; }
.bih-map-mountain-wildlife > span { flex: 0 0 auto; font-size: 1.35rem; }
.bih-map-detail__books li { margin-bottom: 12px; }
.bih-map-detail__books li:last-child { margin-bottom: 0; }
.bih-map-detail__books li > p { margin: 6px 0 0; color: #506759; line-height: 1.6; }
.bih-map-feature-detail__challenge { display: flex; align-items: center; gap: 17px; margin: 30px 0; padding: 23px clamp(18px, 4vw, 32px); border: 1px solid #f0d78e; border-radius: 22px; background: #fff7dc; }
.bih-map-feature-detail__challenge > span { font-size: 31px; }
.bih-map-feature-detail__challenge > div { flex: 1; }
.bih-map-feature-detail__challenge h2 { margin: 0; color: #244337; font-size: clamp(1.08rem, 2vw, 1.4rem); line-height: 1.45; }
.bih-map-feature-detail__challenge .bih-map-eyebrow { margin-bottom: 6px; }
.bih-map-feature-detail__places { margin: 40px 0; }
.bih-map-feature-detail__places .bih-map-section-heading h2 { font-size: clamp(1.55rem, 3vw, 2.2rem); }
.bih-map-feature-detail__city-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.bih-map-feature-detail__more { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 32px; padding: 20px; border: 1px solid #d8e6d6; border-radius: 20px; background: #fffefa; }
.bih-map-feature-detail__more p { width: 100%; margin: 0; color: #617363; text-align: center; }
.bih-map-feature-detail__more a { color: #176044; font-weight: 800; text-decoration: none; }
.bih-map-feature-detail__more a:hover { text-decoration: underline; }

@media (max-width: 900px) {
  .bih-map-place-grid, .bih-map-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bih-map-feature-detail__city-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bih-map-game__layout { grid-template-columns: minmax(0, 1.1fr) minmax(255px, .9fr); }
}

@media (max-width: 700px) {
  .bih-map-main { width: min(calc(100% - 24px), 560px); padding-top: 22px; }
  .bih-map-hero { grid-template-columns: 1fr; gap: 0; min-height: 0; padding: 28px 23px 0; border-radius: 24px; }
  .bih-map-hero h1 { max-width: 480px; font-size: clamp(2rem, 10vw, 3.05rem); }
  .bih-map-hero__art { width: min(100%, 390px); height: 220px; margin-top: 8px; }
  .bih-map-hero__art img { inset: 0; width: 100%; max-height: 220px; border: 0; }
  .bih-map-features { margin-top: 40px; padding: 16px; border-radius: 22px; }
  .bih-map-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .bih-map-feature-card { min-height: 0; gap: 10px; padding: 13px; border-radius: 16px; }
  .bih-map-feature-card__copy h3 { font-size: 1rem; }
  .bih-map-feature-detail__hero { grid-template-columns: 1fr; padding: 25px 20px; border-radius: 24px; }
  .bih-map-river-spring { grid-template-columns: 1fr; gap: 19px; padding: 19px; border-radius: 23px; }
  .bih-map-river-spring__figure { min-height: 190px; }
  .bih-map-river-spring__figure img { max-height: 260px; }
  .bih-map-mountain-profile { grid-template-columns: 1fr; gap: 19px; padding: 19px; border-radius: 23px; }
  .bih-map-mountain-profile__figure { min-height: 190px; }
  .bih-map-mountain-profile__figure img { max-height: 280px; }
  .bih-map-river-life__grid, .bih-map-river-facts__grid { grid-template-columns: 1fr; }
  .bih-map-river-life__card { min-height: 0; padding: 18px; }
  .bih-map-mountain-facts__grid { grid-template-columns: 1fr; }
  .bih-map-feature-detail__map { width: min(100%, 290px); }
  .bih-map-feature-detail__challenge { align-items: flex-start; }
  .bih-map-related-features { padding: 20px 16px; }
  .bih-map-name-story { margin-top: 20px; padding: 23px 18px; border-radius: 22px; }
  .bih-map-name-story__parts { grid-template-columns: 1fr; gap: 10px; }
  .bih-map-name-story__parts article { padding: 16px; }
  .bih-map-spark { line-height: 1; }
  .bih-map-spark--one { top: 8px; left: 10px; font-size: 28px; }
  .bih-map-spark--two { right: 4px; bottom: 34px; font-size: 20px; }
  .bih-map-game__layout { grid-template-columns: 1fr; gap: 20px; padding: 13px; }
  .bih-map-board-wrap { width: 100%; }
  .bih-map-board { width: min(100%, 420px); border-width: 3px; border-radius: 17px; }
  .bih-map-board > img { border-radius: 13px; }
  .bih-map-card { min-height: 0; padding: 21px 18px; }
  .bih-map-card__icon { width: 36px; height: 36px; margin-bottom: 8px; font-size: 28px; }
  .bih-map-reward > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; font-size: 22px; line-height: 1; }
  .bih-map-spot span { font-size: 11px; }
  .bih-map-spot.is-target { width: 32px; height: 32px; border-width: 2px; box-shadow: 0 0 0 4px #fff9, 0 0 0 8px #f6b43555, 0 4px 10px #183b2d7a; animation-name: map-pulse-mobile; }
  .bih-map-detail__focus { width: 26px; height: 26px; border-width: 3px; box-shadow: 0 0 0 5px #ed9f35, 0 0 0 10px #ed9f3545; }
  .bih-map-detail__fact > span,
  .bih-map-detail__challenge > span,
  .bih-map-feature-detail__challenge > span,
  .bih-map-river-facts__grid article > span,
  .bih-map-mountain-facts__grid article > span {
    display: inline-grid;
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 1.7rem;
    place-items: center;
    font-size: 1.25rem;
    line-height: 1;
  }
  .bih-map-river-life__card > span { display: grid; width: 32px; height: 32px; place-items: center; font-size: 1.45rem; line-height: 1; }
  .bih-map-mountain-wildlife > span { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; font-size: 1.25rem; line-height: 1; }
  .bih-map-name-story__parts article > span { display: grid; width: 32px; height: 32px; flex-basis: 32px; place-items: center; font-size: 25px; line-height: 1; }
  .bih-map-card__message { min-height: 0; margin-bottom: 10px; }
  .bih-map-card__note { margin-top: 12px; }
  .bih-map-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .bih-map-place-card { min-height: 0; gap: 10px; padding: 13px; border-radius: 16px; }
  .bih-map-place-card__pin { top: 9px; right: 9px; display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #eaf5e7; font-size: 14px; line-height: 1; }
  .bih-map-place-card__art { flex-basis: 52px; width: 52px; height: 52px; border-radius: 10px; }
  .bih-map-place-card__copy > p:first-child { font-size: .62rem; }
  .bih-map-place-card h3 { font-size: 1rem; }
  .bih-map-place-card__copy > span, .bih-map-place-card__fact { font-size: .79rem; }
  .bih-map-footer-cta { align-items: flex-start; flex-direction: column; margin-top: 48px; padding: 25px 21px; }
  .bih-map-detail__hero { grid-template-columns: 1fr; padding: 25px 20px; border-radius: 24px; }
  .bih-map-landmark { grid-template-columns: 1fr; gap: 19px; padding: 19px; border-radius: 23px; }
  .bih-map-landmark__figure { min-height: 190px; }
  .bih-map-landmark__figure img { max-height: 205px; }
  .bih-map-landmark--park .bih-map-landmark__figure { min-height: 380px; }
  .bih-map-landmark--park .bih-map-landmark__figure img { max-width: 300px; max-height: 330px; }
  .bih-map-detail__map { width: min(100%, 290px); }
  .bih-map-detail__title--image { width: min(100%, 280px); }
  .bih-map-detail__title--image img { max-height: 198px; }
  .bih-map-detail__fact-grid { grid-template-columns: 1fr; }
  .bih-map-detail__fact { min-height: 0; padding: 17px; }
  .bih-map-detail__challenge { align-items: flex-start; flex-wrap: wrap; }
  .bih-map-detail__challenge > div { min-width: calc(100% - 55px); }
  .bih-map-detail__challenge .bih-map-button { margin-left: 48px; }
  .bih-map-neighbors { gap: 8px; }
  .bih-map-neighbors a { padding: 14px; }
  .bosnia-map-promo { align-items: flex-start; gap: 17px; margin: 20px 12px; padding: 19px; border-radius: 20px; }
  .bosnia-map-promo img { flex: 0 0 91px; width: 91px; height: 125px; border-width: 4px; }
  .bosnia-map-promo .bih-map-button { min-height: 42px; padding: 10px 13px; font-size: .9rem; }
}

@media (max-width: 390px) {
  .bih-map-place-grid, .bih-map-feature-grid, .bih-map-feature-detail__city-grid { grid-template-columns: 1fr; }
  .bih-map-feature-card { min-height: 0; }
  .bih-map-place-card { min-height: 0; }
  .bih-map-neighbors { grid-template-columns: 1fr; }
  .bosnia-map-promo { display: block; }
  .bosnia-map-promo img { float: left; margin: 0 16px 12px 0; }
  .bosnia-map-promo::after { display: block; clear: both; content: ''; }
}
