/* Adriavela landing filter: one state model, dedicated desktop/mobile views. */
.ad-landing-filter-root,
.ad-landing-filter-root * {
  box-sizing: border-box;
}

.ad-landing-filter-mobile {
  display: none;
}

.ad-landing-filter-desktop {
  grid-template-columns: minmax(220px, 1.08fr) minmax(150px, .86fr) minmax(190px, 1.12fr) minmax(135px, .82fr) auto;
}

.ad-landing-near-me-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 10px;
}

.ad-landing-near-me-row--mobile {
  display: none;
}

/* Height matches half of .search-btn's own rendered height at each
   breakpoint (confirmed identical across locales - EN/DE both measured
   79px here, 58px in the 721-1024px tablet rule below - so a fixed value
   is locale-safe). Width can't be fixed the same way: .search-btn's width
   varies with its own translated label length (confirmed 220px EN vs
   280px DE at the same viewport), so it stays JS-set in listing-near-me.js.
   Hidden until that JS runs so the button never paints at the wrong width
   for a frame - height alone being correct from first paint isn't enough
   to avoid a visible resize if the width is still catching up. */
.ad-landing-near-me-row--desktop .ad-landing-near-me-btn {
  height: 39.5px;
  visibility: hidden;
}

.ad-landing-near-me-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-sizing: border-box;
  flex-shrink: 0;
  margin: 0;
  border: 1px solid rgba(201, 169, 110, .35);
  background: transparent;
  color: var(--gold-light);
  font-family: 'Jost', sans-serif;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  transition: background .3s, border-color .3s;
}

.ad-landing-near-me-btn:hover {
  background: rgba(201, 169, 110, .08);
  border-color: var(--gold);
}

.ad-landing-near-me-btn svg {
  flex-shrink: 0;
}

/* The label can now carry an IP-detected city name appended to it
   (listing-near-me.js) - length is unbounded (city names vary a lot, and
   the surrounding sentence is translated on top of that), while the
   button's own width stays a fixed box matched to .search-btn. Truncate
   with an ellipsis instead of letting it overflow the border or wrap: a
   flex child needs min-width:0 here, since flex items default to not
   shrinking below their content's natural width. Direct-child selector on
   purpose - the label span now wraps the city itself in its own nested
   notranslate <span>, which this must not also match. */
.ad-landing-near-me-btn > span {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.ad-landing-near-me-error {
  display: block;
  flex: 1 0 100%;
  width: 100%;
  text-align: center;
  margin-top: 8px;
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  color: var(--gold-light);
}

.ad-landing-near-me-error[hidden] {
  display: none;
}

.ad-landing-filter-desktop__button-field {
  width: 100%;
  min-width: 0;
  margin: 0;
  border-top: 0;
  border-bottom: 0;
  border-left: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  appearance: none;
  cursor: pointer;
}

.ad-landing-filter-desktop__where {
  cursor: text;
}

.ad-landing-filter-desktop__where-value {
  position: relative;
  min-height: 24px;
}

.ad-landing-filter-desktop__where-input {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  outline: none;
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  line-height: 24px;
}

.ad-landing-filter-desktop__where-placeholder {
  position: absolute;
  inset: 0 auto auto 0;
  max-width: 100%;
  overflow: hidden;
  color: var(--muted);
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  line-height: 24px;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}

.ad-landing-filter-desktop__where-list {
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid rgba(201, 169, 110, .25);
  background: #112240;
  box-shadow: 0 8px 32px rgba(0, 0, 0, .4);
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ad-landing-filter-desktop__where-list::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.ad-landing-filter-desktop__where-list[hidden] {
  display: none;
}

.ad-landing-filter-empty {
  padding: 18px;
  color: var(--muted);
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  letter-spacing: 1px;
}

.ad-filter-choice-list {
  display: grid;
  gap: 8px;
}

.ad-filter-choice-option {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(201, 169, 110, .15);
  background: rgba(255, 255, 255, .02);
  color: rgba(248, 246, 240, .74);
  font-family: 'Cormorant Garamond', serif;
  font-size: 19px;
  text-align: left;
  cursor: pointer;
}

.ad-filter-choice-option:hover,
.ad-filter-choice-option.is-selected {
  border-color: var(--gold);
  color: var(--gold-light);
}

#page-landing .ad-landing-filter-desktop [data-ad-desktop-field] {
  position: relative;
  overflow: visible;
}

/* Field-owned warning: attached to its control, never to the viewport. */
#page-landing .ad-landing-filter-desktop .ad-landing-filter-error {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  left: 0;
  z-index: 260;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(201, 169, 110, .45);
  background: rgba(10, 22, 40, .96);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .28);
  color: var(--white);
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 1.2px;
  text-align: left;
  text-transform: uppercase;
  white-space: normal;
  pointer-events: none;
}

