

:root {
  
  --accent:      #888888;   
  --accent-lite: #BDBDBD;   
  --accent-deep: #5c5c5c;   
  --gold-text:   #5c5c5c;   
  --beige:       #BDBDBD;   
  --accent-soft: #E5E5E5;   
  --btn-text:    #282828;   

  
  --dark:        #2D2D2D;   
  --dark-2:      #222222;   
  --dark-3:      #151515;   
  --taupe:       #828282;   
  --taupe-lite:  #ACACAC;
  --bg:          #F6F6F6;   
  --surface:     #FFFFFF;   
  --surface-2:   #E6E6E6;   
  --text:        #282828;
  --text-muted:  #666666;
  
  --text-onBeige: #474747;
  --text-onDark: rgba(255,255,255,.78);
  --line:        rgba(45,45,45,.14);
  --line-onDark: rgba(255,255,255,.16);

  
  --font-display: 'Cormorant Garamond', Lora, Georgia, 'Times New Roman', serif;
  --font-body:    'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  
  --space-xs: .5rem;
  --space-sm: 1rem;
  --space-md: 2rem;
  --space-lg: 3.25rem;
  --space-xl: clamp(3rem, 6vw, 4rem);   

  
  --gap-over:  .42rem;
  --gap-title: .55rem;

  
  --gap-p:   1.15rem;
  --gap-cta: 2.2rem;

  
  --gap-head: 1.75rem;

  --container: 1200px;
  --container-narrow: 780px;

  
  --ease: cubic-bezier(.25,.46,.45,.94);
  --dur:  .9s;

  
  --shadow:    0 4px 24px rgba(40,40,40,.08);
  --shadow-lg: 0 18px 60px rgba(40,40,40,.18);

  
  --hdr-h: 88px;
}
@media (max-width: 768px) { :root { --hdr-h: 68px; } }

@media (min-width: 1024px) {
  :root {
    --space-lg: 4rem;
    --space-xl: clamp(5rem, 7vw, 7.5rem);   
    --gap-head: 2.25rem;                    
  }
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;          
  -webkit-text-size-adjust: 100%;
}

html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.75;
  color: var(--text);
  background: var(--bg);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -.005em;
  color: var(--text);
}
h1 { font-size: clamp(2.6rem, 6.5vw, 5.2rem); }
h2 { font-size: clamp(2.1rem, 4.6vw, 3.5rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); }
h4 { font-size: 1.05rem; }

p { color: var(--text-muted); }
a { color: inherit; text-decoration: none; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
ul { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }

::selection { background: var(--accent); color: var(--btn-text); }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.skip {
  position: absolute; left: 1rem; top: -60px; z-index: 9999;
  background: var(--accent); color: var(--btn-text);
  padding: .6rem 1.2rem; border-radius: 3px; font-size: .85rem; font-weight: 600;
  transition: top .25s var(--ease);
}
.skip:focus { top: 1rem; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.5rem; }
.container--narrow { max-width: var(--container-narrow); }
@media (max-width: 640px) { .container { padding: 0 1.25rem; } }

.sec { padding: var(--space-xl) 0; position: relative; }
.sec--tight { padding: calc(var(--space-xl) * .62) 0; }

.sec--light { background: var(--bg); }        
.sec--white { background: var(--surface); }   
.sec--sand  { background: var(--surface-2); } 

.sec--beige { background: var(--beige); }
.sec--beige p { color: var(--text-onBeige); }

.sec--beige .overline { color: var(--text); }

.sec--beige .btn-primary { border-color: var(--accent-deep); }

.sec--beige .orn { color: var(--accent-deep); }

.overline {
  display: block;
  font-family: var(--font-body);
  font-size: .7rem; font-weight: 600;
  letter-spacing: .28em; text-transform: uppercase;
  color: var(--gold-text);
  margin-bottom: var(--gap-over);
}

.sec-head { text-align: center; max-width: 720px; margin: 0 auto var(--gap-head); }
.sec-head p { font-size: 1.06rem; margin-top: var(--gap-title); }
.sec-head--left { text-align: left; margin-left: 0; }

.lead { font-size: clamp(1.05rem, 1.7vw, 1.22rem); line-height: 1.85; }

.orn {
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto; color: var(--accent);
}
.orn svg { width: clamp(150px, 26vw, 230px); height: auto; overflow: visible; }
.orn--light { color: rgba(255,255,255,.85); }
.orn--sec { margin-bottom: var(--space-md); }

.orn--head { margin-bottom: calc(var(--gap-head) * .55); }
.sec-head:has(+ .orn--head) { margin-bottom: calc(var(--gap-head) * .55); }

.orn-band { padding: var(--space-lg) 0 0; background: transparent; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 50px; padding: .85rem 2.1rem;
  font-family: var(--font-body);
  font-size: .74rem; font-weight: 700;
  letter-spacing: .17em; text-transform: uppercase;
  border: 1.5px solid transparent; border-radius: 2px;
  cursor: pointer; position: relative; overflow: hidden;
  transition: color .45s var(--ease), border-color .45s var(--ease), background-color .45s var(--ease);
}

.btn::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  transform: scaleY(0); transform-origin: bottom;
  transition: transform .45s var(--ease);
}
.btn:hover::after { transform: scaleY(1); }
.btn > * { position: relative; z-index: 1; }

.btn-primary { background: var(--accent); color: var(--btn-text); border-color: var(--accent); }
.btn-primary::after { background: var(--accent-deep); }
.btn-primary:hover { color: #fff; border-color: var(--accent-deep); }

.btn-outline { background: transparent; color: var(--text); border-color: var(--text); }
.btn-outline::after { background: var(--text); }
.btn-outline:hover { color: var(--bg); }

.btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.btn-ghost::after { background: #fff; }
.btn-ghost:hover { color: var(--dark); border-color: #fff; }

.btn-sm { min-height: 42px; padding: .6rem 1.5rem; font-size: .68rem; }

.link-u {
  display: inline-block; position: relative;
  font-size: .74rem; font-weight: 700;
  letter-spacing: .17em; text-transform: uppercase;
  color: var(--gold-text); padding-bottom: .35rem;
}
.link-u::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: currentColor; transform: scaleX(.32); transform-origin: left;
  transition: transform .5s var(--ease);
}
.link-u:hover::after { transform: scaleX(1); }

.hdr {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  height: var(--hdr-h);
  display: flex; align-items: center;
  background: rgba(246,246,246,.88);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid rgba(45,45,45,.08);
  transition: background-color .4s var(--ease), border-color .4s var(--ease),
              height .4s var(--ease), box-shadow .4s var(--ease);
}

.hdr.is-solid {
  background: #fff;
  border-bottom: 2px solid var(--accent);
  box-shadow: 0 4px 22px rgba(45,45,45,.09);
  height: calc(var(--hdr-h) - 14px);
}

.hdr-inner {
  width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.logo-link { display: flex; align-items: center; flex-shrink: 0; }

.logo-svg {
  display: block; width: 300px; height: auto;
  color: var(--accent);                 
  transition: width .4s var(--ease), color .4s var(--ease);
}

@media (max-width: 1099px) { .logo-svg, .hdr.is-solid .logo-svg { width: 180px; } }
@media (max-width: 768px)  { .logo-svg, .hdr.is-solid .logo-svg { width: 150px; } }

.logo-img { height: 42px; width: auto; transition: height .4s var(--ease); }
.hdr.is-solid .logo-img { height: 36px; }
@media (max-width: 768px) { .logo-img, .hdr.is-solid .logo-img { height: 32px; } }

.nav { display: none; align-items: center; gap: 1.9rem; }
@media (min-width: 1100px) { .nav { display: flex; } }

.nav > a, .nav-top {
  position: relative;
  font-family: var(--font-body);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--text);
  padding: .4rem 0;
  background: transparent; border: none;
  transition: color .3s var(--ease);
}
.nav-top { display: inline-flex; align-items: center; gap: .42rem; cursor: pointer; }
.nav > a::after, .nav-top::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px;
  background: var(--gold-text); transform: scaleX(0); transform-origin: right;
  transition: transform .4s var(--ease);
}
.nav > a:hover, .nav-top:hover,
.nav-grp:hover .nav-top, .nav-grp:focus-within .nav-top { color: var(--gold-text); }
.nav > a:hover::after, .nav-top:hover::after,
.nav-grp:hover .nav-top::after, .nav-grp:focus-within .nav-top::after,
.nav > a[aria-current="page"]::after, .nav-grp.is-current .nav-top::after {
  transform: scaleX(1); transform-origin: left;
}
.nav > a[aria-current="page"], .nav-grp.is-current .nav-top { color: var(--gold-text); }

.nav-grp { position: relative; padding: 1.15rem 0; margin: -1.15rem 0; }
.nav-top svg {
  width: 9px; height: 9px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 2.4;
  stroke-linecap: round; stroke-linejoin: round;
  transition: transform .3s var(--ease);
}
.nav-grp:hover .nav-top svg, .nav-grp:focus-within .nav-top svg { transform: rotate(180deg); }

.nav-drop {
  position: absolute; top: 100%; left: -1.25rem; z-index: 5;
  min-width: 234px; padding: .55rem 0;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent);
  box-shadow: var(--shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s var(--ease);
}
.nav-grp:hover .nav-drop, .nav-grp:focus-within .nav-drop, .nav-drop.open {
  opacity: 1; visibility: visible; transform: none;
}
.nav-drop a {
  display: block; padding: .62rem 1.35rem;
  font-size: .84rem; font-weight: 400; letter-spacing: .01em; text-transform: none;
  color: var(--text);
  border-left: 2px solid transparent;
  transition: color .3s var(--ease), background-color .3s var(--ease), border-color .3s var(--ease);
}
.nav-drop a:hover, .nav-drop a[aria-current="page"] {
  color: var(--gold-text); background: var(--accent-soft); border-left-color: var(--accent);
}

.hdr-cta { flex-shrink: 0; }
@media (max-width: 1099px) { .hdr-cta { display: none; } }

@media (min-width: 1100px) {
  
  :root { --hdr-h: 137px; }

  .hdr { display: block; }
  .hdr-inner {
    position: relative; height: 100%;
    
    display: grid; grid-template-rows: auto 52px; gap: 0;
    
    justify-items: center; justify-content: center;
  }
  
  .logo-link {
    padding: 26px 0; max-height: 200px; overflow: hidden;
    transition: max-height .4s var(--ease), padding .4s var(--ease),
                opacity .4s var(--ease), transform .4s var(--ease);
  }

  
  .hdr.is-solid { height: 64px; }
  .hdr.is-solid .hdr-inner { grid-template-rows: 0 1fr; }
  .hdr.is-solid .logo-link {
    max-height: 0; padding: 0;
    opacity: 0; transform: translateY(-12px);
    pointer-events: none;
  }

  
  .hdr-cta {
    position: absolute; right: 0; bottom: 1px;
    transition: opacity .45s var(--ease), transform .45s var(--ease),
                bottom .4s var(--ease);
  }
  .hdr.is-solid .hdr-cta { bottom: 7px; }
}

@media (min-width: 1100px) {
  .js-anim body:has(.hero, .ghero) .hdr:not(.is-solid) {
    background: transparent;
    backdrop-filter: none; -webkit-backdrop-filter: none;
    border-bottom-color: transparent; box-shadow: none;
    
    transition: background-color .45s var(--ease), border-color .45s var(--ease),
                height .45s var(--ease), box-shadow .45s var(--ease);
  }
  

  
  .nav > *, .hdr-cta {
    transition: opacity .45s var(--ease), transform .45s var(--ease);
  }
  .js-anim body:has(.hero, .ghero) .hdr:not(.is-solid) .nav > *,
  .js-anim body:has(.hero, .ghero) .hdr:not(.is-solid) .hdr-cta {
    opacity: 0; transform: translateY(-8px); pointer-events: none;
  }

  
  .hdr.is-solid .nav > *:nth-child(1) { transition-delay: 0s; }
  .hdr.is-solid .nav > *:nth-child(2) { transition-delay: .06s; }
  .hdr.is-solid .nav > *:nth-child(3) { transition-delay: .12s; }
  .hdr.is-solid .nav > *:nth-child(4) { transition-delay: .18s; }
  .hdr.is-solid .nav > *:nth-child(5) { transition-delay: .24s; }
  .hdr.is-solid .nav > *:nth-child(6) { transition-delay: .30s; }
  .hdr.is-solid .nav > *:nth-child(7) { transition-delay: .36s; }
  .hdr.is-solid .hdr-cta { transition-delay: .42s; }

  
  .js-anim body:has(.hero, .ghero) .hdr .logo-svg {
    animation: hdrWordmarkIn .9s ease-out both;
  }
}
@keyframes hdrWordmarkIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

.logo-svg { max-height: 90px; }
@media (max-width: 1099px) { .logo-svg { max-height: 56px; } }

.ham {
  display: flex; flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; padding: 0 9px;
  background: transparent; border: none; cursor: pointer;
}
@media (min-width: 1100px) { .ham { display: none; } }
.ham span {
  display: block; height: 1.5px; width: 100%; background: var(--text); border-radius: 2px;
  transition: transform .35s var(--ease), opacity .25s var(--ease);
}
.ham.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.ham.open span:nth-child(2) { opacity: 0; }
.ham.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.mobnav {
  position: fixed; inset: 0; z-index: 890;
  background: var(--bg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1.6rem; padding: var(--hdr-h) 1.5rem 2rem;
  opacity: 0; visibility: hidden; transform: translateY(-14px);
  transition: opacity .4s var(--ease), transform .4s var(--ease), visibility .4s var(--ease);
  overflow-y: auto;
}
.mobnav.open { opacity: 1; visibility: visible; transform: none; }

.mobnav > a, .mobnav-top {
  font-family: var(--font-display); font-size: 1.7rem; color: var(--text);
  transition: color .3s var(--ease);
}
.mobnav > a:hover, .mobnav > a[aria-current="page"] { color: var(--gold-text); }
.mobnav .btn { margin-top: 1rem; font-family: var(--font-body); font-size: .74rem; }

.mobnav-grp { display: flex; flex-direction: column; align-items: center; width: 100%; }
.mobnav-top {
  display: inline-flex; align-items: center; gap: .65rem;
  background: transparent; border: none; padding: 0; cursor: pointer;
}
.mobnav-top:hover, .mobnav-grp.open .mobnav-top, .mobnav-grp.is-current .mobnav-top { color: var(--gold-text); }
.mobnav-top .mob-ico {
  width: 11px; height: 11px; flex-shrink: 0;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .35s var(--ease);
}
.mobnav-grp.open .mob-ico { transform: rotate(225deg) translate(-2px, -2px); }

.mobnav-sub {
  display: flex; flex-direction: column; align-items: center; gap: .8rem;
  padding: .95rem 0 .35rem;
}
.mobnav-sub a {
  font-family: var(--font-body); font-size: .8rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--text-muted);
  transition: color .3s var(--ease);
}
.mobnav-sub a:hover, .mobnav-sub a[aria-current="page"] { color: var(--gold-text); }

.mobnav-grp.is-acc .mobnav-sub {
  max-height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden;
  transition: max-height .4s var(--ease), padding .4s var(--ease);
}

.mobnav-grp.is-acc.open .mobnav-sub { max-height: 380px; padding: .95rem 0 .35rem; }

.hero {
  position: relative; width: 100%; height: 100vh; height: 100svh;
  min-height: 560px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; background: var(--dark-3);
}
.hero-media { position: absolute; inset: 0; z-index: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }

.hero-veil {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(to bottom,
      rgba(21,21,21,.55) 0%,
      rgba(21,21,21,.28) 30%,
      rgba(21,21,21,.34) 60%,
      rgba(21,21,21,.72) 100%);
}

.hero-inner {
  position: relative; z-index: 2;
  width: 100%; max-width: 940px; padding: 0 1.5rem;
  text-align: center; color: #fff;
}
.hero h1 {
  color: #fff; font-weight: 300;
  font-size: clamp(2.8rem, 6.8vw, 5.6rem);
  line-height: 1.1; letter-spacing: .01em;
  text-shadow: 0 2px 30px rgba(0,0,0,.4);
}
@media (max-width: 359px) { .hero h1 { font-size: 2.4rem; } }
.hero-sub {
  margin: calc(var(--gap-title) * 1.5) auto 0; max-width: 620px;
  color: rgba(255,255,255,.9);
  font-size: clamp(.98rem, 1.5vw, 1.12rem); line-height: 1.8;
  text-shadow: 0 1px 16px rgba(0,0,0,.45);
}
.hero-actions {
  margin-top: 2.6rem;
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;
}

.bookbar-wrap { position: relative; background: var(--surface-2); padding: 0 0 var(--space-xl); }

.bookbar {
  display: grid; gap: 1rem;
  grid-template-columns: 1fr;
  align-items: end;
  padding: 1.6rem 1.5rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 2px solid var(--accent);
  box-shadow: var(--shadow-lg);
}
@media (min-width: 700px) { .bookbar { grid-template-columns: 1fr 1fr; padding: 1.7rem 1.8rem; } }
@media (min-width: 900px) { .bookbar { grid-template-columns: 1fr 1fr 1fr 1fr auto; gap: 1.3rem; } }

.bookbar-f { display: flex; flex-direction: column; gap: .5rem; min-width: 0; }
.bookbar-f label {
  font-size: .64rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold-text);
}
.bookbar-f input, .bookbar-f select {
  width: 100%; min-height: 48px;
  padding: .6rem .85rem;
  font-family: var(--font-body); font-size: .95rem; color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line); border-radius: 0;
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
  
  -webkit-appearance: none; appearance: none;
}
.bookbar-f select {
  
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5l5-5' fill='none' stroke='%235c5c5c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 11px;
  padding-right: 2.4rem;
}
.bookbar-f input:focus, .bookbar-f select:focus {
  outline: none; border-color: var(--accent); background: var(--surface);
}
.bookbar-f input:focus-visible, .bookbar-f select:focus-visible {
  outline: 2px solid var(--gold-text); outline-offset: 2px;
}
.bookbar-go { min-height: 48px; width: 100%; }
@media (min-width: 900px) { .bookbar-go { width: auto; } }

