/* Proporções compartilhadas com o cabeçalho da página inicial. */
body { --hero-edge:max(6vw,calc((100% - 1560px)/2)); }
body .site-header {
  max-width:none;width:100%;padding:.8rem var(--hero-edge);border:0;
  grid-template-columns:auto minmax(0,1fr);column-gap:2rem;
}
body .site-header > .brand {grid-column:1;grid-row:1}
body .site-header > #primary-navigation {grid-column:2;grid-row:1;border:0;padding:0}
body .site-header nav ul {justify-content:center}
body .site-header .brand-name {gap:.85rem;font-size:1.15rem}
body .site-header .brand-mark {border:0;font:italic 2.8rem/1 Georgia,serif;color:#f1ddb2;height:2.3rem}
body .site-header .brand p {margin:0 0 0 3.65rem;text-transform:none;letter-spacing:.02em}
body:not(.page-credits) .site-header {position:absolute;inset:0 0 auto;z-index:20;background:transparent;color:white}
body:not(.page-credits) .site-header :is(a,.brand p) {color:#fff6e6}
body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero),
body .main-checkout > .page-intro {
  padding:6.3rem var(--hero-edge) 1.65rem;
  text-align:left;
}
body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero,.page-intro,.credits-intro) h1 {
  font-family:var(--serif);font-size:clamp(3.3rem,4.6vw,5.6rem);
  line-height:1.06;letter-spacing:-.025em;margin:.35rem 0;max-width:none;
}
body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero,.page-intro,.credits-intro) h1 + p {
  font:italic clamp(1.4rem,2vw,2.2rem)/1.4 var(--serif);
  margin-top:0;margin-bottom:.7rem;max-width:48ch;
}
body main .catalog-hero h1 + p em {font:inherit}
body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero,.page-intro,.credits-intro) .eyebrow {margin:0 0 .5rem}
@media(max-width:1050px) and (min-width:801px){
 body .site-header {column-gap:1rem}
 body .site-header nav ul {gap:.5rem 1rem}
}
@media(max-width:800px){
 body .site-header {position:relative;inset:auto;grid-template-columns:minmax(0,1fr) auto;background:var(--olive);color:var(--ivory)}
 body .site-header > #primary-navigation {
   position:absolute;
   inset:calc(100% - .2rem) var(--hero-edge) auto auto;
   grid-column:auto;
   grid-row:auto;
   width:min(18rem,calc(100vw - 2 * var(--hero-edge)));
   max-height:calc(100dvh - 7rem);
   overflow-y:auto;
   overscroll-behavior:contain;
   margin:0;
   padding:.65rem 1rem;
   border:1px solid #bca47680;
   border-radius:.45rem;
   background:#213528;
   box-shadow:0 .6rem 1.7rem #10201730;
   z-index:21;
 }
 body .site-header > .menu-toggle[aria-expanded="false"] + #primary-navigation {display:none}
 body .site-header > #primary-navigation ul {
   display:flex;
   flex-direction:column;
   align-items:center;
   justify-content:center;
   gap:0;
   padding:0;
   margin:0;
 }
 body .site-header > #primary-navigation li {width:100%;margin:0;padding:0;text-align:center}
 body .site-header > #primary-navigation a {
   display:inline-block;
   width:auto;
   min-height:44px;
   line-height:1.5;
   padding:.6rem .5rem;
   color:#fff6e6;
   text-align:center;
 }
 body .site-header .brand p {margin-left:0}
 body .site-header .menu-toggle {color:var(--ivory);border-color:var(--champagne)}
 body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero),
 body .main-checkout > .page-intro {padding-top:2.2rem}
}
@media(max-width:540px){
 body {--hero-edge:1.15rem}
 body .site-header .brand-name {font-size:.95rem;gap:.5rem}
 body main :is(.catalog-hero,.escape-hero,.booking-hero,.contact-hero,.page-intro,.credits-intro) h1 {font-size:clamp(2.6rem,10vw,3.5rem)}
}
@media(max-width:800px){
 body:not(.page-credits) .site-header {position:relative;inset:auto;background:var(--olive)}
}

