/*
 * pcbr-pages.css — generated by scripts/build-css.sh. Do not edit.
 * Edit the sources in assets/css/src/ and re-run the script.
 */

/* == src/pages.css == */
/**
 * Page templates: home, experiences, occasion, large groups, concierge. Tokens only.
 */
/* Page-top rhythm: the hero and the page head (experiences, concierge) start the same distance below the header. */
.pcbr-hero, .pcbr-page__head { padding-top: var(--pcbr-space-7); }
.pcbr-hero { display: grid; gap: var(--pcbr-space-4); padding-bottom: var(--pcbr-space-6); }
.pcbr-hero__title { margin: 0; font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-hero__lead { margin: 0; max-width: 640px; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink-2); }
.pcbr-hero__eyebrow { margin: 0; }
.pcbr-hero__media { border-radius: var(--pcbr-r-surface); overflow: hidden; background: var(--pcbr-surface-3); }
.pcbr-hero__meta { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-1) var(--pcbr-space-3); margin: 0; padding: 0; list-style: none; font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-3); }
.pcbr-hero__finder { display: flex; flex-wrap: wrap; align-items: end; gap: var(--pcbr-space-3); }
.pcbr-hero__finder .pcbr-field { min-width: 160px; flex: 1 1 220px; }
@media (min-width: 1024px) {
  .pcbr-hero, .pcbr-page__head { padding-top: var(--pcbr-space-11); }
  .pcbr-hero { padding-bottom: var(--pcbr-space-9); }
  .pcbr-hero__title { font-size: var(--pcbr-fs-display); line-height: var(--pcbr-lh-display); max-width: 640px; }
}

/* Home hero, video variant (layout-design): the one full-bleed surface on the site. The section
   paints the poster frame as its background so reduced-motion and video-failure states stay a
   photo; the <video> covers on top; the ink scrim (left-weighted, where the text column sits)
   keeps the white H1 and lead readable over bright water. */
.pcbr-hero--video {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; align-items: center; min-height: 480px;
  padding-top: 0; padding-bottom: 0; margin-bottom: var(--pcbr-space-6);
  background-color: var(--pcbr-ink); background-size: cover; background-position: center;
}
.pcbr-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pcbr-hero--video::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(to bottom, rgba(28, 27, 25, .16), rgba(28, 27, 25, .36)),
    linear-gradient(to right, rgba(28, 27, 25, .44), rgba(28, 27, 25, .08) 70%);
}
.pcbr-hero__inner {
  position: relative; z-index: 2; display: grid; gap: var(--pcbr-space-4);
  grid-template-columns: minmax(0, 1fr); /* an implicit auto track sized itself to the 640px children and overflowed phones */
  padding-top: var(--pcbr-space-9); padding-bottom: var(--pcbr-space-9);
}
.pcbr-hero__inner > * { min-width: 0; }
.pcbr-hero--video .pcbr-hero__title { color: var(--pcbr-surface); }
.pcbr-hero--video .pcbr-hero__lead { color: rgba(255, 255, 255, .92); }
.pcbr-hero--video .pcbr-hero__meta { color: rgba(255, 255, 255, .85); }
.pcbr-hero--video .pcbr-hero__meta strong { color: var(--pcbr-surface); font-weight: var(--pcbr-weight-strong); }
.pcbr-hero--video .pcbr-ai-form { max-width: 640px; } /* audit §6.2: finder 640, even on the full-bleed surface */
/* The plugin's enhanced finder on the video surface: its accent browse link disappears against
   the water, so it goes white here; its five chips wrap to a second row, so they scroll in one
   line instead (same hidden-scrollbar pattern as .pcbr-filters__list). */
.pcbr-hero--video .pca-hero-search__label { color: rgba(255, 255, 255, .9); } /* the accent eyebrow vanished against the water too */
.pcbr-hero--video .pca-hero-search__browse { color: var(--pcbr-surface); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-hero--video .pca-hero-search__browse:hover { color: var(--pcbr-surface); opacity: .85; }
.pcbr-hero--video .pca-hero-search__examples { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.pcbr-hero--video .pca-hero-search__examples::-webkit-scrollbar { display: none; }
.pcbr-hero--video .pca-hero-search__chip { flex: 0 0 auto; }
@media (min-width: 1024px) {
  .pcbr-hero--video { min-height: 560px; padding-top: 0; padding-bottom: 0; margin-bottom: var(--pcbr-space-9); }
  .pcbr-hero__inner { padding-top: var(--pcbr-space-11); padding-bottom: var(--pcbr-space-11); }
}
/* The clip is decorative motion: without it the poster background carries the scene. */
@media (prefers-reduced-motion: reduce) {
  .pcbr-hero__video { display: none; }
}

.pcbr-grid--families, .pcbr-families { display: grid; gap: var(--pcbr-space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .pcbr-grid--families, .pcbr-families { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pcbr-space-8); } }

.pcbr-grid--cards { display: grid; gap: var(--pcbr-space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .pcbr-grid--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pcbr-space-8); } }
@media (min-width: 1024px) { .pcbr-grid--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pcbr-finder__field { flex: 1 1 auto; min-width: 0; }
.pcbr-finder-input { width: 100%; }
.pcbr-finder__chips { flex: 1 0 100%; display: flex; flex-wrap: wrap; gap: var(--pcbr-space-3); }
.pcbr-filters { display: grid; gap: var(--pcbr-space-3); }
.pcbr-filters__label { font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); font-weight: var(--pcbr-weight-strong); letter-spacing: var(--pcbr-tracking-label); text-transform: uppercase; color: var(--pcbr-ink-3); }
.pcbr-filters__list {
  list-style: none; margin: 0; margin-inline: calc(-1 * var(--pcbr-gutter));
  padding: 0 var(--pcbr-gutter) var(--pcbr-space-1);
  display: flex; gap: var(--pcbr-space-3); overflow-x: auto; scrollbar-width: none;
}
.pcbr-filters__list::-webkit-scrollbar { display: none; }
.pcbr-filters__list > li { flex: 0 0 auto; }
@media (min-width: 900px) { .pcbr-filters__list { margin-inline: 0; padding: 0; flex-wrap: wrap; overflow: visible; } }
.pcbr-filters__note { margin: 0; font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-3); }

/* Home family cards (pre-v2 markup, retokenised until V4 moves them to .pcbr-card). */
.pcbr-family { display: grid; grid-template-rows: auto 1fr; gap: var(--pcbr-space-3); text-decoration: none; color: inherit; }
.pcbr-family img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--pcbr-r-surface); }
.pcbr-family__title { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-family__from { margin: 0; font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-3); }
.pcbr-family__ladder { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: var(--pcbr-space-2); font-size: var(--pcbr-fs-caption); color: var(--pcbr-ink-3); }
.pcbr-family__ladder li { border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-full); padding: 2px var(--pcbr-space-2); }
.pcbr-family__why { margin: 0; font-size: var(--pcbr-fs-small); color: var(--pcbr-accent-hover); }
.pcbr-family.is-dim { opacity: .55; }

/* Concierge */
.pcbr-concierge { display: grid; gap: var(--pcbr-space-4); max-width: 760px; }
.pcbr-concierge__lead { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink-2); }
.pcbr-concierge__grid { display: grid; gap: var(--pcbr-space-4); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pcbr-field--wide { grid-column: 1 / -1; }
.pcbr-check { display: flex; align-items: center; gap: var(--pcbr-space-3); min-height: var(--pcbr-touch); margin: 0; font-size: var(--pcbr-fs-small); cursor: pointer; }
.pcbr-check input { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--pcbr-accent); }
.pcbr-concierge__summary { display: grid; gap: var(--pcbr-space-2); padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); font-size: var(--pcbr-fs-small); }
.pcbr-concierge__hotel { display: grid; gap: var(--pcbr-space-2); }
.pcbr-concierge__submit { justify-self: start; min-width: 240px; }
.pcbr-concierge__done { display: grid; gap: var(--pcbr-space-3); padding: var(--pcbr-space-6); border-radius: var(--pcbr-r-surface); background: var(--pcbr-accent-soft); }
.pcbr-concierge__status { margin: 0; padding: var(--pcbr-space-3) var(--pcbr-space-4); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); font-size: var(--pcbr-fs-small); }
.pcbr-concierge__status.is-ok { background: var(--pcbr-accent-soft); color: var(--pcbr-ink); }
.pcbr-concierge__status.is-error { background: var(--pcbr-error-soft); color: var(--pcbr-ink); }

/* AI finder (the plugin renders into these). */
.pcbr-ai-form .pca-search-input-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pcbr-space-3); }
.pcbr-ai-form input[type="search"] { flex: 1; min-height: var(--pcbr-control-h); padding: 0 14px; border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control); font: inherit; }
.pcbr-header .pcbr-ai-form { display: none; }
@media (min-width: 1024px) { .pcbr-header .pcbr-ai-form { display: block; max-width: 320px; } }

/* Home, conversion redesign (docs/plans/2026-09-13-homepage-conversion-redesign.md). Static layouts only:
   no carousel, nothing injected after load, native <details> for the answers. */
.pcbr-hero__eyebrow { margin: 0; font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); font-weight: var(--pcbr-weight-strong); letter-spacing: .06em; text-transform: uppercase; color: var(--pcbr-ink-3); }
.pcbr-hero--video .pcbr-hero__eyebrow { color: rgba(255, 255, 255, .9); }
/* PR C: the eyebrow stays on phones as a quiet trust line (owner decision 2026-09-25), the hero gets shorter so the
   first featured card's photo edge reaches the fold, and the price anchor is gone. */