#page-landing .ad-landing-filter-desktop .ad-landing-filter-error[hidden] {
  display: none;
}

.ad-landing-date-popover {
  box-sizing: border-box;
  overflow-y: auto;
}

/*
 * Tablet landing layout.
 *
 * The desktop control has a 915px intrinsic minimum width, while the landing
 * hero only has 644-900px available between 721px and 1024px viewports. Keep
 * the desktop interaction model, but give every field a usable touch target
 * and move the submit action onto its own row instead of clipping the filter.
 */
@media (min-width: 721px) and (max-width: 1024px) {
  #page-landing .ad-landing-filter-desktop {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }

  #page-landing .ad-landing-filter-desktop > .search-field {
    min-width: 0;
    min-height: 76px;
    border-bottom: 1px solid var(--glass-border);
  }

  #page-landing .ad-landing-filter-desktop > [data-ad-desktop-field='trip'],
  #page-landing .ad-landing-filter-desktop > [data-ad-desktop-field='guests'] {
    border-right: 0;
  }

  #page-landing .ad-landing-filter-desktop__button-field .search-value {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  #page-landing .ad-landing-filter-desktop > .search-btn {
    grid-column: 1 / -1;
    min-height: 58px;
    padding: 0 24px;
  }

  .ad-landing-near-me-row--desktop .ad-landing-near-me-btn {
    height: 29px;
  }
}

/* Real desktop only (not the 721-1024px tablet block above, which shares
   this same "desktop" JS variant/markup but has a much wider, full-row
   button with no need for any of this - confirmed live at 642px, plenty of
   room for "translated text — city" on one line). At true desktop width the
   button is narrow (JS-matched to .search-btn, ~220px on English), and a
   real, confirmed bug showed a translated sentence plus a city name can
   overflow or get ellipsis-truncated there depending on locale/city length.
   Wrapping the city onto its own centered second row - reserved from first
   paint, before any city has even loaded, via the taller fixed height below
   - avoids that without depending on any specific text length ever fitting
   on one line. */
@media (min-width: 1025px) {
  .ad-landing-near-me-row--desktop .ad-landing-near-me-btn {
    height: 56px;
    /* justify-content:center relied on shorter translations leaving slack
       on both sides for free - on longer ones (confirmed live on DE/FR;
       EN/RU were fine) the centered icon+text group fills nearly the full
       fixed width, leaving the icon pressed against the border with no
       breathing room. Scoped to real desktop only, matching the rest of
       this block - confirmed fine as-is on mobile/tablet already. */
    padding: 0 10px;
  }

  .ad-landing-near-me-row--desktop .ad-landing-near-me-btn > span {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
  }

  .ad-landing-near-me-row--desktop .ad-landing-near-me-btn .ad-near-me-city-line {
    flex-basis: 100%;
    font-size: 10px;
    letter-spacing: 1px;
    margin-top: 3px;
    opacity: .85;
  }
}


