/* Wide destination photography; compact variants keep practical tools close. */
.has-page-intro {
  --hero-ink: #102a2c;
  --hero-muted: #486064;
  --hero-accent: #165863;
  --hero-white: #fff;
  --hero-scrim: linear-gradient(0deg, rgb(5 19 22 / .78), rgb(5 19 22 / .58) 48%, rgb(5 19 22 / .08));
  background: var(--hero-white);
}
.has-page-intro .site-header,
.has-page-intro .site-header.is-scrolled {
  background: var(--hero-white);
  color: var(--hero-ink);
  border-color: #e5ecec;
  box-shadow: none;
}
.has-page-intro .site-header .brand,
.has-page-intro .site-header .desktop-nav > a,
.has-page-intro .site-header .nav-menu > button,
.has-page-intro .site-header .header-search { color: var(--hero-ink); }
.has-page-intro .site-header .menu-button span { background: currentColor; }
.has-page-intro .site-header .menu-button { background: var(--hero-ink); color: var(--hero-white); }
.has-page-intro main { padding-top: calc(4.8rem + env(safe-area-inset-top)); }
.has-page-intro main > .breadcrumb {
  position: static;
  inset: auto;
  transform: none;
  width: var(--shell);
  min-height: 0;
  margin: 0 auto;
  padding-block: .65rem;
  color: var(--hero-muted);
}
.has-page-intro main > .breadcrumb a { color: var(--hero-muted); }
.has-page-intro .page-intro {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: end;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--hero-ink);
  background: var(--hero-white);
}
.page-intro > * { min-width: 0; }
.page-intro .page-intro-copy { position: relative; z-index: 2; padding-block: 3rem; }
.page-intro .page-intro-eyebrow {
  margin: 0 0 .85rem;
  color: var(--hero-accent);
  font-size: .875rem;
  font-weight: 650;
  letter-spacing: .025em;
  text-transform: none;
}
.has-page-intro .page-intro h1 {
  max-width: 24ch;
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(2rem, 4.5vw, 4rem);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.035em;
  color: var(--hero-ink);
  text-wrap: balance;
  overflow-wrap: break-word;
}
.page-intro .page-intro-lead > p {
  max-width: 57ch;
  margin: 1.15rem 0 0;
  color: var(--hero-muted);
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height: 1.6;
}
.page-intro-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: 1.5rem; }
.page-intro .page-intro-link {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .75rem .2rem;
  color: var(--hero-ink);
  font-size: .9375rem;
  line-height: 1.4;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: .3rem;
  transition: background-color 160ms ease, color 160ms ease;
}
.page-intro .page-intro-link--primary { padding: .85rem 1.5rem; background: var(--hero-accent); color: var(--hero-white); border-radius: .2rem; text-decoration: none; }
.page-intro .page-intro-link:hover { text-decoration-thickness: 2px; }
.page-intro .page-intro-link--primary:hover { background: var(--hero-ink); color: var(--hero-white); }
.page-intro a:focus-visible, .page-intro-meta :is(a, summary):focus-visible { outline: 3px solid #177b98; outline-offset: 4px; }
.has-page-intro .page-intro--panorama { min-height: clamp(26rem, 58vw, 36rem); background: var(--hero-ink); }
.page-intro--panorama .page-intro-visual { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.page-intro--panorama .page-intro-visual::after { content: ''; position: absolute; inset: 0; background: var(--hero-scrim); }
.page-intro .hero-photo { width: 100%; height: 100%; margin: 0; }
.page-intro .hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.page-intro--panorama .page-intro-copy { padding-block: 5rem 3.5rem; }
.has-page-intro .page-intro--panorama :is(h1, .page-intro-eyebrow, .page-intro-lead > p, .page-intro-link) { color: var(--hero-white); }
.has-page-intro .page-intro--panorama a.page-intro-link--primary { background: var(--hero-white); color: var(--hero-ink); }
.has-page-intro .page-intro--panorama .page-intro-link--primary:hover { background: #e8f0ef; }
.page-intro--panorama a:focus-visible { outline-color: var(--hero-white); outline-width: 3px; }
.has-page-intro .page-intro--home { min-height: clamp(36rem, 85svh, 48rem); }
.page-intro--home .page-intro-copy { padding-block: 8rem 5rem; text-align: center; }
.has-page-intro .page-intro--home h1 { max-width: 24ch; margin-inline: auto; font-size: clamp(2.5rem, 5.5vw, 4.5rem); }
.page-intro--home .page-intro-lead > p { max-width: 52ch; margin-inline: auto; }
.page-intro--home .page-intro-actions { justify-content: center; }
.page-intro--home .hero-photo img { object-position: center 75%; }
.has-page-intro .page-intro--utility { min-height: 20rem; --hero-scrim: linear-gradient(90deg, rgb(5 19 22 / .76), rgb(5 19 22 / .62)); }
.has-page-intro .page-intro--utility h1 { font-size: clamp(1.85rem, 3.5vw, 3rem); }
.page-intro--utility .page-intro-copy { padding-block: 2.5rem; }
.page-intro--utility .page-intro-lead > p { max-width: 64ch; margin-top: .75rem; }
.page-intro-meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: start; gap: 0 1.5rem; padding-block: .35rem; color: var(--hero-muted); font-size: .875rem; }
.page-intro-advice { max-width: min(100%, 55ch); }
.page-intro-meta summary { min-height: 2.75rem; display: flex; align-items: center; gap: .5rem; cursor: pointer; list-style: none; line-height: 1.45; }
.page-intro-meta summary::-webkit-details-marker { display: none; }
.page-intro-advice > summary::before { content: '+'; font-size: 1.15rem; }
.page-intro-advice[open] > summary::before { content: '−'; }
.page-intro-advice > div { padding: .35rem 0 1rem; line-height: 1.6; }
.page-intro-advice strong { display: block; color: var(--hero-ink); }
.hero-photo-credits { max-width: 100%; margin-left: auto; }
.hero-photo-credits > summary { justify-content: end; text-decoration: underline; text-underline-offset: .2rem; }
.hero-photo-credits ul { max-width: 64ch; padding: .75rem 1rem; margin: 0 0 .5rem; background: #f3f6f6; list-style: none; overflow-wrap: anywhere; }
.hero-photo-credits a { text-decoration: underline; text-underline-offset: .18rem; }
.hero-anchor { display: none; }
.hero-content-start { display: block; scroll-margin-top: 10rem; }
.has-page-intro .subnav { background: var(--hero-white); }
.has-immersive-home main { padding-top: 0; }
.has-immersive-home:not(.menu-open) .site-header:not(.is-scrolled) {
  background: linear-gradient(rgb(5 19 22 / .78), rgb(5 19 22 / .55));
  border-color: transparent;
  backdrop-filter: none;
}
.has-immersive-home:not(.menu-open) .site-header:not(.is-scrolled) :is(.brand, .desktop-nav > a, .nav-menu > button, .header-search) { color: var(--hero-white); }
.has-immersive-home:not(.menu-open) .site-header:not(.is-scrolled) .header-cta { background: transparent; border: 1px solid var(--hero-white); color: var(--hero-white); }
.has-immersive-home:not(.menu-open) .site-header:not(.is-scrolled) .menu-button { background: var(--hero-white); color: var(--hero-ink); }
@media (min-width: 64rem) {
  .page-intro--panorama .page-intro-copy { padding-inline: 1rem; }
}
@media (max-width: 63.99rem) {
  .has-page-intro main { padding-top: calc(77px + env(safe-area-inset-top)); }
  .has-immersive-home main { padding-top: 0; }
}
@media (max-width: 37.99rem) {
  .has-page-intro main { padding-top: calc(70px + env(safe-area-inset-top)); }
  .has-immersive-home main { padding-top: 0; }
  .has-page-intro .page-intro--panorama { min-height: 28rem; --hero-scrim: linear-gradient(0deg, rgb(5 19 22 / .8), rgb(5 19 22 / .62)); }
  .page-intro--panorama .page-intro-copy { padding-block: 3rem 2.5rem; padding-inline: .35rem; }
  .has-page-intro .page-intro--home { min-height: min(42rem, 90svh); }
  .page-intro--home .page-intro-copy { padding-block: 8rem 3rem; }
  .page-intro .page-intro-eyebrow { margin-bottom: .75rem; }
  .page-intro .page-intro-lead > p { margin-top: 1rem; }
  .page-intro-actions { gap: .5rem 1rem; margin-top: 1.25rem; }
  .page-intro .page-intro-link { font-size: .875rem; }
  .page-intro .page-intro-link--primary { padding: .75rem 1.15rem; }
  .has-page-intro .page-intro--utility { min-height: 18rem; }
  .page-intro--utility .page-intro-copy { padding-block: 2rem; }
}
@media (prefers-reduced-motion: reduce) { .page-intro .page-intro-link { transition: none; } }