@media (max-width: 599px) {
  .pcbr-hero__eyebrow { font-size: 11px; letter-spacing: .04em; opacity: .85; }
  .pcbr-hero--video { min-height: 400px; }
  .pcbr-hero--video .pcbr-hero__inner { padding-top: var(--pcbr-space-7); padding-bottom: var(--pcbr-space-7); }
  .pcbr-hero--video .pcbr-hero__lead { font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); }
}

/* Trust strip: one row of facts on the sand surface, directly under the hero. */
.pcbr-strip { background: var(--pcbr-surface-2); border-bottom: 1px solid var(--pcbr-line); margin-top: calc(-1 * var(--pcbr-space-6)); margin-bottom: var(--pcbr-space-6); }
.pcbr-strip__list { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-2) var(--pcbr-space-7); margin: 0; padding: var(--pcbr-space-4) 0; list-style: none; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-strip__item { display: inline-flex; align-items: center; gap: var(--pcbr-space-2); }
.pcbr-strip__item::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pcbr-accent); flex: none; }
.pcbr-strip__link { color: var(--pcbr-ink); font-weight: var(--pcbr-weight-strong); }
@media (max-width: 599px) { .pcbr-strip__list { display: grid; gap: var(--pcbr-space-2); } }

/* Group-size bands: the ladder folded into the catalog section as one labelled line. */
.pcbr-bands { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-1) var(--pcbr-space-4); margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-bands__label { font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-bands__step { color: var(--pcbr-ink-2); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-bands__step:hover { color: var(--pcbr-accent-hover); }

/* Card merchandising chip. */
.pcbr-card__label { display: inline-flex; align-self: flex-start; align-items: center; height: 24px; padding: 0 var(--pcbr-space-3); border-radius: var(--pcbr-r-full); background: var(--pcbr-accent-soft); color: var(--pcbr-accent); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); font-weight: var(--pcbr-weight-strong); }

/* Four facts, no cards. */
.pcbr-values { display: grid; gap: var(--pcbr-space-6); margin: 0; padding: 0; list-style: none; }
.pcbr-value { display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: var(--pcbr-space-3); row-gap: var(--pcbr-space-1); }
.pcbr-value__icon { grid-row: 1 / 3; width: 36px; height: 36px; border-radius: 10px; background: var(--pcbr-accent-soft); color: var(--pcbr-accent); display: grid; place-items: center; }
.pcbr-value__title { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); }
.pcbr-value__text { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
@media (min-width: 900px) {
  .pcbr-values { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pcbr-value { grid-template-columns: minmax(0, 1fr); row-gap: var(--pcbr-space-2); }
  .pcbr-value__icon { grid-row: auto; }
}

/* How booking works: a real sequence, so the numbers carry information. */
.pcbr-steps { display: grid; gap: var(--pcbr-space-6); margin: 0; padding: 0; list-style: none; counter-reset: pcbr-step; }
.pcbr-step { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: var(--pcbr-space-3); row-gap: var(--pcbr-space-1); }
.pcbr-step__num { grid-row: 1 / 3; width: 32px; height: 32px; border-radius: 50%; background: var(--pcbr-ink); color: var(--pcbr-surface); display: grid; place-items: center; font-size: var(--pcbr-fs-small); font-weight: var(--pcbr-weight-strong); }
.pcbr-step__title { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); }
.pcbr-step__text { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
@media (min-width: 900px) {
  .pcbr-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pcbr-step { grid-template-columns: minmax(0, 1fr); row-gap: var(--pcbr-space-2); }
  .pcbr-step__num { grid-row: auto; }
}

/* Reviews: quote first, attribution and the public source under it. */
.pcbr-reviews { display: grid; gap: var(--pcbr-space-4); margin: 0; padding: 0; list-style: none; }
.pcbr-review { display: grid; gap: var(--pcbr-space-3); padding: var(--pcbr-space-5); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); }
.pcbr-review__stars { color: var(--pcbr-star); letter-spacing: 2px; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
.pcbr-review__quote { margin: 0; }
.pcbr-review__quote p { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); }
.pcbr-review__quote p::before { content: "\201C"; color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }
.pcbr-review__quote p::after { content: "\201D"; color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }
.pcbr-review__who { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-review__source { font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); color: var(--pcbr-ink-3); }
.pcbr-reviews__all { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--pcbr-space-1) var(--pcbr-space-3); margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
@media (min-width: 900px) { .pcbr-reviews { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Group mechanics list. */
.pcbr-mechanics { display: grid; gap: var(--pcbr-space-3); margin: 0; padding: 0; list-style: none; }
.pcbr-mechanics li { position: relative; padding-left: var(--pcbr-space-6); font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); color: var(--pcbr-ink-2); }
.pcbr-mechanics li::before { content: "\2713"; position: absolute; left: 0; color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }

/* Answers: native disclosure, no script, no shift on load. */
.pcbr-faq { display: grid; border-top: 1px solid var(--pcbr-line); }
.pcbr-faq__item { border-bottom: 1px solid var(--pcbr-line); }
.pcbr-faq__q { display: flex; justify-content: space-between; gap: var(--pcbr-space-4); padding: var(--pcbr-space-4) 0; cursor: pointer; list-style: none; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); }
.pcbr-faq__q::-webkit-details-marker { display: none; }
.pcbr-faq__q::after { content: "+"; color: var(--pcbr-ink-3); font-weight: var(--pcbr-weight-body); flex: none; }
.pcbr-faq__item[open] .pcbr-faq__q::after { content: "\2013"; }
.pcbr-faq__q:focus-visible { outline: none; box-shadow: var(--pcbr-ring-focus); border-radius: var(--pcbr-r-control); }
.pcbr-faq__a { margin: 0; padding: 0 0 var(--pcbr-space-4); max-width: 65ch; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); color: var(--pcbr-ink-2); }
@media (min-width: 900px) { .pcbr-faq--two { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--pcbr-space-8); border-top: 0; } .pcbr-faq--two .pcbr-faq__item:first-child, .pcbr-faq--two .pcbr-faq__item:nth-child(4) { border-top: 1px solid var(--pcbr-line); } }

/* Closing CTA: the two doors, centred. */
.pcbr-closing { justify-items: center; text-align: center; }
.pcbr-closing__title { margin: 0; font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); font-weight: var(--pcbr-weight-strong); }
.pcbr-closing__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pcbr-space-3); width: 100%; }
.pcbr-closing__facts { margin: 0; }
@media (max-width: 599px) { .pcbr-closing__ctas { flex-direction: column; } .pcbr-closing__ctas .pcbr-btn { width: 100%; } }

/* Visual QA 2026-09-13: a lone card keeps card width instead of stretching across an otherwise empty grid.
   (The two-up rule for #easy went with the accordion — that section is static now, see .pcbr-reassure.) */
.pcbr-grid--cards > .pcbr-card:only-child { max-width: 360px; }

/* "Why booking feels easy" (owner review 2026-09-14): the policy reassurance is static, so it reads as a short row
   rather than a second FAQ. Same editorial vocabulary as .pcbr-values — icon, title, one or two lines — with no
   card borders or shadows, so it stays lighter than the merchandising cards above it. */
.pcbr-reassure { display: grid; gap: var(--pcbr-space-6); margin: 0; padding: 0; list-style: none; }
.pcbr-reassure__item { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: var(--pcbr-space-2) var(--pcbr-space-4); }
.pcbr-reassure__icon { grid-row: 1 / 3; width: 36px; height: 36px; border-radius: 10px; background: var(--pcbr-accent-soft); color: var(--pcbr-accent); display: grid; place-items: center; }
.pcbr-reassure__title { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); }
.pcbr-reassure__text { margin: 0; max-width: 40ch; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
@media (min-width: 760px) {
  .pcbr-reassure { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pcbr-space-7); }
  /* align-content: start keeps the three rows packed to the top of each column. Without it the outer grid
     stretches every item to the tallest one and the spare height is shared between the rows, so the titles and
     body copy drift out of line across the columns by however much their text lengths differ. */
  .pcbr-reassure__item { grid-template-columns: 1fr; align-content: start; }
  .pcbr-reassure__icon { grid-row: auto; }
}

/* Occasions with one or two published pages (owner review 2026-09-14): an editorial row, not a merchandising
   section, so a single occasion cannot read as the site's main business. */
.pcbr-occ { display: grid; gap: var(--pcbr-space-3); }
.pcbr-occ__title { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); }
.pcbr-occ__links { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-2) var(--pcbr-space-5); margin: 0; padding: 0; list-style: none; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }

/* Final visual QA (2026-09-13): the groups split showed "See how groups work" twice in one viewport — the copy
   column's tracked button and the shared group-proof partial's own link. On the home page only the tracked one stays. */
#groups .pcbr-group-proof__link { display: none; }
/* "Google Maps" in the reviews links is never broken across lines (Google's text-attribution rule; the same
   markup is used whether or not it ever counts as attribution). */
.pcbr-strip__link span[translate="no"], .pcbr-reviews__all span[translate="no"], .pcbr-reviews__count + a span[translate="no"] { white-space: nowrap; }