@media (max-width: 720px) {
  .ad-landing-filter-desktop {
    display: none !important;
  }

  .ad-landing-near-me-row--desktop {
    display: none !important;
  }

  .ad-landing-near-me-row--mobile {
    display: flex;
    width: 100%;
    max-width: 520px;
    margin: 12px auto 14px;
  }

  .ad-landing-near-me-row--mobile .ad-landing-near-me-btn {
    font-size: 11px;
    /* Unlike desktop, the mobile submit button's width is always 100% of
       its own card (confirmed identical 333px on EN and DE at the same
       viewport - text length doesn't change a full-width element's width),
       so this is safe as a plain CSS value with no JS involved at all. */
    height: 32px;
    width: 100%;
  }

  #page-landing .ad-landing-filter-mobile {
    --ad-mobile-filter-value-line-box: 1.3em;

    display: block;
    width: 100%;
    max-width: 520px;
    margin: 28px auto 0;
    border: 1px solid var(--glass-border);
    background: rgba(17, 34, 64, .76);
    box-shadow: 0 18px 55px rgba(0, 0, 0, .22);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  .ad-landing-filter-mobile__field {
    width: 100%;
    min-height: 68px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 13px 20px;
    border: 0;
    border-bottom: 1px solid var(--glass-border);
    border-radius: 0;
    background: transparent;
    color: var(--white);
    text-align: left;
    appearance: none;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(201, 169, 110, .12);
  }

  .ad-landing-filter-mobile__field > * {
    pointer-events: none;
  }

  .ad-landing-filter-mobile__label {
    color: var(--gold);
    font-family: 'Jost', sans-serif;
    font-size: 9px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 4px;
    text-transform: uppercase;
  }

  .ad-landing-filter-mobile__value {
    display: block;
    width: 100%;
    min-width: 0;
    min-block-size: var(--ad-mobile-filter-value-line-box);
    overflow: hidden;
    color: var(--white);
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-weight: 300;
    line-height: var(--ad-mobile-filter-value-line-box);
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .ad-landing-filter-mobile__value.is-placeholder {
    color: rgba(248, 246, 240, .64);
  }

  #page-landing .ad-landing-filter-mobile__error {
    display: block;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 10px 20px 12px;
    border-bottom: 1px solid var(--glass-border);
    background: rgba(10, 22, 40, .72);
    color: var(--gold-light);
    font-family: 'Jost', sans-serif;
    font-size: 11px;
    line-height: 1.45;
    letter-spacing: .8px;
    text-align: left;
  }

  #page-landing .ad-landing-filter-mobile__error[hidden] {
    display: none;
  }

  .ad-landing-filter-mobile__submit {
    width: 100%;
    min-height: 66px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0;
    padding: 0 18px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(180deg, var(--gold-light), var(--gold));
    color: var(--navy);
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    cursor: pointer;
    touch-action: manipulation;
  }

  html.ad-mobile-filter-sheet-open,
  body.ad-mobile-filter-sheet-open {
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  .ad-landing-mobile-sheet {
    color-scheme: dark;
  }

  .ad-landing-mobile-sheet[open] {
    --ad-mobile-viewport-height: 100dvh;
    --ad-mobile-viewport-top: 0px;
    --ad-mobile-sheet-offset: 72px;
    position: fixed;
    box-sizing: border-box;
    top: var(--ad-mobile-viewport-top);
    right: 0;
    bottom: auto;
    left: 0;
    z-index: 100000;
    width: 100%;
    max-width: none;
    height: var(--ad-mobile-viewport-height);
    max-height: none;
    display: flex;
    align-items: flex-start;
    justify-content: stretch;
    margin: 0;
    padding: var(--ad-mobile-sheet-offset) 0 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    color: var(--white);
  }

  .ad-landing-mobile-sheet::backdrop {
    background: rgba(3, 9, 18, .68);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  .ad-landing-mobile-sheet__surface {
    --ad-sheet-navy: var(--navy, #0a1628);
    --ad-sheet-gold: var(--gold, #c9a96e);
    --ad-sheet-gold-light: var(--gold-light, #e8d5a3);
    --ad-sheet-white: var(--white, #f8f6f0);
    --ad-mobile-sheet-header-size: 96px;
    --ad-mobile-sheet-header-control-size: 32px;
    --ad-mobile-sheet-header-inline-padding: 20px;
    --ad-mobile-sheet-search-size: 46px;
    --ad-mobile-sheet-search-border-color: rgba(201, 169, 110, .72);
    --ad-mobile-sheet-search-focus-border-color: var(--ad-sheet-gold-light);
    width: 100%;
    height: calc(var(--ad-mobile-viewport-height) - var(--ad-mobile-sheet-offset));
    max-height: calc(var(--ad-mobile-viewport-height) - var(--ad-mobile-sheet-offset));
    min-height: 0;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(201, 169, 110, .34);
    border-bottom: 0;
    border-radius: 28px 28px 0 0;
    background-color: var(--ad-sheet-navy);
    background-image:
      radial-gradient(circle at 12% 0%, rgba(26, 58, 107, .42), transparent 42%),
      linear-gradient(180deg, rgba(17, 34, 64, .99), rgba(10, 22, 40, .998));
    color: var(--ad-sheet-white);
    box-shadow: 0 -22px 70px rgba(0, 0, 0, .42);
  }

  .ad-landing-mobile-sheet[data-active-sheet='trip'] {
    align-items: center;
    justify-content: center;
    padding: 0 16px;
  }

  .ad-landing-mobile-sheet[data-active-sheet='trip'] .ad-landing-mobile-sheet__surface {
    width: min(100%, 520px);
    height: auto;
    max-height: calc(var(--ad-mobile-viewport-height) - 48px);
    border-bottom: 1px solid rgba(201, 169, 110, .34);
    border-radius: 28px;
  }

  .ad-landing-mobile-sheet[data-active-sheet='trip'] .ad-landing-mobile-sheet__content {
    flex: 0 1 auto;
    overflow: hidden;
  }

  .ad-landing-mobile-sheet[data-active-sheet='trip'] .ad-landing-mobile-sheet__view,
  .ad-landing-mobile-sheet[data-active-sheet='trip'] .ad-landing-mobile-sheet__choices {
    height: auto;
  }

  .ad-landing-mobile-sheet[data-active-sheet='trip'] .ad-landing-mobile-sheet__choices {
    padding: 0 18px 18px;
    overflow: visible;
  }

  .ad-landing-mobile-sheet__header {
    position: relative;
    flex: 0 0 var(--ad-mobile-sheet-header-size);
    block-size: var(--ad-mobile-sheet-header-size);
    display: grid;
    grid-template:
      'spacer title close' minmax(0, 1fr)
      / var(--ad-mobile-sheet-header-control-size) minmax(0, 1fr) var(--ad-mobile-sheet-header-control-size);
    align-items: center;
    padding-inline: var(--ad-mobile-sheet-header-inline-padding);
    border: 0;
    background: rgba(17, 34, 64, .12);
  }

  .ad-landing-mobile-sheet__header-spacer {
    grid-area: spacer;
    place-self: center;
    inline-size: var(--ad-mobile-sheet-header-control-size);
    block-size: var(--ad-mobile-sheet-header-control-size);
  }

  .ad-landing-mobile-sheet__title {
    grid-area: title;
    place-self: center;
    margin: 0;
    color: var(--gold-light);
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .16em;
    text-align: center;
    text-transform: uppercase;
  }

  .ad-landing-mobile-sheet__close {
    position: relative;
    grid-area: close;
    place-self: center end;
    inline-size: var(--ad-mobile-sheet-header-control-size);
    block-size: var(--ad-mobile-sheet-header-control-size);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--white);
    outline: none;
    box-shadow: none;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .ad-landing-mobile-sheet__close:focus,
  .ad-landing-mobile-sheet__close:focus-visible,
  .ad-landing-mobile-sheet__close:active {
    border: 0;
    outline: none;
    box-shadow: none;
  }

  .ad-landing-mobile-sheet__close span::before,
  .ad-landing-mobile-sheet__close span::after {
    content: '';
    position: absolute;
    top: 15px;
    left: 5px;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
  }

  .ad-landing-mobile-sheet__close span::before {
    transform: rotate(45deg);
  }

  .ad-landing-mobile-sheet__close span::after {
    transform: rotate(-45deg);
  }

  .ad-landing-mobile-sheet__content {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background: transparent;
  }

  .ad-landing-mobile-sheet__view {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    background: transparent;
  }

  .ad-landing-mobile-sheet__view[hidden] {
    display: none !important;
  }

  .ad-landing-mobile-sheet__view--where {
    display: flex;
    flex-direction: column;
    padding: 8px 16px calc(10px + env(safe-area-inset-bottom));
  }

  .ad-landing-mobile-sheet__search-wrap {
    position: sticky;
    top: 0;
    z-index: 2;
    flex: 0 0 auto;
    box-sizing: border-box;
    inline-size: 100%;
    block-size: var(--ad-mobile-sheet-search-size);
    margin: 0 0 6px;
    padding: 0;
    border: 1px solid var(--ad-mobile-sheet-search-border-color);
    background: rgba(5, 16, 31, .56);
    transition: border-color 140ms ease;
  }

  .ad-landing-mobile-sheet__search-wrap:focus-within {
    border-color: var(--ad-mobile-sheet-search-focus-border-color);
  }

  .ad-landing-mobile-sheet__search {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    inline-size: 100%;
    block-size: 100%;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--gold-light);
    outline: 0;
    box-shadow: none;
    -webkit-box-shadow: none;
    appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: transparent;
    font-family: 'Cormorant Garamond', serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
  }

  .ad-landing-mobile-sheet__search::placeholder {
    color: rgba(248, 246, 240, .44);
    opacity: 1;
  }

  .ad-landing-mobile-sheet__results {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    padding: 0 2px 6px;
    overflow-x: hidden;
    overflow-y: auto;
    background: transparent;
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .ad-landing-mobile-sheet__results::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  .ad-mobile-sheet-result {
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin: 0;
    padding: 0 4px;
    border: 0;
    border-bottom: 0;
    border-radius: 0;
    background: transparent;
    color: var(--white);
    text-align: left;
    appearance: none;
    cursor: pointer;
    touch-action: manipulation;
  }

  .ad-mobile-sheet-result__city {
    min-width: 0;
    overflow: hidden;
    font-family: 'Cormorant Garamond', serif;
    font-size: 19px;
    font-weight: 400;
    line-height: 1.05;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .ad-mobile-sheet-result__country {
    flex: 0 0 auto;
    color: var(--gold);
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 1.35px;
    text-transform: uppercase;
  }

  .ad-landing-mobile-sheet__status {
    flex: 0 0 auto;
    min-height: 16px;
    margin: 7px 2px 0;
    color: rgba(248, 246, 240, .5);
    font-family: 'Jost', sans-serif;
    font-size: 9px;
    line-height: 1.25;
    letter-spacing: 1px;
  }

  .ad-landing-mobile-sheet__status:empty {
    display: none;
  }

  .ad-landing-mobile-sheet__choices {
    height: 100%;
    min-height: 0;
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 8px 18px calc(12px + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .ad-mobile-sheet-choice {
    width: 100%;
    min-height: 52px;
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0 14px;
    border: 1px solid rgba(201, 169, 110, .28);
    border-radius: 0;
    background: rgba(255, 255, 255, .018);
    color: rgba(248, 246, 240, .76);
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.1;
    text-align: left;
    appearance: none;
    cursor: pointer;
    touch-action: manipulation;
  }

  .ad-mobile-sheet-choice.is-selected {
    border-color: rgba(201, 169, 110, .46);
    background: rgba(201, 169, 110, .04);
    color: var(--gold-light);
  }

  .ad-landing-mobile-sheet__view--dates {
    padding: 6px 18px calc(12px + env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .ad-mobile-sheet-calendar {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
  }

  .ad-mobile-sheet-calendar__head {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    align-items: center;
    min-height: 42px;
    margin-bottom: 6px;
  }

  .ad-mobile-sheet-calendar__nav {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(201, 169, 110, .34);
    border-radius: 0;
    background: rgba(255, 255, 255, .018);
    color: var(--white);
    font-family: 'Cormorant Garamond', serif;
    font-size: 21px;
    line-height: 1;
    cursor: pointer;
  }

  .ad-mobile-sheet-calendar__month {
    color: var(--gold-light);
    font-family: 'Jost', sans-serif;
    font-size: 10px;
    letter-spacing: 2px;
    text-align: center;
    text-transform: uppercase;
  }

  .ad-mobile-sheet-calendar__weekdays,
  .ad-mobile-sheet-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 2px;
  }

  .ad-mobile-sheet-calendar__weekdays {
    margin-bottom: 4px;
  }

  .ad-mobile-sheet-calendar__weekdays span {
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(248, 246, 240, .48);
    font-family: 'Jost', sans-serif;
    font-size: 8px;
    letter-spacing: 1px;
    text-transform: uppercase;
  }

  .ad-mobile-sheet-calendar__day {
    aspect-ratio: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--white);
    font-family: 'Cormorant Garamond', serif;
    font-size: 15px;
    cursor: pointer;
  }

  .ad-mobile-sheet-calendar__day.is-empty {
    visibility: hidden;
  }

  .ad-mobile-sheet-calendar__day.is-disabled {
    color: rgba(248, 246, 240, .22);
    cursor: default;
  }

  .ad-mobile-sheet-calendar__day.is-range {
    background: rgba(201, 169, 110, .14);
  }

  .ad-mobile-sheet-calendar__day.is-selected {
    border-color: var(--gold);
    background: var(--gold);
    color: var(--navy);
  }

  .ad-mobile-sheet-calendar__prompt {
    min-height: 18px;
    margin: 0 0 4px;
    color: rgba(248, 246, 240, .64);
    font-family: 'Jost', sans-serif;
    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 1.2px;
    text-align: center;
    text-transform: uppercase;
  }

  .ad-landing-filter-mobile__field:focus-visible,
  .ad-landing-filter-mobile__submit:focus-visible,
  .ad-mobile-sheet-calendar__nav:focus-visible,
  .ad-mobile-sheet-calendar__day:focus-visible {
    outline: 2px solid var(--gold-light);
    outline-offset: 2px;
  }


  .ad-landing-mobile-sheet[data-active-sheet='dates'],
  .ad-landing-mobile-sheet[data-active-sheet='guests'] {
    align-items: center;
    justify-content: center;
    padding: 0 16px;
  }

  .ad-landing-mobile-sheet[data-active-sheet='dates'] .ad-landing-mobile-sheet__surface,
  .ad-landing-mobile-sheet[data-active-sheet='guests'] .ad-landing-mobile-sheet__surface {
    width: min(100%, 520px);
    height: auto;
    max-height: calc(var(--ad-mobile-viewport-height) - 48px);
    border-bottom: 1px solid rgba(201, 169, 110, .34);
    border-radius: 28px;
  }

  .ad-landing-mobile-sheet[data-active-sheet='dates'] .ad-landing-mobile-sheet__content,
  .ad-landing-mobile-sheet[data-active-sheet='guests'] .ad-landing-mobile-sheet__content {
    flex: 0 1 auto;
    overflow: hidden;
  }

  .ad-landing-mobile-sheet[data-active-sheet='dates'] .ad-landing-mobile-sheet__view,
  .ad-landing-mobile-sheet[data-active-sheet='guests'] .ad-landing-mobile-sheet__view,
  .ad-landing-mobile-sheet[data-active-sheet='guests'] .ad-landing-mobile-sheet__choices {
    height: auto;
  }

  .ad-landing-mobile-sheet[data-active-sheet='dates'] .ad-landing-mobile-sheet__view--dates {
    max-height: calc(var(--ad-mobile-viewport-height) - 124px);
    padding: 6px 18px 18px;
    overflow-y: auto;
  }

  .ad-landing-mobile-sheet[data-active-sheet='guests'] .ad-landing-mobile-sheet__choices {
    padding: 8px 18px 18px;
    overflow: visible;
  }

  .ad-landing-mobile-sheet__search:focus,
  .ad-landing-mobile-sheet__search:focus-visible,
  .ad-mobile-sheet-result:focus,
  .ad-mobile-sheet-result:focus-visible,
  .ad-mobile-sheet-choice:focus,
  .ad-mobile-sheet-choice:focus-visible {
    outline: 0;
    box-shadow: none;
  }
}

@media (min-width: 721px) {
  .ad-filter-choice-option {
    font-size: 16px;
  }

  .ad-landing-filter-mobile,
  .ad-landing-mobile-sheet {
    display: none !important;
  }
}
