/* Explore only: the finalized Home, Surf and Stay styles remain untouched. */
.explore-page .detail-section { padding-block: 72px; }
.explore-page main > section { color: var(--deep-pacific); }
.explore-page :is(.detail-section, .explore-logistics, .page-final-cta) h2 {
  font-size: clamp(2.375rem, 4vw, 3rem); font-weight: 700;
  line-height: 1.1; letter-spacing: -.025em; text-wrap: balance;
}
.explore-page .eyebrow, .explore-page .mini-label, .explore-page .card-kicker { color: #4e6033; }
.explore-page .detail-section p { font-size: 1rem; line-height: 1.65; }
.explore-page .section-heading { display: block; margin-bottom: 32px; }
.explore-page .section-heading > p { max-width: 860px; margin: 20px 0 0; font-size: 1.125rem; }
.explore-page .section-tone--sand::before {
  background: radial-gradient(circle at 92% 10%, rgba(130,188,174,.28), transparent 28%), var(--sand);
}
.explore-page .suggested-experiences::before {
  background: radial-gradient(circle at 8% 90%, rgba(130,188,174,.28), transparent 28%), var(--sand);
}
.explore-page .adventure-feature { margin-bottom: 32px; }
.explore-page .adventure-feature h3 { font-size: clamp(1.8rem, 3vw, 2.35rem); line-height: 1.12; }
.explore-page .adventure-menu { margin-top: 0; }
.explore-page .adventure-menu article { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.explore-page .adventure-menu h3 { margin: 24px 0 9px; font-size: 1.18rem; line-height: 1.2; font-weight: 700; color: inherit; }
.explore-page .adventure-menu p { margin: 0 0 20px; font-size: .83rem; line-height: 1.55; color: inherit; }
.explore-page .adventure-menu article > span { color: inherit; }
.explore-page .adventure-menu article { color: var(--deep-pacific); }
/* Retain Home's alternating card pattern, with a darker blue for readable small text. */
.explore-page .adventure-menu article:nth-child(n) { background: var(--warm-white); color: var(--deep-pacific); border-color: var(--line); }
.explore-page .adventure-menu article:is(:nth-child(2), :nth-child(4), :nth-child(5), :nth-child(7), :nth-child(10), :nth-child(12)) { background: #486d82; color: var(--warm-white); border-color: #486d82; }
.explore-page .adventure-menu .text-button { margin-top: auto; align-self: flex-start; min-height: 44px; padding-block: 10px; color: inherit; text-align: left; }
.explore-page .concierge-connection { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 48px; padding: 72px 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.explore-page .concierge-connection h2 { margin-bottom: 20px; }
.explore-page .concierge-connection .button { grid-column: 1 / -1; justify-self: start; white-space: normal; }
.explore-page .concierge-connection > div > p { margin-bottom: 0; }
.explore-page .explore-memories { margin: 0; }
.explore-page .explore-memories__heading h3 { font-size: clamp(2.375rem, 4vw, 3rem); line-height: 1.1; }
.explore-page .local-favorites .text-link { display: inline-flex; margin-top: 24px; min-height: 44px; align-items: center; }
.explore-page .explore-logistics { position: relative; width: 100%; padding: 72px max(24px, calc((100vw - var(--max)) / 2)); gap: 48px; background: var(--warm-white); color: var(--deep-pacific); }
.explore-page .explore-logistics::before { inset: 0; }
.explore-page .explore-logistics :is(h2, h3, span) { color: var(--deep-pacific); }
.explore-page .explore-logistics p { color: var(--charcoal); }
.explore-page .explore-logistics-grid article { border-color: rgba(22,59,74,.2); }
.explore-page .suggested-experiences { width: min(calc(100% - 48px), var(--max)); border-radius: 0; background: transparent; padding-inline: 0; }
.explore-page .journey-card { min-width: 0; min-height: 0; padding: 24px; background: var(--warm-white); }
.explore-page .journey-card h3 { font-size: clamp(1.5rem, 2.2vw, 1.75rem); line-height: 1.18; }
.explore-page .journey-card .text-button { min-height: 44px; margin-top: auto; white-space: normal; text-align: left; }
.explore-page .map-section { gap: 48px; }
.explore-page .map-section h2 { margin-bottom: 20px; }
.explore-page .faq-grid { margin-top: 32px; align-items: start; }
.explore-page .faq-grid details { padding: 24px; min-height: 0; background: var(--warm-white); }
.explore-page .faq-grid summary { line-height: 1.5; }
.explore-page .page-final-cta { margin: 0; border-radius: 0; background: var(--warm-white); padding-block: 72px; color: var(--deep-pacific); }
.explore-page .page-final-cta :is(h2, p) { color: inherit; }
.explore-page .button--coral { color: #202625; }
.explore-page :is(a, button, summary, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--deep-pacific); outline-offset: 4px; box-shadow: 0 0 0 6px var(--warm-white); }
@media (max-width: 980px) {
  .explore-page .adventure-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .explore-page .adventure-menu article:nth-child(n) { background: var(--warm-white); color: var(--deep-pacific); }
  .explore-page .adventure-menu article:is(:nth-child(2), :nth-child(3), :nth-child(6), :nth-child(7), :nth-child(10), :nth-child(11)) { background: #486d82; color: var(--warm-white); }
  .explore-page .explore-logistics, .explore-page .concierge-connection { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 700px) {
  .explore-page .detail-section { width: calc(100% - 36px); padding-block: 48px; }
  .explore-page .adventure-menu { grid-template-columns: 1fr; }
  .explore-page .adventure-menu article:nth-child(n) { background: var(--warm-white); color: var(--deep-pacific); }
  .explore-page .adventure-menu article:nth-child(even) { background: #486d82; color: var(--warm-white); }
  .explore-page .adventure-menu article:nth-child(n) :is(h3, p, span) { color: inherit; }
  .explore-page .adventure-feature { margin-bottom: 24px; }
  .explore-page .section-heading { margin-bottom: 24px; }
  .explore-page .explore-logistics, .explore-page .page-final-cta { padding: 48px 18px; }
  .explore-page .local-favorites-list li { grid-template-columns: 1fr; gap: 8px; }
  .explore-page .map-section iframe { min-height: 300px; }
  .explore-page .journey-card, .explore-page .faq-grid details { padding: 24px; }
}

.explore-page .page-final-cta { width: 100%; padding-inline: max(24px, calc((100vw - var(--max)) / 2)); }
.explore-page .page-final-cta p:not(.eyebrow) { color: var(--charcoal); }
@media(max-width:700px) { .explore-page .page-final-cta { padding-inline: 18px; } }

.explore-page .adventure-feature { background: var(--warm-white); color: var(--deep-pacific); border: 1px solid var(--line); }
.explore-page .adventure-feature h3 { color: var(--deep-pacific); }
.explore-page .adventure-feature p:not(.mini-label) { color: var(--charcoal); }
.explore-page .explore-memories__heading h2 { margin: 10px 0 24px; }

/* Preserve the full framing of the uploaded portrait and landscape photos. */
.explore-page .memory-card--uploaded button { background: var(--warm-white); }
.explore-page .memory-card--uploaded img { object-fit: contain; }

/* Match Surf's opening: copy and feature photo, then a three-part Sand guide. */
.explore-page .inner-page-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: 40px;
}
.explore-page .inner-page-intro__copy { min-width: 0; }
.explore-page .inner-page-intro__copy > .eyebrow { color: #4e6033; }
.explore-page .explore-intro-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 28% 6% 28% 6% / 32% 8% 32% 8%;
  box-shadow: 0 10px 26px rgba(22,59,74,.13), 0 2px 6px rgba(22,59,74,.06);
}
.explore-page .explore-intro-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 50% 50%;
}
.explore-page .explore-paths { padding-top: 24px; padding-bottom: 28px; }
.explore-page .explore-paths .level-path {
  margin: 0;
  background: rgba(22,59,74,.2);
  border-color: rgba(22,59,74,.2);
}
.explore-page .explore-paths .level-path article { background: var(--sand); }
.explore-page .explore-paths .level-path span { color: var(--deep-pacific); }
.explore-page .explore-paths .level-path h3 { margin: 10px 0; font-size: 1.7rem; font-weight: 700; line-height: 1.15; }
@media (max-width: 800px) {
  .explore-page .inner-page-intro { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 700px) {
  .explore-page .explore-paths { padding-top: 24px; padding-bottom: 24px; }
}

/* The experience offering panel reuses Surf's embedded board section surface. */
.explore-page .explore-experiences-panel {
  min-width: 0;
  overflow: hidden;
  border-radius: 30px;
  padding: clamp(64px, 8vw, 94px) clamp(28px, 6vw, 72px) clamp(68px, 8vw, 96px);
  background:
    radial-gradient(circle at 50% 62%, rgba(233,120,91,.19), transparent 30%),
    linear-gradient(180deg, var(--warm-white), color-mix(in srgb, var(--seafoam) 18%, var(--warm-white)));
}
/* Match Stay's alternate-accommodation section with a 14% Seafoam tint. */
.explore-page :is(.concierge-connection, .faq-section)::before {
  background: color-mix(in srgb, var(--seafoam) 14%, var(--warm-white));
}
@media (max-width: 700px) {
  .explore-page .explore-experiences-panel { border-radius: 24px; padding: 56px 18px 64px; }
}

/* Keep the closing eyebrow consistent with Explore's section subtitles. */
.explore-page .page-final-cta > div > p.eyebrow {
  margin: 0 0 12px;
  font-family: "Manrope", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #4e6033;
}

/* Explore's photo mosaic preserves portrait and landscape framing. */
.explore-page .explore-gallery .section-heading { margin-bottom: 24px; }
.explore-page .mosaic-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.explore-page .mosaic-filters[hidden], .explore-page .mosaic-tile[hidden], .explore-page [data-mosaic-more][hidden] { display: none; }
.explore-page .mosaic-filters button { min-height: 44px; padding: 10px 18px; border: 1px solid rgba(22,59,74,.25); border-radius: 999px; background: transparent; color: var(--deep-pacific); font: 700 .875rem/1.4 "Manrope", Arial, sans-serif; cursor: pointer; }
.explore-page .mosaic-filters button[aria-pressed="true"] { background: var(--deep-pacific); border-color: var(--deep-pacific); color: var(--warm-white); }
.explore-page .mosaic-filters button:hover { border-color: var(--deep-pacific); }
.explore-page .explore-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; gap: 16px; align-items: start; }
.explore-page .mosaic-tile { margin: 0; min-width: 0; }
.explore-page .mosaic-tile--wide { grid-column: span 2; }
.explore-page .mosaic-tile button { display: block; width: 100%; padding: 0; border: 0; border-radius: 16px; overflow: hidden; background: var(--sand); cursor: zoom-in; }
.explore-page .mosaic-tile img { display: block; width: 100%; height: auto; }
.explore-page .mosaic-footer { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 32px; text-align: center; }
.explore-page .mosaic-footer p { margin: 0; color: var(--muted); font-size: .875rem; }
.explore-page .mosaic-footer .text-link { display: inline-flex; align-items: center; min-height: 44px; }
.explore-page .mosaic-viewer { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 16px 24px; border: 0; border-radius: 0; background: #0d2028; color: var(--warm-white); }
.explore-page .mosaic-viewer[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 16px; }
.explore-page .mosaic-viewer::backdrop { background: rgba(0,0,0,.85); }
.explore-page .mosaic-viewer__bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.explore-page .mosaic-viewer__bar p { margin: 0; font-size: .875rem; }
.explore-page .mosaic-viewer button { flex-shrink: 0; width: 48px; height: 48px; border: 1px solid rgba(250,247,240,.6); border-radius: 50%; color: var(--warm-white); background: transparent; font: 400 1.75rem/1 "Manrope", Arial, sans-serif; cursor: pointer; }
.explore-page .mosaic-viewer__stage { min-height: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 20px; align-items: center; }
.explore-page .mosaic-viewer__stage img { display: block; width: 100%; height: 100%; min-height: 0; max-height: calc(100dvh - 112px); object-fit: contain; touch-action: pan-y pinch-zoom; user-select: none; }
.explore-page .mosaic-viewer button:focus-visible { outline-color: var(--warm-white); box-shadow: none; }
@media (max-width: 980px) {
  .explore-page .explore-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .explore-page .explore-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .explore-page .mosaic-tile button { border-radius: 12px; }
  .explore-page .mosaic-filters { gap: 8px; }
  .explore-page .mosaic-filters button { padding: 10px 14px; }
  .explore-page .mosaic-viewer { padding: 12px; }
  .explore-page .mosaic-viewer__stage { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .explore-page .mosaic-viewer__stage img { grid-column: 1; grid-row: 1; max-height: calc(100dvh - 160px); }
  .explore-page .mosaic-viewer__previous, .explore-page .mosaic-viewer__next { grid-row: 2; grid-column: 1; }
  .explore-page .mosaic-viewer__previous { justify-self: start; }
  .explore-page .mosaic-viewer__next { justify-self: end; }
}

.explore-page .explore-mosaic.is-ready { display: block; }


/* Justified rows remove masonry gaps and balance the final photos. */
.explore-page .mosaic-row { display: flex; gap: 16px; margin-bottom: 16px; }
.explore-page .mosaic-row:last-of-type { margin-bottom: 0; }
.explore-page .mosaic-row .mosaic-tile { flex: 0 0 auto; height: 100%; }
.explore-page .mosaic-row .mosaic-tile button,
.explore-page .mosaic-row .mosaic-tile img { width: 100%; height: 100%; }
.explore-page .mosaic-row .mosaic-tile img { object-fit: contain; }
@media (max-width: 700px) {
  .explore-page .mosaic-row { gap: 12px; margin-bottom: 12px; }
}

/* Contain full-bleed section backgrounds within the viewport. */
.explore-page main { overflow-x: clip; }
