/*
|--------------------------------------------------------------------------
| Dynaweb Framework — Places
|--------------------------------------------------------------------------
|
| Frontend presentation for the Places feature.
|
| Shared structure and components come from core.css.
| Destination-specific design tokens are supplied by the active theme.
|
*/

/*
 * --------------------------------------------------------------------------
 * Place Document
 * --------------------------------------------------------------------------
 */

body.single-dw_place,
body.post-type-archive-dw_place,
body.tax-dw_place_type,
body.tax-dw_municipality,
body.tax-dw_province {
  overflow-x: clip;

  background: var(--dw-color-paper);

  color: var(--dw-color-text);
}

/*
 * --------------------------------------------------------------------------
 * Place Canvas
 * --------------------------------------------------------------------------
 */

.dw-place {
  max-width: var(--dw-container);

  margin: 0 auto;
  padding: 3rem;
}

/*
 * --------------------------------------------------------------------------
 * Editorial Hero
 * --------------------------------------------------------------------------
 */

.dw-place-hero {
  position: relative;

  min-height: min(76vh, 860px);

  display: flex;
  align-items: flex-end;

  overflow: hidden;

  margin-bottom: var(--dw-space-lg);

  background: var(--dw-color-ink);
}

.dw-place-hero__media {
  position: absolute;
  inset: 0;

  z-index: var(--dw-z-base);
}

.dw-place-hero__image {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center center;

  transform: scale(var(--dw-theme-card-image-scale));

  filter: var(--dw-theme-hero-image-filter);
}

.dw-place-hero__overlay {
  position: absolute;
  inset: 0;

  z-index: var(--dw-z-overlay);

  pointer-events: none;

  background:
    var(--dw-theme-hero-overlay-side), var(--dw-theme-hero-overlay-bottom);
}

.dw-place-hero__content {
  position: relative;

  z-index: calc(var(--dw-z-overlay) + 1);

  width: 100%;
  max-width: 1100px;

  margin: 0 auto;

  padding: clamp(6rem, 11vw, 9rem) var(--dw-space-md) 5.5rem;
}

.dw-place-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;

  margin-bottom: 1.15rem;

  color: var(--dw-theme-on-image-soft);

  font-family: var(--dw-font-ui);
  font-size: 0.74rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  line-height: 1.2;
  text-transform: uppercase;
}

.dw-place-hero__eyebrow::before {
  content: "";

  width: 28px;
  height: 1px;

  background: var(--dw-theme-on-image-rule);
}

.dw-place-hero h1 {
  max-width: 1000px;

  margin: 0;

  color: var(--dw-theme-on-image);

  font-family: var(--dw-font-display);
  font-size: clamp(3.2rem, 6.5vw, 6rem);
  font-weight: 300;
  line-height: 0.99;

  letter-spacing: -0.035em;

  text-wrap: balance;
}

/*
 * --------------------------------------------------------------------------
 * Description
 * --------------------------------------------------------------------------
 */

.dw-place-description {
  padding: var(--dw-space-xl) 0;
}

.dw-place-description__disclosure {
  max-width: var(--dw-content-width);
  margin: 0 auto;
  border-top: 1px solid var(--dw-color-border);
  border-bottom: 1px solid var(--dw-color-border);
}

.dw-place-description__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--dw-space-md);
  padding: var(--dw-space-lg) 0;
  cursor: pointer;
  list-style: none;
  font-family: var(--dw-font-serif);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  line-height: 1.3;
  color: var(--dw-color-ink);
}

.dw-place-description__summary::-webkit-details-marker {
  display: none;
}

.dw-place-description__summary:hover {
  color: var(--dw-theme-accent);
}

.dw-place-description__summary:focus-visible {
  outline: 2px solid var(--dw-theme-accent);
  outline-offset: 4px;
}

.dw-place-description__summary-icon {
  flex: 0 0 auto;
  font-family: var(--dw-font-ui);
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1;
  transition: transform 180ms ease;
}

.dw-place-description__disclosure[open] .dw-place-description__summary-icon {
  transform: rotate(45deg);
}

.dw-place-description__content {
  max-width: var(--dw-content-width);
  padding: 0 0 var(--dw-space-xl);
  font-family: var(--dw-font-serif);
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--dw-color-text);
}

.dw-place-description__content > :first-child {
  margin-top: 0;
}

.dw-place-description__content > :last-child {
  margin-bottom: 0;
}

.dw-place-description__content p {
  margin: 0 0 var(--dw-space-md);
}

.dw-place-description__content h2,
.dw-place-description__content h3,
.dw-place-description__content h4 {
  margin-top: var(--dw-space-lg);
  margin-bottom: var(--dw-space-sm);
  color: var(--dw-color-ink);
}

