/* Promotion-first layout. Gallery references: 21st.dev Hotel Showcase / PhotoGallery.
   Adapted to the site's native HTML/CSS/JS and the hotel's own photography. */
body[data-page="lead"] {
  --journey-space: clamp(64px, 8vw, 112px);
  --journey-gap: clamp(24px, 4vw, 56px);
}

body[data-page="lead"] h1,
body[data-page="lead"] h2 { text-wrap: balance; }
body[data-page="lead"] .hero__grid { align-items:center; gap:var(--journey-gap); }
body[data-page="lead"] .hero__copy h1 { max-width:12ch; font-size:clamp(44px, 5.5vw, 72px); letter-spacing:-.035em; }
body[data-page="lead"] .hero__copy .lead { max-width:42ch; font-size:19px; }
body[data-page="lead"] .hero__veil { background:linear-gradient(90deg, rgb(7 29 48 / .87), rgb(7 29 48 / .40) 65%, rgb(7 29 48 / .55)); }
body[data-page="lead"] .hero>picture img { object-position:43% center; }
body[data-page="lead"] .review-nav { min-height:44px; }
body[data-page="lead"] #cadastro { scroll-margin-top:24px; }
body[data-page="lead"] .button { min-height:48px; }
body[data-page="lead"] .link-arrow { display:inline-flex; align-items:center; gap:12px; min-height:44px; }
.link-arrow svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; }

