.oln-approved *,
.oln-approved *::before,
.oln-approved *::after {
  box-sizing: content-box;
}
.oln-approved button,
.oln-approved input,
.oln-approved select,
.oln-approved .oln-btn {
  box-sizing: border-box;
}
/* Integration-only rules; layouts and type come from the approved source. */
.oln-approved {
  font-size: 16px;
  line-height: normal;
  background: var(--surface);
  color: var(--ink);
}
.oln-approved [hidden] {
  display: none !important;
}
.approved-header-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
}
.oln-approved .approved-origin .journey-origin-field {
  margin: 0;
  position: relative;
}
.oln-approved .approved-origin label {
  display: block;
  font-size: 0;
  margin: 0;
}
.oln-approved .approved-origin input {
  box-sizing: border-box;
  width: 100%;
  font-family: var(--font-body);
  font-weight: 400;
  line-height: normal;
}
/* Compact popup label remains accessible without occupying a visual line. */
.oln-approved .approved-origin .journey-origin-label--hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.oln-approved .approved-origin label small {
  display: none;
}
.oln-approved .approved-origin .journey-origin-panel {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  top: 100%;
  background: var(--surface);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  box-shadow: var(--shadow-lg);
  z-index: 60;
  padding: 8px;
  box-sizing: border-box;
  max-height: min(420px, 60svh);
  overflow-y: auto;
}
.oln-approved .journey-origin-choice {
  display: block;
  width: 100%;
  border: 0;
  background: none;
  padding: 12px;
  font: inherit;
  cursor: pointer;
  color: var(--ink);
}
.oln-approved .journey-origin-choice:hover,
.oln-approved .journey-origin-choice:focus {
  background: var(--surface-2);
}
.oln-approved .journey-origin-attribution {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--ink-2);
}
.oln-approved .approved-photo-slot {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--surface-2);
}
.oln-approved .approved-translation-note {
  display: block;
  font-size: 11px;
  color: var(--ink-3);
  margin-top: 2px;
}
.oln-approved [aria-disabled="true"] {
  cursor: default;
}
.oln-approved :focus-visible {
  outline: 2px solid var(--pri-h);
  outline-offset: 3px;
}
@media (max-width: 680px) {
  .oln-approved .approved-origin input {
    max-width: 100%;
  }
}

.request-main.request-main--approved {
  width: 100%;
  padding: 0;
  margin: 0;
}
.approved-facility [data-approved-description] > :first-child {
  margin-top: 0;
}
.approved-facility [data-approved-description] > :last-child {
  margin-bottom: 0;
}

.oln-approved .oln-footer__grid,
.oln-approved .oln-footer__legal {
  width: auto;
  margin: 0;
}
/* TextField uses the source's native content-box height; the chooser's added wrapper preserves the original stretched outer width. */
.oln-approved input.oln-field__control {
  box-sizing: content-box;
}
.oln-approved .approved-origin input.oln-field__control {
  width: calc(100% - var(--space-12) * 2 - 2px);
}
/* Source header controls use 26/30px heights; search's global button minimum must not override them. */
.oln-approved.approved-header-wrap header .oln-btn {
  min-height: 0;
}

.oln-approved .journey-origin-attribution a {
  color: inherit;
  text-underline-offset: 2px;
}
.oln-approved .approved-origin [data-origin-status] {
  margin: 4px 12px 8px;
  font: 13px / 1.4 var(--font-body);
  color: var(--ink-2);
}
.oln-approved [data-approved-search-panel] input:focus-visible {
  outline: none;
}
/* The source popup has one borderless field. Global input focus styles must
   not turn it into a second framed control inside the floating surface. */
.oln-approved [data-approved-search-panel] input:focus {
  box-shadow: none;
}
/* The approved TextField stretches to its grid cell. Content-box width:100%
   adds 26px of padding/border, overlapping Unit and overflowing Start date. */
.oln-approved [data-approved-publication-action] input.oln-field__control {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 34px;
  min-height: 0;
}
.oln-approved [data-approved-publication-action] .oln-field {
  min-width: 0;
}

