.legal-page {
  padding: clamp(2rem, 5vw, 4.5rem) 0;
}

/* Reading column starts on the container's left edge so text lines up with the header and footer. */
.legal-page__header,
.legal-page__content {
  max-width: 52rem;
  margin-inline: 0;
}

.legal-page__header {
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.legal-page__eyebrow {
  color: var(--theme-primary, var(--bs-primary));
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.legal-page__summary {
  max-width: 43rem;
  color: var(--theme-muted, var(--bs-secondary-color));
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.65;
}

.legal-page__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  margin-top: 1.25rem;
  color: var(--theme-muted, var(--bs-secondary-color));
  font-size: .925rem;
}

.legal-page__toc {
  margin-bottom: 2.5rem;
  padding: 1.25rem;
  border: 1px solid var(--theme-border, var(--bs-border-color));
  border-radius: var(--theme-radius-md, .75rem);
  background: var(--theme-sand, var(--bs-tertiary-bg));
}

.legal-page__toc ol {
  columns: 2 15rem;
  margin-bottom: 0;
  padding-left: 1.25rem;
}

/* Anchors clear the sticky header, which is taller than the 6rem floor on narrow screens. */
.legal-page__content section,
body.theme-profile--brand-adaptive .post-prose > :is(h2, h3) {
  scroll-margin-top: max(6rem, var(--article-anchor-offset, 6rem));
}

.legal-page__content section + section {
  margin-top: 2.75rem;
  padding-top: 2.75rem;
  border-top: 1px solid var(--theme-border, var(--bs-border-color));
}

.legal-page__content h2 {
  margin-bottom: 1rem;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
}

.legal-page__content h3 {
  margin-top: 1.75rem;
  font-size: 1.125rem;
}

.legal-page__content p,
.legal-page__content li {
  line-height: 1.75;
}

.legal-page__table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.legal-page table {
  min-width: 42rem;
}

.legal-page th {
  white-space: nowrap;
}

.legal-callout {
  margin-block: 1.5rem;
  padding: 1.25rem;
  border-left: .25rem solid var(--theme-primary, var(--bs-primary));
  border-radius: 0 var(--theme-radius-sm, .5rem) var(--theme-radius-sm, .5rem) 0;
  background: var(--theme-sand, var(--bs-tertiary-bg));
}

.site-footer__legal {
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, .12);
}

.site-footer__legal-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .35rem 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__legal a,
.site-footer__legal button {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  vertical-align: middle;
  padding: .35rem .1rem;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, .78);
  font: inherit;
  text-decoration: underline;
  text-decoration-thickness: .06em;
  text-underline-offset: .2em;
}

.site-footer__legal a:hover,
.site-footer__legal button:hover {
  color: #fff;
}

.rovefold-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Consent rows keep the control on the first text line and follow the Rovefold app checkbox styling. */
.form-consent {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  column-gap: .6rem;
  row-gap: .3rem;
  padding-left: 0;
  font-size: .9rem;
  line-height: 1.5;
}

