.breed-card-body { position: relative; }
.breed-card-body h3 { padding-right: 44px; }
.origin-flag-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 42px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(36,77,59,.32);
  border-radius: 12px;
  background: #fffdf8;
  color: var(--forest);
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(20,48,35,.08);
}
.origin-flag-button:hover, .origin-flag-button:focus-visible {
  border-color: var(--forest);
  background: #e7eee6;
  outline-offset: 3px;
}
.breed-card-body > .origin-flag-button { position: absolute; top: 13px; right: 14px; }
.breed-detail-heading, .breed-page-title { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.breed-detail-heading h2, .breed-page-title h1 { min-width: 0; }
.breed-detail-heading .origin-flag-button { margin-top: 6px; }
.breed-page-title { position: relative; }
.breed-page-title .origin-flag-details { position: relative; margin-top: 8px; flex: none; }
.origin-flag-details summary { list-style: none; }
.origin-flag-details summary::-webkit-details-marker { display: none; }
.origin-flag-details[open] { z-index: 5; }
.origin-flag-story {
  position: absolute;
  top: 48px;
  right: 0;
  width: min(440px, calc(100vw - 42px));
  max-height: min(440px, 65vh);
  overflow: auto;
  padding: 22px 24px;
  border: 1px solid rgba(36,77,59,.25);
  border-radius: 16px;
  background: #fffdf8;
  box-shadow: 0 18px 48px rgba(20,48,35,.22);
}
.origin-flag-story h2 { margin: 0 0 12px; font: normal 28px/1.2 var(--font-display); }
.origin-flag-story p { line-height: 1.65; margin: 0 0 10px; }
.origin-dialog { max-width: min(620px, calc(100vw - 28px)); }
.origin-dialog-content { padding: 25px 29px 30px; }
.origin-dialog-heading { display: flex; align-items: center; gap: 14px; }
.origin-dialog-heading > span { font-size: 36px; line-height: 1; }
.origin-dialog-heading h2 { font: normal clamp(30px, 5vw, 43px) var(--font-display); margin: 0; }
.origin-dialog-country { color: var(--ochre); font-weight: 700; margin: 17px 0 10px; }
.origin-dialog-content p { line-height: 1.7; }
.tour-origin-action { display: inline-flex; align-items: center; gap: 9px; margin-top: 14px; font-size: 13px; font-weight: 700; }
.tour-origin-action .origin-flag-button { width: 36px; height: 34px; font-size: 21px; }
@media (max-width: 520px) {
  .origin-dialog-content { padding: 18px; }
  .breed-card-body h3 { padding-right: 40px; }
  .breed-card-body > .origin-flag-button { right: 10px; }
}