.bookbar-nota {
  margin-top: .9rem; font-size: .76rem; line-height: 1.5;
  color: var(--text-muted); text-align: center;
}

.bookbar { position: relative; }

.bookbar-f.is-enhanced input[type="date"] {
  position: absolute; width: 1px; height: 1px;
  opacity: 0; pointer-events: none; margin: -1px;
}

.bb-trig {
  display: flex; align-items: center; gap: .6rem;
  width: 100%; min-height: 48px; padding: .6rem .85rem;
  font-family: var(--font-body); font-size: .95rem; text-align: left;
  color: var(--text); background: var(--bg);
  border: 1px solid var(--line); border-radius: 0; cursor: pointer;
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.bb-trig:hover { border-color: var(--accent); }

.bb-trig.is-alvo {
  border-color: var(--accent); background: var(--surface);
  box-shadow: inset 0 -2px 0 var(--accent);
}

.bb-trig.is-alvo.is-empty .bb-trig-v { color: var(--gold-text); font-weight: 600; }
.bb-trig.is-alvo.is-empty::after {
  content: ''; margin-left: auto; flex-shrink: 0;
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
  animation: bbPulso 1.6s var(--ease) 2;
}
@keyframes bbPulso { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) {
  .bb-trig.is-alvo.is-empty::after { animation: none; }
}
.bb-trig:focus-visible { outline: 2px solid var(--gold-text); outline-offset: 2px; }
.bb-trig svg {
  width: 15px; height: 15px; flex-shrink: 0;
  fill: none; stroke: var(--gold-text); stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}

.bb-trig.is-empty .bb-trig-v { color: var(--text-muted); }

.bb-cal {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 60;
  width: 100%; padding: 1.1rem 1.2rem 1rem;
  background: var(--surface);
  border: 1px solid var(--line); border-top: 2px solid var(--accent);
  box-shadow: var(--shadow-lg);
}
@media (min-width: 720px) { .bb-cal { width: 620px; max-width: 100%; } }

@media (max-width: 719px) { .bb-cal { max-height: 72vh; overflow-y: auto; -webkit-overflow-scrolling: touch; } }
.bb-cal[hidden] { display: none; }

.bb-cal-top {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: .9rem;
}
.bb-cal-hint {
  font-size: .64rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase;
  color: var(--gold-text);
}

.bb-cal-hint.is-pedindo {
  background: var(--accent-soft); border: 1px solid var(--beige);
  padding: .3rem .8rem; border-radius: 999px;
}
.bb-nav { display: flex; gap: .4rem; }
.bb-nav button {
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--line); color: var(--text);
  cursor: pointer;
  transition: border-color .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease);
}
.bb-nav button:hover:not(:disabled) { border-color: var(--accent); background: var(--accent); color: var(--btn-text); }
.bb-nav button:disabled { opacity: .3; cursor: default; }
.bb-nav svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

.bb-months { display: grid; gap: 1.6rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .bb-months { grid-template-columns: 1fr 1fr; } }
.bb-m-title {
  text-align: center; margin-bottom: .7rem;
  font-family: var(--font-display); font-size: 1.12rem; color: var(--text);
  text-transform: capitalize;
}
.bb-wd, .bb-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.bb-wd span {
  text-align: center; padding-bottom: .45rem;
  font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--text-muted);
}
.bb-grid { gap: 2px 0; }

.bb-d {
  position: relative;
  aspect-ratio: 1; min-height: 36px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-body); font-size: .86rem; color: var(--text);
  background: transparent; border: none; cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease);
}
.bb-d:disabled { color: var(--text-muted); opacity: .35; cursor: default; }
.bb-d:not(:disabled):hover { background: var(--accent-soft); }
.bb-d:focus-visible { outline: 2px solid var(--gold-text); outline-offset: -2px; }
.bb-d.is-empty { visibility: hidden; }

.bb-d.in-range { background: var(--accent-soft); }

.bb-d.in-previa { background: var(--accent-soft); }
.bb-d.is-fim-previa { background: var(--beige); color: var(--text); font-weight: 600; }

.bb-d.is-start, .bb-d.is-end {
  background: var(--accent); color: var(--btn-text); font-weight: 600;
}
.bb-d.is-start:hover, .bb-d.is-end:hover { background: var(--accent-deep); color: #fff; }

.bb-d.is-today::after {
  content: ''; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 3px; border-radius: 50%; background: var(--gold-text);
}
.bb-d.is-start.is-today::after, .bb-d.is-end.is-today::after { background: var(--btn-text); }

.bb-cal-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line);
}
.bb-noites { font-size: .8rem; color: var(--text-muted); }
.bb-noites b { color: var(--text); font-weight: 600; }
.bb-cal-acts { display: flex; gap: .6rem; align-items: center; }
.bb-limpar {
  background: transparent; border: none; cursor: pointer; padding: .4rem .2rem;
  font-family: var(--font-body); font-size: .74rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted);
  transition: color .3s var(--ease);
}
.bb-limpar:hover { color: var(--gold-text); }

.inst { text-align: center; max-width: 820px; margin: 0 auto; }
.inst h2 { margin-bottom: calc(var(--gap-title) * 1.35); }

.inst p + p,
.split p + p { margin-top: var(--gap-p); }

.inst p:has(> .btn), .inst p:has(> .link-u),
.split p:has(> .btn), .split p:has(> .link-u) { margin-top: var(--gap-cta); }

.inst-sign {
  margin-top: 2.2rem; font-family: var(--font-display);
  font-size: 1.15rem; font-style: italic; color: var(--gold-text);
}

.split { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }

@media (min-width: 900px) { .split { grid-template-columns: 1.15fr 1fr; } }
.split--rev .split-img { order: 2; }
@media (max-width: 899px) { .split--rev .split-img { order: 0; } }
.split-img { position: relative; overflow: hidden; }
.split-img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
@media (max-width: 899px) { .split-img img { aspect-ratio: 4/3; } }

.split-img::after {
  content: ''; position: absolute; inset: 14px; border: 1px solid rgba(255,255,255,.35);
  pointer-events: none;
}

.panels {
  
  --panel-veil: linear-gradient(to top,
                  rgba(45,45,45,.72) 0%,
                  rgba(45,45,45,.34) 42%,
                  rgba(45,45,45,0) 74%);
  display: flex; flex-direction: column; gap: 2px;
}

.panel {
  position: relative; display: block; overflow: hidden;
  height: 180px;
}
.panel-img { position: absolute; inset: 0; display: block; }
.panel-img img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  transition: transform .8s var(--ease);
}

.panel-img:has(img[data-src]) {
  background: linear-gradient(160deg, #515151 0%, #363636 45%, #222222 100%);
}
.panel-img img[data-src] { opacity: .28; }

.panel::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: rgba(45,45,45,.15);
  transition: background-color .8s var(--ease);
}
.panel-in {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column;
  align-items: flex-start; justify-content: flex-end;
  padding: 1.15rem 1.25rem; text-align: left;
  background: var(--panel-veil);
  transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.panel-over {
  font-family: var(--font-body); font-weight: 300;
  font-size: .64rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.82);
  margin-bottom: var(--gap-over);
}
.panel-name {
  font-family: var(--font-display); font-weight: 500;
  font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.14;
  color: #fff;
}
.panel-btn {
  margin-top: calc(var(--gap-cta) * .55);
  padding: 14px 34px;
  border: 1px solid rgba(255,255,255,.8); border-radius: 2px;
  background: transparent; color: #fff;
  font-family: var(--font-body); font-size: .68rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase;
  transition: background-color .45s var(--ease), color .45s var(--ease),
              border-color .45s var(--ease);
}

.panel-btn:hover { background: #fff; color: var(--dark); border-color: #fff; }

.panel-btn { display: none; }

@media (min-width: 769px) and (max-width: 1099px) {
  .panels { display: grid; grid-template-columns: repeat(2, 1fr); }
  .panel { height: 260px; }
  .panel:last-child { grid-column: 1 / -1; }
}

@media (min-width: 1100px) {
  
  .panels { flex-direction: row; height: clamp(380px, 63vh, 460px); gap: 0; }
  .panel {
    flex: 1 1 0%; min-width: 0; height: auto;
    will-change: flex-grow;
    
    transition: flex 1s var(--ease);
  }
  
  .panel:hover, .panel:focus-within { flex: 4 1 0%; }
  .panel:hover::before, .panel:focus-within::before { background: rgba(45,45,45,.45); }
  .panel:hover .panel-img img,
  .panel:focus-within .panel-img img { transform: scale(1.05); }
  .panel-btn { display: inline-block; }
}

@media (min-width: 1100px) and (hover: hover) {
  .panel-in {
    align-items: center; justify-content: center; text-align: center;
    padding: 1.5rem;
    background: none;
    opacity: 0; transform: translateY(10px);
  }
  .panel:hover .panel-in, .panel:focus-within .panel-in {
    opacity: 1; transform: none;
    
    transition-delay: .2s;
  }
}

.mos {
  display: grid; gap: 20px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 250px);
  grid-template-areas:
    "cafe  cafe  piscina"
    "cafe  cafe  gourmet"
    "recep estac estac";
}
@media (max-width: 1023px) {
  .mos {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 400px 360px 360px;
    grid-template-areas:
      "cafe    cafe"
      "piscina gourmet"
      "recep   estac";
  }
}
@media (max-width: 640px) {
  .mos {
    gap: 16px;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 360px);
    grid-template-areas: "cafe" "piscina" "gourmet" "recep" "estac";
  }
}
.mos-c--cafe    { grid-area: cafe; }
.mos-c--piscina { grid-area: piscina; }
.mos-c--gourmet { grid-area: gourmet; }
.mos-c--recep   { grid-area: recep; }
.mos-c--estac   { grid-area: estac; }

.mos-c {
  position: relative; overflow: hidden;
  display: block; text-decoration: none;
  min-width: 0; min-height: 0;
  background: var(--surface-2);
}
.mos-img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.mos-c:hover .mos-img, .mos-c:focus-within .mos-img { transform: scale(1.06); }