/* ---- PR B (2026-09-25): merchandising layers. Tokens only; no script; fixed ratios so nothing shifts. ---- */
/* Featured rail: one card wide with the next card peeking on phones (scroll-snap), the card grid from 600px. */
@media (max-width: 599px) {
  .pcbr-rail[data-pcbr-rail] { display: flex; gap: var(--pcbr-space-3); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pcbr-gutter); margin-inline: calc(-1 * var(--pcbr-gutter)); padding-inline: var(--pcbr-gutter); padding-bottom: var(--pcbr-space-2); -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .pcbr-rail[data-pcbr-rail]::-webkit-scrollbar { display: none; }
  .pcbr-rail[data-pcbr-rail] > .pcbr-card { flex: 0 0 min(84vw, 340px); scroll-snap-align: start; }
  .pcbr-rail[data-pcbr-rail] > .pcbr-card:only-child { flex-basis: 100%; }
}
/* From 600px the rail is the card grid; three columns on desktop so six featured cards plus one more take three rows, not four. */
@media (min-width: 1024px) { .pcbr-rail[data-pcbr-rail].pcbr-grid--families { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pcbr-rail__all { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
/* The trust strip's negative top margin exists to tuck under the hero; mid-page (after the featured cards) it sits flush. */
.pcbr-strip--inline { margin-top: 0; }
/* Family tiles: two per row on phones, up to six across on desktop; 4:3 media holds its space before the image. */
.pcbr-tiles { display: grid; gap: var(--pcbr-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .pcbr-tiles { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--pcbr-space-4); } }
.pcbr-tile { display: grid; gap: var(--pcbr-space-2); color: var(--pcbr-ink); text-decoration: none; border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); overflow: hidden; background: var(--pcbr-surface); }
.pcbr-tile:hover .pcbr-tile__title, .pcbr-tile:focus-visible .pcbr-tile__title { color: var(--pcbr-accent-hover); }
.pcbr-tile__media { display: block; aspect-ratio: 4 / 3; background: var(--pcbr-surface-3); }
.pcbr-tile__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pcbr-tile__body { display: grid; gap: var(--pcbr-space-1); padding: 0 var(--pcbr-space-3) var(--pcbr-space-3); }
.pcbr-tile__title { font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); }
.pcbr-tile__meta { font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); color: var(--pcbr-ink-3); }
/* Group proof on phones: the headline and the summary stay, the example table is desktop-only (audit §6.5). */
@media (max-width: 899px) {
  .pcbr-group-proof--compact .pcbr-group-proof__table { display: none; }
  .pcbr-group-proof--compact .pcbr-group-proof__summary::after { content: " · " attr(data-pcbr-summary-note); }
}
.pcbr-occ--cards { display: grid; gap: var(--pcbr-space-3); }
@media (min-width: 900px) { .pcbr-reassure--four { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pcbr-space-6); } }

/* ---- Flexible booking (2026-10-03): the payment story, one section, two facts side by side. ---- */
/* Reuses the reassure vocabulary (36px tinted icon, lead-size title) so it reads as part of the same system
   rather than a promotional panel. One column on phones, two from 760px; the lists are facts, not features,
   so they stay plain text with no bullets and no card chrome competing with the cards above. */
.pcbr-flexpay__cols { display: grid; gap: var(--pcbr-space-7); margin-top: var(--pcbr-space-6); }
.pcbr-flexpay__title { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: var(--pcbr-space-3); margin: 0 0 var(--pcbr-space-3); font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); }
.pcbr-flexpay__icon { width: 36px; height: 36px; border-radius: 10px; background: var(--pcbr-accent-soft); color: var(--pcbr-accent); display: grid; place-items: center; }
.pcbr-flexpay__list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--pcbr-space-2); color: var(--pcbr-ink-2); }
.pcbr-flexpay__note { margin: var(--pcbr-space-3) 0 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-3); }
.pcbr-flexpay__ctas { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-3); margin-top: var(--pcbr-space-7); }
@media (min-width: 760px) {
  .pcbr-flexpay__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pcbr-space-8); align-items: start; }
}

/* Homepage content and footer use a wider grid from 1440px (owner, 2026-10-05).
   The shared header follows that grid site-wide in shell.css. Exclude it here without adding specificity;
   inner-page content keeps the standard --pcbr-container measure. */
@media (min-width: 1440px) {
  .pcbr-home-brand .pcbr-container:where(:not(.pcbr-header__inner)) { max-width: calc(var(--pcbr-home-inventory) + 2 * var(--pcbr-gutter)); }
}
/* CRO refinement (owner, 2026-10-05): the homepage content now uses that container's full width (1280px at 1440+,
   about 14% more than the old 1120 measure) and 1200px from 1280px; text blocks keep their own reading measures. */
@media (min-width: 1280px) and (max-width: 1439.98px) {
  .pcbr-home-brand .pcbr-container:where(:not(.pcbr-header__inner)) { max-width: calc(1200px + 2 * var(--pcbr-gutter)); }
}

/* Owner-approved illustrative arrival photograph. Dark copy backdrop, lighter tint over the people;
   the mobile image occupies its own row so the family and the booking copy both remain visible. */
.pcbr-home-hero__visual { position: relative; isolation: isolate; display: grid; background: var(--pcbr-ink); color: var(--pcbr-surface); }
.pcbr-home-hero__image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 80% center; grid-area: 2 / 1; }
.pcbr-home-hero__visual::after { content: ""; grid-area: 2 / 1; z-index: 1; pointer-events: none; background: var(--pcbr-home-photo-tint); }
.pcbr-home-hero__inner { position: relative; z-index: 2; grid-area: 1 / 1; padding-block: var(--pcbr-space-8); width: 100%; }
.pcbr-home-hero__copy { display: grid; gap: var(--pcbr-space-4); justify-items: start; max-width: 680px; }
.pcbr-home-hero__eyebrow { display: inline-flex; align-items: center; gap: var(--pcbr-space-2); margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-strong); color: inherit; }
.pcbr-home-hero__eyebrow::before { content: ""; width: 24px; height: 3px; border-radius: 2px; background: var(--pcbr-brand-orange); }
.pcbr-home-hero__title { margin: 0; font-size: var(--pcbr-fs-h1); line-height: var(--pcbr-lh-h1); font-weight: var(--pcbr-weight-strong); color: inherit; }
.pcbr-home-hero__lead { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: inherit; }
.pcbr-home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pcbr-space-3) var(--pcbr-space-5); margin-top: var(--pcbr-space-1); }
.pcbr-home-hero__cta { min-width: 220px; border-color: var(--pcbr-surface); }
.pcbr-home-hero__secondary { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); font-weight: var(--pcbr-weight-strong); color: inherit; text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-home-hero__secondary:hover, .pcbr-home-hero__secondary:focus { color: var(--pcbr-surface); }
.pcbr-home-hero__micro { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: inherit; }
.pcbr-home-hero__micro a { color: inherit; text-decoration: underline; }
.pcbr-home-hero__backed { display: inline-flex; align-items: center; gap: var(--pcbr-space-2); margin: var(--pcbr-space-1) 0 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-strong); color: inherit; }
.pcbr-home-hero__backed .pcbr-home__tick { color: inherit; }
.pcbr-home-hero__panel { display: grid; gap: var(--pcbr-space-5); padding-block: var(--pcbr-space-6); }
.pcbr-home-hero__panel-cta { width: 100%; }
.pcbr-home-hero__points { display: grid; gap: var(--pcbr-space-2); margin: 0; padding: 0; list-style: none; }
.pcbr-home-hero__points li, .pcbr-home-proof__item { display: flex; align-items: flex-start; gap: var(--pcbr-space-2); font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); color: var(--pcbr-ink); }
.pcbr-home__tick { flex: 0 0 20px; width: 20px; height: 20px; color: var(--pcbr-accent); }
@media (max-width: 640px) {
  .pcbr-home-hero__inner { padding-block: var(--pcbr-space-6); }
  .pcbr-home-hero__actions, .pcbr-home-hero__cta { width: 100%; }
}
@media (min-width: 900px) {
  .pcbr-home-hero__visual { min-height: 580px; align-items: center; }
  .pcbr-home-hero__image { position: absolute; grid-area: auto; inset: 0; height: 100%; aspect-ratio: auto; object-position: center 10%; }
  .pcbr-home-hero__visual::after { position: absolute; grid-area: auto; inset: 0; background: linear-gradient(90deg, var(--pcbr-overlay-strong) 0%, var(--pcbr-overlay) 43%, var(--pcbr-home-photo-tint) 68%); }
  .pcbr-home-hero__inner { padding-block: var(--pcbr-space-10); }
  .pcbr-home-hero__copy { width: 44%; }
  .pcbr-home-hero__title { font-size: var(--pcbr-fs-display); line-height: var(--pcbr-lh-display); }
  .pcbr-home-hero__panel { grid-template-columns: 1fr auto; align-items: center; gap: var(--pcbr-space-7); }
  .pcbr-home-hero__points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.pcbr-home-proof { padding-block: var(--pcbr-space-5); border-block: 1px solid var(--pcbr-line); }
.pcbr-home-proof__list { display: grid; gap: var(--pcbr-space-3); margin-block: 0; list-style: none; }
@media (min-width: 760px) { .pcbr-home-proof__list { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--pcbr-space-5); } }

.pcbr-home-band { padding-block: var(--pcbr-section-gap); }
.pcbr-home-band > .pcbr-container { display: grid; gap: var(--pcbr-space-6); }
.pcbr-home-band > .pcbr-container > p { margin: 0; }
.pcbr-home-band--pale { background: var(--pcbr-accent-soft); }
.pcbr-home__h2 { margin: 0; font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); }
.pcbr-home__lead { margin: 0; max-width: 70ch; color: var(--pcbr-ink-2); }