.dw-place-description__content a {
  color: var(--dw-theme-accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

/*
 * --------------------------------------------------------------------------
 * Place Meta
 * --------------------------------------------------------------------------
 */

.dw-place-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;

  max-width: 900px;

  margin: -0.25rem auto 0;
  padding: 0 var(--dw-space-md);

  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.6;
  text-align: center;
  text-transform: uppercase;
}

.dw-place-meta span {
  display: flex;
  align-items: center;
}

.dw-place-meta span + span::before {
  content: "";

  width: 4px;
  height: 4px;

  margin: 0 0.95rem;

  border-radius: 50%;

  background: var(--dw-theme-accent);
  opacity: 0.7;
}

.dw-place-meta__booking {
  color: var(--dw-theme-secondary);
}

/*
 * --------------------------------------------------------------------------
 * Editorial Introduction
 * --------------------------------------------------------------------------
 */

.dw-place-introduction {
  position: relative;

  max-width: var(--dw-content);

  margin: clamp(5.5rem, 11vw, 9rem) auto clamp(5rem, 9vw, 7rem);
  padding: 0 1.5rem;

  color: var(--dw-color-text);

  font-family: var(--dw-font-body);
  font-size: clamp(1.12rem, 1.4vw, 1.28rem);
  line-height: 1.92;
}

.dw-place-introduction::before {
  content: "";

  display: block;

  width: 54px;
  height: 3px;

  margin: 0 auto 3rem;

  background: var(--dw-theme-accent);
}

.dw-place-introduction p {
  margin: 0 0 1.85rem;
}

.dw-place-introduction p:last-child {
  margin-bottom: 0;
}

.dw-place-introduction p:first-of-type {
  color: var(--dw-color-ink);

  font-size: clamp(1.4rem, 2vw, 1.7rem);
  line-height: 1.62;
}

.dw-place-introduction h2,
.dw-place-introduction h3,
.dw-place-introduction h4 {
  margin-top: 3.5rem;
  margin-bottom: var(--dw-space-sm);

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-weight: 400;
  line-height: 1.2;
}

.dw-place-introduction h2 {
  font-size: 1.9rem;
}

.dw-place-introduction h3 {
  font-size: 1.5rem;
}

.dw-place-introduction h4 {
  font-size: 1.25rem;
}

.dw-place-introduction ul,
.dw-place-introduction ol {
  margin: 1.5rem 0;
  padding-left: 1.5rem;
}

.dw-place-introduction li {
  margin-bottom: var(--dw-space-xs);
}

.dw-place-introduction a {
  color: inherit;

  text-decoration-color: var(--dw-theme-accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;

  transition:
    color var(--dw-duration-fast) var(--dw-ease-standard),
    text-decoration-color var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-introduction a:hover {
  color: var(--dw-theme-accent-deep);
}

.dw-place-introduction strong {
  font-weight: 600;
}

.dw-place-introduction em {
  font-style: italic;
}

/*
 * Editorial Pull Quotes
 */

.dw-place-introduction blockquote {
  position: relative;

  margin: var(--dw-space-lg) -3rem;
  padding: 2rem 2.5rem;

  color: var(--dw-color-ink);

  border: 0;
  border-left: 3px solid var(--dw-theme-accent);

  background: var(--dw-theme-accent-wash);

  font-family: var(--dw-font-display);
  font-size: clamp(1.55rem, 2.5vw, 2.3rem);
  font-style: italic;
  line-height: 1.4;
}

.dw-place-introduction blockquote p {
  margin: 0;

  font-size: inherit;
  line-height: inherit;
}

/*
 * --------------------------------------------------------------------------
 * Information
 * --------------------------------------------------------------------------
 */

.dw-place-info {
  position: relative;

  margin-block: var(--dw-space-xl) var(--dw-space-2xl);
}

.dw-place-info::before {
  content: "";

  position: absolute;
  top: -2rem;
  bottom: -2rem;
  left: 50%;

  width: 100vw;

  z-index: -1;

  transform: translateX(-50%);

  background: var(--dw-theme-surface-wash);
}

.dw-place-info__header {
  margin-bottom: 1.75rem;
}

.dw-place-info .dw-section-title {
  position: relative;

  padding-bottom: 1.15rem;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(2rem, 3.2vw, 2.55rem);
  font-weight: 400;
  line-height: 1.15;

  letter-spacing: -0.015em;
}

.dw-place-info .dw-section-title::after {
  content: "";

  position: absolute;
  bottom: 0;
  left: 0;

  width: 44px;
  height: 3px;

  background: var(--dw-theme-accent);
}

.dw-place-info__card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  overflow: hidden;

  background: linear-gradient(135deg, var(--dw-color-surface), #fff 68%);

  border: 1px solid var(--dw-color-border);
  border-radius: var(--dw-radius-sm);

  box-shadow: var(--dw-theme-card-shadow);
}

.dw-place-info__item {
  min-width: 0;

  padding: 2.4rem;
}

.dw-place-info__item:not(:nth-child(2n)) {
  border-right: 1px solid var(--dw-color-border);
}

.dw-place-info__item:nth-child(n + 3) {
  border-top: 1px solid var(--dw-color-border);
}

.dw-place-info__item--address {
  grid-column: 1 / -1;

  background: var(--dw-theme-surface-deep-wash);
}

.dw-place-info__item h3 {
  margin: 0 0 0.85rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.dw-place-info__item p {
  margin: 0;

  color: var(--dw-color-text);

  font-size: 1.03rem;
  line-height: 1.7;
}

.dw-place-info__item a {
  color: var(--dw-color-ink);

  font-weight: 500;
  text-decoration: none;

  transition: color var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-info__item a:hover {
  color: var(--dw-theme-accent-deep);
}

/*
 * --------------------------------------------------------------------------
 * Related Places
 * --------------------------------------------------------------------------
 */

.dw-place-related {
  position: relative;

  margin-block: var(--dw-space-2xl);

  padding: var(--dw-space-lg) 0 var(--dw-space-xl);

  border-top: 1px solid var(--dw-color-border);
}

.dw-place-related::after {
  content: "";

  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;

  width: 100vw;

  z-index: -1;

  transform: translateX(-50%);

  background: var(--dw-theme-section-wash);
}

.dw-place-related__title {
  position: relative;

  max-width: 13ch;

  margin: 0 0 3rem;
  padding-top: 1.4rem;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(2.3rem, 4vw, 3.35rem);
  font-weight: 400;
  line-height: 1.05;

  letter-spacing: -0.025em;
}

.dw-place-related__title::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;

  width: 48px;
  height: 3px;

  background: var(--dw-theme-accent);
}

.dw-place-related__items {
  --dw-grid-columns: 2;

  --dw-grid-gap: clamp(var(--dw-space-md), 5vw, var(--dw-space-lg));
}

.dw-place-related__item:nth-child(even) {
  margin-top: var(--dw-space-md);
}

.dw-place-related__media {
  position: relative;

  margin-bottom: 1.35rem;

  border-radius: var(--dw-theme-editorial-radius);
}

.dw-place-related__media .dw-media {
  --dw-media-ratio: 3 / 2;
  --dw-media-background: var(--dw-theme-surface-deep);

  --dw-media-radius: var(--dw-theme-editorial-radius);
}

.dw-place-related__media::after {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  box-shadow: inset 0 0 0 1px var(--dw-theme-media-hairline);
}

.dw-place-related__image {
  transform: scale(var(--dw-theme-card-image-scale));

  filter: var(--dw-theme-card-image-filter);

  transition:
    transform var(--dw-duration-slow) var(--dw-ease-emphasized),
    filter var(--dw-duration-slow) var(--dw-ease-standard);
}

.dw-place-related__content {
  --dw-card-content-gap: 0;
  padding-inline: 0.2rem;
}

.dw-place-related__name {
  margin: 0;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(1.5rem, 2.3vw, 1.9rem);
  font-weight: 400;
  line-height: 1.2;

  letter-spacing: -0.015em;

  transition: color var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-related__location {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;

  margin-top: 0.7rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.69rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.dw-place-related__location::before {
  content: "";

  width: 18px;
  height: 1px;

  background: var(--dw-theme-accent);
}

.dw-place-related__link:hover .dw-place-related__image {
  transform: scale(var(--dw-theme-card-image-scale-hover));

  filter: var(--dw-theme-card-image-filter-hover);
}

.dw-place-related__link:hover .dw-place-related__name {
  color: var(--dw-theme-accent-deep);
}

/* --------------------------------------------------------------------------
   Place Gallery
   -------------------------------------------------------------------------- */

.dw-place-gallery {
  padding: var(--dw-space-xl) 0;
}

.dw-place-gallery__header {
  --dw-section-header-gap: var(--dw-space-lg);

  margin-bottom: var(--dw-space-md);
}

.dw-place-gallery__title {
  --dw-section-header-title-size: clamp(1.6rem, 3vw, 2.2rem);

  color: var(--dw-color-ink);

  font-family: var(--dw-font-serif);
  line-height: 1.1;
}

.dw-place-gallery__controls {
  display: flex;
  gap: 8px;
}

.dw-place-gallery__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--dw-color-border);
  border-radius: 50%;
  background: transparent;
  color: var(--dw-color-ink);
  font-size: 1rem;
  cursor: pointer;
  transition:
    opacity 160ms ease,
    border-color 160ms ease,
    transform 160ms ease;
}

.dw-place-gallery__arrow:hover:not(:disabled) {
  border-color: var(--dw-theme-accent);
  transform: translateY(-1px);
}

.dw-place-gallery__arrow:disabled {
  opacity: 0.25;
  cursor: default;
}

.dw-place-gallery__viewport {
  width: 100%;
  max-width: 100%;
  min-width: 0;

  overflow-x: auto;
  overflow-y: hidden;

  scrollbar-width: none;

  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;

  -webkit-overflow-scrolling: touch;
}

.dw-place-gallery__viewport::-webkit-scrollbar {
  display: none;
}

.dw-place-gallery__track {
  /*
     * Grid is more deterministic here than percentage flex-basis.
     * Four implicit columns fit the viewport; additional columns
     * continue horizontally and create genuine scroll overflow.
     */
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (3 * clamp(10px, 1.4vw, 18px))) / 4);

  gap: clamp(10px, 1.4vw, 18px);

  width: 100%;
  min-width: 0;

  align-items: start;
}

.dw-place-gallery__item {
  min-width: 0;
  width: 100%;

  margin: 0;

  scroll-snap-align: start;
}

.dw-place-gallery__image-button {
  --dw-media-ratio: 3 / 2;
  --dw-media-background: var(--dw-theme-surface-deep);

  padding: 0;

  border: 0;

  cursor: zoom-in;

  appearance: none;
}

.dw-place-gallery__caption {
  margin-top: 9px;
  font-family: var(--dw-font-ui);
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--dw-color-text);
}

.dw-place-gallery__progress {
  position: relative;
  height: 1px;
  margin-top: var(--dw-space-md);
  overflow: hidden;
  background: var(--dw-color-border);
}

.dw-place-gallery__progress-bar {
  position: absolute;
  inset: 0;
  background: var(--dw-theme-accent);
  transform: scaleX(0.2);
  transform-origin: left center;
  transition: transform 80ms linear;
}

/*
 * Keep keyboard navigation visible without the
 * heavy default theme focus box.
 */
.dw-place-gallery__viewport:focus:not(:focus-visible),
.dw-place-gallery__image-button:focus:not(:focus-visible),
.dw-place-gallery__arrow:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

.dw-place-gallery__image-button:focus-visible,
.dw-place-gallery__arrow:focus-visible {
  outline: 2px solid var(--dw-theme-accent);
  outline-offset: 3px;
}

.dw-place-gallery:not(.is-scrollable) .dw-place-gallery__controls,
.dw-place-gallery:not(.is-scrollable) .dw-place-gallery__progress {
  display: none;
}

@media (max-width: 700px) {
  .dw-place-gallery {
    padding: var(--dw-space-lg) 0;
  }

  .dw-place-gallery__controls {
    display: none;
  }

  .dw-place-gallery__track {
    gap: 12px;
    grid-auto-columns: calc((100% - 12px) / 1.5);
  }

  .dw-place-gallery__progress {
    margin-top: 14px;
  }
}

/* --------------------------------------------------------------------------
   Place Gallery Lightbox
   -------------------------------------------------------------------------- */

html.dw-lightbox-open,
html.dw-lightbox-open body {
  overflow: hidden;
}

.dw-place-lightbox[hidden] {
  display: none;
}

.dw-place-lightbox {
  position: fixed;
  inset: 0;

  z-index: var(--dw-z-modal);

  display: flex;
  align-items: center;
  justify-content: center;

  padding: clamp(16px, 3vw, 36px);

  background: rgba(18, 16, 14, 0.97);
}

.dw-place-lightbox__inner {
  position: relative;

  width: 100%;
  height: 100%;

  display: grid;

  grid-template-columns:
    minmax(44px, 72px)
    minmax(0, 1fr)
    minmax(44px, 72px);

  align-items: center;
}

.dw-place-lightbox__figure {
  grid-column: 2;

  min-width: 0;
  max-width: 100%;
  max-height: 100%;

  margin: 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.dw-place-lightbox__image {
  display: block;

  max-width: 100%;
  max-height: calc(100vh - 130px);

  width: auto;
  height: auto;

  object-fit: contain;

  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.32);
}

.dw-place-lightbox__meta {
  width: min(100%, 1000px);

  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: var(--dw-space-md);

  margin-top: 14px;

  color: rgba(255, 250, 244, 0.82);

  font-family: var(--dw-font-ui);
  font-size: 0.78rem;
  line-height: 1.5;
}

.dw-place-lightbox__caption {
  max-width: 70ch;
}

.dw-place-lightbox__count {
  flex: 0 0 auto;

  color: rgba(255, 250, 244, 0.58);

  letter-spacing: 0.08em;
}

.dw-place-lightbox__close,
.dw-place-lightbox__nav {
  border: 0;
  background: transparent;

  color: rgba(255, 250, 244, 0.86);

  cursor: pointer;

  appearance: none;

  transition:
    color 150ms ease,
    opacity 150ms ease,
    transform 150ms ease;
}

.dw-place-lightbox__close {
  position: absolute;
  top: 0;
  right: 0;

  z-index: 2;

  width: 48px;
  height: 48px;

  padding: 0;

  font-family: var(--dw-font-ui);
  font-size: 2rem;
  font-weight: 200;
  line-height: 1;
}

.dw-place-lightbox__nav {
  width: 48px;
  height: 64px;

  padding: 0;

  justify-self: center;

  font-family: var(--dw-font-ui);
  font-size: 1.4rem;
}

.dw-place-lightbox__nav--previous {
  grid-column: 1;
}

.dw-place-lightbox__nav--next {
  grid-column: 3;
}

.dw-place-lightbox__close:hover,
.dw-place-lightbox__nav:hover {
  color: #fff;

  transform: scale(1.06);
}

.dw-place-lightbox__close:focus-visible,
.dw-place-lightbox__nav:focus-visible {
  outline: 2px solid rgba(255, 250, 244, 0.9);

  outline-offset: 3px;
}

@media (max-width: 700px) {
  .dw-place-lightbox {
    padding: 14px;
  }

  .dw-place-lightbox__inner {
    grid-template-columns: 1fr;
  }

  .dw-place-lightbox__figure {
    grid-column: 1;

    width: 100%;
  }

  .dw-place-lightbox__image {
    max-height: calc(100vh - 110px);

    max-width: 100%;
  }

  .dw-place-lightbox__nav {
    display: none;
  }

  .dw-place-lightbox__close {
    top: 2px;
    right: 2px;
  }

  .dw-place-lightbox__meta {
    padding-inline: 4px;

    font-size: 0.75rem;
  }
}

/* --------------------------------------------------------------------------
   Nearby Places
   -------------------------------------------------------------------------- */

.dw-place-nearby {
  position: relative;

  margin-block: var(--dw-space-xl) var(--dw-space-2xl);

  padding: var(--dw-space-lg) 0 var(--dw-space-xl);
}

.dw-place-nearby::before {
  content: "";

  position: absolute;
  inset-block: 0;
  left: 50%;

  width: 100vw;

  z-index: -1;

  transform: translateX(-50%);

  background: var(--dw-theme-section-wash-soft);
}

.dw-place-nearby__header {
  --dw-section-header-gap: var(--dw-space-md);

  align-items: flex-start;

  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.dw-place-nearby__eyebrow {
  display: block;

  margin-bottom: 0.7rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.17em;
  line-height: 1.3;
  text-transform: uppercase;
}

.dw-place-nearby__title {
  position: relative;

  margin: 0;

  padding-top: 1rem;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  font-weight: 400;
  line-height: 1.08;

  letter-spacing: -0.02em;
}

.dw-place-nearby__title::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;

  width: 42px;
  height: 2px;

  background: var(--dw-theme-accent);
}

.dw-place-nearby__items {
  --dw-grid-columns: 4;
  --dw-grid-gap: clamp(1rem, 2.3vw, 2rem);
}

.dw-place-nearby__media {
  position: relative;

  margin-bottom: 1.15rem;
}

.dw-place-nearby__media::after {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  box-shadow: inset 0 0 0 1px var(--dw-theme-media-hairline);
}

.dw-place-nearby__media .dw-media {
  --dw-media-ratio: 3 / 2;
  --dw-media-background: var(--dw-theme-surface-deep);
}

.dw-place-nearby__image {
  transform: scale(var(--dw-theme-card-image-scale));

  filter: var(--dw-theme-card-image-filter);

  transition:
    transform var(--dw-duration-slow) var(--dw-ease-emphasized),
    filter var(--dw-duration-slow) var(--dw-ease-standard);
}

.dw-place-nearby__content {
  padding-inline: 0.1rem;
}

.dw-place-nearby__type {
  display: block;

  margin-bottom: 0.55rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.dw-place-nearby__name {
  margin: 0;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  font-weight: 400;
  line-height: 1.18;

  letter-spacing: -0.012em;

  transition: color var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-nearby__meta {
  --dw-meta-gap: 0.35rem 0.65rem;
  --dw-meta-color: var(--dw-color-muted);

  margin-top: 0.65rem;

  font-size: 0.7rem;
}

.dw-place-nearby__distance::before {
  content: "";

  width: 3px;
  height: 3px;

  margin-right: 0.65rem;

  border-radius: 50%;

  background: var(--dw-theme-accent);

  opacity: 0.7;
}

.dw-place-nearby__link:hover .dw-place-nearby__image {
  transform: scale(var(--dw-theme-card-image-scale-hover));

  filter: var(--dw-theme-card-image-filter-hover);
}

.dw-place-nearby__link:hover .dw-place-nearby__name {
  color: var(--dw-theme-accent-deep);
}

@media (max-width: 980px) {
  .dw-place-nearby__items {
    --dw-grid-columns: 2;
  }
}

@media (max-width: 600px) {
  .dw-place-nearby {
    margin-block: var(--dw-space-lg) 5rem;

    padding: var(--dw-space-md) 0 var(--dw-space-lg);
  }

  .dw-place-nearby__items {
    display: flex;

    width: 100%;
    max-width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    gap: var(--dw-rail-gap, 14px);

    padding-bottom: 4px;

    scroll-snap-type: x mandatory;

    scrollbar-width: none;

    overscroll-behavior-x: contain;

    -webkit-overflow-scrolling: touch;
  }

  .dw-place-nearby__items::-webkit-scrollbar {
    display: none;
  }

  .dw-place-nearby__item {
    flex: 0 0 var(--dw-rail-item-width, 82%);

    width: var(--dw-rail-item-width, 82%);
    min-width: 0;

    scroll-snap-align: start;
  }
}

/* --------------------------------------------------------------------------
   Place Archive
   -------------------------------------------------------------------------- */

.dw-place-archive {
  padding: clamp(4rem, 8vw, 7rem) 0 clamp(5rem, 10vw, 9rem);
}

.dw-place-archive__header {
  max-width: 820px;

  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.dw-place-archive__eyebrow {
  display: block;

  margin-bottom: 0.8rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.dw-place-archive__title {
  position: relative;

  margin: 0;

  padding-top: 1.15rem;

  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(3rem, 7vw, 6rem);
  font-weight: 400;
  line-height: 0.98;

  letter-spacing: -0.035em;
}

.dw-place-archive__title::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;

  width: 46px;
  height: 2px;

  background: var(--dw-theme-accent);
}

.dw-place-archive__grid {
  --dw-grid-columns: 2;

  --dw-grid-gap: clamp(3rem, 6vw, 6rem) clamp(1.5rem, 4vw, 3.5rem);
}

.dw-place-archive__media {
  display: block;

  margin-bottom: 1.15rem;
}

.dw-place-archive__media .dw-media {
  --dw-media-ratio: 3 / 2;

  --dw-media-background: var(--dw-theme-surface-deep);
}

.dw-place-archive__image {
  transition: transform var(--dw-duration-slow) var(--dw-ease-emphasized);
}

.dw-place-archive__content {
  --dw-card-content-gap: 0;

  max-width: 95%;
}

.dw-place-archive__type {
  display: block;

  margin-bottom: 0.6rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.dw-place-archive__name {
  margin: 0 0 0.2rem;
  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  font-weight: 400;
  line-height: 1.06;

  letter-spacing: -0.025em;

  transition: color var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-archive__location {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dw-place-archive__introduction {
  margin: 1.1rem 0 0;

  max-width: 44rem;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-body);
  font-size: 0.95rem;
  line-height: 1.65;
}

.dw-place-archive__media:hover .dw-place-archive__image,
.dw-place-archive__media:focus-visible .dw-place-archive__image {
  transform: scale(var(--dw-theme-archive-image-scale-hover));
}

.dw-place-archive__title-link:hover,
.dw-place-archive__title-link:focus-visible {
  color: var(--dw-theme-accent-deep);
}

.dw-place-archive__pagination {
  --dw-pagination-gap: 0.75rem;

  margin-top: clamp(4rem, 8vw, 7rem);
}

.dw-place-archive__pagination .page-numbers {
  min-width: 0;
  min-height: 0;

  padding: 0.55rem 0.8rem;

  border: 0;
  border-bottom: 1px solid var(--dw-theme-pagination-border);

  color: var(--dw-color-ink);

  background: transparent;

  font-family: var(--dw-font-ui);
  font-size: 0.75rem;

  text-decoration: none;
}

.dw-place-archive__pagination .current {
  border-color: var(--dw-theme-accent);
}

.dw-place-archive__empty {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-body);

  font-size: 1rem;
}

.dw-place-archive__lead {
  max-width: 44rem;

  margin: clamp(1.3rem, 2.4vw, 2rem) 0 0;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-body);

  font-size: clamp(1rem, 1.5vw, 1.15rem);

  line-height: 1.7;
}

.dw-place-archive__meta {
  --dw-meta-gap: 0;
  --dw-meta-color: var(--dw-color-muted);

  margin-top: 0.7rem;
}

.dw-place-archive__media,
.dw-place-archive__title-link {
  color: inherit;
  text-decoration: none;
}

.dw-place-archive__type {
  display: inline-block;

  margin: 0 0 0.8rem;

  color: var(--dw-theme-secondary);

  font-family: var(--dw-font-ui);
  font-size: 0.66rem;
  font-weight: 600;
  line-height: 1.35;

  letter-spacing: 0.16em;
  text-transform: uppercase;

  text-decoration: none;
}

.dw-place-archive__type:hover,
.dw-place-archive__type:focus-visible {
  color: var(--dw-theme-accent);

  text-decoration: none;
}

.dw-place-archive__title-link:hover,
.dw-place-archive__title-link:focus-visible {
  color: var(--dw-theme-accent);
}

@media (max-width: 720px) {
  .dw-place-archive__grid {
    --dw-grid-columns: 1;
    --dw-grid-gap: 3.5rem;
  }

  .dw-place-archive__content {
    max-width: 100%;
  }

  .dw-place-archive__title {
    font-size: clamp(2.8rem, 14vw, 4.3rem);
  }
}

/*
 * --------------------------------------------------------------------------
 * Focus
 * --------------------------------------------------------------------------
 */

.dw-place a:focus-visible {
  outline: 2px solid var(--dw-theme-accent);
  outline-offset: 4px;
}

/*
 * --------------------------------------------------------------------------
 * Responsive
 * --------------------------------------------------------------------------
 */

@media (max-width: 782px) {
  .dw-place {
    padding: 1.5rem;
  }

  .dw-place-hero {
    min-height: 68vh;

    margin-bottom: 2.5rem;
  }

  .dw-place-hero__content {
    padding: 5rem 1.5rem 3.75rem;
  }

  .dw-place-hero h1 {
    max-width: 12ch;

    font-size: clamp(2.7rem, 11vw, 4.2rem);
    line-height: 1;
  }

  .dw-place-meta {
    max-width: 100%;

    margin-top: -0.25rem;
    padding: 0 var(--dw-space-sm);

    font-size: 0.66rem;
    letter-spacing: 0.1em;
    line-height: 1.7;
  }

  .dw-place-meta span + span::before {
    margin-inline: 0.6rem;
  }

  .dw-place-introduction {
    margin-block: var(--dw-space-lg) 5rem;
    padding-inline: 0.75rem;

    font-size: 1.08rem;
    line-height: 1.85;
  }

  .dw-place-introduction::before {
    margin-bottom: var(--dw-space-md);
  }

  .dw-place-introduction p:first-of-type {
    font-size: 1.32rem;
    line-height: 1.65;
  }

  .dw-place-introduction blockquote {
    margin: 2.75rem 0;

    padding: 1.5rem 1.25rem;

    font-size: 1.45rem;
    line-height: 1.45;
  }

  .dw-place-info {
    margin-block: var(--dw-space-lg) 5rem;
  }

  .dw-place-info::before {
    inset-inline: -1.5rem;
  }

  .dw-place-info__header {
    margin-bottom: 1.5rem;
  }

  .dw-place-info .dw-section-title {
    font-size: 1.9rem;
  }

  .dw-place-info__card {
    display: block;
  }

  .dw-place-info__item {
    padding: 1.6rem;
  }

  .dw-place-info__item:not(:nth-child(2n)) {
    border-right: 0;
  }

  .dw-place-info__item:nth-child(n + 3) {
    border-top: 0;
  }

  .dw-place-info__item + .dw-place-info__item {
    border-top: 1px solid var(--dw-color-border);
  }

  .dw-place-related {
    margin-block: 5rem;

    padding-top: var(--dw-space-md);
  }

  .dw-place-related__title {
    max-width: 12ch;

    margin-bottom: 2.25rem;

    font-size: 2.25rem;
  }

  .dw-place-related__items {
    --dw-grid-columns: 1;
    --dw-grid-gap: 3rem;
  }

  .dw-place-related__item:nth-child(even) {
    margin-top: var(--dw-theme-related-stagger);
  }

  .dw-place-related__name {
    font-size: 1.55rem;
  }
}

/*
 * --------------------------------------------------------------------------
 * Reduced Motion
 * --------------------------------------------------------------------------
 */

@media (prefers-reduced-motion: reduce) {
  .dw-place-related__image,
  .dw-place-related__name,
  .dw-place-info__item a,
  .dw-place-introduction a {
    transition: none;
  }

  .dw-place-related__link:hover .dw-place-related__image {
    transform: none;
  }
}
/*
 * --------------------------------------------------------------------------
 * Destination index
 * --------------------------------------------------------------------------
 */

.dw-destinations {
  padding-block: clamp(3rem, 7vw, 6rem);
}

.dw-destinations__header {
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.dw-destinations__introduction {
  max-width: 42rem;

  margin: var(--dw-space-sm) 0 0;

  color: var(--dw-color-muted);
}

.dw-destinations__grid {
  display: grid;

  grid-template-columns: repeat(3, minmax(0, 1fr));

  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.dw-destinations__card {
  min-width: 0;
}

.dw-destinations__link {
  display: block;

  color: inherit;

  text-decoration: none;
}

.dw-destinations__media {
  overflow: hidden;

  aspect-ratio: 4 / 3;

  background: var(--dw-color-surface);
}

.dw-destinations__image {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  transition: transform var(--dw-duration-normal) var(--dw-ease-standard);
}

.dw-destinations__placeholder {
  width: 100%;
  height: 100%;

  background: var(--dw-color-border);
}

.dw-destinations__link:hover .dw-destinations__image {
  transform: scale(1.025);
}

.dw-destinations__content {
  padding-top: 1rem;
}

.dw-destinations__name {
  margin: 0 0 0.25rem;

  font-size: clamp(1.15rem, 2vw, 1.4rem);
}

.dw-destinations__count {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.78rem;

  letter-spacing: 0.06em;
}

@media (max-width: 782px) {
  .dw-destinations__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .dw-destinations__grid {
    grid-template-columns: 1fr;
  }
}
.dw-destinations__link:focus-visible {
  outline: 2px solid var(--dw-theme-accent);
  outline-offset: 5px;
}

.dw-destinations__link:focus-visible .dw-destinations__image {
  transform: scale(1.025);
}

/*
 * --------------------------------------------------------------------------
 * Place search
 * --------------------------------------------------------------------------
 */

.dw-place-search {
  padding-block: clamp(3rem, 7vw, 6rem);
}

.dw-place-search__header {
  margin-bottom: var(--dw-space-lg);
}

.dw-place-search__form {
  display: flex;

  max-width: 48rem;

  margin-bottom: clamp(2.5rem, 5vw, 4rem);

  border-bottom: 1px solid var(--dw-color-border);
}

.dw-place-search__input {
  flex: 1 1 auto;

  min-width: 0;

  border: 0;
  padding: 1rem 0;

  color: var(--dw-color-ink);
  background: transparent;

  font-family: var(--dw-font-display);
  font-size: clamp(1.5rem, 3vw, 2.3rem);
}

.dw-place-search__input:focus {
  outline: 0;
}

.dw-place-search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}

.dw-place-search__form:focus-within {
  border-bottom-color: var(--dw-theme-accent);
}

.dw-place-search__submit {
  flex: 0 0 auto;

  border: 0;
  padding: 0 0 0 1.5rem;

  color: var(--dw-color-ink);
  background: transparent;

  font-family: var(--dw-font-ui);
  font-size: 0.72rem;
  font-weight: 600;

  letter-spacing: 0.12em;
  text-transform: uppercase;

  cursor: pointer;
}

.dw-place-search__submit:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 4px;
}

.dw-place-search__summary {
  margin-bottom: var(--dw-space-lg);

  color: var(--dw-color-muted);
}

.dw-place-search__grid {
  --dw-grid-columns: 2;

  --dw-grid-gap: clamp(2rem, 5vw, 4rem);
}

.dw-place-search__media {
  display: block;

  margin-bottom: 1rem;

  overflow: hidden;
}

.dw-place-search__image {
  display: block;

  width: 100%;
  height: 100%;

  aspect-ratio: 3 / 2;

  object-fit: cover;
}

.dw-place-search__title {
  margin: 0 0 0.65rem;
}

.dw-place-search__title a {
  color: inherit;
  text-decoration: none;
}

.dw-place-search__introduction {
  margin: 0;
}

@media (max-width: 700px) {
  .dw-place-search__grid {
    --dw-grid-columns: 1;
  }
}

.dw-place-search__field {
  position: relative;

  flex: 1 1 auto;

  min-width: 0;
}

.dw-place-search__input {
  width: 100%;
}

.dw-place-search__suggestions {
  position: absolute;
  top: calc(100% + 1px);
  right: 0;
  left: 0;
  z-index: 50;

  overflow-y: auto;

  max-height: min(24rem, 62vh);

  margin: 0;
  padding: 0.45rem;

  border: 1px solid var(--dw-color-border);

  background: var(--dw-color-surface);

  box-shadow: var(--dw-theme-card-shadow);

  list-style: none;
}

.dw-place-search__suggestions[hidden] {
  display: none;
}

.dw-place-search__suggestion {
  display: grid;

  grid-template-columns: minmax(0, 1fr);

  align-items: center;

  gap: 1rem;

  padding: 0.75rem;

  cursor: pointer;
}

.dw-place-search__suggestion.has-image {
  grid-template-columns: 4.25rem minmax(0, 1fr);
}

.dw-place-search__suggestion:hover,
.dw-place-search__suggestion.is-active {
  background: var(--dw-theme-accent-wash);
}

.dw-place-search__suggestion-image {
  display: block;

  width: 4.25rem;
  height: 3.25rem;

  object-fit: cover;
}

.dw-place-search__suggestion-content {
  display: grid;

  min-width: 0;

  gap: 0.2rem;
}

.dw-place-search__suggestion-title {
  color: var(--dw-color-ink);

  font-family: var(--dw-font-display);
  font-size: 1rem;
  line-height: 1.25;
}

.dw-place-search__suggestion-meta {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.7rem;
  font-weight: 500;

  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dw-place-search__suggestion + .dw-place-search__suggestion {
  border-top: 1px solid var(--dw-color-border);
}

.dw-place-search__suggestion-title {
  overflow: hidden;

  text-overflow: ellipsis;

  white-space: nowrap;
}

@media (max-width: 520px) {
  .dw-place-search__suggestion {
    gap: 0.75rem;
  }

  .dw-place-search__suggestion.has-image {
    grid-template-columns: 3.5rem minmax(0, 1fr);
  }
}

/*
 * --------------------------------------------------------------------------
 * Search filters
 * --------------------------------------------------------------------------
 */

.dw-place-search__filters {
  display: flex;
  flex-wrap: wrap;

  gap: 0.65rem 1.4rem;

  margin: calc(var(--dw-space-md) * -1) 0 var(--dw-space-xl);

  padding-top: var(--dw-space-md);

  border-top: 1px solid var(--dw-color-border);
}

.dw-place-search__filter {
  position: relative;

  padding-block: 0.45rem;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.7rem;
  font-weight: 600;

  letter-spacing: 0.11em;
  text-transform: uppercase;

  text-decoration: none;
}

.dw-place-search__filter::after {
  position: absolute;

  right: 0;
  bottom: 0;
  left: 0;

  height: 1px;

  background: var(--dw-theme-accent);

  content: "";

  transform: scaleX(0);

  transition: transform var(--dw-duration-fast) var(--dw-ease-standard);
}

.dw-place-search__filter:hover,
.dw-place-search__filter.is-active {
  color: var(--dw-color-ink);
}

.dw-place-search__filter:hover::after,
.dw-place-search__filter.is-active::after {
  transform: scaleX(1);
}

.dw-place-search__filter:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 4px;
}
/*
 * --------------------------------------------------------------------------
 * Search destination filter
 * --------------------------------------------------------------------------
 */

.dw-place-search__destination-filter {
  display: grid;

  grid-template-columns: auto minmax(12rem, 20rem);

  align-items: center;

  gap: 1rem;

  margin: calc(var(--dw-space-lg) * -0.35) 0 var(--dw-space-xl);
}

.dw-place-search__destination-label {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.68rem;
  font-weight: 600;

  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.dw-place-search__destination-select {
  width: 100%;

  border: 0;
  border-bottom: 1px solid var(--dw-color-border);

  border-radius: 0;

  padding: 0.65rem 2rem 0.65rem 0;

  color: var(--dw-color-ink);
  background: transparent;

  font-family: var(--dw-font-body);
  font-size: 0.95rem;

  cursor: pointer;
}

.dw-place-search__destination-select:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 4px;
}

.dw-place-search__destination-submit {
  margin-left: 1rem;
}

@media (max-width: 520px) {
  .dw-place-search__destination-filter {
    grid-template-columns: 1fr;

    gap: 0.4rem;
  }
}
/*
 * --------------------------------------------------------------------------
 * Active search filters
 * --------------------------------------------------------------------------
 */

.dw-place-search__active-filters {
  display: flex;
  flex-wrap: wrap;

  align-items: center;

  gap: 0.75rem;

  margin: calc(var(--dw-space-lg) * -0.25) 0 var(--dw-space-lg);
}

.dw-place-search__active-label {
  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.66rem;
  font-weight: 600;

  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.dw-place-search__chips {
  display: flex;
  flex-wrap: wrap;

  gap: 0.5rem;
}

.dw-place-search__chip {
  display: inline-flex;

  align-items: center;

  gap: 0.55rem;

  border: 1px solid var(--dw-color-border);

  padding: 0.45rem 0.7rem;

  color: var(--dw-color-ink);
  background: transparent;

  font-family: var(--dw-font-ui);
  font-size: 0.72rem;

  text-decoration: none;
}

.dw-place-search__chip:hover {
  border-color: var(--dw-theme-accent);
}

.dw-place-search__chip-remove {
  color: var(--dw-color-muted);

  font-size: 1rem;
  line-height: 1;
}

.dw-place-search__chip:focus-visible,
.dw-place-search__clear:focus-visible {
  outline: 2px solid var(--dw-theme-accent);

  outline-offset: 4px;
}

.dw-place-search__clear {
  margin-left: auto;

  color: var(--dw-color-muted);

  font-family: var(--dw-font-ui);
  font-size: 0.68rem;
  font-weight: 600;

  letter-spacing: 0.1em;
  text-transform: uppercase;

  text-decoration: none;
}

.dw-place-search__clear:hover {
  color: var(--dw-color-ink);
}

@media (max-width: 520px) {
  .dw-place-search__active-filters {
    align-items: flex-start;
  }

  .dw-place-search__active-label {
    width: 100%;
  }

  .dw-place-search__clear {
    margin-left: 0;
  }
}
/*
 * --------------------------------------------------------------------------
 * Mobile search experience
 * --------------------------------------------------------------------------
 */

@media (max-width: 700px) {
  .dw-place-search {
    padding-block: clamp(2.5rem, 9vw, 4rem);
  }

  /*
   * Search form
   */

  .dw-place-search__form {
    align-items: flex-end;

    gap: 0.75rem;

    margin-bottom: clamp(2rem, 8vw, 3rem);
  }

  .dw-place-search__input {
    padding: 0.85rem 0;

    font-size: clamp(1.55rem, 7vw, 2rem);
  }

  .dw-place-search__submit {
    min-height: 44px;

    padding-left: 1rem;

    font-size: 0.68rem;

    white-space: nowrap;
  }

  /*
   * Place Type navigation
   *
   * Keep the editorial horizontal
   * rhythm instead of wrapping into
   * several uneven rows.
   */

  .dw-place-search__filters {
    display: flex;
    flex-wrap: nowrap;

    gap: 1.35rem;

    overflow-x: auto;
    overflow-y: hidden;

    margin-right: calc(var(--dw-space-md) * -1);

    margin-left: calc(var(--dw-space-md) * -1);

    padding-right: var(--dw-space-md);

    padding-left: var(--dw-space-md);

    padding-bottom: 0.5rem;

    scrollbar-width: none;

    -webkit-overflow-scrolling: touch;
  }

  .dw-place-search__filters::-webkit-scrollbar {
    display: none;
  }

  .dw-place-search__filter {
    flex: 0 0 auto;

    min-height: 40px;

    display: inline-flex;
    align-items: center;

    padding-block: 0.55rem;

    white-space: nowrap;
  }

  /*
   * Destination
   */

  .dw-place-search__destination-filter {
    grid-template-columns: 1fr;

    gap: 0.55rem;

    margin-bottom: clamp(2rem, 8vw, 3rem);
  }

  .dw-place-search__destination-select {
    min-height: 46px;

    padding-top: 0.75rem;
    padding-bottom: 0.75rem;

    font-size: 1rem;
  }

  /*
   * Active filter chips
   */

  .dw-place-search__active-filters {
    display: grid;

    grid-template-columns: 1fr;

    gap: 0.65rem;

    margin-bottom: 2rem;
  }

  .dw-place-search__chips {
    gap: 0.55rem;
  }

  .dw-place-search__chip {
    min-height: 40px;

    padding: 0.5rem 0.75rem;
  }

  .dw-place-search__chip-remove {
    font-size: 1.1rem;
  }

  .dw-place-search__clear {
    width: fit-content;

    margin: 0;

    min-height: 40px;

    display: inline-flex;
    align-items: center;
  }

  /*
   * Suggestions
   */

  .dw-place-search__suggestions {
    right: 0;
    left: 0;

    max-height: min(22rem, 55vh);

    padding: 0.35rem;
  }

  .dw-place-search__suggestion {
    min-height: 54px;

    padding: 0.65rem 0.55rem;
  }

  .dw-place-search__suggestion.has-image {
    grid-template-columns: 3.75rem minmax(0, 1fr);
  }

  .dw-place-search__suggestion-image {
    width: 3.75rem;
    height: 3rem;
  }

  .dw-place-search__suggestion-title {
    font-size: 0.98rem;
  }

  .dw-place-search__suggestion-meta {
    font-size: 0.66rem;
  }

  /*
   * Results
   */

  .dw-place-search__summary {
    margin-bottom: 1.75rem;
  }

  .dw-place-search__grid {
    --dw-grid-columns: 1;

    --dw-grid-gap: clamp(2.5rem, 10vw, 4rem);
  }

  .dw-place-search__media {
    margin-bottom: 0.9rem;
  }

  .dw-place-search__image {
    aspect-ratio: 4 / 3;
  }

  .dw-place-search__title {
    font-size: clamp(1.35rem, 5.5vw, 1.65rem);
  }
}

@media (max-width: 420px) {
  .dw-place-search__form {
    gap: 0.5rem;
  }

  .dw-place-search__submit {
    padding-left: 0.65rem;

    font-size: 0.64rem;

    letter-spacing: 0.09em;
  }

  .dw-place-search__suggestions {
    max-height: 50vh;
  }

  .dw-place-search__suggestion.has-image {
    grid-template-columns: 3.25rem minmax(0, 1fr);
  }

  .dw-place-search__suggestion-image {
    width: 3.25rem;
    height: 2.65rem;
  }
}