/* Public cards keep the approved image frame; fallback maps use safe public areas. */
:is(.oln-approved, .journey-search-page) .public-card-media {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 120px;
  overflow: hidden;
  background: var(--surface-2);
}
:is(.oln-approved, .journey-search-page) .public-card-media > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 2;
}
:is(.oln-approved, .journey-search-page) .public-card-media > img[hidden] {
  display: none;
}
:is(.oln-approved, .journey-search-page) .public-card-media__fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, var(--surface-2), var(--surface));
  color: var(--ink-2);
}
:is(.oln-approved, .journey-search-page) .public-card-media__mark {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--pri);
}
:is(.oln-approved, .journey-search-page) .public-card-media__mark > span {
  font-size: 60px;
  font-weight: 400;
  opacity: 0.5;
}
:is(.oln-approved, .journey-search-page) .public-card-media__caption {
  position: absolute;
  left: 8px;
  top: 8px;
  z-index: 1;
  max-width: calc(100% - 16px);
  background: var(--surface);
  color: var(--ink-2);
  padding: 4px 7px;
  border-radius: 4px;
  font-size: 11px;
  line-height: 1.4;
}
:is(.oln-approved, .journey-search-page) .public-card-media oln-approved-map {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

:is(.oln-approved, .journey-search-page) .public-card-media__mark[hidden] {
  display: none;
}
.journey-search-page .result-card__visual .public-card-media svg {
  position: static;
  width: 100%;
  height: 100%;
  stroke: none;
}
.journey-search-page .result-card__visual .public-card-media path {
  stroke: none;
}
.oln-approved [data-approved-publication-action] .oln-field__label {
  margin: 0;
  display: block;
}

/* Owner contrast correction: distinguish fallback image areas from the page.
   Land/water tokens stay local to card maps; successful photos cover this layer. */
:is(.oln-approved, .journey-search-page)
.public-card-media__fallback:not([aria-hidden="true"]) {
  background: #d5e2e8;
}
:is(.oln-approved, .journey-search-page)
  .public-card-media__fallback:not([aria-hidden="true"])
  oln-approved-map {
  --surface: #d5e2e8;
  --surface-2: #b9ceda;
  --line-3: #819dac;
  --ink-2: #3b5265;
  --ink-3: #3b5265;
}

/* Original interactive 0b3e9fd popup only. Its normal flow and source controls
   supersede the later ZIP header overlay; the current header stays intact. */
@font-face {
  font-family: ApprovedPopupManrope;
  src: url("/homepage-candidate/assets/manrope-400.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
.approved-quick-search-host {
  display: flow-root;
}
.oln-approved .approved-quick-search {
  box-sizing: border-box;
  position: relative;
  z-index: 40;
  width: min(700px, calc(100% - 48px));
  margin: 32px auto 0;
  padding: 16px 20px 16px 68px;
  border: 0;
  border-radius: 12px;
  background: #fff;
  color: #0c1b2d;
  font:
    400 16px / 1.65 ApprovedPopupManrope,
    Arial,
    sans-serif;
  box-shadow:
    0 2px 5px #0c1b2d08,
    0 10px 24px #0c1b2d1a,
    0 28px 64px -10px #0c1b2d40;
}
.oln-approved .approved-quick-search form {
  display: flex;
  gap: 18px;
  align-items: center;
  position: relative;
  margin: 0;
}
.oln-approved .approved-quick-search .journey-origin-field {
  display: block;
}
.oln-approved .approved-quick-search label {
  color: inherit;
}
.approved-quick-search-row {
  position: relative;
}
.oln-approved .approved-quick-search .approved-origin {
  flex: 1 1 auto;
  min-width: 0;
}
.oln-approved .approved-quick-search input[data-origin-query] {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 48px;
  margin: 0;
  padding: 10px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: inherit;
  font:
    400 20px / 1.65 ApprovedPopupManrope,
    Arial,
    sans-serif;
  letter-spacing: -0.3px;
  outline: none;
  box-shadow: none;
}
.oln-approved .approved-quick-search input::placeholder {
  color: #5b6a79;
  opacity: 1;
}
.oln-approved .approved-quick-search-submit,
.oln-approved .approved-quick-search-close,
.oln-approved .approved-mobile-search-toggle {
  display: grid;
  place-items: center;
  flex: none;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #0c1b2d;
  cursor: pointer;
  font: inherit;
}
.oln-approved .approved-quick-search-submit {
  box-sizing: border-box;
  width: 56px;
  min-width: 56px;
  height: 40px;
  padding-left: 16px;
  border-left: 1px solid #d1dbe3;
  border-radius: 0;
}
.oln-approved .approved-quick-search button:focus-visible {
  outline: 3px solid #42668a;
  outline-offset: 5px;
}
.oln-approved .approved-quick-search-submit:hover {
  color: #42668a;
}
.oln-approved .approved-quick-search-submit svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
}
.oln-approved .approved-quick-search-close {
  position: absolute;
  left: -56px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  min-width: 40px;
  height: 40px;
  border-radius: 6px;
  box-shadow: none;
  color: #657887;
  transition: color 0.18s;
}
.oln-approved .approved-quick-search-close:hover {
  color: #0c1b2d;
}
.oln-approved .approved-quick-search-close svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.oln-approved .approved-mobile-search-toggle {
  width: 32px;
  min-width: 32px;
  height: 40px;
}
.oln-approved .approved-mobile-search-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
}
.oln-approved .approved-quick-search > .journey-origin-attribution {
  margin: 8px 0 0;
  font:
    400 12px / 1.4 ApprovedPopupManrope,
    Arial,
    sans-serif;
}
@media (max-width: 680px) {
  .oln-approved .approved-quick-search {
    width: calc(100% - 40px);
    margin-top: 26px;
    padding: 12px 14px 12px 56px;
  }
  .oln-approved .approved-quick-search form {
    gap: 10px;
  }
  .oln-approved .approved-quick-search input[data-origin-query] {
    font-size: 14px;
    letter-spacing: -0.2px;
  }
  .oln-approved .approved-quick-search-submit {
    width: 44px;
    min-width: 44px;
    height: 36px;
    padding-left: 12px;
  }
  .oln-approved .approved-quick-search-submit svg {
    width: 21px;
    height: 21px;
  }
  .oln-approved .approved-quick-search-close {
    left: -48px;
    width: 36px;
    min-width: 36px;
  }
  .oln-approved .approved-quick-search-close svg {
    width: 21px;
    height: 21px;
  }
}

/* Scoped geography entry reuses the main search widget without changing its input row. */
.public-geography-search-link {
  display: block;
  margin-top: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--pri);
  font: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.public-geography-search-link:focus-visible {
  outline: 3px solid var(--pri);
  outline-offset: 4px;
}
.approved-search-scope {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 10px 20px;
  color: var(--ink-2);
  font-size: 12px;
  overflow-wrap: anywhere;
}
.approved-search-scope[hidden] {
  display: none;
}
.approved-search-scope button {
  border: 0;
  background: transparent;
  color: var(--pri);
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.approved-search-scope button:focus-visible {
  outline: 3px solid var(--pri);
  outline-offset: 3px;
}
