/* ZimBound legal surfaces — a quiet extension of the existing travel scrapbook. */

.zb-main-footer {
  flex-wrap: wrap;
}

.zb-legal-footer {
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  margin-top: 10px;
  padding: 17px 0 2px;
  border-top: 1px solid #cbb58e;
  color: #203c32;
  font: 12px/1.55 Arial, sans-serif;
  text-align: left;
}

/* The imported mobile stylesheet hides footer paragraphs and the second nav
   link. Those legacy rules must never hide company details or a legal route. */
.zb-legal-footer p {
  display: block;
}

.zb-legal-links a:nth-child(n) {
  display: inline;
}

.zb-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 19px;
  align-items: center;
  margin-bottom: 9px;
}

.zb-legal-links a {
  color: #203c32;
  text-decoration: underline;
  text-decoration-color: #a6492080;
  text-underline-offset: 3px;
}

.zb-legal-links a:hover {
  color: #a64920;
}

.zb-legal-footer a:focus-visible,
.zb-legal-footer summary:focus-visible,
.zb-affiliate-note a:focus-visible {
  outline: 2px solid #a64920;
  outline-offset: 3px;
}

.zb-legal-company,
.zb-legal-contact,
.zb-legal-draft {
  margin: 4px 0 0;
  color: #596154;
  font-size: 11px;
}

.zb-legal-contact a {
  text-decoration: underline;
  text-decoration-color: #a6492080;
  text-underline-offset: 2px;
}

.zb-owner-note {
  margin-top: 8px;
  color: #596154;
  font-size: 11px;
}

.zb-owner-note summary {
  width: fit-content;
  color: #56604f;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: #c3a77a;
  text-underline-offset: 3px;
}

.zb-owner-note p {
  max-width: 760px;
  margin: 6px 0 0;
  color: #596154;
  font-size: 11px;
  line-height: 1.6;
}

.zb-legal-draft {
  color: #795d3a;
}

.zb-affiliate-note {
  max-width: 760px;
  margin: 10px 0 0;
  color: #666657;
  font: 12px/1.55 Arial, sans-serif;
}

.zb-affiliate-note a {
  color: #203c32;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.finder p.zb-affiliate-note:not(.eyebrow):not(.small) {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.55;
}

.zb-flight-disclosure {
  max-width: 920px;
  margin-inline: auto;
}

/* Share the vendor's existing final row without touching its shadow DOM. */
@media (min-width: 1176px) {
  .tpwl-search-header .tpwl__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .tpwl-search-header #tpwl-search,
  .tpwl-search-header .zb-flight-affiliate-note {
    grid-area: 1 / 1;
  }

  .tpwl-search-header .zb-flight-affiliate-note {
    align-self: end;
    justify-self: end;
    max-width: calc(100% - 250px);
    margin: 0 0 4px;
    text-align: right;
  }
}

.tpwl-search-header .zb-flight-affiliate-note {
  color: #626659;
  font-size: 12px;
  line-height: 1.5;
}

.tpwl-search-header .zb-flight-affiliate-note a {
  white-space: nowrap;
}

@media (max-width: 1175px) {
  .tpwl-search-header .zb-flight-affiliate-note {
    max-width: none;
    margin: 8px 0 0;
  }
}

.zb-flight-footer .zb-legal-footer {
  margin-top: 22px;
}

/* Standalone policy pages load this file without the homepage stylesheet. */
body.zb-policy-body {
  --zb-paper: #f7f3e9;
  --zb-paper-light: #fbf7ed;
  --zb-ink: #203c32;
  --zb-muted: #596154;
  --zb-orange: #a64920;
  --zb-gold: #ac824b;
  --zb-line: #d8cbb3;
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(ellipse at 92% 8%, #eadcc333 0, transparent 27rem),
    var(--zb-paper);
  color: var(--zb-ink);
  font: 16px/1.72 Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.zb-policy-body *,
body.zb-policy-body *::before,
body.zb-policy-body *::after {
  box-sizing: border-box;
}

body.zb-policy-body a {
  color: #2d5140;
  text-decoration-color: #a6492080;
  text-underline-offset: 3px;
}

body.zb-policy-body a:hover {
  color: var(--zb-orange);
}

body.zb-policy-body :focus-visible {
  outline: 3px solid var(--zb-gold);
  outline-offset: 4px;
  border-radius: 2px;
}

.zb-policy-skip {
  position: absolute;
  z-index: 10;
  top: 12px;
  left: 12px;
  transform: translateY(-160%);
  padding: 9px 13px;
  border: 1px solid var(--zb-line);
  border-radius: 3px;
  background: var(--zb-paper-light);
  color: var(--zb-ink);
  font-size: 13px;
}

.zb-policy-skip:focus {
  transform: translateY(0);
}

.zb-policy-header,
.zb-policy-main,
.zb-policy-footer {
  width: min(100% - 48px, 930px);
  margin-inline: auto;
}

.zb-policy-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 22px 0 19px;
  border-bottom: 1px solid #cbb58e;
}

.zb-policy-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 10px;
  color: var(--zb-ink) !important;
  text-decoration: none !important;
  font: 30px/1 Georgia, serif;
  letter-spacing: -.055em;
}