.promotion { padding:72px 0 64px; background:var(--gold-pale); color:var(--ink); }
.promotion__heading { display:grid; grid-template-columns:1.12fr 1fr; gap:var(--journey-gap); align-items:start; }
.promotion__heading h2 { max-width:19ch; font-size:clamp(32px,3.5vw,46px); line-height:1.15; letter-spacing:-.03em; }
.promotion__heading h2 em { color:#80581c; font-style:normal; }
.promotion__heading p { max-width:45ch; margin:0 0 24px; font-size:18px; line-height:1.65; }
.promotion__details { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:48px 0 0; padding-top:28px; gap:32px; border-top:1px solid #cbbb9c; }
.promotion__details>div { min-width:0; }
.promotion__details dt { font-size:13px; color:#5f5138; }
.promotion__details dd { margin:6px 0 0; font-size:clamp(22px,2.4vw,30px); font-weight:800; line-height:1.25; letter-spacing:-.02em; }
.promotion__details .promotion__description { max-width:32ch; margin:12px 0 0; font-size:14px; font-weight:400; line-height:1.6; letter-spacing:0; color:#5f5138; }

.hotel-tour { padding:var(--journey-space) 0 64px; background:var(--ink); color:var(--paper); }
.hotel-tour__heading, .hotel-table__heading { display:flex; justify-content:space-between; align-items:end; gap:var(--journey-gap); margin-bottom:40px; }
.hotel-tour__heading h2, .hotel-table__heading h2 { max-width:17ch; font-size:clamp(36px,4.5vw,58px); letter-spacing:-.03em; line-height:1.1; }
.hotel-tour__heading>p { max-width:39ch; margin:0; font-size:17px; line-height:1.65; color:#d5e1e9; }
.hotel-tour__gallery { width:min(1440px,calc(100% - 48px)); }
.hotel-tour__stage { position:relative; }
.hotel-tour__slide { margin:0; }
.hotel-tour__slide[hidden], [data-tour-controls][hidden] { display:none; }
.hotel-tour__slide picture { display:block; overflow:hidden; background:#0c263f; }
.hotel-tour__slide img { display:block; width:100%; aspect-ratio:2 / 1; height:auto; object-fit:cover; object-position:center 46%; }
.hotel-tour__slide picture { touch-action:pan-y pinch-zoom; }
.hotel-tour__slide figcaption { padding:28px 196px 8px 0; min-height:94px; }
.hotel-tour__slide h3 { margin:0 0 6px; font-size:20px; font-weight:600; line-height:1.3; letter-spacing:-.01em; }
.hotel-tour__slide p { margin:0; font-size:14px; line-height:1.6; color:#d5e1e9; }
.hotel-tour__arrows { position:absolute; bottom:8px; right:0; display:flex; align-items:center; gap:8px; }
.hotel-tour__arrows button { display:grid; place-items:center; width:48px; height:48px; padding:0; border:0; border-radius:0; background:transparent; color:var(--paper); cursor:pointer; transition:color .2s; }
.hotel-tour__arrows button:hover { color:var(--gold-light,#f4e5ca); }
.hotel-tour__arrows svg { width:30px; height:24px; fill:none; stroke:currentColor; stroke-width:1.25; }
.hotel-tour__count { margin:0 20px 0 0; font-size:12px; font-variant-numeric:tabular-nums; letter-spacing:.08em; color:#d5e1e9; white-space:nowrap; }
.hotel-tour__announcement { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.hotel-tour button:focus-visible { outline-color:#eed394; }
@media (prefers-reduced-motion:no-preference) {
  .hotel-tour__slide.is-entering picture { animation:tour-photo .45s cubic-bezier(.16,1,.3,1); }
  @keyframes tour-photo { from { clip-path:inset(0 2% 0 0); } to { clip-path:inset(0); } }
}

.hotel-table { padding:var(--journey-space) 0; background:var(--paper); }
.hotel-table__heading>p { max-width:43ch; font-size:17px; line-height:1.65; margin:0; color:var(--muted); }
.hotel-table__spread { display:grid; grid-template-columns:1.35fr 1fr; align-items:start; gap:var(--journey-gap); }
.hotel-table figure { margin:0; }
.hotel-table img { width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }
.hotel-table figcaption { margin-top:12px; font-size:13px; color:var(--muted); }
.hotel-table__detail { padding-top:64px; }
.hotel-table__detail .link-arrow { margin-top:28px; font-size:15px; }

@media (max-width:780px) {
  body[data-page="lead"] .hero__grid { padding-top:120px; }
  body[data-page="lead"] .hero__copy h1 { max-width:13ch; }
  body[data-page="lead"] .hero__copy .lead { font-size:18px; }
  .promotion { padding:52px 0; }
  .promotion__heading { grid-template-columns:1fr; gap:24px; }
  .promotion__heading h2 { max-width:21ch; }
  .promotion__heading p { font-size:16px; }
  .promotion__details { grid-template-columns:1fr; margin-top:32px; gap:24px; padding-top:24px; }
  .promotion__details>div { display:grid; grid-template-columns:1fr 1.3fr; gap:4px 16px; }
  .promotion__details dt { grid-column:1; }
  .promotion__details dd { grid-column:1; margin-top:0; font-size:21px; }
  .promotion__details .promotion__description { grid-column:2; grid-row:1 / span 2; margin:0; align-self:center; }
  .hotel-tour { padding-bottom:40px; }
  .hotel-tour__heading, .hotel-table__heading { display:block; margin-bottom:28px; }
  .hotel-tour__heading>p, .hotel-table__heading>p { margin-top:24px; font-size:16px; }
  .hotel-tour__gallery { width:calc(100% - 32px); }
  .hotel-tour__slide img { aspect-ratio:4 / 3; }
  .hotel-tour__slide figcaption { min-height:104px; padding:20px 0 8px; }
  .hotel-tour__slide h3 { font-size:20px; }
  .hotel-tour__slide p { font-size:14px; }
  .hotel-tour__arrows { position:static; justify-content:flex-end; padding-top:8px; }
  .hotel-tour__count { margin-right:auto; }
  .hotel-table__spread { grid-template-columns:1fr; gap:32px; }
  .hotel-table__detail { width:87%; margin-left:auto; padding-top:0; }
  .hotel-table__detail .link-arrow { margin-top:20px; }
}
@media (max-width:380px) {
  .promotion__details>div { grid-template-columns:1fr; }
  .promotion__details .promotion__description { grid-column:1; grid-row:auto; margin-top:8px; }
  .hotel-table__detail { width:100%; }
}
