/* Shared visual primitives. Route geometry lives in assets/css/pages/. */

.mn-editorial-hero-backdrop,
.mn-editorial-hero-backdrop__picture,
.mn-editorial-hero-backdrop__picture img,
.mn-editorial-hero-backdrop__overlay {
  display: block;
  width: 100%;
  height: 100%;
}
.mn-editorial-hero-backdrop {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.mn-editorial-hero-backdrop__picture img { object-fit: cover; }
.mn-editorial-hero-backdrop__overlay { position: absolute; inset: 0; }

/* Elementor owns hero photography; route CSS only establishes the approved
   composition. Keep the editable backdrop behind each route's content. */
body.home .mn-home-hero > .e-con-inner,
body.page .mn-hotels-hero > .e-con-inner,
body.page .mn-rooms-hero > .e-con-inner,
body.page .mn-services-hero > .e-con-inner,
body.page .mn-offers-hero > .e-con-inner,
body.page .mn-contact-hero > .e-con-inner { position: relative; z-index: 0; }

/* Elementor mounts its native Video Background inside the inner container.
   On Home the Hero itself owns the padded visual canvas, so the inner
   container must not become the video's containing block. */
body.home .mn-home-hero > .e-con-inner { position: static; }
body.home .mn-home-hero > .e-con-inner > .elementor-background-video-container {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  pointer-events: none;
}

body.home .mn-home-hero .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-hotels-hero .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-rooms-hero .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-services-hero .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-offers-hero .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-contact-hero .elementor-widget-mn-editorial-hero-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}

/* Only Elementor document elements carry editorial copy and controls. Do not
   promote Elementor's structural media layers (video, slideshow, motion
   effects or shape dividers), otherwise a native Video Background collapses
   to a zero-height foreground layer. */
body.home .mn-home-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop),
body.page .mn-hotels-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop),
body.page .mn-rooms-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop),
body.page .mn-services-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop),
body.page .mn-offers-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop),
body.page .mn-contact-hero > .e-con-inner > .elementor-element:not(.elementor-widget-mn-editorial-hero-backdrop) { position: relative; z-index: 1; }

/* The custom picture is a sample fallback. Elementor's native background
   video is the editor-controlled primary medium whenever it is configured. */
body.home .mn-home-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-hotels-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-rooms-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-services-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-offers-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop,
body.page .mn-contact-hero:has(.elementor-background-video-container) .elementor-widget-mn-editorial-hero-backdrop { display: none; }

.mn-card,
.mn-support-panel,
.mn-search,
.mn-filter,
.mn-inquiry {
  border-color: var(--mn-border);
  border-radius: var(--mn-radius);
}

.mn-card {
  overflow: hidden;
  background: var(--mn-white);
  box-shadow: var(--mn-shadow);
}

.mn-card__image {
  display: block;
  width: 100%;
  object-fit: cover;
}

.mn-card__body { padding: 22px; }

/* Page-local Elementor card mode. This is intentionally isolated from
   query-backed cards so editors can make a marketing card without changing
   hotel, room, offer or amenity records. */
.mn-editorial-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6em;
  min-width: 1.6em;
  height: 1.6em;
  color: var(--mn-gold-dark);
  font-size: 1.1em;
}

.mn-editorial-card__kicker { margin-bottom: 0.35rem; }
.mn-editorial-card__copy { margin: 0 0 1rem; }
.mn-editorial-card .mn-button { margin-top: auto; }

.mn-chip.mn-editorial-card {
  display: flex;
  align-items: center;
  min-height: 74px;
  gap: 0.55rem;
  padding: 0.75rem 0.9rem;
  color: var(--mn-text);
  text-align: left;
}

.mn-chip.mn-editorial-card .mn-editorial-card__image {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  object-fit: cover;
}

.mn-chip.mn-editorial-card .mn-amenity-label { font-weight: 700; }
.mn-chip.mn-editorial-card .mn-editorial-card__copy { display: none; }
.mn-chip.mn-editorial-card .mn-editorial-card__cta {
  margin-left: auto;
  color: var(--mn-gold-dark);
  font-size: 0.75rem;
  white-space: nowrap;
}

.mn-chip,
.mn-filter__option {
  border-color: var(--mn-border);
  border-radius: 999px;
}

.mn-search input,
.mn-search select,
.mn-inquiry input,
.mn-inquiry select,
.mn-inquiry textarea {
  min-height: 44px;
}

.mn-trust-strip,
.mn-support-panel {
  background: var(--mn-ivory);
}

.mn-support-panel {
  color: var(--mn-navy);
}

.mn-empty-state {
  border: 1px solid var(--mn-border);
  border-radius: var(--mn-radius-sm);
  background: var(--mn-ivory);
  color: var(--mn-muted);
}