.pcbr-home-plan, .pcbr-home-steps, .pcbr-home-areas { display: grid; gap: var(--pcbr-space-4); margin: 0; padding: 0; list-style: none; }
.pcbr-home-plan__item { display: grid; gap: var(--pcbr-space-2); align-content: start; padding: var(--pcbr-space-5); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface); }
.pcbr-home-plan__title, .pcbr-home-steps__title, .pcbr-home-area__name { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-home-plan__item p, .pcbr-home-steps__item p { margin: 0; color: var(--pcbr-ink-2); }
.pcbr-home-plan__item a { color: var(--pcbr-accent); }

/* Flex column: the price line and the action sit on the card's bottom edge (margin-top:auto), so prices and
   actions line up across a row however long the resort line is. Static CSS, no load-time shift. */
.pcbr-home-area { display: flex; flex-direction: column; align-items: flex-start; gap: var(--pcbr-space-1); min-width: 0; padding: var(--pcbr-space-5); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface); }
.pcbr-home-area--quote { background: var(--pcbr-surface-2); }
.pcbr-home-area__resorts { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); color: var(--pcbr-ink-2); }
.pcbr-home-area__price { margin: auto 0 0; padding-top: var(--pcbr-space-3); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-home-area__price strong { font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); color: var(--pcbr-accent); }
/* No cached fare: a plain instruction, quieter than a price so it never reads as one. */
.pcbr-home-area__price--note { font-weight: 400; color: var(--pcbr-ink-2); }
.pcbr-home-area__price span { display: block; margin-top: var(--pcbr-space-1); font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: 400; color: var(--pcbr-ink-2); }
/* Popular resorts: plain internal links under the area cards (demand-ranked, published pages only). */
.pcbr-home-popular { display: grid; gap: var(--pcbr-space-3); margin-top: var(--pcbr-space-6); }
.pcbr-home-popular__title { margin: 0; font-size: var(--pcbr-fs-body); line-height: var(--pcbr-lh-body); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-home-popular__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--pcbr-space-2) var(--pcbr-space-5); margin: 0; padding: 0; list-style: none; }
.pcbr-home-popular__list a, .pcbr-home-popular__all { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-home-popular__all { justify-self: start; font-weight: var(--pcbr-weight-strong); }
/* Area page link (published pages only): a quiet text link under the resort line; long names wrap inside the card. */
.pcbr-home-area__detail { display: inline-flex; align-items: center; max-width: 100%; min-height: var(--pcbr-touch); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); overflow-wrap: anywhere; }
.pcbr-home-area__cta { display: inline-flex; align-items: center; gap: var(--pcbr-space-1); min-height: var(--pcbr-touch); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); text-underline-offset: var(--pcbr-underline-offset); }
/* Service areas (/areas/): the homepage area card with facts in place of a price; facts and the action sit on the
   card's bottom edge (margin-top:auto) so the buttons line up across a row. */
.pcbr-service-area__foot { display: grid; gap: var(--pcbr-space-3); align-self: stretch; margin-top: auto; padding-top: var(--pcbr-space-3); }
.pcbr-service-area__facts { display: grid; gap: var(--pcbr-space-2); margin: 0; padding: 0; list-style: none; }
.pcbr-service-area__facts li { display: flex; align-items: flex-start; gap: var(--pcbr-space-2); color: var(--pcbr-ink); }
.pcbr-service-area__facts .pcbr-icon { flex: 0 0 20px; width: 20px; height: 20px; color: var(--pcbr-accent); }
.pcbr-service-area__note { margin: 0; color: var(--pcbr-ink-2); }
.pcbr-service-area__cta { justify-self: start; }
.pcbr-service-areas__outside { display: grid; gap: var(--pcbr-space-3); max-width: 70ch; margin: 0; padding-left: var(--pcbr-space-5); color: var(--pcbr-ink-2); }
.pcbr-service-areas__outside strong { color: var(--pcbr-ink); }
.pcbr-service-areas__outside a { color: var(--pcbr-accent); }

.pcbr-home-steps { counter-reset: pcbr-home-step; }
.pcbr-home-steps__item { counter-increment: pcbr-home-step; display: grid; gap: var(--pcbr-space-2); align-content: start; padding-top: var(--pcbr-space-4); border-top: 2px solid var(--pcbr-accent); }
.pcbr-home-steps__item::before { content: counter(pcbr-home-step); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); }
@media (min-width: 760px) {
  .pcbr-home-plan, .pcbr-home-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pcbr-space-6); }
  .pcbr-home-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) { .pcbr-home-areas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pcbr-home-faqwrap { display: grid; gap: var(--pcbr-space-6); align-items: start; }
.pcbr-home-faq { border-top: 1px solid var(--pcbr-line); }
.pcbr-home-faqaside { display: grid; gap: var(--pcbr-space-4); padding: var(--pcbr-space-6); border-radius: var(--pcbr-r-surface); background: var(--pcbr-accent-soft); }
.pcbr-home-faqaside__title { margin: 0; font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); }
.pcbr-home-faqaside__list { display: grid; gap: var(--pcbr-space-2); margin: 0; padding-left: var(--pcbr-space-5); color: var(--pcbr-ink); }
@media (min-width: 1024px) { .pcbr-home-faqwrap { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: var(--pcbr-space-10); } .pcbr-home-faqaside { position: sticky; top: calc(var(--pcbr-sticky-top) + var(--pcbr-space-4)); } }
.pcbr-home-trust { padding-block: var(--pcbr-space-8); background: var(--pcbr-surface-2); }
.pcbr-home-trust__inner { display: grid; gap: var(--pcbr-space-4); align-items: center; }
.pcbr-home-trust__copy { display: grid; gap: var(--pcbr-space-3); max-width: 70ch; }
.pcbr-home-trust__copy p { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink-2); }
.pcbr-home-trust__link { justify-self: start; display: inline-flex; align-items: center; gap: var(--pcbr-space-2); min-height: var(--pcbr-touch); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); text-underline-offset: var(--pcbr-underline-offset); }
@media (min-width: 1024px) { .pcbr-home-trust__inner { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--pcbr-space-10); row-gap: var(--pcbr-space-6); } }
.pcbr-home-faq__item { border-bottom: 1px solid var(--pcbr-line); }
.pcbr-home-faq__q { display: flex; align-items: center; min-height: var(--pcbr-touch); padding: var(--pcbr-space-3) 0; cursor: pointer; font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-home-faq__q:focus-visible { outline: none; box-shadow: var(--pcbr-ring-focus); }
.pcbr-home-faq__a { margin: 0 0 var(--pcbr-space-4); max-width: 70ch; color: var(--pcbr-ink-2); }

.pcbr-home-close { padding-block: var(--pcbr-space-10); background: var(--pcbr-accent); color: var(--pcbr-surface); }
.pcbr-home-close__inner { display: grid; gap: var(--pcbr-space-4); justify-items: start; }
.pcbr-home-close__title { margin: 0; font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-surface); }
.pcbr-home-close__lead { margin: 0; color: var(--pcbr-surface); }
.pcbr-home-close .pcbr-home-close__cta { min-width: 220px; background: var(--pcbr-surface); color: var(--pcbr-accent); }
.pcbr-home-close .pcbr-home-close__cta:hover, .pcbr-home-close .pcbr-home-close__cta:focus { background: var(--pcbr-accent-soft); color: var(--pcbr-accent-hover); }
/* Phones: the closing action spans the band, a full-width thumb target like the other mobile CTAs. */
@media (max-width: 640px) { .pcbr-home-close .pcbr-home-close__cta { width: 100%; } }
.pcbr-home-close + .pcbr-home-band, .pcbr-home-launch { margin: 0; }
/* Homepage reviews row (shared pca-reviews component, row layout): the strip runs to the page gutter on phones and
   tablets, and from 1024px the three cards share the row instead of sitting at their 18em default. */
.pcbr-home-trust__reviews { grid-column: 1 / -1; min-width: 0; }
@media (max-width: 1023.98px) { .pca-reviews.pcbr-home-reviews-row { --pca-review-bleed: var(--pcbr-gutter); } }
@media (min-width: 1024px) { .pca-reviews.pcbr-home-reviews-row { --pca-review-card-width: calc((100% - 2 * var(--pca-review-gap)) / 3); } }

/* Reserve Now, Pay Later beside a reservation CTA (pujgo_paylater_note()): a quiet line, never a second button. */
.pcbr-paylater { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: inherit; }
.pcbr-paylater__title { font-weight: var(--pcbr-weight-strong); }
.pcbr-paylater__text { opacity: .85; }
.pcbr-paylater--on-accent { color: var(--pcbr-surface); }
.pcbr-landing-card .pcbr-paylater { color: var(--pcbr-ink-2); }
.pcbr-landing-card .pcbr-paylater__title { color: var(--pcbr-success); }