.form-consent .form-check-input {
  float: none;
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin: .17rem 0 0;
  border: 2px solid var(--theme-input-border, #d4cfc6);
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.form-consent .form-check-input:hover {
  border-color: var(--theme-primary, #1b5e5a);
}

.form-consent .form-check-input:checked {
  border-color: var(--theme-primary, #1b5e5a);
  background-color: var(--theme-primary, #1b5e5a);
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 12px 12px;
}

.form-consent .form-check-label {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  cursor: pointer;
}

/* The article banner stretches inline links to a 2.75rem tap target, which breaks the consent line box. */
.form-consent .form-check-label a {
  display: inline;
  min-height: 0;
  color: var(--theme-primary, #1b5e5a);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.form-consent [data-validate-for] {
  flex: 1 0 100%;
  margin-left: 1.6rem;
}

/* An empty validation slot would still open a second flex line and push the row off centre. */
.form-consent > [data-validate-for]:empty {
  display: none !important;
}

:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: .2rem solid var(--theme-focus, rgba(33, 99, 232, .45));
  outline-offset: .2rem;
}

@media (max-width: 575.98px) {
  .legal-page__toc ol {
    columns: 1;
  }

  /* The three legal links share one row on a phone; the cookie preferences button wraps beneath them. */
  .site-footer__legal-list {
    gap: 0 .9rem;
    font-size: .8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Planning guides: child-theme presentation, preserving the established brand. */
.rovefold-guides-hero { padding-block: clamp(3rem, 7vw, 6rem); background: var(--bs-light, #f2ebe0); }
.rovefold-guides-hero h1 { max-width: 15ch; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: 1.05; text-wrap: balance; }
.rovefold-guides-eyebrow { color: var(--bs-primary); font-weight: 600; }
.rovefold-guides-intro, .rovefold-guides-cta p { max-width: 58ch; margin-block: 1.5rem; font-size: 1.1rem; line-height: 1.7; }
.rovefold-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.rovefold-guide-card { min-width: 0; }
.rovefold-guide-media { display: grid; position: relative; aspect-ratio: 8/5; overflow: hidden; border-radius: var(--bs-border-radius-lg, 1rem); background: #e5e9e2; }
.rovefold-guide-media img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.rovefold-guide-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: #35594f; font-weight: 600; }
.rovefold-guide-copy { padding-top: 1rem; }
.rovefold-guide-copy :is(h2, h3) { font-size: 1.4rem; line-height: 1.3; text-wrap: balance; }
.rovefold-guide-copy :is(h2, h3) a { color: var(--bs-heading-color, #2c2c2c); }
.rovefold-guide-copy :is(h2, h3) a:hover { color: var(--bs-primary); }
.rovefold-guide-copy p { line-height: 1.65; }
.rovefold-guide-date { font-size: .85rem; }
.rovefold-guides-cta { background: var(--bs-light, #f2ebe0); }
.rovefold-guide-card a:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 4px; }
.rovefold-guide-card__cta { display: inline-flex; align-items: center; gap: .35rem; margin-top: .75rem; font-weight: 700; }
@media(max-width: 991px) { .rovefold-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width: 575px) { .rovefold-guide-grid { grid-template-columns: minmax(0, 1fr); } }


/* Rovefold homepage composition; Blogzine's shared templates remain inherited. */
.rovefold-guides-hero { padding-block: clamp(2rem, 5vw, 4rem); background: #f3efe7; }
.rovefold-guides-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.rovefold-guides-hero h1 { max-width: 13ch; margin: 0; font-weight: 600; letter-spacing: -.045em; }
.rovefold-guides-intro { max-width: 39ch; color: #706b65; }
.rovefold-guide-spotlight { display: block; overflow: hidden; border-radius: 1.5rem; background: #fffdf9; color: #292d2b; }
.rovefold-guide-spotlight-media { position: relative; aspect-ratio: 8/5; background: #e5e9e2; }
.rovefold-guide-spotlight-media img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; transition: transform 200ms; }
.rovefold-guide-spotlight-copy { padding: clamp(1.25rem, 3vw, 2rem); }
.rovefold-guide-spotlight h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.2; letter-spacing: -.025em; margin-block: .6rem 1rem; text-wrap: balance; }
.rovefold-guide-read { display: flex; justify-content: space-between; align-items: center; color: var(--bs-primary); font-weight: 600; }
.rovefold-guide-spotlight:hover img { transform: scale(1.025); }
.rovefold-guide-spotlight:focus-visible, .rovefold-guides-hero .btn:focus-visible, .rovefold-guides-cta .btn:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 5px; }
.rovefold-guides-list { scroll-margin-top: 7rem; }
.rovefold-guides-list h2, .rovefold-guides-cta h2, .rovefold-hub > .container > h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 600; line-height: 1.15; letter-spacing: -.035em; }
.rovefold-guide-media { border-radius: 1.15rem; }
.rovefold-guide-copy :is(h2, h3) { font-weight: 600; letter-spacing: -.02em; }
.rovefold-guide-copy > p:not(.rovefold-guide-date) { color: #706b65; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rovefold-guides-cta { padding-block: clamp(2.5rem, 5vw, 4rem); background: #eef0e9; }
.rovefold-guides-cta-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.rovefold-guides-cta-grid > img { width: 100%; max-width: 30rem; height: auto; justify-self: center; }
.rovefold-guides-hero .btn, .rovefold-guides-cta .btn { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 3.25rem; border-radius: .85rem; font-size: .95rem; letter-spacing: 0; padding: .85rem 1.4rem; }
@media (max-width: 767px) {
  .rovefold-guides-hero-grid, .rovefold-guides-cta-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .rovefold-guides-hero h1, .rovefold-guides-intro, .rovefold-guides-cta p { max-width: none; }
  .rovefold-guides-hero h1 { font-size: clamp(2.5rem, 8vw, 3.8rem); }
  .rovefold-guides-hero .btn, .rovefold-guides-cta .btn { width: 100%; }
  .rovefold-guides-cta-grid > img { max-width: 22rem; }
}
@media (prefers-reduced-motion: reduce) { .rovefold-guide-spotlight-media img { transition: none; } }

/* A compact guide index and a single continuous surface for the Rovefold blog. */
.rovefold-guides-heading { font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; line-height: 1.15; letter-spacing: -.035em; margin-bottom: .75rem; }
.rovefold-guides-summary { color: #706b65; margin-bottom: 2rem; font-size: 1.05rem; }
body.theme-profile--brand-adaptive .rovefold-guides-cta,
body.theme-profile--brand-adaptive .site-footer,
body.theme-profile--brand-adaptive .site-footer__copyright,
body.theme-profile--brand-adaptive .site-footer__legal { background: var(--bs-body-bg, #faf8f5) !important; }
body.theme-profile--brand-adaptive .site-footer__legal,
body.theme-profile--brand-adaptive .site-footer__legal a,
body.theme-profile--brand-adaptive .site-footer__legal button { color: #626761; }
body.theme-profile--brand-adaptive .site-footer { border-top: 1px solid #e4e1d8; }
body.theme-profile--brand-adaptive .site-header-actions { align-items: center; gap: .5rem; }
body.theme-profile--brand-adaptive .site-header-actions > .nav-item { display: flex; align-items: center; }
body.theme-profile--brand-adaptive .navbar-nav-scroll .nav-link { text-transform: none; }
body.theme-profile--brand-adaptive .rovefold-header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .65rem 1rem; line-height: 1.2; letter-spacing: 0; margin: 0; text-align: center; }
body.theme-profile--brand-adaptive .site-header-actions .nav-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; }
body.theme-profile--brand-adaptive .site-side-panel-toggle svg { flex: none; }
.rovefold-header-cta__short { display: none; }
/* On a phone the header is one row: logo, a one-line itineraries button, search and the menu. The side panel only repeats the menu,
   search and the itineraries link, so its toggle is desktop-only. */
@media(max-width: 575px) {
  body.theme-profile--brand-adaptive .site-header .navbar > .container { flex-wrap: nowrap; gap: .5rem; }
  body.theme-profile--brand-adaptive .site-header-actions { gap: .15rem; }
  body.theme-profile--brand-adaptive .rovefold-header-cta { min-height: 2.5rem; padding: .5rem .85rem; white-space: nowrap; font-size: .85rem; }
  .rovefold-header-cta__long { display: none; }
  .rovefold-header-cta__short { display: inline; }
  body.theme-profile--brand-adaptive .site-header-actions > .nav-item:has(.site-side-panel-toggle) { display: none; }
}

body.theme-profile--brand-adaptive[data-theme-footer="light-grouped"] .site-footer.footer-sticky,
body.theme-profile--brand-adaptive[data-theme-footer="light-grouped"] .site-footer .site-footer__copyright {
    background: var(--bs-body-bg, #faf8f5) !important;
}

/* Rovefold guide collections share the homepage article layout. */
body.theme-profile--brand-adaptive .rovefold-guide-collection { padding-block: clamp(1.5rem, 3vw, 2rem) 1.5rem; }
body.theme-profile--brand-adaptive .rovefold-guides-list { padding-block: clamp(1.5rem, 3vw, 2rem) 1.5rem; }
body.theme-profile--brand-adaptive .rovefold-guides-cta { padding-block: 1.5rem clamp(2rem, 4vw, 3rem); }
.rovefold-collection-header { margin-bottom: 1.5rem; }
.rovefold-collection-header h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; font-weight: 600; letter-spacing: -.035em; text-wrap: balance; margin: 0; }
.rovefold-collection-header p { max-width: 65ch; margin: .75rem 0 0; color: #706b65; line-height: 1.65; }
.rovefold-guide-pagination { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.rovefold-guide-pagination a, .rovefold-guide-pagination span { display: grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; border-radius: .7rem; text-decoration: none; color: var(--bs-primary); }
.rovefold-guide-pagination [aria-current] { background: var(--bs-primary); color: #fff; }
.rovefold-guide-pagination a:hover { background: #eee9df; }
.rovefold-guide-pagination a:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 3px; }

.rovefold-guide-copy h2 { font-size: 1.35rem; line-height: 1.25; }

.rovefold-guide-copy > p:last-child { margin-bottom: 0; }

/* Wider Rovefold article measure and related reading. */
body.theme-profile--brand-adaptive[data-theme-article="readable"] .post-prose { max-width: 100%; width: 100%; }
.rovefold-related-guides { margin-block: 2.5rem; }
.rovefold-related-guides > h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1.25rem; }
.rovefold-related-guides__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.rovefold-related-guide { display: flex; flex-direction: column; min-width: 0; color: var(--bs-heading-color); text-decoration: none; border-radius: 1rem; overflow: hidden; background: #f0ece5; transition: background-color 180ms ease; }
.rovefold-related-guide__copy { display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.rovefold-related-guide h3 { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.3; margin: 0 0 1rem; text-wrap: pretty; }
.rovefold-related-guide__copy > span { display: flex; justify-content: space-between; gap: 1rem; margin-top: auto; color: var(--bs-primary); font-weight: 600; }
.rovefold-related-guide:hover { background: #e8e3d9; }
.rovefold-related-guide:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 4px; }
@media (max-width: 575px) { .rovefold-related-guides__grid { grid-template-columns: minmax(0, 1fr); } }

/* Shared Rovefold information surfaces, including article and author pages. */
body.theme-profile--brand-adaptive .rovefold-author-card,
body.theme-profile--brand-adaptive[data-theme-article="readable"] .article-sidebar-newsletter {
  border: 0;
  border-radius: 1.25rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  background: #f0ece5;
}
body.theme-profile--brand-adaptive .rovefold-author-card > div:last-child { flex: 1; min-width: 0; }
body.theme-profile--brand-adaptive .rovefold-author-card .d-sm-flex { gap: 1.25rem; align-items: flex-start !important; }
body.theme-profile--brand-adaptive .rovefold-author-card :is(h1, h2) { font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.2; }
body.theme-profile--brand-adaptive .rovefold-author-card .btn { flex-shrink: 0; }
body.theme-profile--brand-adaptive[data-theme-article="readable"] :is(.article-note, .article-sources, .article-toc--mobile, .article-newsletter, .article-promo) { border-radius: 1rem; }

body.theme-profile--brand-adaptive .rovefold-author-card { display: flex; gap: 1.5rem; }
.rovefold-author-card__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem 2rem; }
.rovefold-author-card__bio { max-width: 60ch; margin: .75rem 0 0; line-height: 1.6; text-wrap: pretty; color: #706b65; }
.rovefold-author-card__link { color: var(--bs-primary); font-size: .9rem; font-weight: 600; padding-block: .5rem; text-underline-offset: .2em; }
.rovefold-article-tags { margin-block: 1.5rem 2rem; }
.rovefold-article-tags h2 { font-size: 1rem; font-weight: 600; margin: 0 0 .75rem; }
.rovefold-article-tags ul { display: flex; flex-wrap: wrap; gap: .65rem; list-style: none; margin: 0; padding: 0; }
.rovefold-article-tags a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .6rem 1rem; border-radius: .75rem; background: #e8eeeb; color: var(--bs-primary); font-size: .9rem; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; transition: background-color 180ms ease; }
.rovefold-article-tags a:hover { background: #dbe5e0; }
.rovefold-article-tags a:focus-visible, .rovefold-author-card__link:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 4px; }
body.theme-profile--brand-adaptive[data-theme-article="readable"] :is(.article-verification, .article-table-scroll, .article-faq__item, .article-faq__legacy .accordion-item, .article-faq__summary, .article-faq__legacy .accordion-button) { border-radius: 1rem; }
@media (max-width: 575px) {
  .rovefold-author-card__header { grid-template-columns: minmax(0, 1fr); }
  body.theme-profile--brand-adaptive .rovefold-author-card { flex-direction: column; }
  .rovefold-author-card__link { justify-self: start; }
}

/* Article closure: quiet attribution, visual recommendations, then signup. */
.rovefold-article-endnotes { margin-block: 2rem 2.5rem; }
body.theme-profile--brand-adaptive .rovefold-article-endnotes .rovefold-author-card { background: transparent; padding: 0; border-radius: 0; margin-block: 0 !important; }
body.theme-profile--brand-adaptive .rovefold-article-endnotes .rovefold-author-card h2 { font-size: 1.25rem; }
.rovefold-article-endnotes .rovefold-article-tags { margin-block: 1.25rem 0; }
.rovefold-article-endnotes .rovefold-article-tags h2 { display: none; }
.rovefold-related-guide { background: transparent; overflow: visible; }
.rovefold-related-guide__copy { padding: 1rem 0 0; }
.rovefold-related-guide:hover { background: transparent; }
.rovefold-related-guide:hover h3 { color: var(--bs-primary); }
.post-prose-column > .rovefold-related-guides { margin-bottom: 0; }
@media (max-width: 991.98px) {
  .post-prose-column:has(.rovefold-article-endnotes) { margin-bottom: 0 !important; }
}

/* Shared utility pages: compact headings, readable content and focused forms. */
body.theme-profile--brand-adaptive .rovefold-utility-page,
body.theme-profile--brand-adaptive .legal-page { padding-block: clamp(1.5rem, 3vw, 2rem) 3rem; }
.rovefold-utility-content { width: 100%; max-width: 52rem; margin-inline: 0; }
/* Forms share the reading width of the other text pages; only listings use the full container. */
.rovefold-utility-content--form { max-width: 52rem; }

/* Narrow text pages pair the reading column with a shared aside instead of leaving the second half empty. */
.rovefold-utility-aside { display: grid; align-content: start; gap: 1.25rem; max-width: 52rem; margin-top: 2.5rem; }
.rovefold-utility-aside > * { margin-bottom: 0; }
/* Two distinct weights instead of twin cards: the quiet hub-card surface for the newsletter, the accent surface for the itinerary handoff. */
body.theme-profile--brand-adaptive .rovefold-utility-aside .article-sidebar-newsletter { border: 1px solid var(--theme-border, rgba(0, 0, 0, .08)); background: var(--theme-surface, #fff); }
.rovefold-aside-card { --aside-pad: clamp(1.25rem, 3vw, 2rem); overflow: hidden; padding: var(--aside-pad); border-radius: 1.25rem; background: var(--theme-primary, #1b5e5a); color: #fff; }
body.theme-profile--brand-adaptive .rovefold-aside-card__title { margin-bottom: .45rem; color: #fff; font-size: 1.05rem; }
.rovefold-aside-card__text { margin-bottom: 1.1rem; color: rgba(255, 255, 255, .82); font-size: .88rem; line-height: 1.55; }
.rovefold-aside-card__link { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; gap: .55rem; border-radius: .85rem; padding: .7rem 1.2rem; background: #fff; color: var(--theme-primary, #1b5e5a); font-size: .88rem; font-weight: 650; text-decoration: none; transition: box-shadow .18s ease, transform .18s ease; }
.rovefold-aside-card__link::after { content: '\2192'; transition: transform .18s ease; }
.rovefold-aside-card__link:hover { color: var(--theme-primary, #1b5e5a); box-shadow: 0 .6rem 1.4rem rgba(15, 33, 30, .28); transform: translateY(-1px); }
.rovefold-aside-card__link:hover::after { transform: translateX(.2rem); }
.rovefold-aside-card__link:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
/* The route illustration is a wide scene that neither crops nor scales into a sidebar card, so the card carries the brand mark as a watermark instead. */
.rovefold-aside-card--marked { position: relative; }
.rovefold-aside-card--marked > * { position: relative; z-index: 1; }
.rovefold-aside-card--marked::after { content: ''; position: absolute; right: -1.25rem; bottom: -1.75rem; z-index: 0; width: 9.5rem; height: 9.5rem; background: url('../images/brand/rovefold-mark-white.svg') center / contain no-repeat; opacity: .16; }
/* Two columns only once the container can host the 52rem column plus a usable aside. */
@media (min-width: 1200px) {
  .rovefold-utility-layout { display: grid; grid-template-columns: minmax(0, 52rem) minmax(15rem, 1fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
  .rovefold-utility-aside { position: sticky; top: 5.5rem; margin-top: 0; }
}
.rovefold-utility-heading { margin-bottom: 1.5rem; }
.rovefold-utility-heading h1, .legal-page__header h1, .rovefold-utility-content > h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; line-height: 1.12; letter-spacing: -.035em; }
.rovefold-utility-heading p { max-width: 60ch; margin: .85rem 0 0; color: #706b65; line-height: 1.65; }
.rovefold-form-surface { padding: clamp(1.25rem, 3vw, 2rem); border-radius: 1.25rem; background: #f0ece5; margin-top: 1.5rem; }
body.theme-profile--brand-adaptive .rovefold-utility-page :is(.form-control, .form-select) { border: 1px solid #cbc9c1; border-radius: .65rem; background: #fffdf9; min-height: 2.75rem; padding: .7rem .85rem; }
body.theme-profile--brand-adaptive .rovefold-utility-page :is(.form-control, .form-select):focus { border-color: var(--bs-primary); outline: 2px solid var(--bs-primary); outline-offset: 2px; box-shadow: none; }
body.theme-profile--brand-adaptive .rovefold-utility-page .btn { border-radius: .75rem; min-height: 2.75rem; padding: .7rem 1.1rem; letter-spacing: 0; }
.rovefold-utility-page a:not(.btn) { color: var(--bs-primary); text-underline-offset: .2em; }
.rovefold-utility-page .form-label { font-weight: 500; }
.rovefold-utility-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.rovefold-search-form { max-width: 38rem; margin-bottom: 2rem; }
.rovefold-search-results { overflow-wrap: anywhere; }
body.theme-profile--brand-adaptive .legal-page__content section { padding-block: 0; }
body.theme-profile--brand-adaptive .legal-page__content section + section { border: 0; padding-top: 0; margin-top: 2rem; }
.legal-page__header { margin-bottom: 2rem; }
.legal-page__toc { border: 0; border-radius: 1rem; background: #f0ece5; }
.legal-page__eyebrow { text-transform: none; letter-spacing: 0; font-weight: 600; }
.legal-callout { border: 0; border-radius: 1rem; }
.legal-page a { color: var(--bs-primary); text-underline-offset: .2em; }

body.theme-profile--brand-adaptive .rovefold-search-results .card { border: 0; border-radius: 1rem; background: #f0ece5; }
body.theme-profile--brand-adaptive .rovefold-form-surface .row > [class*="col-"] { margin-bottom: 0; }
.rovefold-utility-page .input-group { gap: .5rem; }

.rovefold-search-page .rovefold-utility-content { max-width: none; }
.rovefold-search-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, .45fr); align-items: center; gap: 1.5rem; padding: clamp(1.5rem, 4vw, 2.5rem); background: #f0ece5; border-radius: 1.5rem; }
.rovefold-search-intro h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.12; letter-spacing: -.035em; margin-bottom: 1rem; }
.rovefold-search-intro p { max-width: 54ch; color: #706b65; line-height: 1.65; margin-bottom: 1.5rem; }
.rovefold-search-intro > img { width: 100%; height: auto; }
.rovefold-search-intro .rovefold-search-form { max-width: none; margin-bottom: 1rem; }
.rovefold-search-suggestions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; font-size: .85rem; }
.rovefold-search-suggestions > span { width: 100%; color: #706b65; }
.rovefold-search-suggestions a { padding-block: .35rem; text-decoration: underline; text-underline-offset: .2em; }
.rovefold-search-browse { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; margin-top: 2rem; }
.rovefold-search-browse h2 { font-size: 1.2rem; margin-bottom: .5rem; }
.rovefold-search-browse p { color: #706b65; margin: 0; }
.rovefold-search-browse > a { flex-shrink: 0; font-weight: 600; }
.rovefold-search-intro--results { grid-template-columns: minmax(0, 1fr); }
.rovefold-search-page .rovefold-search-results { margin-top: 2rem; }
.rovefold-search-page a:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 3px; }
@media (max-width: 767px) { .rovefold-search-intro { grid-template-columns: minmax(0, 1fr); } .rovefold-search-intro > img { display: none; } .rovefold-search-browse { align-items: flex-start; flex-direction: column; gap: 1rem; } }

/* Search results reuse the guide collection cards; only the result count is search-specific. */
.rovefold-search-count { font-size: 1.2rem; margin: 0 0 1.5rem; }
.rovefold-search-count span { font-weight: 400; color: #706b65; }
body.theme-profile--brand-adaptive .site-footer__copyright .row { margin-bottom: 0 !important; padding-block: 1.25rem .5rem !important; }
body.theme-profile--brand-adaptive .site-footer__copyright .row > .col-12 { margin-bottom: 0 !important; }
body.theme-profile--brand-adaptive .site-footer__legal { padding-block: .5rem 1.25rem; }
/* TRV-0011: editorial discovery and the matched, editable route. */
body.theme-profile--brand-adaptive .rovefold-blog-intro { padding: 1.5rem 0 0; }
.rovefold-blog-intro__layout { display: grid; grid-template-columns: 1.2fr 1fr; overflow: hidden; border-radius: 1.5rem; background: #f0ece4; }
.rovefold-blog-intro__copy { align-self: center; padding: clamp(1.5rem, 4vw, 3rem); }
.rovefold-blog-intro h1 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.08; letter-spacing: -.04em; text-wrap: balance; }
.rovefold-blog-intro__copy > p { max-width: 48ch; margin: 1.4rem 0 1.6rem; font-size: 1rem; line-height: 1.65; text-wrap: pretty; color: #706b65; }
.rovefold-blog-intro__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
.rovefold-blog-intro__actions a { font-weight: 600; color: var(--theme-primary, #1b5e5a); text-underline-offset: .25em; }
.rovefold-blog-intro__actions .btn { color: #fff; }
.rovefold-blog-intro__feature { position: relative; display: block; min-width: 0; min-height: 27rem; overflow: hidden; color: #fff; }
.rovefold-blog-intro__feature img { width: 100%; height: 100%; position: absolute; object-fit: cover; }
.rovefold-blog-intro__caption { position: absolute; inset: auto 0 0; display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; padding: 4rem 1.75rem 1.75rem; background: linear-gradient(transparent, rgba(20, 43, 39, .88)); }
.rovefold-blog-intro__caption > span:first-child { grid-column: 1 / -1; font-size: .8rem; }
.rovefold-blog-intro__caption strong { font-size: 1.15rem; line-height: 1.3; text-wrap: balance; }
.rovefold-blog-intro__feature:hover { color: #fff; }
.rovefold-blog-intro a:focus-visible { outline: 3px solid var(--theme-primary, #1b5e5a); outline-offset: 4px; }
.rovefold-blog-intro__feature:focus-visible { outline-offset: -5px; outline-color: white; }
body.theme-profile--brand-adaptive .post-prose .rovefold-matched-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; margin: 2.5rem 0; padding: clamp(1.4rem, 3vw, 2rem); border-radius: 1.5rem; background: #f0ece4; }
body.theme-profile--brand-adaptive .post-prose .rovefold-matched-card p { margin: 0; }
body.theme-profile--brand-adaptive .post-prose .rovefold-matched-card h2 { margin: .65rem 0 .85rem; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.rovefold-matched-card__eyebrow { color: var(--theme-primary, #1b5e5a); font-size: .8rem; font-weight: 600; }
.rovefold-matched-card__description { max-width: 45ch; font-size: 1rem; line-height: 1.6; color: #706b65; }
.rovefold-matched-card__facts { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1.2rem; font-size: .85rem; color: #706b65; }
.rovefold-matched-card__facts strong { color: var(--theme-primary, #1b5e5a); }
.rovefold-matched-card__action { display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; }
.rovefold-matched-card__price { font-size: 2rem; font-weight: 600; letter-spacing: -.025em; }
.rovefold-matched-card__price span { font-size: .85rem; font-weight: 400; letter-spacing: 0; color: #706b65; }
.rovefold-matched-card__reassurance { font-size: .75rem; color: #706b65; }
body.theme-profile--brand-adaptive .rovefold-author-card--profile { margin-bottom: 2.5rem !important; }
#planning-guides, #explore-by-region { scroll-margin-top: 7rem; }
@media (max-width: 767px) {
    /* On a phone the hero is only an introduction: headline, what Rovefold is and one action. The featured guide repeats the
       cards below and the itineraries link repeats the header button, so both stay desktop-only. */
    body.theme-profile--brand-adaptive .rovefold-blog-intro { padding-top: 1rem; }
    .rovefold-blog-intro__layout { grid-template-columns: 1fr; border-radius: 1.25rem; }
    .rovefold-blog-intro__copy { padding: 1.25rem; }
    .rovefold-blog-intro h1 { font-size: 1.5rem; line-height: 1.15; letter-spacing: -.03em; }
    .rovefold-blog-intro__copy > p { margin: .6rem 0 1rem; font-size: .9rem; line-height: 1.5; }
    .rovefold-blog-intro__actions a:not(.btn), .rovefold-blog-intro__feature { display: none; }
    body.theme-profile--brand-adaptive .rovefold-blog-intro__actions .btn { min-height: 2.75rem; }
    body.theme-profile--brand-adaptive .post-prose .rovefold-matched-card { grid-template-columns: 1fr; gap: 1.5rem; }
    .rovefold-matched-card__action { align-items: stretch; }
    .rovefold-matched-card__action .btn { display: flex; justify-content: space-between; gap: .75rem; }
}

/* Keep CTA geometry independent of prose links and inherited button line heights. */
body.theme-profile--brand-adaptive .rovefold-blog-intro__actions .btn,
body.theme-profile--brand-adaptive .post-prose .rovefold-matched-card__action .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 3.25rem;
    height: auto;
    padding: .875rem 1.25rem;
    border: 0;
    border-radius: 1rem;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: normal;
    text-align: center;
    text-decoration: none;
}


.rovefold-matched-card__duration { white-space: nowrap; }
.rovefold-blog-intro__copy:only-child { grid-column: 1 / -1; }

.rovefold-author-card__description { margin-top: .85rem; }
.rovefold-author-card__description > :last-child { margin-bottom: 0; }
body.theme-profile--brand-adaptive .rovefold-author-card--profile { padding-bottom: 1.5rem; }

/* The hero already separates the article, so the body does not need the full generic section space above it. */
body.theme-profile--brand-adaptive .rovefold-article-body { padding-top: clamp(1.75rem, 3vw, 2.75rem); }

/* Route index: compact rows on the desktop rail, a clear active marker and a visible edge when the list scrolls. */
.article-rail .article-toc__list li + li { margin-top: .1rem; }
.article-rail .article-toc__list a { min-height: 2rem; align-items: center; gap: .1rem; padding: .3rem .5rem .3rem 0; border-left: 2px solid transparent; border-radius: .35rem; padding-left: .6rem; margin-left: -.6rem; transition: background-color .15s ease, border-color .15s ease; }
.article-rail .article-toc__list a:hover { background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 7%, transparent); }
.article-rail .article-toc__list a.is-active { border-left-color: var(--theme-primary, #1b5e5a); background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 9%, transparent); font-weight: 600; }
.article-rail .article-toc--desktop { scrollbar-color: color-mix(in srgb, var(--theme-primary, #1b5e5a) 35%, transparent) transparent; }
/* Fades mark the cut edges only while there is more index in that direction. */
.article-rail .article-toc--desktop.has-scroll-start { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 2rem); mask-image: linear-gradient(to bottom, transparent 0, #000 2rem); }
.article-rail .article-toc--desktop.has-scroll-end { -webkit-mask-image: linear-gradient(to top, transparent 0, #000 2rem); mask-image: linear-gradient(to top, transparent 0, #000 2rem); }
.article-rail .article-toc--desktop.has-scroll-start.has-scroll-end { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 2rem, #000 calc(100% - 2rem), transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 2rem, #000 calc(100% - 2rem), transparent 100%); }

/* Without a sources block the date paragraph kept its bottom margin, leaving the box padded unevenly. */
body.theme-profile--brand-adaptive .post-prose .article-verification > :last-child { margin-bottom: 0; }

/* FAQ: the tinted surface belonged to the summary alone, so an open answer fell outside it. The item owns the surface instead. */
body.theme-profile--brand-adaptive .article-faq__items { gap: .35rem; }
body.theme-profile--brand-adaptive .article-faq__item { overflow: hidden; border-radius: 1rem; transition: background-color .18s ease; }
body.theme-profile--brand-adaptive .article-faq__item[open] { background: #f2ede5; }
body.theme-profile--brand-adaptive .article-faq__summary { padding: 1rem 1.25rem; border-radius: 1rem; }
body.theme-profile--brand-adaptive .article-faq__item[open] .article-faq__summary { background: transparent; }
body.theme-profile--brand-adaptive .article-faq__item:not([open]) .article-faq__summary:hover { background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 6%, transparent); }
body.theme-profile--brand-adaptive .article-faq__item[open] .article-faq__question { color: var(--theme-primary, #1b5e5a); }
/* The answer keeps the question's text column: 1.25rem padding + 2.5rem index + .75rem gap. */
body.theme-profile--brand-adaptive .article-faq__answer { max-width: 68ch; padding: 0 1.25rem 1.15rem 4.5rem; }
@media (max-width: 575.98px) {
  body.theme-profile--brand-adaptive .article-faq__summary { padding-inline: .9rem; }
  body.theme-profile--brand-adaptive .article-faq__answer { padding: 0 .9rem 1rem .9rem; }
}

/* Legacy bootstrap accordion follows the same surface, spacing and chevron as the details variant. */
body.theme-profile--brand-adaptive .article-faq__legacy { gap: .35rem; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-item { overflow: hidden; border-radius: 1rem; transition: background-color .18s ease; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-item:has(.accordion-button:not(.collapsed)) { background: #f2ede5; }
/* The header is an h3, so article typography adds 49px above and 19.6px below inside the card. */
body.theme-profile--brand-adaptive .post-prose .article-faq__legacy .accordion-header { margin: 0; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button { padding: 1rem 1.25rem; border-radius: 1rem; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button:not(.collapsed) { background: transparent; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button.collapsed:hover { background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 6%, transparent); }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button:not(.collapsed) .article-faq__question { color: var(--theme-primary, #1b5e5a); }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-body { max-width: 68ch; padding: 0 1.25rem 1.15rem 4.5rem; }
/* Bootstrap draws its chevron as a background image; the details variant draws it with borders. */
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button::after { width: .6rem; height: .6rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; background-image: none; transform: rotate(45deg) translateY(-.1rem); transition: transform .18s ease; }
body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button:not(.collapsed)::after { background-image: none; transform: rotate(225deg); }
@media (max-width: 575.98px) {
  body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button { padding-inline: .9rem; }
  body.theme-profile--brand-adaptive .article-faq__legacy .accordion-body { padding: 0 .9rem 1rem .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  body.theme-profile--brand-adaptive .article-faq__legacy .accordion-button::after { transition: none; }
}

/* Portrait article images render taller than the viewport at full column width; the editor sets width inline, so it needs overriding. */
body.theme-profile--brand-adaptive .post-prose :is(figure, p) > img {
  display: block;
  width: auto !important;
  max-width: 100%;
  max-height: 80vh;
  height: auto !important;
  margin-inline: auto;
}

/* The hero took the full generic section space top and bottom, which made it 654px tall before the article even started. */
body.theme-profile--brand-adaptive[data-theme-article="readable"] .post-inner-intro {
  min-height: clamp(17rem, 30vw, 26rem) !important;
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

/* Responsive media wrappers: the shared ui-image partial adds a wrapper element between the
   card shell and the img, so the existing geometry rules are re-pointed at that wrapper.
   Broken images keep the Rovefold placeholder instead of the generic ui-image icon tile. */
.rovefold-blog-intro__feature > .ui-image { position: absolute; inset: 0; }
.rovefold-guide-media > .ui-image { width: 100%; height: 100%; }
.rovefold-related-guide > .ui-image { width: 100%; border-radius: 1rem; overflow: hidden; }
/* Suppress the generic icon tile and hide the failed picture, so the Rovefold placeholder
   behind it shows. Both rules are unscoped: the inherited ones that hide a missing picture
   only apply under the brand-adaptive profile, and the placeholder is used in every profile. */
.rovefold-guide-media .ui-image__fallback,
.rovefold-related-guide .ui-image__fallback { display: none !important; }
.rovefold-guide-media .ui-image--missing picture,
.rovefold-related-guide .ui-image--missing picture { visibility: hidden; }

/* Share row. Pinterest is the only labelled action because it is the one channel
   that converts itinerary content without domain authority; the rest stay icon-only
   so the row does not compete with the author card below it. The pin button uses the
   theme primary rather than Pinterest red — the icon and label already carry the
   recognition, and brand red would be the loudest thing on a calm page. */
.rovefold-share { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: 0 0 2rem; }
.rovefold-share__label { margin: 0; color: #706b65; font-size: .8rem; font-weight: 600; letter-spacing: .01em; }
.rovefold-share__list { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.rovefold-share__list > li { display: flex; }

.rovefold-share__pin,
.rovefold-share__icon { display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 999px; text-decoration: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }

.rovefold-share__pin { gap: .5rem; padding: .5rem 1rem; background: var(--theme-primary, #1b5e5a); color: #fff; font-size: .875rem; font-weight: 600; }
.rovefold-share__pin:hover,
.rovefold-share__pin:focus-visible { background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 85%, #000); color: #fff; }

.rovefold-share__icon { width: 2.5rem; height: 2.5rem; padding: 0; background: #f0ece4; color: #4a4540; font-size: 1.05rem; line-height: 1; }
.rovefold-share__icon:hover,
.rovefold-share__icon:focus-visible { background: color-mix(in srgb, var(--theme-primary, #1b5e5a) 12%, #f0ece4); color: var(--theme-primary, #1b5e5a); }


/* The status line holds its own row so announcing a result never reflows the buttons. */
.rovefold-share__status { flex-basis: 100%; min-height: 1.25rem; margin: 0; color: #706b65; font-size: .8rem; }
.rovefold-share[data-share-state="failed"] .rovefold-share__status { color: #8a3324; }

@media (max-width: 575.98px) {
  .rovefold-share { gap: .6rem; }
  .rovefold-share__label { flex-basis: 100%; }
  .rovefold-share__list { width: 100%; }
  /* Five controls do not fit one phone row, and wrapping left a single orphan.
     The priority action takes the full row instead and the icons sit below it. */
  .rovefold-share__list > li:first-child { flex-basis: 100%; }
  .rovefold-share__pin { width: 100%; }
  /* The freed space buys comfortable touch targets. */
  .rovefold-share__icon { width: 2.75rem; height: 2.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .rovefold-share__pin,
  .rovefold-share__icon { transition: none; }
}