.mos-c::before, .mos-c::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
}
.mos-c::before {
  background: linear-gradient(to top, rgba(21,21,21,.78) 0%, rgba(21,21,21,.20) 45%, rgba(21,21,21,0) 72%);
}
.mos-c::after {
  background: linear-gradient(to top, rgba(21,21,21,.88) 0%, rgba(21,21,21,.42) 55%, rgba(21,21,21,.12) 100%);
  opacity: 0; transition: opacity .6s var(--ease);
}
.mos-c:hover::after, .mos-c:focus-within::after { opacity: 1; }

.mos-body {
  position: absolute; z-index: 2; left: 0; right: 0; bottom: 0;
  display: block; padding: clamp(1.3rem, 2.4vw, 2rem);
  color: #fff;
}
.mos-cap {
  display: block; margin-bottom: .5rem;
  font-family: var(--font-body);
  font-size: .62rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
  color: var(--accent-lite);
}
.mos-title {
  display: block;
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.3rem, 2.2vw, 1.9rem); line-height: 1.15; color: #fff;
  transition: transform .6s var(--ease);
}
.mos-c:hover .mos-title, .mos-c:focus-within .mos-title { transform: translateY(-4px); }

.js-anim .mos-c.reveal { transform: translateY(50px); }

.px {
  position: relative; overflow: hidden;
  padding: calc(var(--space-xl) * 1.1) 0;
  color: var(--text); isolation: isolate;
}
.px-img {
  position: absolute; top: -22%; left: 0; width: 100%; height: 144%;
  z-index: -2; will-change: transform;
}
.px-img img { width: 100%; height: 100%; object-fit: cover; }
.px::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to bottom, rgba(246,246,246,.93), rgba(246,246,246,.88));
}
.px h2, .px h3 { color: var(--text); }
.px p { color: var(--text-muted); }

.counters {
  display: grid; gap: 2.5rem 1.5rem; margin-top: var(--gap-head);
  grid-template-columns: repeat(2, 1fr); text-align: center;
}
@media (min-width: 860px) { .counters { grid-template-columns: repeat(4, 1fr); } }
.counter-n {
  font-family: var(--font-display); font-size: clamp(2.6rem, 5vw, 3.9rem);
  line-height: 1; color: var(--gold-text);
}
.counter-l {
  margin-top: .7rem; font-size: .68rem; font-weight: 600;
  letter-spacing: .19em; text-transform: uppercase; color: var(--text-onDark);
}
.px .counter-l { color: var(--text-muted); }

.tst { position: relative; }
.tst-view {
  position: relative; max-width: 800px; margin: 0 auto;
  min-height: 260px;
}
.tst-slide {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.tst-slide.is-active { opacity: 1; transform: none; pointer-events: auto; }
.tst-quote {
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: clamp(1.3rem, 2.6vw, 1.95rem); line-height: 1.55;
  color: var(--text); max-width: 42ch;
}
.tst-mark { color: var(--gold-text); font-size: 3rem; line-height: 1; margin-bottom: .8rem; font-family: var(--font-display); }
.tst-author { margin-top: 1.8rem; }
.tst-author strong {
  display: block; font-size: .78rem; font-weight: 700;
  letter-spacing: .17em; text-transform: uppercase; color: var(--gold-text);
}
.tst-author span { font-size: .82rem; color: var(--text-muted); }
.tst-stars { display: flex; gap: .3rem; justify-content: center; margin-top: 1rem; }
.tst-stars svg { width: 15px; height: 15px; fill: var(--gold-text); }

.tst-nav { display: flex; align-items: center; justify-content: center; gap: 1.6rem; margin-top: 2.6rem; }
.tst-arrow {
  width: 46px; height: 46px; border-radius: 50%;
  background: transparent; border: 1px solid var(--line);
  color: var(--text); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .35s var(--ease), background-color .35s var(--ease), color .35s var(--ease);
}
.tst-arrow:hover { border-color: var(--accent); background: var(--accent); color: var(--btn-text); }
.tst-arrow svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tst-dots { display: flex; gap: .55rem; }
.tst-dot {
  width: 7px; height: 7px; border-radius: 50%; padding: 0;
  background: rgba(45,45,45,.22); border: none; cursor: pointer;
  transition: background-color .35s var(--ease), transform .35s var(--ease);
}
.tst-dot.is-active { background: var(--accent); transform: scale(1.45); }

.ctab {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(560px, 72vh, 820px);
  display: flex; align-items: center; justify-content: center;
  padding: var(--space-lg) 0;
  text-align: center; color: #fff;
}

.ctab-media {
  position: absolute; top: -12%; left: 0; width: 100%; height: 124%;
  z-index: -2; will-change: transform;
}
.ctab-media img { width: 100%; height: 100%; object-fit: cover; }

.ctab::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(rgba(21,21,21,.74), rgba(21,21,21,.78));
}

.ctab-in {
  width: 100%; max-width: 780px; margin: 0 auto; padding: 0 1.5rem;
  display: flex; flex-direction: column; align-items: center;
}
.ctab-over {
  font-size: .7rem; font-weight: 700; letter-spacing: .25em;
  text-transform: uppercase; color: var(--accent);
}
.ctab h2 {
  margin-top: calc(var(--gap-over) * 1.6);
  font-weight: 300; font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.2; max-width: 20ch; color: #fff;
}
.ctab-sub { margin-top: calc(var(--gap-title) * 1.1); max-width: 48ch; color: var(--text-onDark); }
.ctab .btn { margin-top: 2.1rem; padding: 18px 48px; }
.ctab-meta {
  margin-top: 1.6rem; font-size: .74rem; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(255,255,255,.6);
}
.ctab-meta a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ctab-meta a:hover { color: var(--accent-lite); }

.js-anim .ctab-in .reveal { transform: translateY(30px); }

.ctab-media:has(img[data-src]) {
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(191,191,191,.2) 0%, rgba(191,191,191,0) 60%),
    linear-gradient(160deg, #515151 0%, #363636 55%, #222222 100%);
}
.ctab-media img[data-src] { opacity: .28; }

.footer { background: var(--dark-2); color: rgba(255,255,255,.62); padding: var(--space-lg) 0 2rem; }
.ft-grid { display: grid; gap: 2.75rem; grid-template-columns: 1fr; }
@media (min-width: 700px)  { .ft-grid { grid-template-columns: 1.6fr 1fr 1fr; } }
@media (min-width: 1000px) { .ft-grid { grid-template-columns: 1.7fr 1fr 1fr 1.2fr; } }

.ft-brand img { width: 210px; height: auto; margin-bottom: 1.4rem; }
.ft-brand p { font-size: .88rem; line-height: 1.8; color: rgba(255,255,255,.6); }
.ft-brand p + p { margin-top: .9rem; }

.ft-col h4, .ft-col .ft-h {
  font-family: var(--font-body); color: #fff;
  font-size: .68rem; font-weight: 700; letter-spacing: .21em; text-transform: uppercase;
  
  margin-bottom: calc(var(--gap-title) * 1.4);
}
.ft-col a {
  display: block; font-size: .89rem; padding: .32rem 0;
  color: rgba(255,255,255,.62);
  transition: color .3s var(--ease), transform .3s var(--ease);
}
.ft-col a:hover { color: var(--accent); transform: translateX(3px); }
.ft-ico { display: flex !important; align-items: center; gap: .6rem; }
.ft-ico svg { flex-shrink: 0; }

.ft-brand .ft-ico {
  margin-top: .75rem; font-size: .88rem;
  color: rgba(255,255,255,.62);
  transition: color .3s var(--ease);
}
.ft-brand .ft-ico:hover { color: var(--accent); }

.ft-bot {
  border-top: 1px solid rgba(255,255,255,.1);
  margin-top: var(--space-lg); padding-top: 1.8rem;
  display: flex; flex-direction: column; gap: .6rem;
  font-size: .78rem; color: rgba(255,255,255,.42); text-align: center;
}
@media (min-width: 768px) { .ft-bot { flex-direction: row; justify-content: space-between; text-align: left; } }

.ft-bot a { color: var(--accent); }
.ft-bot a:hover { color: var(--accent-lite); }

.phero {
  position: relative; min-height: 72vh; min-height: 72svh;
  display: flex; align-items: flex-end;
  padding: calc(var(--hdr-h) + 3rem) 0 3.5rem;
  overflow: hidden; background: var(--bg);
}
.phero-img { position: absolute; inset: 0; z-index: 0; }
.phero-img img { width: 100%; height: 100%; object-fit: cover; }
.phero::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom, rgba(246,246,246,.86) 0%, rgba(246,246,246,.80) 45%, rgba(246,246,246,.94) 100%);
}
.phero .container { position: relative; z-index: 2; }
.phero h1 { color: var(--text); font-weight: 300; }
.phero p { color: var(--text-muted); max-width: 58ch; margin-top: var(--gap-title); }
.phero .overline { color: var(--gold-text); }

.crumbs { font-size: .74rem; color: var(--text-muted); margin-bottom: 1.2rem; letter-spacing: .05em; }
.crumbs a { color: var(--text); }
.crumbs a:hover { color: var(--gold-text); }
.crumbs span { margin: 0 .45rem; opacity: .5; }

.incl {
  background: var(--accent-soft); border: 1px solid rgba(136,136,136,.3);
  padding: 2.2rem 2rem; margin-bottom: var(--space-lg);
}
.incl h3 { margin-bottom: var(--gap-title); font-size: 1.3rem; }
.incl ul { display: grid; gap: .7rem 1.6rem; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .incl ul { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .incl ul { grid-template-columns: repeat(3, 1fr); } }
.incl li { position: relative; padding-left: 1.5rem; font-size: .92rem; color: var(--text-muted); }
.incl li::before {
  content: ''; position: absolute; left: 0; top: .62em;
  width: 7px; height: 7px; transform: rotate(45deg); background: var(--gold-text);
}

.gal-filters { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: var(--space-lg); }
.fbtn {
  background: transparent; border: 1px solid var(--line);
  padding: .55rem 1.3rem; cursor: pointer; border-radius: 999px;
  font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-muted);
  transition: all .35s var(--ease);
}
.fbtn:hover { border-color: var(--accent); color: var(--gold-text); }
.fbtn.active { background: var(--accent); border-color: var(--accent); color: var(--btn-text); }

.gal-g { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px)  { .gal-g { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .gal-g { grid-template-columns: repeat(3, 1fr); } }
.gi { position: relative; overflow: hidden; aspect-ratio: 4/3; background: var(--surface-2); }
.gi img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .8s ease;      
}
.gi:hover img { transform: scale(1.06); }
.gi::after {
  content: '⊕'; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(21,21,21,.42); color: #fff; font-size: 1.6rem;
  opacity: 0; transition: opacity .45s var(--ease);
}
.gi:hover::after, .gi:focus-visible::after { opacity: 1; }
.gi.zoomable { cursor: zoom-in; }

.form-card { background: var(--surface); border: 1px solid var(--line); padding: clamp(1.8rem, 4vw, 3rem); }

.form-card h2 { font-size: 1.7rem; margin-bottom: calc(var(--gap-title) * 1.6); }
.fg { margin-bottom: 1.3rem; }
.fg label {
  display: block; font-size: .68rem; font-weight: 700;
  letter-spacing: .15em; text-transform: uppercase; color: var(--text-muted);
  margin-bottom: .5rem;
}
.fg input, .fg select, .fg textarea {
  width: 100%; padding: .85rem 1rem; min-height: 48px;
  background: var(--bg); border: 1px solid var(--line); border-radius: 2px;
  font-size: 16px;                      
  transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.fg textarea { min-height: 140px; resize: vertical; line-height: 1.7; }
.fg input:focus, .fg select:focus, .fg textarea:focus {
  outline: none; border-color: var(--accent); background: var(--surface);
}
.fg input.invalid, .fg textarea.invalid { border-color: #c0392b; background: #fff5f4; }
.form-row { display: grid; gap: 0 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 620px) { .form-row { grid-template-columns: 1fr 1fr; } }
.form-ok {
  display: none; margin-top: 1.2rem; padding: 1rem 1.2rem;
  background: var(--accent-soft); border-left: 3px solid var(--accent);
  font-size: .92rem; color: var(--text);
}
.form-ok.show { display: block; }
.form-note { font-size: .78rem; color: var(--text-muted); margin-top: 1rem; line-height: 1.6; }

.info-grid { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .info-grid { grid-template-columns: repeat(2, 1fr); } }
.info-card { background: var(--surface); border: 1px solid var(--line); padding: 1.7rem 1.8rem; }
.info-card svg { width: 24px; height: 24px; stroke: var(--gold-text); fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; margin-bottom: .9rem; }
.info-card h3 { font-size: 1.15rem; margin-bottom: var(--gap-title); }
.info-card p, .info-card a { font-size: .93rem; color: var(--text-muted); line-height: 1.7; }
.info-card a:hover { color: var(--gold-text); }

.info-card .btn { font-size: .68rem; line-height: 1; color: var(--text); }
.info-card .btn:hover { color: var(--bg); }

.map-wrap { position: relative; width: 100%; aspect-ratio: 16/9; min-height: 340px; background: var(--surface-2); overflow: hidden; }

@media (max-width: 760px) { .map-wrap { aspect-ratio: 4/3; min-height: 0; } }
.map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }

.near { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); grid-template-columns: 1fr; }
@media (min-width: 700px) { .near { grid-template-columns: repeat(2, 1fr); } }
.near-i { background: var(--surface); padding: 1.3rem 1.6rem; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.near-i span:first-child { font-size: .96rem; color: var(--text); }
.near-i span:last-child { font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-text); white-space: nowrap; }

.faq { max-width: 800px; margin: 0 auto; }
.faq-i { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%; background: transparent; border: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
  padding: 1.5rem 0; text-align: left;
  font-family: var(--font-display); font-size: 1.16rem; color: var(--text);
  transition: color .3s var(--ease);
}
.faq-q:hover { color: var(--gold-text); }
.faq-q .faq-ico {
  flex-shrink: 0; width: 22px; height: 22px; position: relative;
}