/* Business inquiry landing pages: same layout, different audience; no new design system. */
.pcbr-biz__hero, .pcbr-biz__uses, .pcbr-biz__contact { padding-block: var(--pcbr-section-gap); }
.pcbr-biz__hero { background: var(--pcbr-surface-2); }
.pcbr-biz__hero-inner { display: grid; gap: var(--pcbr-space-7); align-items: center; }
.pcbr-biz__intro { display: grid; gap: var(--pcbr-space-5); justify-items: start; max-width: 68ch; }
.pcbr-biz__eyebrow { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); letter-spacing: var(--pcbr-tracking-label); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-accent); }
.pcbr-biz__intro h1 { margin: 0; font-size: var(--pcbr-fs-h1); line-height: var(--pcbr-lh-h1); color: var(--pcbr-ink); }
.pcbr-biz__lead { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink-2); }
.pcbr-biz__features { padding: var(--pcbr-space-6); background: var(--pcbr-surface); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); }
.pcbr-biz__features h2 { margin: 0 0 var(--pcbr-space-5); font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); color: var(--pcbr-ink); }
.pcbr-biz__features ul { display: grid; gap: var(--pcbr-space-4); padding: 0; margin: 0; list-style: none; }
.pcbr-biz__features li { display: flex; gap: var(--pcbr-space-3); align-items: start; }
.pcbr-biz__feature-marker { display: inline-grid; flex: 0 0 24px; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--pcbr-accent-soft); color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }
.pcbr-biz__payments { padding-block: var(--pcbr-section-gap); }
.pcbr-biz__payments-inner { display: grid; gap: var(--pcbr-space-8); align-items: center; }
.pcbr-biz__payments-inner > div { display: grid; gap: var(--pcbr-space-4); align-content: center; max-width: 66ch; }
.pcbr-biz__payments h2, .pcbr-biz__uses h2, .pcbr-biz__contact h2 { margin: 0; font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); color: var(--pcbr-accent); }
.pcbr-biz__payments p { margin: 0; color: var(--pcbr-ink-2); }
.pcbr-biz__payment-steps { display: grid; gap: var(--pcbr-space-3); margin: 0; padding: 0; list-style: none; counter-reset: biz-pay; }
.pcbr-biz__payment-steps li { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 2px var(--pcbr-space-3); align-items: start; padding: var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control); counter-increment: biz-pay; }
.pcbr-biz__payment-steps li::before { content: counter(biz-pay); grid-row: 1 / 3; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--pcbr-accent-soft); color: var(--pcbr-accent); font-weight: var(--pcbr-weight-strong); }
.pcbr-biz__payment-steps span { color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); }
.pcbr-biz__uses { background: var(--pcbr-surface-2); }
.pcbr-biz__uses .pcbr-container { display: grid; gap: var(--pcbr-space-6); }
.pcbr-biz__uses-grid { display: grid; gap: var(--pcbr-space-4); }
.pcbr-biz__use { padding: var(--pcbr-space-6); background: var(--pcbr-surface); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); }
.pcbr-biz__use h3 { margin: 0 0 var(--pcbr-space-3); font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink); }
.pcbr-biz__use p { margin: 0; color: var(--pcbr-ink-2); }
.pcbr-biz__contact { scroll-margin-top: calc(var(--pcbr-sticky-top) + var(--pcbr-space-4)); }
.pcbr-biz__contact-inner { display: grid; gap: var(--pcbr-space-8); align-items: start; }
.pcbr-biz__contact-intro { display: grid; gap: var(--pcbr-space-4); max-width: 65ch; }
.pcbr-biz__contact-intro p { margin: 0; color: var(--pcbr-ink-2); }
.pcbr-biz__form { display: grid; gap: var(--pcbr-space-4); width: 100%; min-width: 0; padding: var(--pcbr-space-6); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface); }
.pcbr-biz__field { display: grid; gap: var(--pcbr-space-2); }
.pcbr-biz__field label { font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); }
.pcbr-biz__field label span, .pcbr-biz__hint { font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-2); font-weight: var(--pcbr-weight-body); }
.pcbr-biz__field input, .pcbr-biz__field textarea { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: var(--pcbr-control-h); padding: var(--pcbr-space-3); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control); background: var(--pcbr-surface); color: var(--pcbr-ink); font: inherit; }
.pcbr-biz__field textarea { resize: vertical; }
.pcbr-biz__field :is(input,textarea):focus-visible { outline: none; box-shadow: var(--pcbr-ring-focus); }
.pcbr-biz__hint, .pcbr-biz__privacy { margin: 0; font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-2); }
.pcbr-biz__hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.pcbr-biz__turnstile { max-width: 100%; min-height: 65px; }
.pcbr-biz__submit { width: 100%; }
.pcbr-biz__submit[disabled] { opacity: .6; cursor: not-allowed; }
.pcbr-biz__submit[hidden], .pcbr-biz__feedback[hidden] { display: none; }
.pcbr-biz__feedback { margin: 0; padding: var(--pcbr-space-4); border-radius: var(--pcbr-r-control); background: var(--pcbr-accent-soft); color: var(--pcbr-ink); }
.pcbr-biz__feedback[data-state="error"] { background: var(--pcbr-error-soft); color: var(--pcbr-error); }
.pcbr-biz__feedback:focus { outline: none; }
@media (max-width: 759.98px) {
  .pcbr-biz__hero, .pcbr-biz__payments, .pcbr-biz__contact, .pcbr-biz__uses { padding-block: var(--pcbr-space-7); }
  .pcbr-biz__intro, .pcbr-biz__features, .pcbr-biz__contact-intro { gap: var(--pcbr-space-3); }
  .pcbr-biz__intro .pcbr-btn { width: 100%; }
  .pcbr-biz__form, .pcbr-biz__features, .pcbr-biz__use { padding: var(--pcbr-space-5); }
}
@media (min-width: 760px) {
  .pcbr-biz__uses-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .pcbr-biz__hero-inner, .pcbr-biz__payments-inner, .pcbr-biz__contact-inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
  .pcbr-biz__intro h1 { font-size: var(--pcbr-fs-display); line-height: var(--pcbr-lh-display); }
  .pcbr-biz__contact-inner { gap: var(--pcbr-space-10); }
}

/* Business photography: the overlay has its own layer; copy stays fully opaque. */
.pcbr-biz__hero { position: relative; isolation: isolate; overflow: hidden; background: var(--pcbr-biz-photo-base); color: var(--pcbr-surface); min-height: 600px; display: grid; align-items: end; padding-top: 260px; padding-bottom: var(--pcbr-space-7); }
.pcbr-biz__photo, .pcbr-biz__photo img, .pcbr-biz__hero::before { position: absolute; inset: 0; width: 100%; height: 100%; }
.pcbr-biz__photo { height: 480px; }
.pcbr-biz__photo img { object-fit: cover; object-position: center top; }
.pcbr-biz__hero::before { content: ""; z-index: 1; pointer-events: none; background: linear-gradient(180deg, var(--pcbr-biz-photo-light) 0%, var(--pcbr-biz-photo-light) 22%, var(--pcbr-biz-photo-shade) 45%, var(--pcbr-biz-photo-base) 78%); }
.pcbr-biz__hero-inner { position: relative; z-index: 2; grid-template-columns: minmax(0, 1fr); }
.pcbr-biz__hero :is(.pcbr-biz__eyebrow, h1, .pcbr-biz__lead) { color: var(--pcbr-surface); }
.pcbr-biz__hero .pcbr-btn { border-color: var(--pcbr-surface); }
.pcbr-biz__hero .pcbr-btn:focus-visible { outline: 3px solid var(--pcbr-surface); outline-offset: 4px; }
.pcbr-biz__benefits { padding-block: var(--pcbr-space-6); background: var(--pcbr-surface-2); }
.pcbr-biz__benefits .pcbr-biz__features { padding: 0; border: 0; border-radius: 0; background: none; }
@media (min-width: 600px) {
  .pcbr-biz__photo { height: 100%; }
  .pcbr-biz__hero { min-height: 620px; padding-top: 290px; }
  .pcbr-biz__photo img { object-position: 70% center; }
}
@media (min-width: 1000px) {
  .pcbr-biz__hero { min-height: 580px; align-items: center; padding-block: var(--pcbr-space-10); }
  .pcbr-biz__photo img { object-position: center 42%; }
  .pcbr-biz__hero::before { background: linear-gradient(90deg, var(--pcbr-biz-photo-shade) 0%, var(--pcbr-biz-photo-shade) 30%, var(--pcbr-biz-photo-mid) 44%, var(--pcbr-biz-photo-light) 65%); }
  .pcbr-biz__hero .pcbr-biz__intro { max-width: 500px; width: 44%; }
  .pcbr-biz__features ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pcbr-space-6); }
  .pcbr-biz__features h2 { font-size: var(--pcbr-fs-lead); }
}

/* Contact: a compact arrival header keeps direct support and the form close at hand. */
:where(.pcbr) .pcbr-contact { padding-bottom: var(--pcbr-space-10); }
.pcbr-contact__hero { position: relative; isolation: isolate; display: grid; align-items: center; min-height: 320px; padding-block: var(--pcbr-space-9); margin-bottom: var(--pcbr-space-9); background: var(--pcbr-biz-photo-base); }
.pcbr-contact__photo { position: absolute; z-index: -2; right: 0; top: 0; width: min(100%, 1000px); height: 100%; object-fit: cover; object-position: 65% 25%; mask-image: linear-gradient(90deg, transparent, var(--pcbr-biz-photo-base) 20%); }
.pcbr-contact__hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, var(--pcbr-biz-photo-base) 0%, var(--pcbr-biz-photo-shade) 40%, var(--pcbr-biz-photo-light) 80%); }
.pcbr-contact__hero .pcbr-container { width: 100%; }
.pcbr-contact__intro { max-width: 44ch; }
.pcbr-contact__intro h1 { margin: 0 0 var(--pcbr-space-4); color: var(--pcbr-surface); font-size: var(--pcbr-fs-display); line-height: var(--pcbr-lh-display); }
.pcbr-contact__intro p { margin: 0; color: var(--pcbr-surface); font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); }
.pcbr-contact__jump { display: inline-flex; gap: var(--pcbr-space-3); align-items: center; min-height: var(--pcbr-control-h); margin-top: var(--pcbr-space-4); color: var(--pcbr-surface); text-decoration: underline; text-underline-offset: 4px; }
.pcbr-contact__jump:is(:hover, :focus-visible) { color: var(--pcbr-surface); }
.pcbr-contact__jump:focus-visible { outline: 2px solid var(--pcbr-surface); outline-offset: 4px; }
.pcbr-contact__layout { display: grid; gap: var(--pcbr-space-8); align-items: start; }
.pcbr-contact__layout h2 { margin: 0 0 var(--pcbr-space-4); font-size: var(--pcbr-fs-h2); line-height: var(--pcbr-lh-h2); color: var(--pcbr-ink); }
.pcbr-contact__layout p { color: var(--pcbr-ink-2); }
.pcbr-contact__channels { display: grid; gap: var(--pcbr-space-4); margin: var(--pcbr-space-5) 0 var(--pcbr-space-7); }
.pcbr-contact__channels dt { font-size: var(--pcbr-fs-small); color: var(--pcbr-ink-2); font-weight: var(--pcbr-weight-body); }
.pcbr-contact__channels dd { margin: 0; font-size: var(--pcbr-fs-lead); font-weight: var(--pcbr-weight-strong); overflow-wrap: anywhere; }
.pcbr-contact__channels a { display: inline-flex; align-items: center; min-height: var(--pcbr-control-h); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: 4px; }
.pcbr-contact__booking { padding: var(--pcbr-space-5); background: var(--pcbr-surface-2); border-left: 3px solid var(--pcbr-accent); max-width: 44ch; }
.pcbr-contact__booking h3 { margin: 0 0 var(--pcbr-space-2); font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); }
.pcbr-contact__booking p { margin: 0; }
.pcbr-contact__message { min-width: 0; scroll-margin-top: calc(var(--pcbr-sticky-top) + var(--pcbr-space-5)); }
.pcbr-contact__message > p { margin: 0 0 var(--pcbr-space-5); }
.pcbr-contact .pcbr-biz__submit { color: var(--pcbr-surface); background: var(--pcbr-accent); border-color: var(--pcbr-accent); }
.pcbr-contact .pcbr-biz__submit:hover { background: var(--pcbr-accent-hover); border-color: var(--pcbr-accent-hover); }
@media (min-width: 900px) {
  .pcbr-contact__layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1fr); gap: var(--pcbr-space-10); }
}
@media (max-width: 599.98px) {
  :where(.pcbr) .pcbr-contact { padding-bottom: var(--pcbr-space-7); }
  .pcbr-contact__hero { min-height: 320px; align-items: end; padding-block: var(--pcbr-space-6); margin-bottom: var(--pcbr-space-7); }
  .pcbr-contact__hero::before { background: linear-gradient(0deg, var(--pcbr-biz-photo-shade) 0%, var(--pcbr-biz-photo-mid) 65%, var(--pcbr-biz-photo-light) 100%); }
  .pcbr-contact__intro h1 { font-size: var(--pcbr-fs-h1); line-height: var(--pcbr-lh-h1); }
}