.zb-policy-brand img {
  display: block;
  width: 46px;
  height: 46px;
  object-fit: contain;
  border-radius: 11px;
}

.zb-policy-wordmark span {
  color: #9a733e;
}

.zb-policy-back {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px 21px;
  font-size: 13px;
}

.zb-policy-main {
  padding: clamp(39px, 7vw, 76px) 0 62px;
}

.zb-policy-eyebrow {
  margin: 0 0 13px;
  color: #98512b;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.zb-policy-main h1 {
  max-width: 790px;
  margin: 0;
  color: #203c32;
  font: 400 clamp(2.7rem, 7.1vw, 5rem)/1.04 Georgia, serif;
  letter-spacing: -.055em;
}

.zb-policy-date {
  margin: 16px 0 0;
  color: #726c5c;
  font-size: 13px;
}

.zb-policy-banner {
  margin: 28px 0 0;
  padding: 16px 19px;
  border-left: 3px solid var(--zb-orange);
  background: #efe4d1a8;
  color: #4f5549;
  font-size: 14px;
  line-height: 1.65;
}

.zb-policy-toc {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 27px 0 38px;
  padding: 15px 18px;
  border-block: 1px solid var(--zb-line);
  font-size: 13px;
}

.zb-policy-toc a {
  text-decoration-thickness: 1px;
}

.zb-policy-article {
  max-width: 760px;
  color: #4d554b;
  font-size: 16px;
  line-height: 1.78;
  overflow-wrap: anywhere;
}

.zb-policy-article section {
  scroll-margin-top: 24px;
  margin: 0 0 33px;
}

.zb-policy-article h2 {
  margin: 0 0 12px;
  color: #203c32;
  font: 400 clamp(1.55rem, 3vw, 2rem)/1.2 Georgia, serif;
  letter-spacing: -.025em;
}

.zb-policy-article h3 {
  margin: 22px 0 8px;
  color: #314d3c;
  font: 400 1.24rem/1.3 Georgia, serif;
}

.zb-policy-article p {
  margin: 0 0 14px;
  color: #4d554b;
}

.zb-policy-article ul,
.zb-policy-article ol {
  margin: 10px 0 18px;
  padding-left: 1.45em;
  color: #4d554b;
}

.zb-policy-article li {
  padding-left: 3px;
  margin: 5px 0;
}

.zb-policy-article li::marker {
  color: #a64920;
}

.zb-policy-article table {
  width: 100%;
  margin: 18px 0 24px;
  border-collapse: collapse;
  background: #fbf7edb8;
  color: #4d554b;
  font-size: 14px;
  line-height: 1.55;
}

.zb-policy-article th,
.zb-policy-article td {
  padding: 11px 13px;
  border: 1px solid var(--zb-line);
  text-align: left;
  vertical-align: top;
}

.zb-policy-article th {
  background: #ede4d2;
  color: #203c32;
  font-weight: 700;
}

.zb-policy-article .zb-draft-note {
  margin: 22px 0;
  padding: 13px 16px;
  border: 1px dashed #b79c70;
  background: #f3e9d8a6;
  color: #6c5536;
  font-size: 13px;
}

.zb-policy-footer {
  padding: 0 0 30px;
  border-top: 1px solid var(--zb-line);
}

.zb-policy-footer .zb-legal-footer {
  margin-top: 0;
  padding-top: 17px;
}

@media (max-width: 600px) {
  .zb-legal-footer {
    padding-top: 14px;
  }

  .zb-legal-links {
    gap: 8px 14px;
  }

  .zb-policy-header,
  .zb-policy-main,
  .zb-policy-footer {
    width: min(100% - 36px, 930px);
  }

  .zb-policy-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
    padding: 17px 0;
  }

  .zb-policy-brand {
    font-size: 28px;
  }

  .zb-policy-brand img {
    width: 42px;
    height: 42px;
  }

  .zb-policy-back {
    justify-content: flex-start;
    gap: 8px 18px;
  }

  .zb-policy-main {
    padding-top: 39px;
    padding-bottom: 42px;
  }

  .zb-policy-banner {
    padding: 13px 15px;
    font-size: 13px;
  }

  .zb-policy-toc {
    gap: 8px 14px;
    margin: 23px 0 31px;
    padding: 13px 0;
  }

  .zb-policy-article {
    font-size: 15px;
  }

  .zb-policy-article table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .zb-policy-article th,
  .zb-policy-article td {
    min-width: 130px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.zb-policy-body {
    scroll-behavior: auto;
  }
}
