/* Composition pinned by the user's Julio screenshots and comp.mp4. */
:root { --header-height:104px; --hero-fade:rgb(16 18 16 / .72); }
html { scroll-padding-top:calc(var(--header-height) + 24px); }
.header-scroll-sentinel { position:absolute; top:0; left:0; width:1px; height:1px; pointer-events:none; }
.site-header { position:sticky; top:0; z-index:40; height:var(--header-height); padding:20px var(--edge); background:var(--ink); }
.site-header.is-over-hero { background:linear-gradient(var(--ink),rgb(16 18 16 / .7) 58%,transparent); }
.site-header.is-scrolled { background:var(--ink); }
.site-header .brand>span { font-size:28px; }
.site-header .brand small { align-self:center; padding-top:8px; margin-top:8px; border-top:1px solid var(--accent); }
.desktop-nav { margin-left:auto; gap:32px; }
.site-header .button-small { min-height:48px; padding:8px 12px 8px 18px; gap:24px; }
.menu-toggle { display:none; }
main#conteudo { margin-top:calc(0px - var(--header-height)); }
.hero { display:block; position:relative; isolation:isolate; background:var(--ink); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; position:relative; z-index:2; width:62%; max-width:1190px; margin-left:max(0px,calc((100% - 1920px) / 2)); min-height:clamp(640px,100svh,940px); padding:calc(var(--header-height) + 40px) var(--edge) 64px; }
.hero-copy .hero-location { color:var(--muted); font-size:13px; line-height:1.5; margin:0 0 28px; }
.hero h1 { font-size:clamp(56px,5.5vw,100px); font-weight:400; line-height:1.04; letter-spacing:-.04em; margin:0 0 32px; }
.hero h1>span { display:block; animation:none; }
.hero h1>span+span { color:var(--accent); }
.hero-copy>p:not(.hero-location) { max-width:35ch; font-size:17px; line-height:1.8; color:var(--muted); margin:0 0 32px; }
.hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:16px; animation:none; }
.hero-actions .quiet-link { color:var(--paper); text-transform:uppercase; text-decoration:none; font-size:13px; font-weight:500; letter-spacing:.045em; gap:16px; }
.hero-actions .quiet-link .icon { width:18px; height:18px; transform:rotate(90deg); }
.hero-copy>p { animation:none; }
.hero-rating { display:none; }
/* The photo field begins halfway through the actual title, underneath the copy. */
.hero-media.hero-photos { position:absolute; inset:0 0 68px var(--hero-media-start,25%); z-index:0; width:auto; height:calc(100% - 68px); min-height:0; margin:0; aspect-ratio:auto; overflow:hidden; background:var(--ink); animation:none; }
.hero-media .hero-photo { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:none; margin:0; object-fit:cover; object-position:50% 40%; border-radius:0; opacity:0; mask-image:none; transition:opacity 700ms var(--ease-in-out); }
.hero-media .hero-photo.is-active { opacity:1; }
.hero-media .hero-photo:nth-of-type(2) { object-position:58% 35%; }
.hero-media .hero-photo:nth-of-type(3) { object-position:65% 34%; }
.hero-media::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,var(--ink),rgb(16 18 16 / .78) 12%,rgb(16 18 16 / .25) 38%,rgb(16 18 16 / .12) 80%,rgb(16 18 16 / .2)),linear-gradient(180deg,rgb(16 18 16 / .4),transparent 25%,rgb(16 18 16 / .18) 72%,var(--ink)); }
.hero-photo-controls { position:absolute; z-index:3; top:calc(var(--header-height) + 16px); right:var(--edge); display:flex; align-items:center; gap:8px; }
.hero-photo-controls[hidden] { display:none; }
.hero-photo-controls:not(:focus-within) { width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.hero-photo-control { display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; padding:10px; color:var(--paper); background:var(--ink); border:1px solid var(--line); border-radius:0; touch-action:manipulation; }
.hero-photo-control .icon { width:18px; height:18px; }
@media(hover:hover) and (pointer:fine) { .hero-photo-control:hover { background:var(--brown); color:var(--accent); } }
@media(prefers-reduced-motion:reduce) { .hero-media .hero-photo { transition:none; } }
.hero-ribbon { position:relative; z-index:2; min-height:68px; padding:14px var(--edge); background:var(--ink); color:var(--paper); border:0; --focus:var(--accent); }
.hero-ribbon>span:nth-child(2) { font:500 16px/1.4 var(--font-body); letter-spacing:.12em; }
.hero-ribbon>span:nth-child(2)>span { color:var(--accent); }
.mobile-booking-bar { display:none; }
@media(max-width:1100px) {
  .hero-copy { width:69%; }
  .hero h1 { font-size:clamp(52px,6.3vw,76px); }
  .desktop-nav { gap:24px; }
  .desktop-nav a[href='#localizacao'] { display:none; }
}
@media(max-width:800px) {
  :root { --header-height:88px; }
  .site-header,.site-header:has(.mobile-menu:not([hidden])) { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:1fr; column-gap:16px; row-gap:0; height:var(--header-height); min-height:var(--header-height); padding:16px 24px; }
  .site-header.is-over-hero { background:var(--ink); }
  .site-header .brand { grid-column:1; grid-row:1; width:max-content; max-width:100%; min-height:44px; justify-content:center; }
  .site-header .brand>span { font-size:clamp(16px,4.8vw,24px); }
  .site-header .brand small { font-size:11px; letter-spacing:.2em; }
  .site-header .header-booking,.site-header .desktop-nav { display:none; }
  .site-header .menu-toggle { display:flex; grid-column:2; grid-row:1; align-items:center; justify-content:center; gap:6px; width:88px; min-height:44px; padding:8px; border:1px solid var(--line); color:var(--paper); background:var(--ink); font:500 13px/1.4 var(--font-body); touch-action:manipulation; -webkit-tap-highlight-color:transparent; user-select:none; }
  .menu-toggle .icon { width:18px; height:18px; }
  .site-header .mobile-menu[hidden] { display:none; }
  .site-header .mobile-menu:not([hidden]) { position:absolute; inset:100% 0 auto; grid-column:auto; display:flex; flex-direction:column; gap:4px; padding:12px 24px 24px; max-height:calc(100vh - var(--header-height) - 104px - env(safe-area-inset-bottom,0px)); max-height:calc(100dvh - var(--header-height) - 104px - env(safe-area-inset-bottom,0px)); overflow-y:auto; overscroll-behavior-y:contain; background:var(--ink); border-bottom:1px solid var(--line); animation:none; }
  .site-header .mobile-menu>a:not(.button) { display:flex; align-items:center; min-height:48px; padding:10px 0; font:500 18px/1.4 var(--font-body); color:var(--paper); text-decoration:none; touch-action:manipulation; }
  .site-header .mobile-menu>.button { flex-shrink:0; width:100%; min-height:56px; margin-top:12px; padding:12px 14px; font:500 13px/1.4 var(--font-body); }
  .menu-toggle:active,.site-header .mobile-menu>a:not(.button):active { background:var(--brown); color:var(--accent); }
  .hero-copy { width:100%; justify-content:flex-start; min-height:0; padding:clamp(232px,30svh,280px) 24px 40px; }
  .hero-copy .hero-location { font-size:13px; margin-bottom:20px; }
  .hero h1 { font-size:clamp(36px,10.5vw,56px); line-height:1.05; letter-spacing:-.035em; margin-bottom:24px; }
  .hero-copy>p:not(.hero-location) { font-size:16px; line-height:1.8; max-width:34ch; margin-bottom:24px; }
  .hero-actions .button { gap:24px; padding:12px 14px; }
  .hero-media.hero-photos { --hero-photo-height:clamp(260px,40svh,360px); inset:0 0 68px var(--hero-media-start,40%); width:auto; height:calc(100% - 68px); border-radius:0; }
  .hero-media .hero-photo { top:100px; bottom:auto; height:var(--hero-photo-height); object-fit:cover; object-position:50% 30%; }
  .hero-media .hero-photo:nth-of-type(2) { object-position:62% 25%; }
  .hero-media .hero-photo:nth-of-type(3) { object-position:67% 28%; }
  .hero-photo-controls { left:var(--edge); right:auto; }
  .hero-media::after { background:linear-gradient(90deg,var(--ink),rgb(16 18 16 / .45) 14%,rgb(16 18 16 / .08) 58%),linear-gradient(180deg,var(--ink) 88px,transparent 170px,rgb(16 18 16 / .15) 265px,var(--ink) calc(100px + var(--hero-photo-height) - 1px)); }
  .hero-ribbon { min-height:68px; padding:18px 24px; }
  .hero-ribbon>span:first-child { display:none; }
}
@media(max-width:800px) {
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  html { scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom,0px)); }
  .mobile-booking-bar { position:fixed; z-index:30; inset:auto 0 0; display:block; padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px)); background:var(--ink); border-top:1px solid var(--line); }
  .mobile-booking-bar .button { display:flex; width:100%; min-height:56px; padding:10px 14px; font-size:13px; }
  .mobile-booking-bar[hidden] { display:none; }
}
@media(max-width:370px) {
  .site-header,.site-header:has(.mobile-menu:not([hidden])) { padding-inline:20px; column-gap:12px; }
  .site-header .brand>span { font-size:14px; white-space:nowrap; }
  .hero-copy { padding:clamp(220px,30svh,260px) 20px 36px; }
  .hero h1 { font-size:clamp(34px,10.5vw,40px); }
  .hero-copy>p:not(.hero-location) { font-size:15px; }
}
@media(max-width:340px) {
  .site-header,.site-header:has(.mobile-menu:not([hidden])) { padding-inline:16px; }
  .site-header .brand>span { font-size:clamp(12px,4.4vw,14px); }
}
@media(max-width:800px) and (orientation:landscape) {
  .hero-copy { padding-top:220px; }
  .hero-media.hero-photos { --hero-photo-height:260px; }
}
@media(min-width:2000px) {
  .hero-media .hero-photo { object-fit:contain; object-position:right center; }
}