/* == src/homepage.css == */
/** Approved homepage composition, October 2026. Shared landing-page primitives remain in pages.css. */
.pcbr-home-brand .pcbr-container { max-width: calc(var(--pcbr-home-inventory) + 2 * var(--pcbr-gutter)); }
.pcbr-home .pcbr-home-hero { display: grid; grid-template-columns: 1fr 1.12fr; gap: var(--pcbr-home-column-gap); align-items: center; padding-block: var(--pcbr-space-8) var(--pcbr-space-7); }
.pcbr-home .pcbr-home-hero__visual { grid-column: 2; grid-row: 1; display: block; position: relative; min-height: 0; height: var(--pcbr-home-photo-height); overflow: hidden; border-radius: var(--pcbr-r-surface); background: var(--pcbr-accent-soft); }
.pcbr-home .pcbr-home-hero__visual::after { content: none; }
.pcbr-home .pcbr-home-hero__image { position: static; display: block; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 76% center; }
.pcbr-home .pcbr-home-hero__copy { grid-column: 1; grid-row: 1; display: block; width: auto; max-width: none; color: var(--pcbr-ink); }
.pcbr-home .pcbr-home-hero__title { margin: 0; max-width: 12em; color: var(--pcbr-ink); font-size: var(--pcbr-home-title); line-height: 1.12; letter-spacing: -.05em; }
.pcbr-home .pcbr-home-hero__lead { margin-top: var(--pcbr-space-5); max-width: 23em; font-size: var(--pcbr-fs-lead); line-height: 1.65; color: var(--pcbr-ink-2); }
.pcbr-home .pcbr-home-hero__cta { margin-top: var(--pcbr-space-6); min-height: 52px; font-size: var(--pcbr-fs-body); }
.pcbr-home .pcbr-home-hero__micro { margin-top: var(--pcbr-space-3); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-home-link, .pcbr-home-reviews .pcbr-home-link { display: inline-flex; align-items: center; justify-content: flex-start; gap: var(--pcbr-space-3); min-height: var(--pcbr-touch); padding: var(--pcbr-space-2) 0; border: 0; background: none; color: var(--pcbr-accent); font-size: var(--pcbr-fs-small); line-height: 1.5; font-weight: var(--pcbr-weight-strong); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-home-link:hover, .pcbr-home .pcbr-home-hero__secondary:hover { color: var(--pcbr-accent-hover); }
.pcbr-home-link .pcbr-icon { width: 16px; height: 16px; flex-shrink: 0; }
.pcbr-home .pcbr-home-hero__secondary { margin-top: var(--pcbr-space-1); color: var(--pcbr-accent); }
.pcbr-home-benefits { display: flex; justify-content: space-between; gap: var(--pcbr-space-5); margin: 0; padding: 0 0 var(--pcbr-space-7); list-style: none; border-bottom: 1px solid var(--pcbr-line); }
.pcbr-home-benefits li { display: flex; align-items: center; gap: var(--pcbr-space-2); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-home-benefits .pcbr-icon { color: var(--pcbr-accent); width: 18px; height: 18px; flex: none; }

.pcbr-home .pcbr-home-trust { padding-block: var(--pcbr-space-8) var(--pcbr-space-9); background: var(--pcbr-surface); }
.pcbr-home .pcbr-home-reviews { display: block; }
.pcbr-home-reviews .pcbr-home-reviews__heading { display: flex; justify-content: space-between; align-items: center; gap: var(--pcbr-space-5); }
.pcbr-home-reviews .pcbr-home-reviews__heading h2 { font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); letter-spacing: -.025em; }
.pcbr-home-reviews .pcbr-home-reviews__heading p { margin-top: var(--pcbr-space-2); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-home-reviews .pcbr-home-reviews__heading > button { flex-shrink: 0; }
.pcbr-home-reviews .pcbr-home-review-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pcbr-space-5); margin-top: var(--pcbr-space-6); }
.pcbr-home-review { margin: 0; min-width: 0; display: flex; flex-direction: column; padding: var(--pcbr-space-6); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface); }
.pcbr-home-review:focus-within { border-color: var(--pcbr-accent); }
.pcbr-home-reviews .pcbr-home-review blockquote { margin: 0; font-size: var(--pcbr-fs-body); line-height: 1.75; }
.pcbr-home-review figcaption { display: flex; align-items: center; gap: var(--pcbr-space-3); }
.pcbr-home-review strong { display: block; font-size: var(--pcbr-fs-small); font-weight: var(--pcbr-weight-strong); }
.pcbr-home-review small { display: block; font-size: var(--pcbr-fs-caption); color: var(--pcbr-ink-2); }
.pcbr-home-review .pca-review-avatar { width: 48px; height: 48px; font-size: var(--pcbr-fs-caption); }
.pcbr-home-review .pca-review-stars { margin-block: var(--pcbr-space-5) var(--pcbr-space-3); font-size: var(--pcbr-fs-body); }
.pcbr-home-reviews .pca-review-stars { color: var(--pcbr-star); }
.pcbr-home-reviews .pcbr-home-review__read { align-self: flex-start; margin-top: auto; padding-top: var(--pcbr-space-4); }
.pcbr-home-review-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--pcbr-space-4); margin-top: var(--pcbr-space-4); font-size: var(--pcbr-fs-caption); color: var(--pcbr-ink-2); }
.pcbr-home-review-nav[hidden] { display: none; }
.pcbr-home-review-nav__buttons { display: flex; gap: var(--pcbr-space-2); }
.pcbr-home-reviews .pcbr-home-review-nav__button { display: inline-flex; justify-content: center; align-items: center; width: var(--pcbr-touch); height: var(--pcbr-touch); padding: 0; border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control); background: var(--pcbr-surface); color: var(--pcbr-ink); }
.pcbr-home-review-nav__button:hover:not(:disabled) { background: var(--pcbr-surface-2); border-color: var(--pcbr-ink-3); }
.pcbr-home-review-nav__button:disabled { opacity: .4; cursor: default; }
.pcbr-home-review-nav__button .pcbr-icon { transform: rotate(-90deg); }
.pcbr-home-review-nav__button--previous .pcbr-icon { transform: rotate(90deg); }
.pcbr-home-review-track:focus-visible { outline: 2px solid var(--pcbr-accent); outline-offset: var(--pcbr-space-1); }
html:not(.pcbr-has-js) .pcbr-home-reviews [data-pca-review-more] { display: none; }