/* Os heróis internos seguem a composição do catálogo de suítes. */
body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro {
  display:block;
  min-height:0;
  height:auto;
  margin:0;
  border:0;
  box-shadow:none;
  padding:6.3rem var(--hero-edge) 1.65rem;
  text-align:left;
  color:white;
}
body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro h1 {
  font:clamp(3.3rem,4.6vw,5.6rem)/1.06 var(--serif);
  letter-spacing:-.025em;
  margin:.35rem 0;
  max-width:none;
}
body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro h1 + p {
  font:italic clamp(1.4rem,2vw,2.2rem)/1.4 var(--serif);
  max-width:48ch;
  margin:0 0 .7rem;
  color:inherit;
}
body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro .eyebrow {
  color:#edd49b;
  margin:0 0 .5rem;
}
@media(max-width:800px) {
  body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro {padding-top:2.2rem}
}
@media(max-width:540px) {
  body:is(.page-experiences,.page-reservations,.page-contact) main > .page-intro h1 {font-size:clamp(2.6rem,10vw,3.5rem)}
}

body main .eyebrow.hero-label {
  border-top:0;
  padding-top:0;
}
body main .hero-label .hero-label-symbol {
  margin-left:.4rem;
  color:#edd49b;
}


.credits-dialog {
  position:fixed;inset:0;width:min(36rem,calc(100% - 2rem));max-width:none;
  max-height:calc(100dvh - 2rem);box-sizing:border-box;margin:auto;
  padding:clamp(1.5rem,4vw,2.5rem);border:1px solid #d7c7ad;border-radius:.8rem;
  background:#faf4eb;color:#263126;box-shadow:0 1rem 4rem #111c2250;overflow:auto;
}
.credits-dialog::backdrop {background:#18231dcc}
.credits-dialog h2 {font:1.6rem/1.25 var(--serif);margin:0 2rem 1rem 0}
.credits-dialog .credit-entry h2 {font-size:1.15rem;margin:.5rem 0}
.credits-dialog p {font-size:.9rem;line-height:1.6;overflow-wrap:anywhere}
.credits-dialog .credit-entry {margin:0;padding:1rem 0;border-top:1px solid #d7c7ad}
.credits-dialog .credit-links a {display:inline-block;margin:0 1rem .4rem 0}
.credits-dialog .credits-close {
  position:absolute;top:.6rem;right:.6rem;box-sizing:border-box;
  width:2.75rem;height:2.75rem;min-height:0;padding:0;border:1px solid #d7c7ad;
  border-radius:50%;background:transparent;color:inherit;font-size:0;line-height:1;
}
.credits-close::before,.credits-close::after {
  content:"";position:absolute;top:50%;left:50%;width:1rem;height:1px;
  background:currentColor;transform:translate(-50%,-50%) rotate(45deg);
}
.credits-close::after {transform:translate(-50%,-50%) rotate(-45deg)}
.credits-dialog .credits-close:focus-visible {outline:none;border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
body:has(.credits-dialog[open]) {overflow:hidden}

body { --flower-image:url("../images/bougainvillea-1280.jpg"); }
@media(max-width:800px) {
  body { --flower-image:image-set(url("../images/bougainvillea-640.jpg") 1x,url("../images/bougainvillea-1280.jpg") 2x); }
}

/* Cobertura contínua e transição suave das fotografias florais. */
.page-home .editorial-stay::before {
  background-size:cover;
  background-repeat:no-repeat;
  -webkit-mask-image:linear-gradient(to right,#000 70%,transparent);
  mask-image:linear-gradient(to right,#000 70%,transparent);
  pointer-events:none;
}


@media(max-width:540px) {
  .page-home .editorial-stay::before {
    -webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent);
    mask-image:linear-gradient(to bottom,#000 65%,transparent);
  }
}

/* Indicador único da página ativa e fundo contínuo no rodapé. */
body .site-header nav a[aria-current] {
  text-decoration-line:none;
  border-bottom-color:transparent;
  box-shadow:0 1px 0 var(--gold);
}
body .site-footer.footer-minimal,
body .site-footer.footer-minimal > *,
body :is(.contact-band,.review-benefits,.booking-info,.catalog-comfort,.escape-benefits) {
  background-color:#213528;
  background-image:none;
}

@media(max-width:540px) {
  body.page-experiences main > .page-intro.escape-hero h1 {
    font-size:clamp(1rem,8vw,2.6rem);
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
}
@media(max-width:540px) {
  .page-experiences .escape-hero .hero-title-word {
    display:inline-block;
    white-space:nowrap;
  }
}