.faq-q .faq-ico::before, .faq-q .faq-ico::after {
  content: ''; position: absolute; background: var(--gold-text); transition: transform .4s var(--ease);
}
.faq-q .faq-ico::before { top: 50%; left: 0; width: 100%; height: 1.5px; transform: translateY(-50%); }
.faq-q .faq-ico::after  { left: 50%; top: 0; width: 1.5px; height: 100%; transform: translateX(-50%); }
.faq-i.open .faq-q .faq-ico::after { transform: translateX(-50%) rotate(90deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .5s var(--ease); }
.faq-a p { padding: 0 0 1.5rem; font-size: .96rem; max-width: 68ch; }

.prose { max-width: 780px; margin: 0 auto; }
.prose h2 { font-size: 1.55rem; margin: 2.6rem 0 var(--gap-title); }
.prose h3 { font-size: 1.2rem; margin: 2rem 0 calc(var(--gap-title) * .8); }
.prose p, .prose li { font-size: .97rem; line-height: 1.85; color: var(--text-muted); }
.prose p { margin-bottom: 1.1rem; }
.prose ul { padding-left: 1.4rem; margin-bottom: 1.2rem; list-style: disc; }
.prose li { margin-bottom: .45rem; }
.prose a { color: var(--gold-text); text-decoration: underline; }
.prose strong { color: var(--text); }

.todo {
  border: 1px dashed var(--accent);
  background: var(--accent-soft);
  padding: 1.1rem 1.3rem; margin: 1.2rem 0;
  font-size: .88rem; line-height: 1.6; color: var(--text-muted);
}
.todo strong {
  display: block; color: var(--gold-text);
  font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  margin-bottom: .4rem;
}

.sec--bleed { overflow-x: hidden; overflow-x: clip; }
.feat {
  --feat-bleed: calc(max(0px, 100vw - var(--container)) / 2 + 1.5rem);
  display: grid; gap: clamp(1.6rem, 3.5vw, 2.5rem); align-items: center;
}
@media (max-width: 640px) {
  .feat { --feat-bleed: calc(max(0px, 100vw - var(--container)) / 2 + 1.25rem); }
}

.feat-img { margin-inline: calc(var(--feat-bleed) * -1); }
.feat-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

.feat-txt p + p { margin-top: var(--gap-p); }
.feat-txt p:has(> .btn), .feat-txt p:has(> .link-u) { margin-top: var(--gap-cta); }
.feat-txt h3 { margin-bottom: var(--gap-title); }
.feat + .feat { margin-top: var(--space-xl); }

@media (min-width: 900px) {
  .feat { grid-template-columns: 40fr 60fr; gap: clamp(2.5rem, 5vw, 4.5rem); }
  .feat-img { order: 2; margin-left: 0; }          
  .feat-img img { aspect-ratio: 3/2; }
  
  .feat--rev { grid-template-columns: 60fr 40fr; }
  .feat--rev .feat-img { order: 0; margin-right: 0; margin-left: calc(var(--feat-bleed) * -1); }
}

.amen {
  display: flex; flex-wrap: wrap;
  justify-content: center; align-items: stretch;
  --amen-cols: 2;
}
@media (min-width: 700px)  { .amen { --amen-cols: 3; } }
@media (min-width: 1024px) { .amen { --amen-cols: 4; } }
.amen-i {
  flex: 0 0 calc(100% / var(--amen-cols));
  background: var(--surface);
  
  border: 1px solid var(--line);
  margin: -1px 0 0 -1px;
  
  min-height: 9.25rem;
  padding: 1.7rem 1.1rem;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center;
  text-align: center; gap: .85rem;
}

.amen-i svg {
  width: 27px; height: 27px; flex-shrink: 0;
  fill: none; stroke: var(--gold-text); stroke-width: 1.3;
  stroke-linecap: round; stroke-linejoin: round;
}
.amen-i b { font-weight: 400; font-size: .88rem; line-height: 1.45; color: var(--text); }
.amen-i small { font-size: .72rem; line-height: 1.4; color: var(--text-muted); }

.amen-g + .amen-g { margin-top: clamp(2.2rem, 4vw, 3rem); }
.amen-gt {
  font-family: var(--font-body);
  font-size: .72rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-text);
  display: flex; align-items: center; gap: .9rem;
  margin-bottom: .9rem;
}
.amen-gt::after { content: ''; flex: 1; height: 1px; background: var(--line); }

.amen-nota { margin-top: 1.1rem; font-size: .8rem; color: var(--text-muted); }

.mcards { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 700px)  { .mcards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mcards { grid-template-columns: repeat(3, 1fr); } }
.mcard {
  background: var(--surface); border: 1px solid var(--line);
  display: flex; flex-direction: column; overflow: hidden;
  transition: border-color .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease);
}
.mcard:hover { border-color: var(--accent); transform: translateY(-3px); box-shadow: var(--shadow); }

