/* Casa Única Website Foundation 4.1.2 — fixed shell, menu and overlay ownership. */

body.cu-foundation-template {
  padding-top: var(--cu-header-height);
}

.cu-site-header {
  position: fixed;
  z-index: var(--cu-header-z);
  top: var(--cu-admin-bar-height);
  right: 0;
  left: 0;
  overflow: visible;
  border-bottom: 1px solid rgba(94, 108, 91, .14);
  background: rgba(252, 251, 246, .97);
  box-shadow: 0 8px 28px rgba(44, 55, 46, .05);
  backdrop-filter: blur(16px);
}

.cu-site-header__bar {
  display: grid;
  grid-template-columns: minmax(104px, 1fr) minmax(620px, var(--cu-search-shell-width)) minmax(104px, 1fr);
  align-items: center;
  justify-content: center;
  gap: clamp(.6rem, 1.35vw, 1.25rem);
  width: calc(100% - 2rem);
  min-height: 76px;
  margin-inline: auto;
}

.cu-brand {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  justify-self: start;
  width: max-content;
  min-width: 0;
  color: var(--cu-green);
  line-height: 0;
  text-decoration: none;
}

.cu-brand__picture {
  display: flex;
  align-items: center;
  line-height: 0;
}

.cu-brand__logo {
  display: block;
  width: auto;
  max-width: 101px;
  height: auto;
  max-height: 62px;
  filter: brightness(0) saturate(100%) invert(36%) sepia(10%) saturate(830%) hue-rotate(78deg) brightness(94%) contrast(88%);
  object-fit: contain;
}

.cu-brand__wordmark {
  font-family: var(--cu-font-heading);
  font-size: clamp(1.45rem, 2vw, 2rem);
  font-weight: 400;
  line-height: 1;
}

.cu-site-header__search {
  min-width: 0;
  width: 100%;
}

.cu-site-header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .35rem;
}

.cu-header-icon,
.cu-menu-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  min-width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--cu-green);
  font-size: 1.15rem;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.cu-header-icon:hover,
.cu-header-icon:focus-visible,
.cu-menu-button:hover,
.cu-menu-button:focus-visible,
.cu-menu-button[aria-expanded="true"] {
  background: rgba(94, 108, 91, .10);
  color: var(--cu-green-dark);
  outline: 0;
}

.cu-header-icon:focus-visible,
.cu-menu-button:focus-visible {
  box-shadow: var(--cu-focus-ring);
}

/* One global overlay layer below the fixed header. */
.cu-overlay-root[hidden] {
  display: none;
}

.cu-overlay-root {
  position: fixed;
  z-index: var(--cu-overlay-z);
  /* Tuck the shared overlay layer one CSS pixel beneath the higher-z header.
     This removes device-pixel/zoom seams for BOTH guided-search drawers and
     the side menu without changing either panel's internal geometry. */
  top: calc(var(--cu-header-bottom) - 1px);
  right: 0;
  bottom: 0;
  left: 0;
  isolation: isolate;
}

.cu-overlay-root__backdrop {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(25, 36, 29, .42);
  cursor: default;
}

.cu-overlay-root__mount {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
}

.cu-overlay-root__mount > [data-cu-active-overlay] {
  pointer-events: auto;
}

/* Full viewport is an explicit overlay presentation contract, never a
   consequence of the top child kind. A Unit album keeps its header-relative
   geometry when its child photo is fullscreen. The child alone reaches the
   viewport top; this root temporarily rises above the header for that child. */
.cu-overlay-root[data-cu-overlay-viewport="full"]{z-index:calc(var(--cu-header-z,10000) + 20)}
.cu-overlay-root[data-cu-overlay-viewport="full"][data-cu-overlay-depth="1"]{top:0}
.cu-overlay-root__layer[data-cu-overlay-viewport="full"]{position:fixed;inset:0}

/* Child overlays are layers of this same root/mount system. The overlay
   manager owns stacking, focus, inert state and dismissal for every layer. */
.cu-overlay-root__layer {
  position: absolute;
  z-index: calc(1 + var(--cu-overlay-layer-index, 1));
  inset: 0;
  isolation: isolate;
  pointer-events: none;
}

.cu-overlay-root__layer > .cu-overlay-root__backdrop {
  pointer-events: auto;
}

.cu-overlay-root__layer > .cu-overlay-root__mount {
  pointer-events: none;
}

.cu-overlay-root__layer > .cu-overlay-root__mount > [data-cu-active-overlay] {
  pointer-events: auto;
}

html.cu-overlay-is-open,
body.cu-overlay-is-open {
  overscroll-behavior: none;
}

/* Language/currency controls share one visual contract in menu and footer. */
.cu-language-switcher,
.cu-currency-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.cu-language-switcher__link,
.cu-currency-switcher__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .5rem .75rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 10px;
  background: transparent;
  color: #fff;
  font-family: var(--cu-font-ui);
  font-size: .8rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
}

.cu-language-switcher__link.is-active,
.cu-currency-switcher__link.is-active {
  border-color: var(--cu-cream);
  background: var(--cu-cream);
  color: var(--cu-green-dark);
  -webkit-text-fill-color: var(--cu-green-dark);
}

.cu-currency-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .5rem .75rem;
  border: 1px solid var(--cu-cream);
  border-radius: 12px;
  background: var(--cu-cream);
  color: var(--cu-green-dark);
  -webkit-text-fill-color: var(--cu-green-dark);
  font-family: var(--cu-font-ui);
  font-size: .8rem;
  font-weight: 400;
  line-height: 1;
}

/* OL-style two-rail menu. */
.cu-global-menu[hidden] {
  display: none;
}