.pcbr-home .pcbr-home__h2 { margin: 0; font-size: var(--pcbr-home-heading); line-height: 1.2; letter-spacing: -.035em; color: var(--pcbr-ink); }
.pcbr-home-split { display: grid; grid-template-columns: 1fr 1.12fr; gap: var(--pcbr-home-column-gap); }
.pcbr-home-section-intro { max-width: 23em; }
.pcbr-home-section-intro > p { margin: var(--pcbr-space-4) 0 0; color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-body); line-height: 1.7; }
.pcbr-home-section-intro > .pcbr-home-link { margin-top: var(--pcbr-space-3); }
.pcbr-home-arrival { padding-block: var(--pcbr-space-10); background: var(--pcbr-accent-soft); }
.pcbr-home-arrival .pcbr-home__h2 { color: var(--pcbr-ink); max-width: 8em; }
.pcbr-home-section-intro .pcbr-home-airport { margin-top: var(--pcbr-space-6); font-size: var(--pcbr-fs-caption); }
.pcbr-home-arrival__details { display: grid; gap: var(--pcbr-space-6); }
.pcbr-home-arrival__item { display: flex; gap: var(--pcbr-space-5); }
.pcbr-home-arrival__item > .pcbr-icon { flex: 0 0 22px; width: 22px; height: 22px; margin-top: var(--pcbr-space-1); color: var(--pcbr-accent); }
.pcbr-home-arrival__item h3 { margin: 0; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); letter-spacing: -.015em; }
.pcbr-home-arrival__item p { margin: var(--pcbr-space-2) 0 0; font-size: var(--pcbr-fs-small); line-height: 1.8; color: var(--pcbr-ink-2); }
.pcbr-home .pcbr-home-coverage, .pcbr-home .pcbr-home-questions { padding-block: var(--pcbr-home-section); }
.pcbr-home .pcbr-home-coverage { position: relative; }
.pcbr-home-coverage::after { content: ''; position: absolute; bottom: 0; left: var(--pcbr-gutter); right: var(--pcbr-gutter); height: 1px; background: var(--pcbr-line); }
.pcbr-home-destinations { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pcbr-space-6) var(--pcbr-space-7); margin: 0; align-content: start; }
.pcbr-home-destinations dt { font-size: var(--pcbr-fs-body); line-height: 1.5; font-weight: var(--pcbr-weight-strong); }
.pcbr-home-destinations dt a { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-home-destinations dd { margin: var(--pcbr-space-1) 0 0; font-size: var(--pcbr-fs-caption); line-height: 1.7; color: var(--pcbr-ink-2); }
.pcbr-home-destination__fare { display: block; margin-top: var(--pcbr-space-2); }
.pcbr-home .pcbr-home-popular { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--pcbr-space-4) var(--pcbr-space-7); margin: 0; padding-top: var(--pcbr-space-4); border-top: 1px solid var(--pcbr-line); }
.pcbr-home-popular__summary { display: flex; align-items: center; justify-content: space-between; gap: var(--pcbr-space-4); min-height: var(--pcbr-touch); padding-block: var(--pcbr-space-2); color: var(--pcbr-ink); font-size: var(--pcbr-fs-small); font-weight: var(--pcbr-weight-strong); list-style: none; cursor: pointer; }
.pcbr-home-popular__summary::-webkit-details-marker { display: none; }
.pcbr-home-popular__summary .pcbr-icon { width: 16px; height: 16px; flex: none; color: var(--pcbr-accent); }
.pcbr-home-popular__disclosure[open] .pcbr-home-popular__summary .pcbr-icon { transform: rotate(180deg); }
.pcbr-home .pcbr-home-popular__list { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--pcbr-space-3); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
.pcbr-home-popular__list a { width: 100%; overflow-wrap: anywhere; }
.pcbr-home-popular__summary:focus-visible { outline: 2px solid var(--pcbr-accent); outline-offset: var(--pcbr-space-1); }
.pcbr-home .pcbr-home-faq { border-top: 1px solid var(--pcbr-line); }
.pcbr-home .pcbr-home-faq__q { display: flex; justify-content: space-between; gap: var(--pcbr-space-4); min-height: 59px; padding-block: var(--pcbr-space-4); font-size: var(--pcbr-fs-small); line-height: 1.6; font-weight: var(--pcbr-weight-medium); list-style: none; }
.pcbr-home-faq__q::-webkit-details-marker { display: none; }
.pcbr-home-faq__q .pcbr-icon { width: 16px; height: 16px; flex: none; color: var(--pcbr-accent); transform: none; }
.pcbr-home-faq__item[open] .pcbr-home-faq__q .pcbr-icon { transform: rotate(180deg); }
.pcbr-home .pcbr-home-faq__a { padding: 0 var(--pcbr-space-6) var(--pcbr-space-5) 0; margin: 0; font-size: var(--pcbr-fs-small); line-height: 1.8; }
.pcbr-home-faq__a a { color: var(--pcbr-accent); text-decoration: underline; }
.pcbr-home .pcbr-home-close { padding-block: var(--pcbr-space-8); background: var(--pcbr-accent); }
.pcbr-home .pcbr-home-close__inner { display: flex; justify-content: space-between; align-items: center; gap: var(--pcbr-space-7); }
.pcbr-home .pcbr-home-close__title { font-size: var(--pcbr-fs-h1); line-height: 1.2; letter-spacing: -.035em; }
.pcbr-home .pcbr-home-close__lead { margin-top: var(--pcbr-space-3); font-size: var(--pcbr-fs-small); }
.pcbr-home .pcbr-home-close__cta { min-height: 52px; background: var(--pcbr-surface); color: var(--pcbr-accent); font-size: var(--pcbr-fs-body); }
.pcbr-home-close__cta .pcbr-icon { width: 16px; height: 16px; }

@media (max-width: 760px) {
  .pcbr-home .pcbr-home-hero { display: flex; flex-direction: column; max-width: none; width: 100%; gap: 0; padding: 0; }
  .pcbr-home .pcbr-home-hero__visual { width: 100%; height: var(--pcbr-home-photo-height); border-radius: 0; }
  .pcbr-home .pcbr-home-hero__image { object-position: 74% 42%; }
  .pcbr-home .pcbr-home-hero__copy { width: 100%; padding: var(--pcbr-space-5) var(--pcbr-gutter); }
  .pcbr-home .pcbr-home-hero__title { max-width: 16em; letter-spacing: -.045em; }
  .pcbr-home .pcbr-home-hero__lead { margin-top: var(--pcbr-space-3); max-width: 34em; font-size: var(--pcbr-fs-body); line-height: 1.6; }
  .pcbr-home .pcbr-home-hero__cta { width: 100%; margin-top: var(--pcbr-space-4); min-height: 50px; font-size: var(--pcbr-fs-small); }
  .pcbr-home .pcbr-home-hero__micro { text-align: center; margin-top: var(--pcbr-space-2); }
  .pcbr-home .pcbr-home-hero__secondary { display: flex; justify-content: center; margin: 0; font-size: var(--pcbr-fs-caption); }
  .pcbr-home-benefits { flex-wrap: wrap; justify-content: flex-start; gap: var(--pcbr-space-2) var(--pcbr-space-4); padding-block: var(--pcbr-space-1) var(--pcbr-space-6); }
  .pcbr-home-benefits li { font-size: var(--pcbr-fs-caption); gap: var(--pcbr-space-1); }
  .pcbr-home-benefits li:first-child { width: 100%; }
  .pcbr-home-benefits .pcbr-icon { width: 16px; height: 16px; }
  .pcbr-home .pcbr-home-trust { padding-block: var(--pcbr-space-7); }
  .pcbr-home-reviews .pcbr-home-reviews__heading { display: block; }
  .pcbr-home-reviews .pcbr-home-reviews__heading > button { margin-top: var(--pcbr-space-1); font-size: var(--pcbr-fs-caption); }
  .pcbr-home-reviews .pcbr-home-review-track { position: relative; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc(100% - var(--pcbr-space-8)); gap: var(--pcbr-space-4); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; margin: var(--pcbr-space-4) calc(-1 * var(--pcbr-space-1)) 0; padding: var(--pcbr-space-1); scroll-padding-inline: var(--pcbr-space-1); }
  .pcbr-home-review-track::-webkit-scrollbar { display: none; }
  .pcbr-home-review { scroll-snap-align: start; padding: var(--pcbr-space-5); }
  .pcbr-home-reviews .pcbr-home-review blockquote { font-size: var(--pcbr-fs-small); line-height: 1.8; }
  .pcbr-home-review figcaption { gap: var(--pcbr-space-3); }
  .pcbr-home-split { display: block; }
  .pcbr-home-section-intro { max-width: none; }
  .pcbr-home-section-intro > p { margin-top: var(--pcbr-space-3); font-size: var(--pcbr-fs-small); }
  .pcbr-home-section-intro > .pcbr-home-link { margin-top: var(--pcbr-space-1); }
  .pcbr-home-arrival { padding-block: var(--pcbr-space-8); }
  .pcbr-home-arrival .pcbr-home__h2 { max-width: none; }
  .pcbr-home-section-intro .pcbr-home-airport { margin-top: var(--pcbr-space-3); }
  .pcbr-home-arrival__details { margin-top: var(--pcbr-space-6); }
  .pcbr-home-arrival__item { gap: var(--pcbr-space-3); }
  .pcbr-home-arrival__item h3 { font-size: var(--pcbr-fs-body); line-height: 1.5; }
  .pcbr-home-destinations { display: block; margin-top: var(--pcbr-space-5); border-top: 1px solid var(--pcbr-line); }
  .pcbr-home-destination { display: grid; grid-template-columns: 1fr 1.15fr; align-items: center; gap: var(--pcbr-space-3); padding-block: var(--pcbr-space-3); border-bottom: 1px solid var(--pcbr-line); }
  .pcbr-home-destinations dt { font-size: var(--pcbr-fs-small); }
  .pcbr-home-destinations dd { margin: 0; }
  .pcbr-home .pcbr-home-popular { display: block; margin-top: var(--pcbr-space-5); }
  .pcbr-home .pcbr-home-popular__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcbr-home-popular__disclosure + .pcbr-home-popular__all { margin-top: var(--pcbr-space-3); }
  .pcbr-home .pcbr-home-faq { margin-top: var(--pcbr-space-6); }
  .pcbr-home .pcbr-home-close { padding-block: var(--pcbr-space-7); }
  .pcbr-home .pcbr-home-close__inner { display: block; }
  .pcbr-home .pcbr-home-close__title { font-size: var(--pcbr-home-heading); }
  .pcbr-home .pcbr-home-close__cta { width: 100%; margin-top: var(--pcbr-space-5); font-size: var(--pcbr-fs-small); }
}
@media (max-width: 360px) {
  .pcbr-home .pcbr-home-hero__copy { padding-block: var(--pcbr-space-4); }
  .pcbr-home .pcbr-home-hero__lead { font-size: var(--pcbr-fs-small); }
  .pcbr-home .pcbr-home-hero__cta { min-height: var(--pcbr-control-h); }
}