.mcard-media { position: relative; overflow: hidden; aspect-ratio: 5/4; background: var(--surface-2); }
.mcard-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.mcard:hover .mcard-media img { transform: scale(1.06); }
.mcard-body { padding: 1.5rem 1.6rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.mcard-body h3 { font-size: 1.28rem; margin-bottom: var(--gap-title); }
.mcard-body p { font-size: .93rem; flex: 1; }
.mcard-tags { margin-top: 1.2rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.mcard-tags li {
  font-size: .7rem; color: var(--text-muted);
  border: 1px solid var(--beige); border-radius: 999px; padding: .2rem .68rem;
}

.treats {
  display: grid; gap: 1px;
  background: var(--line); border: 1px solid var(--line);
  grid-template-columns: 1fr;
}
@media (min-width: 880px) { .treats { grid-template-columns: repeat(3, 1fr); } }
.treat { background: var(--surface); padding: 2.1rem 1.9rem; display: flex; flex-direction: column; }
.treat h3 { font-size: 1.38rem; margin-bottom: var(--gap-title); }
.treat-dur {
  display: block;
  font-size: .66rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold-text);
}

.treat > p { font-size: .93rem; flex: 1; }
.treat-dur + p { margin-top: var(--gap-title); }
.treat-price { margin-top: 1.6rem; border-top: 1px solid var(--beige); padding-top: 1.2rem; }
.treat-price div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.treat-price div + div { margin-top: .55rem; }
.treat-price dt { font-size: .84rem; color: var(--text-muted); }
.treat-price dd { font-family: var(--font-display); font-size: 1.45rem; color: var(--text); white-space: nowrap; }

.rev-g { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 760px)  { .rev-g { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .rev-g { grid-template-columns: repeat(3, 1fr); } }
.rev-c {
  background: var(--surface); border: 1px solid var(--line);
  padding: 1.9rem 1.8rem; display: flex; flex-direction: column;
}
.rev-c .tst-stars { justify-content: flex-start; margin: 0 0 1.1rem; }

.rev-c .tst-stars svg { fill: var(--gold-text); }
.rev-q {
  font-family: var(--font-display); font-style: italic;
  font-size: 1.12rem; line-height: 1.6; color: var(--text); flex: 1;
}
.rev-a { margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.rev-a strong {
  display: block;
  font-size: .72rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase;
  color: var(--gold-text);
}
.rev-a span { font-size: .82rem; color: var(--text-muted); }

.res-btn {
  position: fixed; left: 1.5rem; bottom: 1.5rem; z-index: 90;
  display: inline-flex; align-items: center; gap: .6rem;
  min-height: 52px; padding: .8rem 1.55rem;
  background: var(--accent); color: var(--btn-text);
  border: 1.5px solid var(--accent); border-radius: 999px;
  font-family: var(--font-body);
  font-size: .68rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  box-shadow: 0 6px 26px rgba(45,45,45,.3);
  transition: background-color .35s var(--ease), color .35s var(--ease),
              border-color .35s var(--ease), transform .35s var(--ease), bottom .3s var(--ease);
}
.res-btn:hover {
  background: var(--accent-deep); border-color: var(--accent-deep); color: #fff;
  transform: translateY(-2px);
}
.res-btn svg {
  width: 16px; height: 16px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
}
@media (max-width: 640px) {
  .res-btn {
    left: 1rem; bottom: 1rem;
    min-height: 46px; padding: .58rem 1.05rem;
    font-size: .6rem; letter-spacing: .11em; gap: .45rem;
  }
  .res-btn svg { width: 14px; height: 14px; }
}

.rpg-desc { max-width: 820px; margin: 0 auto; text-align: center; }
.rpg-desc h2 { margin-bottom: calc(var(--gap-title) * 1.2); }
.rpg-desc p { max-width: 62ch; margin-left: auto; margin-right: auto; }
.rpg-desc .todo { text-align: left; }
.rpg-cta { margin-top: 2.4rem; }

.acar-wrap { position: relative; }

.acar {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: 86%;
  gap: 28px;
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  
  padding-bottom: .5rem;
  scrollbar-width: none;
}
.acar::-webkit-scrollbar { display: none; }
@media (min-width: 700px)  { .acar { grid-auto-columns: calc((100% - 28px) / 2); } }
@media (min-width: 1024px) { .acar { grid-auto-columns: calc((100% - 56px) / 3); } }

.acar-c {
  scroll-snap-align: start;
  display: flex; flex-direction: column;
  background: var(--surface);
  box-shadow: 0 2px 18px rgba(40,40,40,.07);
  transition: box-shadow .5s var(--ease), transform .5s var(--ease);
  text-align: center;
}
.acar-c:hover { box-shadow: 0 10px 34px rgba(40,40,40,.13); transform: translateY(-3px); }

.acar-media { display: block; overflow: hidden; background: var(--surface-2); }

.acar-media img {
  width: 100%; height: clamp(300px, 26vw, 420px); object-fit: cover;
  transition: transform .8s var(--ease);
}
.acar-c:hover .acar-media img { transform: scale(1.05); }

.acar-body {
  display: flex; flex-direction: column; align-items: center;
  padding: 40px 32px 44px;
  flex: 1;
}
.acar-body h3 { font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.16; }
.acar-body h3 a { color: inherit; transition: color .3s var(--ease); }
.acar-c:hover .acar-body h3 a { color: var(--gold-text); }

.acar-desc {
  margin-top: var(--gap-title);
  font-size: .94rem; line-height: 1.75;
  display: -webkit-box; -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; line-clamp: 3;
  overflow: hidden;
}

.acar-desc { margin-bottom: 1.8rem; }
.acar-cta {
  margin-top: auto;
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 46px; padding: .9rem 1.6rem;
  background: transparent; color: var(--text);
  border: 1px solid var(--text);
  font-family: var(--font-body);
  font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  transition: background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.acar-c:hover .acar-cta, .acar-cta:hover { background: var(--dark); color: #fff; border-color: var(--dark); }
.acar-cta svg {
  width: 15px; height: 9px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round;
}

.acar-nav {
  display: flex; align-items: center; justify-content: center; gap: 1.4rem;
  margin-top: 2.2rem;
}
.acar-arrow {
  width: 42px; height: 42px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--beige);
  color: var(--gold-text); cursor: pointer;
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), opacity .35s var(--ease);
}
.acar-arrow:hover:not(:disabled) { background: var(--accent); border-color: var(--accent); color: var(--btn-text); }
.acar-arrow:disabled { opacity: .3; cursor: default; }
.acar-arrow svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.acar-dots { display: flex; align-items: center; gap: .55rem; }
.acar-dot {
  width: 26px; height: 2px; padding: 0;
  background: var(--beige); border: none; cursor: pointer;
  transition: background-color .35s var(--ease), width .35s var(--ease);
}
.acar-dot.is-on { width: 44px; background: var(--gold-text); }

.ghero {
  position: relative; overflow: hidden;
  height: 100vh; height: 100svh;
  min-height: 520px;
  background: var(--dark-3);
}
.ghero-s {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity .8s var(--ease);
}
.ghero:not(.is-live) .ghero-s:first-child, .ghero-s.is-on { opacity: 1; }
.ghero-s img { width: 100%; height: 100%; object-fit: cover; }

.ghero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom, rgba(21,21,21,.42) 0%, rgba(21,21,21,0) 28%, rgba(21,21,21,0) 70%, rgba(21,21,21,.35) 100%);
}

.ghero-btn {
  position: absolute; z-index: 3;
  display: flex; align-items: center; justify-content: center;
  background: rgba(21,21,21,.34); border: 1px solid rgba(255,255,255,.4);
  color: #fff; cursor: pointer;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  transition: background-color .35s var(--ease), border-color .35s var(--ease);
}
.ghero-btn:hover { background: rgba(21,21,21,.62); border-color: #fff; }
.ghero-btn svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.ghero-prev, .ghero-next { top: 50%; transform: translateY(-50%); width: 46px; height: 62px; }
.ghero-prev { left: clamp(.75rem, 2vw, 1.75rem); }
.ghero-next { right: clamp(.75rem, 2vw, 1.75rem); }
.ghero-prev svg, .ghero-next svg { width: 17px; height: 17px; }

.ghero-tools {
  position: absolute; z-index: 3;
  top: calc(var(--hdr-h) + .9rem); left: clamp(.75rem, 2vw, 1.75rem);
  display: flex; gap: .5rem;
}
.ghero-tools .ghero-btn { position: static; width: 40px; height: 40px; }
.ghero-tools svg { width: 15px; height: 15px; }

.ghero-count {
  position: absolute; z-index: 3; bottom: 1.5rem; right: clamp(.75rem, 2vw, 1.75rem);
  font-size: .72rem; letter-spacing: .18em; color: rgba(255,255,255,.85);
}
.ghero-count b { color: #fff; font-weight: 600; }

.sec--clip { overflow: hidden; }
.wt { position: relative; text-align: center; }
.wt-ghost {
  position: absolute; left: 50%; top: 46%; transform: translate(-50%, -50%);
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: clamp(4rem, 13vw, 11rem); line-height: 1;
  color: var(--text); opacity: .06;
  white-space: nowrap; pointer-events: none; user-select: none;
  z-index: 0;
}
.wt > .overline, .wt > h1, .wt > h2, .wt > .orn,
.wt > p { position: relative; z-index: 1; }

.sec-head.wt .wt-ghost {
  top: 40%;
  font-size: clamp(3.4rem, 9vw, 7.6rem);
  color: var(--accent); opacity: .11;
}

.sec--beige .sec-head.wt .wt-ghost { color: var(--dark); opacity: .08; }

.ficha {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 1.6rem clamp(2rem, 6vw, 4.5rem);
  margin-top: clamp(2rem, 4vw, 3rem);
}
.ficha li { display: flex; align-items: center; gap: .8rem; text-align: left; }
.ficha svg {
  width: 26px; height: 26px; flex-shrink: 0;
  fill: none; stroke: var(--gold-text); stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round;
}
.ficha b { display: block; font-weight: 400; font-size: .98rem; color: var(--text); }
.ficha small {
  display: block; font-size: .64rem; font-weight: 700;
  letter-spacing: .17em; text-transform: uppercase; color: var(--text-muted);
}

.svc {
  display: grid; grid-template-columns: 1fr;
  gap: 48px clamp(1.5rem, 3vw, 2.75rem);
  margin-top: clamp(2rem, 4vw, 3.25rem);
}
@media (min-width: 640px)  { .svc { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .svc { grid-template-columns: repeat(4, 1fr); } }
.svc li { display: flex; align-items: flex-start; gap: .95rem; text-align: left; }
.svc svg {
  width: 26px; height: 26px; flex-shrink: 0; margin-top: .1rem;
  fill: none; stroke: var(--gold-text); stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round;
}
.svc b { display: block; font-weight: 400; font-size: .96rem; line-height: 1.45; color: var(--text); }
.svc small { display: block; margin-top: .3rem; font-size: .8rem; line-height: 1.5; color: var(--text-muted); }

.btn-arrow svg {
  width: 15px; height: 9px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 1.5;
  stroke-linecap: round; stroke-linejoin: round;
}

@media (prefers-reduced-motion: reduce) {
  .acar-c:hover .acar-media img { transform: none; }
  .ghero-s { transition: none; }
  .acar { scroll-behavior: auto; }
}

.wa-btn {
  position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 90;
  width: 56px; height: 56px;
  background: #25D366; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,0.4);
  border: none; transition: transform 0.2s, bottom 0.3s var(--ease);
}
.wa-btn:hover { transform: scale(1.1); cursor: pointer; }

:root {
  --wa-bottom: 1.5rem; --wa-side: 1.5rem; --wa-size: 56px;
  --wa-green: #25D366;        
  --wa-green-dark: #464646;   
  --wa-green-rgb: 37, 211, 102;
  --wa-bubble: #E6E6E6;       
  --wa-border: rgba(26,26,26,.12);
}

.wa-form-modal {
  position: fixed; z-index: 9600;
  right: var(--wa-side);
  bottom: calc(var(--wa-bottom) + var(--wa-size) + .75rem);
  width: 370px; max-width: calc(100vw - 2 * var(--wa-side));
  opacity: 0; visibility: hidden;
  transform: scale(.85) translateY(12px);
  transform-origin: bottom right;
  transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s var(--ease);
}
.wa-form-modal.open { opacity: 1; visibility: visible; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .wa-form-modal { transition: opacity .15s linear, visibility .15s linear; transform: none; }
}
.wa-form-box {
  background: #fff; width: 100%;
  border-radius: 14px; overflow: hidden; position: relative;
  box-shadow: 0 10px 40px rgba(0,0,0,.22);
  display: flex; flex-direction: column;
  
  max-height: calc(100vh - var(--wa-bottom) - var(--wa-size) - 1.5rem);
  max-height: calc(100svh - var(--wa-bottom) - var(--wa-size) - 1.5rem);
  overflow-y: auto;
}

.wa-form-header {
  background: var(--wa-green-dark); padding: .85rem .9rem;
  display: flex; gap: .6rem; align-items: center; flex-shrink: 0;
}
.wa-form-icon {
  width: 30px; height: 30px; flex-shrink: 0;
  background: rgba(255,255,255,.16); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.wa-form-icon svg { width: 17px; height: 17px; fill: #fff; }
.wa-form-header h3 {
  font-family: var(--font-body); font-size: .95rem; font-weight: 700;
  margin: 0; color: #fff; flex: 1; line-height: 1.3;
}
.wa-form-close {
  flex-shrink: 0; background: transparent; border: none;
  width: 28px; height: 28px; border-radius: 50%;
  cursor: pointer; color: #fff;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.wa-form-close svg { width: 20px; height: 20px; fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.wa-form-close:hover { background: rgba(255,255,255,.18); }

.wa-form { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; gap: .7rem; }

.wa-form-intro {
  position: relative; align-self: flex-start;
  background: var(--wa-bubble); color: #1A1A1A;
  font-size: .8rem; line-height: 1.45; margin: .15rem 0 0;
  padding: .6rem .75rem; border-radius: 4px 10px 10px 10px;
}
.wa-form-intro::before {
  content: ''; position: absolute; top: 0; left: -6px;
  border-width: 0 6px 8px 0; border-style: solid;
  border-color: transparent var(--wa-bubble) transparent transparent;
}

.wa-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.wa-fields {
  border: 1px solid var(--wa-border); border-radius: 8px;
  background: #fff; overflow: hidden;
}
.wa-form .fg { display: flex; align-items: center; gap: .5rem; margin: 0; padding: 0 .7rem; }
.wa-form .fg + .fg { border-top: 1px solid var(--wa-border); }
.wa-form input {
  padding: .65rem 0; border: none; border-radius: 0;
  font-size: 16px; 
  font-family: var(--font-body);
  background: transparent; min-height: 44px; width: 100%;
  color: #1A1A1A; transition: background .2s;
}
.wa-form input::placeholder { color: #5A5A5A; opacity: 1; }
.wa-form input:focus { outline: none; }
.wa-form .fg:focus-within { background: rgba(36,36,36,.06); }

.wa-form input.invalid { background: #fff5f4; box-shadow: inset 2px 0 0 #c0392b; padding-left: .5rem; }
.wa-flag { flex-shrink: 0; display: flex; align-items: center; }
.wa-flag svg { width: 22px; height: 16px; border-radius: 2px; display: block; }

.wa-form input:-webkit-autofill,
.wa-form input:-webkit-autofill:hover,
.wa-form input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
          box-shadow: 0 0 0 1000px #fff inset;
}

.wa-form .wa-optin {
  display: flex; align-items: flex-start; gap: .55rem; margin: 0;
  background: rgba(var(--wa-green-rgb), .10);
  border: 1px solid rgba(var(--wa-green-rgb), .55); border-radius: 8px;
  padding: .6rem .7rem; cursor: pointer;
  font-size: .76rem; font-weight: 400; line-height: 1.4;
  letter-spacing: normal; color: #1A1A1A;
  transition: background .2s, border-color .2s;
}
.wa-form .wa-optin input {
  width: auto; min-height: 0; flex-shrink: 0; margin-top: .12rem;
  accent-color: var(--wa-green);
}

.wa-form-submit {
  margin-top: .15rem; align-self: center; width: auto;
  background: var(--wa-green); color: #fff;
  border: none; border-radius: 999px;
  padding: .6rem 1.5rem; min-height: 42px;
  font-weight: 700; font-size: .9rem; font-family: var(--font-body);
  letter-spacing: normal;
  cursor: pointer; transition: background .2s, opacity .2s;
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
}
.wa-send-ico { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }
.wa-form-submit:hover { background: #6e6e6e; }
.wa-form-submit:disabled { opacity: .7; cursor: wait; }

.wa-form-foot {
  text-align: center; font-size: .7rem; color: #5A5A5A;
  margin: 0; padding: 0 1rem .8rem; line-height: 1.4;
}
.wa-form-foot a { color: #5A5A5A; text-decoration: underline; }

@media (max-width: 640px) {
  .wa-form-modal { left: var(--wa-side); right: var(--wa-side); width: auto; max-width: none; }
}

.js-anim .wa-btn,
.js-anim .res-btn {
  opacity: 0; visibility: hidden;
  transition: opacity .45s var(--ease), visibility .45s var(--ease),
              transform .45s var(--ease), bottom .3s var(--ease);
}
.js-anim .res-btn { transform: translateY(10px); }

.js-anim.flut-on .wa-btn,
.js-anim.flut-on .res-btn { opacity: 1; visibility: visible; }
.js-anim.flut-on .res-btn { transform: none; }

body:has(#waFormModal.open) .wa-btn { opacity: 1; visibility: visible; }

:root { --kx-cookie-h: 78px; }
@media (max-width: 640px) { :root { --kx-cookie-h: 124px; } }
body:has(#kx-cookie-banner:not([hidden])) .wa-btn,
body:has(#kx-cookie-banner:not([hidden])) .res-btn { bottom: calc(var(--kx-cookie-h) + 0.75rem); }
body:has(#kx-cookie-banner) .wa-form-modal {
  bottom: calc(var(--kx-cookie-h) + 0.75rem + var(--wa-size) + 0.75rem);
}

.kx-cookie {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 1rem 1.75rem;
  padding: 1rem clamp(1.25rem, 5vw, 2.5rem);
  background: var(--accent); color: var(--dark);
  border-top: 1px solid rgba(45,45,45,0.2);
  box-shadow: 0 -6px 24px rgba(0,0,0,0.28);
  font-family: var(--font-body); font-size: 0.82rem; line-height: 1.55;
  animation: kx-cookie-in 0.3s var(--ease) both;
}
@keyframes kx-cookie-in { from { transform: translateY(100%); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .kx-cookie { animation: none; } }

.kx-cookie__text { flex: 1 1 320px; max-width: 70ch; margin: 0; color: var(--dark); }
.kx-cookie__text a { color: var(--dark); text-decoration: underline; }
.kx-cookie__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; flex-shrink: 0; }
.kx-cookie__btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0.55rem 1.6rem;
  font-family: var(--font-body); font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  border: 1.5px solid transparent; border-radius: 4px; cursor: pointer;
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.kx-cookie__btn--ghost { background: transparent; color: var(--dark); border-color: rgba(45,45,45,.45); }
.kx-cookie__btn--ghost:hover { background: rgba(45,45,45,.1); border-color: var(--dark); }
.kx-cookie__btn--accept { background: var(--dark); color: #fff; border-color: var(--dark); }
.kx-cookie__btn--accept:hover { background: #1A1A1A; }

.lb {
  position: fixed; inset: 0; z-index: 9650;
  background: rgba(13,13,13,.94);
  display: flex; align-items: center; justify-content: center; padding: 3.5rem 1.5rem;
  opacity: 0; visibility: hidden; transition: opacity .35s var(--ease), visibility .35s var(--ease);
}
.lb.open { opacity: 1; visibility: visible; }
.lb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.lb-close, .lb-prev, .lb-next {
  position: absolute; background: transparent; color: #fff; cursor: pointer;
  border: 1px solid rgba(255,255,255,.3); border-radius: 50%;
  width: 46px; height: 46px; font-size: 1.5rem; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .3s var(--ease), background-color .3s var(--ease), color .3s var(--ease);
}
.lb-close:hover, .lb-prev:hover, .lb-next:hover { border-color: var(--accent); background: var(--accent); color: var(--btn-text); }
.lb-close { top: 1.3rem; right: 1.5rem; }
.lb-prev  { left: 1.2rem; top: 50%; transform: translateY(-50%); }
.lb-next  { right: 1.2rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) { .lb-prev { left: .6rem; } .lb-next { right: .6rem; } }

img[data-src] {
  
  object-fit: cover;
  background: linear-gradient(150deg, #BFBFBF 0%, #8F8F8F 45%, #6A6A6A 100%);
}

.hero-media:has(img[data-src]) {
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(191,191,191,.22) 0%, rgba(191,191,191,0) 60%),
    linear-gradient(160deg, #515151 0%, #363636 45%, #222222 100%);
}
.hero-media img[data-src] { opacity: .28; }

.js-anim .reveal { opacity: 0; transform: translateY(40px); }
.js-anim .reveal-line .line-inner { opacity: 0; transform: translateY(100%); }
.reveal-line .line { overflow: hidden; }

.reveal.in-view {
  animation: revealUp var(--dur) var(--ease) forwards;
}
@keyframes revealUp { to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .js-anim .reveal,
  .js-anim .reveal-line .line-inner { opacity: 1 !important; transform: none !important; }

  
  .panel-in {
    opacity: 1 !important; transform: none !important;
    background: var(--panel-veil) !important;
    align-items: flex-start !important; justify-content: flex-end !important;
    text-align: left !important;
  }
  .panel:hover .panel-img img,
  .panel:focus-within .panel-img img { transform: none !important; }

  
  .mos-img, .mos-c:hover .mos-img, .mos-c:focus-within .mos-img { transform: none !important; }
  .mos-title, .mos-c:hover .mos-title, .mos-c:focus-within .mos-title { transform: none !important; }
  .mos-c::after { transition: none !important; }
}

@media print {
  .hdr, .wa-btn, .res-btn, .wa-form-modal, .kx-cookie, .footer,
  .mobnav, .lb { display: none !important; }
  body { background: #fff; color: #000; }
  .sec { padding: 1.5rem 0; }
}

.logo-img,
.ft-brand img { visibility: hidden; }


/* Ajustes gerais */
:root {
  --mar: #2D2D2D;
  --sal: #F6F6F6;
  --tinta: #282828;
  --tinta-2: #666666;
  --branco: #FFFFFF;
  --areia-2: rgba(45,45,45,.14);
  --display: var(--font-display);
  --header-h: var(--hdr-h, 84px);
}
.btn-cheio { background: var(--accent); color: var(--btn-text); border-color: var(--accent); }
.btn-cheio::after { background: var(--accent-deep); }
.btn-cheio:hover { color: #fff; border-color: var(--accent-deep); }

.ft-logo-txt { font-family: var(--font-display); font-size: 1.7rem; line-height: 1.2; color: #fff; letter-spacing: .05em; margin-bottom: .9rem; }
.ft-bot a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ft-bot a.kx-assinatura { color: #8EC5FF; }

.bookbar-oferta { margin: 1.4rem auto 0; max-width: 760px; text-align: center; color: var(--text); }
.ctab-oferta { color: #fff; margin: 0 auto 1.4rem; max-width: 640px; }

.mapa-ph {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  width: 100%; height: 100%; min-height: 320px;
  background: var(--surface-2) repeating-linear-gradient(45deg, transparent 0 22px, rgba(0,0,0,.035) 22px 44px);
  color: var(--text); text-decoration: none; font-weight: 600; letter-spacing: .06em; text-align: center; padding: 1.5rem;
}
.mapa-ph-ico { width: 34px; height: 34px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--accent-deep); }
.mapa-ph:hover .mapa-ph-txt { text-decoration: underline; }

.kx-contato.kx-contato-card { display: block; margin-top: 0; max-width: none; }
.kx-erro address { font-style: normal; margin: 1rem 0 0; color: var(--text-muted); }
.kx-erro p { color: var(--text-muted); }
.hero-media picture { display: contents; }

/* ====== Cabeçalho e rodapé: marca do site (o desenho vem do kx-core) ====== */
:root{
  --kx-marca:var(--accent-deep);
  --kx-marca-escura:var(--dark);
  --kx-marca-texto:var(--surface);
  --kx-topo-fundo:var(--bg);
  --kx-topo-texto:var(--text);
  --kx-linha:var(--line);
  --kx-menu-fundo:var(--surface);
  --kx-menu-texto:var(--text);
  --kx-rodape-fundo:var(--dark-2);
  --kx-rodape-texto:var(--text-onDark);
  --kx-rodape-suave:rgba(255,255,255,.62);
  --kx-rodape-titulo:var(--accent-lite);
  --kx-fonte:var(--font-body);
  --kx-fonte-logo:var(--font-display);
  --kx-raio:2px;
  /* o cabeçalho padrão é sticky e ocupa espaço: o topo das páginas internas (.phero), as setas da
     galeria do quarto e as páginas legais não compensam mais o topo fixo antigo */
  --hdr-h:0px;
}
html{scroll-padding-top:72px}
/* logo em SVG (texto do nome) dentro do cabeçalho padrão */
.kx-logo .logo-svg{width:240px;height:auto;max-height:none;color:inherit}
@media(max-width:1099px){.kx-logo .logo-svg{width:180px}}
@media(max-width:560px){.kx-logo .logo-svg{width:150px}}


/* Home: legenda dos Espaços (passo 5), botões da faixa de reserva e Avaliações em fundo da marca (passo 6) */
.ctab-acts { display: flex; flex-wrap: wrap; gap: 0 1rem; justify-content: center; }
.esp { margin: 0; min-width: 0; }
.esp-cap { margin-top: .75rem; font-size: .88rem; line-height: 1.5; color: var(--text-muted); }
.sec--brand { background: var(--dark); color: var(--text-onDark); }
.sec--brand h2, .sec--brand h3 { color: #fff; }
.sec--brand .sec-head p, .sec--brand > .container > p { color: var(--text-onDark); }
.sec--brand .overline { color: var(--accent-lite); }
.sec--brand .orn { color: var(--accent-lite); }
.sec--brand .rev-c { background: var(--surface); border-color: transparent; border-top: 2px solid var(--accent-lite); }
.sec--brand .rev-c p { color: var(--text); }
.sec--brand .rev-a span { color: var(--text-muted); }
.sec--brand .rev-a strong { color: var(--accent); }
.sec--brand .sec-head.wt .wt-ghost { color: var(--accent-lite); opacity: .10; }

/* kx-core:inicio */
/* kx-core 1.3.0 · banner de cookies, balão de WhatsApp, contato, calendário de reserva, oferta, assinatura e vídeo.
   Usa as variáveis de cor do template quando existem (--mar, --sal, --tinta, --branco, --areia-2). */
.kx-cookies{position:fixed;left:16px;right:16px;bottom:16px;z-index:120;max-width:560px;margin:0 auto;background:var(--branco,#fff);color:var(--tinta,#1d1d1d);border:1px solid var(--areia-2,#ddd);box-shadow:0 20px 50px -20px rgba(0,0,0,.35);padding:20px 22px;display:grid;gap:14px;font-size:14px;line-height:1.5}
.kx-cookies[hidden]{display:none}
.kx-cookies a{text-decoration:underline}
.kx-cookies div{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.kx-cookies .btn{min-height:44px;padding:0 20px}

.kx-contato{display:grid;gap:10px}
.kx-contato label{display:grid;gap:4px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-2,#555)}
.kx-contato input,.kx-contato textarea{border:1px solid var(--areia-2,#ddd);background:transparent;min-height:44px;padding:8px 12px;font-size:16px;letter-spacing:0;text-transform:none;color:var(--tinta,#1d1d1d);border-radius:0}
.kx-contato .btn{min-height:48px;margin-top:4px}
/* lead: o clique tem que cair no próprio botão (Click ID), nunca num filho */
[id*="waLeadForm"] *{pointer-events:none}
form[data-kx-lead] button[type="submit"]:disabled{opacity:.45;cursor:not-allowed}
form[data-kx-lead] label.kx-optin{display:flex;align-items:flex-start;gap:10px;font-size:13px;letter-spacing:0;text-transform:none;line-height:1.45;color:var(--tinta,#1d1d1d);cursor:pointer}
form[data-kx-lead] .kx-optin input{flex-shrink:0;width:18px;height:18px;min-height:0;padding:0;margin-top:2px;accent-color:var(--mar,#0f3b3a)}
.kx-contato .kx-optin{grid-column:1/-1}
.kx-nota{font-size:12px;color:var(--tinta-2,#555);line-height:1.5}
.kx-nota a{text-decoration:underline}

.kx-contato{margin-top:48px;max-width:760px}
.kx-contato-titulo{font-family:var(--display,serif);font-size:28px;line-height:1.2}
.kx-contato-campos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kx-contato-msg{grid-column:1/-1}
@media(max-width:620px){.kx-contato-campos{grid-template-columns:1fr}}
.kx-turnstile{min-height:0}

.reserva-barra form.kx-4{grid-template-columns:repeat(4,1fr) auto}
@media(max-width:900px){
  .reserva-barra form.kx-4{grid-template-columns:1fr 1fr}
  .reserva-barra form.kx-4 .campo:nth-child(3){grid-column:auto;border-right:1px solid var(--areia-2,#ddd)}
  .reserva-barra form.kx-4 .campo:nth-child(4){border-right:0}
}

/* calendário de reserva: um mês, datas e hóspedes no mesmo painel (no celular, no meio da tela) */
.kx-cal-campo{cursor:pointer;caret-color:transparent}
.kx-cal{position:fixed;inset:0;z-index:5000}
.kx-cal[hidden]{display:none}
.kx-cal-fundo{position:absolute;inset:0;background:transparent}
.kx-cal-caixa{position:fixed;width:340px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;overscroll-behavior:contain;background:var(--branco,#fff);color:var(--tinta,#1d1d1d);border:1px solid var(--areia-2,#ddd);box-shadow:0 30px 60px -24px rgba(0,0,0,.45);padding:18px 18px 16px;font-size:15px;line-height:1.4;letter-spacing:0;text-transform:none;text-align:left}
.kx-cal-topo{display:flex;justify-content:space-between;align-items:center}
.kx-cal-topo p{font-family:var(--display,serif);font-size:20px;line-height:1.2;margin:0}
.kx-cal-x{width:44px;height:44px;margin:-10px -10px -10px 0;border:0;background:transparent;color:inherit;font-size:28px;line-height:1;cursor:pointer}
.kx-cal-dica{margin:2px 0 12px;font-size:13px;color:var(--tinta-2,#555);min-height:1.4em}
.kx-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
.kx-cal-nav button{width:40px;height:40px;border:1px solid var(--areia-2,#ddd);border-radius:50%;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}
.kx-cal-nav button:disabled{opacity:.3;cursor:default}
.kx-cal-mes{font-weight:600;text-transform:capitalize}
.kx-cal-semana,.kx-cal-dias{display:grid;grid-template-columns:repeat(7,1fr)}
.kx-cal-semana span{text-align:center;font-size:11px;letter-spacing:.12em;color:var(--tinta-2,#555);padding:6px 0}
.kx-cal-dia{height:42px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.kx-cal-dia:hover:not(:disabled){outline:1px solid var(--mar,#0f3b3a);outline-offset:-1px}
.kx-cal-dia:focus-visible{outline:2px solid var(--mar,#0f3b3a);outline-offset:-2px}
.kx-cal-dia:disabled{opacity:.3;cursor:default}
.kx-cal-dia.is-hoje{font-weight:700}
.kx-cal-dia.is-meio{background:rgba(0,0,0,.06);background:color-mix(in srgb,var(--mar,#0f3b3a) 12%,transparent)}
.kx-cal-dia.is-ini,.kx-cal-dia.is-fim{background:var(--mar,#0f3b3a);color:var(--sal,#fff)}
.kx-cal-hospedes{border-top:1px solid var(--areia-2,#ddd);margin-top:12px;padding-top:6px}
.kx-cal-hosp{display:flex;justify-content:space-between;align-items:center;padding:6px 0}
.kx-cal-hosp[hidden]{display:none}
.kx-cal-hosp div{display:flex;align-items:center;gap:14px}
.kx-cal-hosp button{width:40px;height:40px;padding:0;border:1px solid var(--areia-2,#ddd);border-radius:50%;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer}
.kx-cal-hosp button:disabled{opacity:.3;cursor:default}
.kx-cal-hosp output{min-width:1.5em;text-align:center;font-weight:600}
.kx-cal-rodape{display:flex;align-items:center;gap:12px;margin-top:12px}
.kx-cal-limpar{border:0;background:transparent;color:inherit;font:inherit;font-size:13px;text-decoration:underline;min-height:44px;padding:0;cursor:pointer}
.kx-cal-limpar[hidden]{display:none}
.kx-cal-ok{margin-left:auto;min-height:46px;padding:0 24px;border:0;background:var(--mar,#0f3b3a);color:var(--sal,#fff);font:inherit;font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.kx-cal-alca{display:none}
@media(max-width:640px){
  .kx-cal-fundo{background:rgba(0,0,0,.5)}
  .kx-cal-caixa{left:50% !important;top:50% !important;width:calc(100vw - 32px);max-width:400px;max-height:calc(100dvh - 32px);transform:translate(-50%,-50%);padding-bottom:0;transition:transform .2s}
  .kx-cal-caixa.is-arrastando{transition:none}
  .kx-cal-dia{height:44px}
  .kx-cal-alca{display:flex;justify-content:center;align-items:center;height:36px;margin:4px -18px 0;position:sticky;bottom:0;background:inherit;touch-action:none;cursor:grab}
  .kx-cal-alca span{width:48px;height:5px;border-radius:3px;background:var(--areia-2,#ccc)}
}

.kx-oferta{font-family:var(--display,serif);font-size:clamp(22px,2.2vw,28px);line-height:1.3;margin-bottom:26px}
.kx-assinatura{color:#8EC5FF;text-decoration:underline;text-underline-offset:3px}
.kx-assinatura:hover{color:#B9DBFF}

.kx-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.kx-video[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.kx-video{display:none}}

/* páginas legais (molde kx-core/legal.html) e links do rodapé */
.kx-legal{max-width:820px}
.kx-legal p{margin:0 0 14px}
.kx-legal h2{margin:36px 0 12px}
.kx-legal ul{list-style:disc;padding-left:1.3em;margin:0 0 16px}
.kx-legal li{margin-bottom:8px}
.kx-legal a,.kx-legal .kx-link-cookies{text-decoration:underline;text-underline-offset:3px}
.kx-legal-sub{font-size:14px;color:var(--tinta-2,#555);margin:-4px 0 22px}
.kx-legal-indice{border:1px solid var(--areia-2,#ddd);padding:18px 22px;margin:8px 0 28px;font-size:14px}
.kx-legal-indice p{margin:0 0 8px}
.kx-legal-indice ol{list-style:decimal;padding-left:1.4em;margin:0;columns:2 220px;column-gap:28px}
.kx-legal-indice li{margin-bottom:4px;break-inside:avoid}
.kx-legal h2[id]{scroll-margin-top:calc(var(--header-h,84px) + 16px)}
.kx-legal-tabela{overflow-x:auto;margin:0 0 16px}
.kx-legal table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45;min-width:560px}
.kx-legal th,.kx-legal td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--areia-2,#ddd)}
.kx-legal th{font-weight:600}
.kx-legal-data{margin-top:32px;font-size:14px;color:var(--tinta-2,#555)}
.kx-link-cookies{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}

.kx-politica .wrap{max-width:820px}
.kx-politica h1{font-family:var(--display,serif);font-weight:300;font-size:clamp(40px,5vw,64px);line-height:1.05;margin:18px 0 26px}
.kx-politica h2{font-family:var(--display,serif);font-weight:400;font-size:28px;margin:40px 0 12px}
.kx-politica p{margin-bottom:14px}
.kx-politica a{text-decoration:underline}
.kx-politica{padding-top:calc(var(--header-h,84px) + 60px)}
.kx-erro{min-height:80vh;display:flex;align-items:center;padding-top:calc(var(--header-h,84px) + 40px)}
.kx-erro h1{font-family:var(--display,serif);font-weight:300;font-size:clamp(44px,6vw,80px);line-height:1.05;margin:16px 0 20px}
.kx-erro .cta-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.kx-erro .btn{color:var(--tinta,#1d1d1d)}
.kx-rodape-min{padding-top:0}

/* ====== Cabeçalho e rodapé ======
   O desenho é travado. O site só mapeia a própria marca nestas variáveis, no :root do style.css:
   --kx-marca, --kx-marca-escura, --kx-marca-texto, --kx-topo-fundo, --kx-topo-texto, --kx-linha,
   --kx-rodape-fundo, --kx-rodape-texto, --kx-rodape-suave, --kx-rodape-titulo, --kx-fonte, --kx-fonte-logo, --kx-raio. */
.kx-wrap{width:100%;max-width:var(--kx-container,1200px);margin:0 auto;padding:0 24px}
.kx-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--kx-marca,#2C5F4F);color:var(--kx-marca-texto,#fff);padding:12px 22px;border-radius:var(--kx-raio,10px);font-family:var(--kx-fonte,inherit);font-weight:600;font-size:15px;line-height:1.2;border:0;cursor:pointer;text-decoration:none;transition:background .2s}
.kx-btn:hover{background:var(--kx-marca-escura,#1C3F34)}

.kx-topo{position:sticky;top:0;z-index:90;background:var(--kx-topo-fundo,rgba(255,255,255,.96));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--kx-linha,#E3DED2);font-family:var(--kx-fonte,inherit)}
.kx-topo .kx-wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.kx-logo{display:inline-flex;flex-direction:column;justify-content:center;font-family:var(--kx-fonte-logo,Georgia,serif);font-size:22px;font-weight:700;line-height:1.1;color:var(--kx-marca,#2C5F4F);letter-spacing:.3px;white-space:nowrap;text-decoration:none}
.kx-logo small{display:block;font-family:var(--kx-fonte,inherit);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.kx-logo img,.kx-logo svg{display:block;max-height:48px;width:auto}
.kx-nav{display:flex;gap:26px}
.kx-nav a{font-size:15px;font-weight:500;color:var(--kx-topo-texto,#1C2119);text-decoration:none}
.kx-nav a:hover,.kx-nav a[aria-current="page"]{color:var(--kx-marca,#2C5F4F)}
.kx-acoes{display:flex;align-items:center;gap:14px}
.kx-menu-btn{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;color:var(--kx-topo-texto,#1C2119);padding:10px}
.kx-menu-btn span{display:block;height:2px;margin:5px 0;background:currentColor}

.kx-rodape{background:var(--kx-rodape-fundo,#1C3F34);color:var(--kx-rodape-texto,#E8EDE9);padding:56px 0 24px;font-family:var(--kx-fonte,inherit);font-size:15px;line-height:1.6}
.kx-rodape a{color:inherit;text-decoration:none}
.kx-rodape-topo{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
.kx-rodape .kx-logo{color:var(--kx-rodape-texto,#fff)}
.kx-rodape .kx-tag{margin:10px 0 0;color:var(--kx-rodape-suave,#B9C7BF);max-width:260px}
.kx-redes{display:flex;gap:14px;margin-top:18px;list-style:none;padding:0}
.kx-redes a{width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center}
.kx-redes a:hover{background:rgba(255,255,255,.12)}
.kx-redes svg{width:18px;height:18px;fill:currentColor}
.kx-rodape-titulo{font-family:var(--kx-fonte,inherit);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--kx-rodape-titulo,#8FA89B);margin:0 0 14px;font-weight:700;line-height:1.4}
.kx-rodape ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.kx-rodape ul a:hover{color:#fff;text-decoration:underline}
.kx-rodape-reserva p{margin:0 0 14px;color:var(--kx-rodape-suave,#B9C7BF)}
.kx-rodape-base{border-top:1px solid rgba(255,255,255,.14);margin-top:40px;padding-top:20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center}
.kx-legais{display:flex;gap:18px;flex-wrap:wrap}
.kx-legais a{color:var(--kx-rodape-suave,#B9C7BF);font-size:14px}
.kx-legais a:hover{color:#fff}
.kx-rodape-assina{margin:0;font-size:14px;color:var(--kx-rodape-suave,#B9C7BF)}
.kx-rodape-assina .kx-assinatura{font-weight:600}

@media(max-width:880px){
  .kx-nav{position:fixed;top:72px;left:0;right:0;background:var(--kx-menu-fundo,#fff);flex-direction:column;gap:0;padding:8px 24px 18px;border-bottom:1px solid var(--kx-linha,#E3DED2);display:none;max-height:calc(100vh - 72px);overflow:auto}
  .kx-nav a{padding:12px 0;color:var(--kx-menu-texto,var(--kx-topo-texto,#1C2119))}
  .kx-nav.aberto{display:flex}
  .kx-menu-btn{display:block}
  .kx-rodape-topo{grid-template-columns:1fr 1fr;gap:28px}
}
@media(max-width:560px){
  .kx-topo .kx-btn{padding:10px 16px;font-size:14px}
  .kx-rodape-topo{grid-template-columns:1fr}
}
/* Âncoras do menu padrão (#sobre, #galeria...) dentro de seções que já têm outro id: o cabeçalho fixo não cobre o título */
.kx-ancora{display:block;height:0;scroll-margin-top:84px}
section[id]{scroll-margin-top:72px}
/* Link "ver mais" no fim de uma seção da home, para as páginas fora do menu padrão */
.kx-mais{text-align:center;margin:1.8rem auto 0;padding:0 16px;font-size:.95rem}
.kx-mais a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* Nome ou lugar longo no logo: o logo encolhe e o lugar corta com reticências, os botões ficam na tela */
.kx-topo .kx-logo{min-width:0;flex:0 1 auto;overflow:hidden}
.kx-topo .kx-logo span,.kx-topo .kx-logo small{overflow:hidden;text-overflow:ellipsis}
.kx-acoes{flex:0 0 auto}
/* Assinatura: o azul é intocável, vence a cor de link do rodapé do template */
.kx-rodape a.kx-assinatura,.kx-rodape a.kx-assinatura:visited{color:#8EC5FF!important}
.kx-rodape a.kx-assinatura:hover{color:#B9DBFF!important}
/* Logo original do site dentro do cabeçalho e rodapé padrão: símbolo ao lado do nome, desenho na altura certa */
.kx-logo:has(.kx-simbolo),.kx-logo:has(.logo-mark),.kx-logo:has(.logo-marca){flex-direction:row;align-items:center;gap:12px}
.kx-simbolo{width:42px;height:42px;flex:0 0 auto;max-height:none}
.kx-logo-txt{display:flex;flex-direction:column;min-width:0}
.kx-logo .logo-svg{height:26px;width:auto;max-width:260px}
.kx-logo > img{height:44px;width:auto;max-width:220px}
.kx-rodape .kx-logo > img{height:52px}
/* Páginas legais: o mesmo miolo em todos os sites (migalha, título e o texto do molde kx-core/legal.html) */
.kx-legal-pagina{padding:56px 0 80px;background:var(--kx-topo-fundo,#fff)}
.kx-legal-pagina .kx-wrap{max-width:860px}
.kx-legal-migalha{margin:0 0 10px;font-size:14px;opacity:.75}
.kx-legal-migalha a{color:inherit}
.kx-legal-titulo{font-family:var(--kx-fonte-logo,Georgia,serif);font-size:clamp(30px,4vw,44px);line-height:1.15;margin:0 0 18px;color:var(--kx-topo-texto,#1C2119)}
/* Rodapé padrão travado: o CSS do site não muda fonte, espaçamento nem altura de linha aqui dentro */
footer.kx-rodape p,footer.kx-rodape li,footer.kx-rodape ul a,footer.kx-rodape .kx-legais a{margin:0;padding:0;font-family:var(--kx-fonte,inherit);font-size:15px;font-weight:400;line-height:1.6;letter-spacing:normal;text-transform:none}
footer.kx-rodape ul a{display:inline}
footer.kx-rodape ul li{display:list-item}
footer.kx-rodape .kx-tag{margin-top:10px}
footer.kx-rodape .kx-rodape-reserva p{margin-bottom:14px}
footer.kx-rodape .kx-legais a{display:inline;font-size:14px}
footer.kx-rodape .kx-rodape-assina{margin:0;font-size:14px;line-height:1.6}
/* Contato com ícone na frente de cada linha */
footer.kx-rodape .kx-rodape-contato li{display:flex;gap:10px;align-items:flex-start}
.kx-ico{flex:0 0 1.4em;text-align:center;font-size:15px;line-height:1.6}
/* Botão Reservar do rodapé sempre visível, mesmo quando a cor da marca é igual ao fundo do rodapé */
footer.kx-rodape .kx-btn{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
/* Ícones da coluna Contato: linha fina, na cor clara do texto do rodapé (neutros, iguais em todo site) */
footer.kx-rodape .kx-ico{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;height:24px;color:var(--kx-rodape-texto,#fff)}
footer.kx-rodape .kx-ico svg{width:17px;height:17px;display:block}
/* kx-core:fim */

/* Ville de Montagne: 8 cards (experiências e acomodações) em 4 colunas no desktop */
@media (min-width: 1200px) { .mcards--8 { grid-template-columns: repeat(4, 1fr); } }
.mcards--8 .mcard-body { padding: 1.3rem 1.35rem 1.5rem; }

/* Ville de Montagne: mosaico de Espaços com 6 itens */
.mos--6 {
  grid-template-areas:
    "cafe  cafe  piscina"
    "cafe  cafe  gourmet"
    "recep estac garagem";
}
@media (max-width: 1023px) {
  .mos--6 {
    grid-template-rows: 400px 360px 360px 360px;
    grid-template-areas:
      "cafe    cafe"
      "piscina gourmet"
      "recep   estac"
      "garagem garagem";
  }
}
@media (max-width: 640px) {
  .mos--6 {
    grid-template-rows: repeat(6, 360px);
    grid-template-areas: "cafe" "piscina" "gourmet" "recep" "estac" "garagem";
  }
}
.mos-c--garagem { grid-area: garagem; }

/* Ville de Montagne: título da reserva direta acima do calendário */
.bookbar-wrap .bookbar-head { padding-top: var(--space-xl); text-align: center; }
.bookbar-wrap .bookbar-head p { margin-top: var(--gap-title); }
.bookbar-contato { margin-top: var(--gap-cta); text-align: center; }

/* Ville de Montagne: no celular, o bloco de Eventos fica centralizado embaixo da foto (botão no meio) */
@media (max-width: 899px) { #eventos .split > [data-stagger] { text-align: center; } }

/* Acomodações: miniaturas da galeria de cada categoria (abrem no visor do main.js) */
.rcat-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: .5rem; margin-top: var(--gap-p); }
.rcat-thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; cursor: zoom-in; transition: opacity .2s; }
.rcat-thumbs img:hover { opacity: .85; }

/* Home: 8 categorias em painéis; no tablet ficam 2 por linha sem sobrar um esticado */
@media (min-width: 769px) and (max-width: 1099px) { .panels--8 .panel:last-child { grid-column: auto; } }
@media (min-width: 1100px) { .panels--8 .panel-name { font-size: clamp(1.2rem, 1.6vw, 1.6rem); } }

/* Experiências em carrossel: sem botão no cartão, o texto fecha o cartão; 8 traços cabem em 375 px */
.acar-desc:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
  .acar-nav { gap: .8rem; }
  .acar-dots { gap: .35rem; }
  .acar-dot { width: 14px; }
  .acar-dot.is-on { width: 26px; }
}

/* Acomodações da home: painéis maiores, de borda a borda, para ver bem cada quarto */
.panels--8 { width: min(100vw - 32px, 1680px); margin-left: 50%; transform: translateX(-50%); }
.panels--8 .panel { height: 300px; }
@media (min-width: 769px) and (max-width: 1099px) { .panels--8 .panel { height: 380px; } }
@media (min-width: 1100px) {
  .panels--8 { height: clamp(520px, 78vh, 720px); }
  .panels--8 .panel { height: auto; }
  .panels--8 .panel:hover, .panels--8 .panel:focus-within { flex: 6 1 0%; }
}

/* Passo 4: cada painel diz capacidade e camas, não só o nome */
.panel-spec { margin-top: .5rem; font-size: .78rem; line-height: 1.4; letter-spacing: .02em; color: rgba(255,255,255,.9); }

/* Títulos que viraram h2 (ordem h1, h2, h3) com o mesmo tamanho de antes */
.incl h2 { margin-bottom: var(--gap-title); font-size: 1.3rem; }
.feat-txt h2 { margin-bottom: var(--gap-title); font-size: clamp(1.35rem, 2.2vw, 1.75rem); }

/* Card sem foto do hotel ainda (Inhotim e Acessibilidade): espaço neutro no lugar da imagem quebrada */
.acar-ph { display: block; height: clamp(300px, 26vw, 420px); background: var(--surface-2); }

/* Cabeçalho padrão: nome do hotel inteiro no celular */
@media (max-width: 560px) { .kx-topo .kx-logo { font-size: 16px; } .kx-topo .kx-logo small { font-size: 9.5px; } }
@media (max-width: 370px) { .kx-topo .kx-logo { font-size: 14.5px; } }

/* Quebras de linha: sem palavra órfã, sem hifenização automática */
h1, h2, h3, h4 { text-wrap: balance; }
p, li, blockquote, figcaption, dd { text-wrap: pretty; }
html { hyphens: manual; }

/* Experiências: setas nos lados das fotos (não embaixo), centradas na altura da imagem; os traços ficam embaixo */
#experiencias .acar-nav { position: static; }
#experiencias .acar-arrow {
  position: absolute; z-index: 3; top: calc(clamp(300px, 26vw, 420px) / 2 - 23px);
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.95); border: 0; color: var(--text);
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
}
#experiencias .acar-arrow[data-dir="-1"] { left: 12px; }
#experiencias .acar-arrow[data-dir="1"] { right: 12px; }
#experiencias .acar-arrow:disabled { opacity: .45; cursor: default; }
#experiencias .acar-arrow svg { width: 16px; height: 16px; }
@media (min-width: 1300px) {
  #experiencias .acar-arrow[data-dir="-1"] { left: -66px; }
  #experiencias .acar-arrow[data-dir="1"] { right: -66px; }
}

/* Experiências sem link: o card não sobe nem dá zoom, porque não é clicável */
#experiencias .acar-c:hover { transform: none; box-shadow: 0 2px 18px rgba(40,40,40,.07); }
#experiencias .acar-c:hover .acar-media img { transform: none; }

/* Acomodações da home: duas fileiras de 4 painéis largos, para ver bem cada foto; camada escura mais leve */
@media (min-width: 1100px) {
  .panels--8 { flex-wrap: wrap; height: auto; gap: 4px; }
  .panels--8 .panel { flex: 1 1 20%; height: clamp(340px, 42vh, 440px); }
  .panels--8 .panel:hover, .panels--8 .panel:focus-within { flex: 6 1 20%; }
}
.panels--8 .panel::before { background: rgba(45,45,45,.04); }
.panels--8 { --panel-veil: linear-gradient(to top, rgba(30,30,30,.62) 0%, rgba(30,30,30,.18) 32%, rgba(30,30,30,0) 55%); }

/* Faixa de reserva: Reservar e Entrar em contato lado a lado; no celular, empilhados */
.ctab-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1rem; }
@media (max-width: 640px) { .ctab-btns { flex-direction: column; align-items: stretch; } .ctab-btns .btn { margin-top: 1rem; } }
.ctab-oferta, .bookbar-oferta { text-wrap: balance; }

/* Topo das páginas internas: foto sem a camada branca; sombra escura só embaixo, atrás do texto, que fica branco */
.phero::after { background: linear-gradient(to top, rgba(20,20,20,.72) 0%, rgba(20,20,20,.38) 38%, rgba(20,20,20,0) 70%); }
.phero h1 { color: #fff; }
.phero p, .phero .crumbs { color: rgba(255,255,255,.88); }
.phero .overline { color: rgba(255,255,255,.82); }
.phero .crumbs a { color: #fff; }

/* Logo do Ville: principal (ícone + nome) no cabeçalho; ícone VM no rodapé */
.kx-topo .kx-logo .kx-logo-img { height: 46px; width: auto; max-height: none; }
@media (max-width: 1099px) { .kx-topo .kx-logo .kx-logo-img { height: 40px; } }
@media (max-width: 560px) { .kx-topo .kx-logo .kx-logo-img { height: 32px; } }
.kx-rodape .kx-logo .kx-logo-icone { width: 72px; height: 72px; max-height: none; border-radius: 0; }
.kx-topo .kx-logo .kx-logo-img { object-fit: contain; object-position: left center; max-width: 100%; }
@media (max-width: 370px) { .kx-topo .kx-logo .kx-logo-img { height: 24px; } }
.kx-topo .kx-logo svg.kx-logo-img { aspect-ratio: 905.5 / 181.5; }

/* kx-marca:inicio · cores do hotel: vermelho #AF0E14 e branco (texto em preto #231F20); fundos brancos, sem tom rosado */
:root{
  --accent: #AF0E14;
  --accent-lite: #FFFFFF;
  --accent-deep: #950C11;
  --gold-text: #950C11;
  --beige: #E4E2E2;
  --accent-soft: #F2F1F1;
  --btn-text: #FFFFFF;
  --dark: #4F0609;
  --dark-2: #380406;
  --dark-3: #380406;
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --surface-2: #F6F5F5;
  --text: #231F20;
  --text-muted: #6D6566;
  --text-onBeige: #231F20;
  --line: rgba(35, 31, 32, 0.14);
}
.hdr{background:rgba(255, 255, 255, 0.96)}
.hdr.is-solid{background:#FFFFFF}
/* kx-marca:fim */
:root { --kx-marca: var(--accent); }

/* Entrada das páginas internas: foto larga com só o nome da página, centralizado */
.phero { min-height: 0; height: 64vh; min-height: 440px; padding: 0; align-items: center; justify-content: center; text-align: center; }
@media (max-width: 760px) { .phero { height: 56vh; min-height: 380px; } }
.phero::after { background: radial-gradient(130% 100% at 50% 40%, rgba(20,16,17,.22) 0%, rgba(20,16,17,.6) 100%); }
.phero .container { display: flex; justify-content: center; }
.phero h1 { color: #fff; font-size: clamp(2.6rem, 6.5vw, 5.4rem); line-height: 1.1; font-weight: 400; }
/* o título e a frase que estavam na foto abrem a página logo abaixo */
.pag-intro { padding-block: clamp(3rem, 7vw, 5rem) 0; text-align: center; }
.pag-intro + .sec { padding-top: clamp(2.5rem, 6vw, 4rem); }
.pag-intro h2 { max-width: 22ch; margin: 0 auto; }
.pag-intro .pag-intro-txt, .pag-intro p { max-width: 58ch; margin: var(--gap-title) auto 0; color: var(--text-muted); }
/* menu: a página atual na cor da marca */
.kx-nav a[aria-current="page"] { color: var(--kx-marca); }
/* Home: cabeçalho escondido sobre a foto de abertura; aparece ao descer (ou no foco do teclado) */
.kx-topo.kx-topo-flutua { position: fixed; top: 0; left: 0; right: 0; transform: translateY(-100%); opacity: 0; pointer-events: none; transition: transform .35s ease, opacity .35s ease; }
.kx-topo.kx-topo-flutua.kx-topo-visivel, .kx-topo.kx-topo-flutua:focus-within { transform: none; opacity: 1; pointer-events: auto; }

/* Sobre: faixa escura de números entre os blocos de foto e texto */
.sobre-numeros .counters { margin-top: 0; }
.sobre-numeros .counter-n { color: #fff; }
.sobre-numeros .counter-l { color: var(--text-onDark, rgba(255,255,255,.8)); }
.feat-txt h2 { margin: .6rem 0 var(--gap-title); }
.feat-txt h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.12; }

/* Experiências: grade "O que fazer" (foto, nome e uma frase), 3 por linha */
@media (min-width: 700px) { .mcards--exp { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .mcards--exp { grid-template-columns: repeat(3, 1fr); } }
.mcards--exp .mcard-media img, .mcards--exp .acar-ph { width: 100%; aspect-ratio: 4/3; height: auto; object-fit: cover; display: block; }
.mcards--exp .mcard-body { padding: 1.4rem 1.4rem 1.6rem; }

/* Acomodações: "Em todos os apartamentos" no fim da página, em destaque, com ícone e nome em cada item */
.todos-aptos .sec-head { text-align: center; }
.todos-aptos h2 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); }
.todos-grid { list-style: none; padding: 0; margin: var(--gap-head, 2.5rem) auto 0; max-width: 980px;
  display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 860px) { .todos-grid { grid-template-columns: repeat(3, 1fr); } }
.todos-i { display: flex; align-items: center; gap: 1rem; padding: 1.3rem 1.4rem;
  border: 1px solid rgba(255,255,255,.18); border-radius: 4px; background: rgba(255,255,255,.04);
  color: #fff; font-size: 1.12rem; }
.todos-i svg { width: 34px; height: 34px; flex: 0 0 34px; fill: none; stroke: var(--accent-lite); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 420px) { .todos-i { padding: 1rem; gap: .7rem; font-size: 1rem; } .todos-i svg { width: 28px; height: 28px; flex-basis: 28px; } }
.todos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 860px) { .todos-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.todos-i span { min-width: 0; }
@media (max-width: 480px) {
  .todos-i { flex-direction: column; justify-content: center; text-align: center; gap: .55rem; padding: 1.1rem .6rem; font-size: .98rem; }
  .todos-i span { white-space: nowrap; }
}

/* Gastronomia: grade de fotos com legenda curta */
.gfotos { display: grid; gap: 1.2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--gap-head, 2.5rem); }
@media (min-width: 1024px) { .gfotos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gfoto { margin: 0; }
.gfoto img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: 4px; }
.gfoto figcaption { margin-top: .6rem; font-size: .9rem; color: var(--text-muted); }
@media (max-width: 480px) { .gfotos { grid-template-columns: 1fr; } }
/* faixa de números com dois itens: centralizados */
.counters.counters--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; margin-inline: auto; }
.sobre-numeros .counter-n { font-size: clamp(2rem, 4.2vw, 3.4rem); }
.kx-rodape .kx-rodape-end { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255,255,255,.35); }
@media (min-width: 860px) { .counters.counters--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 900px; margin-inline: auto; } }
.counters.counters--1 { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
/* Política do hotel: valor do quadro de horários pode quebrar (o late check-out ficou mais longo com a regra oficial) */
.near-i span:last-child { white-space: normal; text-align: right; min-width: 0; }
.near-i span:first-child { flex-shrink: 0; }
@media (max-width: 380px) { .near-i { padding: 1.1rem 1rem; } }
/* faixa de números: colunas encolhem no celular e o rótulo quebra */
.counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 860px) { .counters { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.counter-l { overflow-wrap: anywhere; }

/* Comodidades: Acessibilidade com três fotos verticais (elevador, quarto e banheiro adaptados) */
.gfotos.gfotos--3 { grid-template-columns: 1fr; max-width: 420px; margin-inline: auto; }
@media (min-width: 640px) { .gfotos.gfotos--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 980px; } }
.gfotos--3 .gfoto img { aspect-ratio: 3/4; }
#acessibilidade .sec-head p { max-width: 52ch; margin-inline: auto; }

/* Home, passo 2: foto do hotel embaixo da apresentação, horizontal, na largura do texto */
.inst-foto { margin: 2.6rem 0 0; }
.inst-foto img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; }
@media (max-width: 600px) { .inst-foto { margin-top: 1.8rem; } .inst-foto img { aspect-ratio: 4 / 3; } }

/* Acessibilidade em Comodidades: 4 fotos menores (2 por linha no celular), no formato do hall para o tapete aparecer inteiro */
.gfotos.gfotos--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; max-width: 1100px; margin-inline: auto; }
@media (min-width: 900px) { .gfotos.gfotos--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.gfotos.gfotos--4 img { aspect-ratio: 17 / 20; }
.gfotos.gfotos--4 figcaption { font-size: .85rem; }

/* Experiências (página): a última linha incompleta fica centralizada, sem buraco à direita */
@media (min-width: 700px) and (max-width: 1023px) {
  .mcards--exp { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mcards--exp > .mcard { grid-column: span 2; }
  .mcards--exp > .mcard:last-child:nth-child(odd) { grid-column: 2 / span 2; }
}
@media (min-width: 1024px) {
  .mcards--exp { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .mcards--exp > .mcard { grid-column: span 2; }
  .mcards--exp > .mcard:last-child:nth-child(3n+1) { grid-column: 3 / span 2; }
  .mcards--exp > .mcard:nth-last-child(2):nth-child(3n+1) { grid-column: 2 / span 2; }
}

/* Acomodações: galeria de fotos de cada quarto na própria foto grande (sem miniaturas) */
.rgal { position: relative; }
.rgal-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.rgal-track::-webkit-scrollbar { display: none; }
.rgal-track > img { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
.rgal-seta { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--text); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.18); transition: background .2s, color .2s; }
.rgal-seta:hover { background: var(--accent); color: #fff; }
.rgal-seta svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rgal-seta--prev { left: 14px; }
.rgal-seta--next { right: 14px; }
.rgal-cont { position: absolute; right: 14px; bottom: 14px; z-index: 2; padding: 4px 10px; border-radius: 999px; background: rgba(0,0,0,.55); color: #fff; font-size: .78rem; letter-spacing: .04em; pointer-events: none; }
@media (max-width: 600px) { .rgal-seta { width: 38px; height: 38px; } .rgal-seta--prev { left: 10px; } .rgal-seta--next { right: 10px; } }

/* Acomodações: botão Reservar de cada quarto maior */
#categorias .feat-txt .btn[data-kx-motor-cta] { font-size: .9rem; padding: 1.15rem 3.4rem; min-height: 58px; }
@media (max-width: 600px) { #categorias .feat-txt .btn[data-kx-motor-cta] { display: flex; width: 100%; justify-content: center; } }

/* Títulos-fantasma em cinza bem claro: o vermelho transparente virava rosa sobre o branco */
.sec-head.wt .wt-ghost { color: var(--text); opacity: .06; }

/* Balão de WhatsApp: o botão flutuante fica no verde do WhatsApp; o painel por dentro, no vermelho do hotel #AF0E14 */
#kx-balao[data-kx-balao-raiz] { --kx-balao-azul: #AF0E14; --kx-balao-azul-2: #950C11; --kx-balao-bolha: #F6F5F5; }
#kx-balao .kx-balao-campo:focus-within { background: rgba(35, 31, 32, .03); }
#kx-balao .kx-balao-optin { border-color: rgba(35, 31, 32, .14); }



/* Experiências no celular: setas fora da foto, embaixo, uma de cada lado dos traços */
@media (max-width: 699px) {
  #experiencias .acar-arrow { position: static; top: auto; left: auto; right: auto; width: 44px; height: 44px; box-shadow: none; border: 1px solid var(--beige); background: #fff; }
  #experiencias .acar-nav { margin-top: 1.6rem; }
}

/* Padrão Komplexa: no celular e no tablet (blocos empilhados), o texto vem antes da foto */
@media (max-width: 899px) {
  .feat .feat-img, .feat--rev .feat-img { order: 2; }
  .split .split-img, .split--rev .split-img { order: 2; }
}

/* Celular e tablet: texto, depois a foto, e o botão do bloco embaixo da foto, centralizado */
@media (max-width: 899px) {
  .feat { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .feat > .feat-txt { display: contents; }
  .feat > .feat-img { order: 2; margin-top: 2rem; }
  .feat > .feat-txt > p:has(> .btn), .feat > .feat-txt > p:has(> .link-u) { order: 3; margin-top: 1.8rem; text-align: center; }
}

/* Cabeçalho: logo como imagem (o <use> de arquivo externo falha em alguns celulares) */
.kx-topo .kx-logo img.kx-logo-img { aspect-ratio: 905.5 / 181.5; }

/* Celular e tablet: cada bloco de texto e foto (cada apartamento, em Acomodações) separado do seguinte por uma linha */
@media (max-width: 899px) {
  .feat + .feat { margin-top: 3.2rem; padding-top: 3.2rem; border-top: 1px solid rgba(175,14,20,.35); }
}

/* Acomodações no celular e no tablet: cada apartamento num cartão branco, com o número dele (Categoria 1 de 8),
   para ficar claro onde um termina e o próximo começa */
@media (max-width: 899px) {
  #categorias { counter-reset: apto; }
  #categorias .feat {
    counter-increment: apto;
    background: #fff; border: 1px solid var(--beige); border-top: 3px solid var(--accent);
    padding: 1.8rem 1.25rem 1.6rem; margin-inline: -0.25rem;
    box-shadow: 0 6px 22px rgba(40,40,40,.07);
  }
  #categorias .feat + .feat { margin-top: 2.6rem; border-top: 3px solid var(--accent); padding-top: 1.8rem; }
  #categorias .feat > .feat-img { margin-inline: -1.25rem; }
  #categorias .feat > .feat-txt::before {
    content: "Categoria " counter(apto) " de 8";
    display: block; order: -1; margin-bottom: .6rem;
    font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--accent);
  }
  #categorias .feat h3 { font-size: 1.7rem; }
}