.cu-global-menu {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(620px, 100vw);
  height: 100%;
  overflow: hidden;
  background: var(--cu-cream);
  box-shadow: -24px 0 70px rgba(25, 35, 29, .22);
}

.cu-global-menu__frame {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-height: 0;
  outline: 0;
}

.cu-global-menu__utility {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 0;
  padding: 1rem .6rem .7rem;
  overflow: hidden;
  background: var(--cu-green);
  color: #fff;
}

.cu-global-menu__utility-top {
  display: grid;
  gap: .7rem;
}

.cu-global-menu__utility-group {
  display: grid;
  justify-items: center;
  gap: .35rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid rgba(255, 255, 255, .20);
}

.cu-global-menu__utility-group > .cu-ui-icon {
  width: 1.3rem;
  height: 1.3rem;
  color: #fff;
}

.cu-global-menu__utility-label {
  color: #fff;
  font-size: .58rem;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cu-global-menu__utility .cu-language-switcher,
.cu-global-menu__utility .cu-currency-switcher {
  display: grid;
  width: 100%;
}


.cu-global-menu__utility .cu-language-switcher__link,
.cu-global-menu__utility .cu-currency-switcher__link,
.cu-global-menu__utility .cu-currency-current {
  min-height: 31px;
  padding: .38rem .3rem;
  border-radius: 10px;
  font-size: .68rem;
}

.cu-global-menu__utility-contact {
  display: grid;
  gap: .35rem;
}

.cu-global-menu__utility-contact a {
  display: grid;
  justify-items: center;
  gap: .32rem;
  min-height: 52px;
  padding: .45rem .2rem;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 11px;
  color: #fff;
  font-size: .56rem;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.cu-global-menu__utility-contact i {
  font-size: 1.05rem;
}

.cu-global-menu__navigation {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--cu-cream);
}

.cu-global-menu__nav {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  max-height: 100%;
  padding: clamp(.85rem, 2.2vh, 1.35rem) clamp(1rem, 2.8vw, 1.8rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
}

.cu-global-menu__nav::-webkit-scrollbar {
  display: none;
}

.cu-global-menu__nav > a,
.cu-global-menu__group > .cu-global-menu__primary {
  display: block;
  padding: clamp(.48rem, 1.05vh, .68rem) .1rem;
  border-bottom: 1px solid var(--cu-line);
  color: var(--cu-green-dark);
  font-size: clamp(.88rem, 1.1vw, 1rem);
  font-weight: 300;
  line-height: 1.25;
  text-decoration: none;
}

.cu-global-menu__nav .cu-global-menu__primary {
  font-family: var(--cu-font-heading);
  font-size: clamp(1.42rem, 2.15vw, 1.82rem);
  font-weight: 400;
}

.cu-global-menu__group {
  display: grid;
}

.cu-global-menu__chips {
  display: grid;
  grid-template-columns: 1fr;
  gap: .3rem;
  padding: .45rem 0 .65rem;
  border-bottom: 1px solid var(--cu-line);
}

.cu-global-menu__chips a {
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: .42rem .65rem;
  border: 1px solid var(--cu-line);
  border-radius: 12px;
  color: var(--cu-green-dark);
  font-size: .78rem;
  font-weight: 300;
  text-decoration: none;
}

.cu-global-menu__nav a:hover,
.cu-global-menu__nav a:focus-visible {
  color: var(--cu-gold);
  outline: 0;
}

.cu-global-menu__chips a:focus-visible {
  box-shadow: var(--cu-focus-ring);
}

@media (max-width: 1180px) {
  .cu-site-header__bar {
    grid-template-columns: minmax(72px, 96px) minmax(0, 1fr) minmax(92px, 116px);
    width: calc(100% - 1.25rem);
    gap: .65rem;
  }
  .cu-brand__logo { max-width: 86px; }
  .cu-header-icon,
  .cu-menu-button { width: 36px; min-width: 36px; height: 36px; min-height: 36px; }
}

@media (max-width: 782px) {
  .cu-site-header__bar {
    grid-template-columns: 62px minmax(0, 1fr) 44px;
    width: calc(100% - 1rem);
    min-height: 76px;
    gap: .45rem;
  }
  .cu-brand__logo { max-width: 58px; max-height: 48px; }
  .cu-site-header__actions { gap: 0; }
  .cu-header-icon { display: none; }
  .cu-menu-button { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
  .cu-global-menu { width: min(100vw, 620px); }
  .cu-global-menu__frame { grid-template-columns: 104px minmax(0, 1fr); }
  .cu-global-menu__utility { padding: .8rem .5rem .55rem; }
  .cu-global-menu__navigation { min-width: 0; }
  .cu-global-menu__nav { padding: .85rem 1rem 1rem; }
  .cu-global-menu__nav > a,
  .cu-global-menu__group > .cu-global-menu__primary { padding-block: .52rem; }
  .cu-global-menu__nav .cu-global-menu__primary { font-size: 1.38rem; }
}

@media (max-width: 390px) {
  .cu-global-menu__frame { grid-template-columns: 94px minmax(0, 1fr); }
  .cu-global-menu__utility { padding-inline: .5rem; }
  .cu-language-switcher__link,
  .cu-currency-switcher__link,
  .cu-currency-current { padding-inline: .35rem; }
  .cu-global-menu__nav { padding-inline: .85rem; }
}

/* 5.0.46 — Trip recovery entry in the Stays menu group. */
.cu-global-menu__chips .cu-global-menu__trip-link {
  gap: .48rem;
}
.cu-global-menu__chips .cu-global-menu__trip-link i {
  flex: 0 0 1rem;
  width: 1rem;
  text-align: center;
  color: var(--cu-copper, #b56d37);
  font-size: .76rem;
}