.pcbr-home-link .pcbr-icon, .pcbr-home-close__cta .pcbr-icon, .pcbr-home-hero__cta .pcbr-icon { transform: rotate(-90deg); }
.pcbr-home-review .pca-review-avatar { background: var(--pcbr-accent-soft); color: var(--pcbr-accent); }
@media (max-width: 1100px) { .pcbr-home-break { display: none; } }

/* == src/landing.css == */
/* Landing pages: hotel transfers, areas, the hotel-transfer directory (inc/landing-pages.php; Hotel Transfer
   Landing Page UX/UI Specification). Mobile first: breadcrumb → hero → facts → booking card → map → sections. From
   1024px the hero is a 7:5 grid with the map beside the card. Tokens only; no !important; the card carries no
   shadow so the sticky bar stays the page's one shadowed element. The map box keeps the image's own 2:1 ratio with
   object-fit: contain, so Google's attribution and both route endpoints are never cropped. */

/* Landing content keeps its measure without narrowing the shared header. */
.pcbr-landing .pcbr-container:where(:not(.pcbr-header__inner)) { max-width: 1200px; }
.pcbr-landing-hero { padding-block: var(--pcbr-space-5) var(--pcbr-space-8); }
.pcbr-landing-hero__grid { display: grid; gap: var(--pcbr-space-6); margin-top: var(--pcbr-space-4); }
.pcbr-landing-hero__main { display: grid; gap: var(--pcbr-space-4); min-width: 0; align-content: start; }
.pcbr-landing-hero__eyebrow { margin: 0; font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); font-weight: var(--pcbr-weight-strong); letter-spacing: .06em; text-transform: uppercase; color: var(--pcbr-accent); }
.pcbr-landing-hero__title { margin: 0; font-size: var(--pcbr-fs-h1); line-height: var(--pcbr-lh-h1); font-weight: var(--pcbr-weight-strong); color: var(--pcbr-ink); overflow-wrap: anywhere; }
.pcbr-landing-hero__lead { margin: 0; max-width: 60ch; font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); color: var(--pcbr-ink-2); }
.pcbr-landing-hero__actions { margin: var(--pcbr-space-4) 0 0; }
.pcbr-landing-hero > .pcbr-container > :is(.pcbr-landing-hero__eyebrow, .pcbr-landing-hero__title, .pcbr-landing-hero__lead, .pcbr-landing-facts) { margin-top: var(--pcbr-space-3); }

.pcbr-landing-facts { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-2) var(--pcbr-space-5); margin: 0; padding: 0; list-style: none; color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
.pcbr-landing-facts li { display: inline-flex; align-items: center; gap: var(--pcbr-space-2); }
.pcbr-landing-facts .pcbr-icon { width: 18px; height: 18px; color: var(--pcbr-accent); }

/* Booking card */
.pcbr-landing-card { display: grid; gap: var(--pcbr-space-4); padding: var(--pcbr-space-5); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-2); }
.pcbr-landing-card__title { margin: 0; font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); font-weight: var(--pcbr-weight-strong); }
.pcbr-landing-card__route { display: grid; gap: var(--pcbr-space-2); margin: 0; }
.pcbr-landing-card__route > div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--pcbr-space-3); }
.pcbr-landing-card__route dt { color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-body); }
.pcbr-landing-card__route dd { margin: 0; font-weight: var(--pcbr-weight-strong); overflow-wrap: anywhere; }
.pcbr-landing-card__badge { display: inline-flex; align-items: center; gap: var(--pcbr-space-2); margin: 0; color: var(--pcbr-success); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); font-weight: var(--pcbr-weight-strong); }
.pcbr-landing-card__badge .pcbr-icon { width: 18px; height: 18px; }
.pcbr-landing-card__micro { margin: 0; font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); color: var(--pcbr-ink-2); }
.pcbr-landing-card__change { margin-left: var(--pcbr-space-1); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-landing-cta { width: 100%; justify-content: center; }

/* Direction: native radios (arrow keys, explicit checked state), 44px targets */
.pcbr-landing-dir { margin: 0; padding: 0; border: 0; min-width: 0; }
.pcbr-landing-dir legend { width: auto; margin: 0; padding: 0; border: 0; font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); }
.pcbr-landing-dir__list { display: grid; gap: var(--pcbr-space-2); margin-top: var(--pcbr-space-2); }
.pcbr-landing-dir__opt { display: flex; align-items: center; gap: var(--pcbr-space-3); min-height: var(--pcbr-touch); padding: 0 var(--pcbr-space-4); border: 1px solid var(--pcbr-line); border-radius: var(--pcbr-r-control); background: var(--pcbr-surface); cursor: pointer; }
.pcbr-landing-dir__opt input { width: 18px; height: 18px; margin: 0; accent-color: var(--pcbr-accent); flex: none; }
.pcbr-landing-dir__opt:has(input:checked) { border-color: var(--pcbr-accent); box-shadow: inset 0 0 0 1px var(--pcbr-accent); }
.pcbr-landing-dir__opt:has(input:focus-visible) { box-shadow: var(--pcbr-ring-focus); }
.pcbr-landing-dir__note { margin: var(--pcbr-space-2) 0 0; font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); color: var(--pcbr-ink-3); }
.pcbr-landing-dir__note[hidden] { display: none; }
@media (min-width: 480px) { .pcbr-landing-dir__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pcbr-landing-dir__opt { padding: 0 var(--pcbr-space-3); } }

/* Route figure */
.pcbr-landing-route { display: grid; gap: var(--pcbr-space-3); margin: 0; }
.pcbr-landing-route__title { margin: 0; font-size: var(--pcbr-fs-h3); line-height: var(--pcbr-lh-h3); font-weight: var(--pcbr-weight-strong); }
.pcbr-landing-route__map { position: relative; aspect-ratio: 2 / 1; overflow: hidden; border-radius: var(--pcbr-r-surface); background: var(--pcbr-surface-3); }
.pcbr-landing-route__map[hidden] { display: none; }
.pcbr-landing-route__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.pcbr-landing-route__img:not([src]) { visibility: hidden; }
.pcbr-landing-route.is-loading .pcbr-landing-route__map { animation: pujgo-shimmer 1.2s linear infinite; }
@media (prefers-reduced-motion: reduce) { .pcbr-landing-route.is-loading .pcbr-landing-route__map { animation: none; } }
.pcbr-landing-route__caption { display: grid; gap: 2px; }
.pcbr-landing-route__line { font-weight: var(--pcbr-weight-strong); overflow-wrap: anywhere; }
.pcbr-landing-route__facts { color: var(--pcbr-ink-2); font-size: var(--pcbr-fs-small); line-height: var(--pcbr-lh-small); }
.pcbr-landing-route__note { color: var(--pcbr-ink-3); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); }
.pcbr-landing-facts__credit { margin: var(--pcbr-space-1) 0 0; }
.pcbr-landing-credit { color: var(--pcbr-ink-3); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); }
.pcbr-landing-credit a { color: inherit; text-decoration: none; }
.pcbr-landing-credit a:hover, .pcbr-landing-credit a:focus-visible { text-decoration: underline; }
.pcbr-landing-route__link { justify-self: start; margin-top: var(--pcbr-space-1); color: var(--pcbr-accent); font-size: var(--pcbr-fs-small); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }

/* Sections */
.pcbr-landing-guide { display: grid; gap: var(--pcbr-space-4); margin: 0; }
.pcbr-landing-guide dt { font-weight: var(--pcbr-weight-strong); }
.pcbr-landing-guide dd { margin: var(--pcbr-space-1) 0 0; max-width: 65ch; color: var(--pcbr-ink-2); }
.pcbr-landing-related { display: flex; flex-wrap: wrap; gap: var(--pcbr-space-2) var(--pcbr-space-5); margin: 0; padding: 0; list-style: none; }
.pcbr-landing-related a { display: inline-flex; align-items: center; min-height: var(--pcbr-touch); color: var(--pcbr-accent); text-decoration: underline; text-underline-offset: var(--pcbr-underline-offset); }
.pcbr-landing-related [hidden] { display: none; }

/* Directory */
.pcbr-landing-dirfilter { max-width: 28rem; }
.pcbr-landing-dirlist { display: grid; gap: var(--pcbr-space-6); }
.pcbr-landing-dirgroup[hidden] { display: none; }
.pcbr-landing-dirgroup__title { margin: 0 0 var(--pcbr-space-2); font-size: var(--pcbr-fs-lead); line-height: var(--pcbr-lh-lead); font-weight: var(--pcbr-weight-strong); }

/* Sticky CTA (phones only; sticky-bar.css owns placement, safe area and the display grant below 1024px) */
.pcbr-landing-sticky { align-items: center; justify-content: space-between; gap: var(--pcbr-space-3); }
.pcbr-landing-sticky[hidden] { display: none; }
.pcbr-landing-sticky .pcbr-btn { flex: none; white-space: nowrap; }
.pcbr-landing-sticky__text { display: grid; margin: 0; min-width: 0; }
.pcbr-landing-sticky__name { font-weight: var(--pcbr-weight-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcbr-landing-sticky__meta { color: var(--pcbr-ink-3); font-size: var(--pcbr-fs-caption); line-height: var(--pcbr-lh-caption); }
body.pujgo-wizard-open .pcbr-landing-sticky { display: none; }

@media (min-width: 1024px) {
  .pcbr-landing-hero { padding-block: var(--pcbr-space-6) var(--pcbr-space-10); }
  .pcbr-landing-hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--pcbr-space-9); align-items: start; }
  .pcbr-landing-hero__aside { position: sticky; top: var(--pcbr-sticky-top); }
  .pcbr-landing-cta { width: auto; justify-self: start; }
}
