/* Home composition follows the approved 935px reference. Editorial controls
   remain in Elementor; these rules only define the shared presentation shell. */
body.home .mn-home-hero {
  position: relative;
  min-height: 262px;
  isolation: isolate;
  overflow: hidden;
  background: var(--mn-navy);
  color: var(--mn-white);
}
@media (min-width: 901px) and (max-width: 1180px) {
  body.home .mn-home-hero { min-height: 254px; }
}
body.home .mn-home-hero h1 { max-width: 270px; margin: 8px 0; color: var(--mn-white); font-family: var(--mn-font-serif); font-size: 32px; line-height: 1.12; }
body.home .mn-home-hero h1 span { color: var(--mn-gold); }
body.home .mn-home-hero .elementor-widget-text-editor { max-width: 250px; color: var(--mn-white); font-size: 13px; }
body.home .mn-home-hero .elementor-element-mn-home-kicker { display: none; }
/* A top Shape Divider was unintentionally stored on the production Home
   document. Keep the hero edge clean without preventing a deliberate bottom
   divider from being edited in Elementor. */
body.home .mn-home-hero .elementor-shape-top { display: none; }
body.home .mn-home-hero .elementor-element-mn-home-search { position: absolute; z-index: 2; bottom: -38px; left: 50%; width: 812px; max-width: calc(100% - 32px); transform: translateX(-50%); }
body.home .mn-home-hero .mn-search { box-sizing: border-box; height: 70px; margin-top: 0; padding: 6px; transform: translateY(-34px); }
body.home .mn-home-hero .mn-search label { position: relative; min-width: 0; padding: 4px 12px 4px 34px; }
body.home .mn-home-hero .mn-search label::before { position: absolute; top: 50%; left: 12px; width: 14px; height: 14px; background-position: center; background-repeat: no-repeat; background-size: contain; content: ''; transform: translateY(-50%); }
body.home .mn-home-hero .mn-search label:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23071d35' stroke-width='1.8'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
body.home .mn-home-hero .mn-search label:nth-child(2)::before,
body.home .mn-home-hero .mn-search label:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23071d35' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18'/%3E%3C/svg%3E"); }
body.home .mn-home-hero .mn-search label:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23071d35' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
body.home .mn-home-hero .mn-search label > span:first-child { font-size: 9px; text-transform: none; }
body.home .mn-home-hero .mn-search input,
body.home .mn-home-hero .mn-search select { box-sizing: border-box; min-height: 30px; padding-block: 5px; font-size: 10px; }
body.home .mn-home-hero .mn-search .mn-button { min-height: 56px; background: var(--mn-gold) !important; color: var(--mn-white) !important; font-size: 10px; font-weight: 700; text-transform: uppercase; }
body.home .mn-home-hotels,
body.home .mn-home-rooms,
body.home .mn-home-discover { position: relative; }
body.home .mn-home-section-link { position: absolute; z-index: 1; right: calc((100% - 812px) / 2); width: auto; min-width: 74px; }
body.home .mn-home-section-link .elementor-button { min-height: 26px; padding: 0; border: 0; background: transparent; color: var(--mn-navy); font-size: 9px; font-weight: 500; }
body.home .mn-home-section-link .elementor-button::after { margin-left: 8px; color: var(--mn-gold); content: '\2192'; font-size: 13px; }
body.home .mn-home-section-link .elementor-button:hover,
body.home .mn-home-section-link .elementor-button:focus-visible { background: transparent; color: var(--mn-gold-hover); }
body.home .mn-home-section-link .elementor-button-icon { color: var(--mn-gold); }
body.home .mn-home-hotels-link { top: 52px; }
body.home .mn-home-rooms-link { top: 21px; }
body.home .mn-home-offers-link { top: 116px; }
body.home .mn-home-hotels .e-con-inner { gap: 12px; padding-top: 55px !important; }
body.home .mn-home-rooms .e-con-inner { gap: 3px; padding-top: 25px !important; padding-bottom: 23px !important; }
body.home .mn-home-hotels h2, body.home .mn-home-rooms h2, body.home .mn-home-discover h2, body.home .mn-home-about h2 { color: var(--mn-navy); font-family: var(--mn-font-serif); font-size: 22px; font-weight: 500; line-height: 1.2; }
body.home .elementor-element-mn-home-hotels-heading { position: relative; }
body.home .elementor-element-mn-home-hotels-heading::after { position: absolute; bottom: -5px; left: 0; width: 20px; height: 2px; background: var(--mn-gold); content: ''; }
body.home .mn-home-hotels .mn-hotel-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 12px !important; }
body.home .mn-home-hotels .mn-card__image { height: 100px; }
body.home .mn-home-hotels .mn-card__body { display: flex; box-sizing: border-box; height: 128px; flex-direction: column; padding: 8px 10px; }
body.home .mn-home-hotels .mn-near-me-card,
body.home .mn-home-hotels .mn-hotel-card { height: 228px; min-height: 228px; }
body.home .mn-home-hotels .mn-hotel-card { overflow: hidden; }
body.home .mn-home-hotels .mn-card__destination,
body.home .mn-home-hotels .mn-card__body > p:not(.mn-card__base-price):not(.mn-meta) { display: none; }
body.home .mn-home-hotels .mn-meta { display: none; }
body.home .mn-home-hotels .mn-card h3 { font-size: 13px; }
body.home .mn-home-hotels .mn-card p { margin-block: 4px; font-size: 10px; }
body.home .mn-home-hotels .mn-amenity-badges { max-height: 30px; flex-shrink: 0; margin: 0 0 4px; overflow: hidden; gap: 3px; }
body.home .mn-home-hotels .mn-amenity-badge { padding: 3px 5px; font-size: 8px; }
body.home .mn-home-hotels .mn-card__base-price { margin-top: auto; margin-bottom: 4px; line-height: 1; }
body.home .mn-home-hotels .mn-card__base-price span { display: block; margin-bottom: 2px; font-size: 8px; }
/* Keep the reference card height stable when an informational/demo rate has
   an editorial suffix. Full price text remains in the accessible DOM while
   the compact Home card reserves its final row for the booking CTA. */
body.home .mn-home-hotels .mn-card__base-price strong { display: block; min-width: 0; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
body.home .mn-home-hotels .mn-card__base-price small { display: none; }
body.home .mn-home-hotels .mn-card .mn-button { min-height: 28px; padding-inline: 8px; background: var(--mn-navy); color: var(--mn-white) !important; font-size: 9px; }
body.home .mn-home-amenities .mn-chip-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)) !important; gap: 8px !important; }
body.home .mn-home-amenities .mn-chip { min-height: 68px; justify-content: center; }
body.home .mn-home-amenities .mn-chip small { display: none; }
body.home .mn-home-amenities .mn-amenity-icon { display: block; min-height: 25px; color: var(--mn-navy); font-family: var(--mn-font-serif); font-size: 24px; font-style: normal; line-height: 1; }
body.home .mn-home-amenities .mn-amenity-icon::before { font-family: inherit; }
body.home .mn-home-amenities .fa-utensils::before { content: '\2615'; }
body.home .mn-home-amenities .fa-swimmer::before { content: '\224b'; }
body.home .mn-home-amenities .fa-dumbbell::before { content: '\2194'; }
body.home .mn-home-amenities .fa-spa::before { content: '\2726'; }
body.home .mn-home-amenities .fa-microphone::before { content: '\266a'; }
body.home .mn-home-amenities .fa-tshirt::before { content: '\25a3'; }
body.home .mn-home-amenities .fa-parking::before { content: 'P'; }
body.home .mn-home-amenities .fa-users::before { content: '\2659'; }
body.home .mn-home-offers { margin-top: 0; }
body.home .mn-home-offers .mn-offer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; height: 130px; min-height: 130px; gap: 12px !important; overflow: hidden; }
body.home .mn-home-offers .mn-offer-card { height: 130px; min-height: 130px; }
body.home .mn-home-offers .mn-card__body { position: relative; box-sizing: border-box; height: 75px; padding: 6px 9px; }
body.home .mn-home-offers .mn-card h3 { margin: 0 0 3px; font-size: 13px; }
body.home .mn-home-offers .mn-card__body > p:not(.mn-eyebrow) { display: -webkit-box; max-width: 70%; margin: 0; overflow: hidden; font-size: 8px; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
body.home .mn-home-offers .mn-offer-card__date,
body.home .mn-home-offers .mn-offer-card__hotel { display: none !important; }
body.home .mn-home-offers .mn-button { position: absolute; right: 8px; bottom: 6px; min-height: 18px !important; padding: 0 !important; border: 0; background: transparent; color: var(--mn-gold-hover) !important; font-size: 8px !important; }
body.home .mn-home-map { margin-top: -18px; }
body.home .mn-home-map h2 { margin: 18px 0 0; }
body.home .mn-home-map .mn-map-panel { display: grid; box-sizing: border-box; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); height: 144px; min-height: 144px; padding: 0; overflow: hidden; }
body.home .mn-home-map .mn-map-panel__canvas { height: 144px; min-height: 144px; border-radius: 0; }
body.home .mn-home-map .mn-map-panel__list { box-sizing: border-box; height: 144px; align-content: center; gap: 2px; padding: 6px 9px; overflow: hidden; }
body.home .mn-home-map .mn-map-panel__list li { gap: 5px; font-size: 8px; line-height: 1.05; }
body.home .mn-home-map .mn-map-panel__list p { margin-top: 1px; overflow: hidden; font-size: 7px; line-height: 1.05; white-space: nowrap; text-overflow: ellipsis; }
body.home .mn-home-map .mn-map-panel__number { width: 14px; height: 14px; font-size: 7px; }
body.home .mn-home-map .mn-map-panel__markers { gap: 24px; }
body.home .mn-home-map .mn-map-panel__marker > span { width: 18px; height: 18px; font-size: 8px; }
body.home .mn-home-rooms .mn-card__image { height: 105px; }
body.home .mn-home-rooms .mn-card__body { padding: 8px; }
body.home .mn-home-rooms .mn-eyebrow { display: none; }
body.home .mn-home-rooms .mn-card h3 { overflow: hidden; margin: 4px 0; font-size: 14px; white-space: nowrap; text-overflow: ellipsis; }
body.home .mn-home-rooms .mn-facts { gap: 5px; margin: 4px 0; font-size: 10px; }
body.home .mn-home-rooms .mn-price { margin: 3px 0; font-size: 13px; }
body.home .mn-home-rooms .mn-price--monthly { display: none; }
body.home .mn-home-rooms .mn-actions { gap: 5px; }
body.home .mn-home-rooms .mn-button { min-height: 24px; padding-inline: 8px; font-size: 10px; }
body.home .mn-home-rooms .mn-actions .mn-button { border-color: var(--mn-navy); background: var(--mn-navy); color: var(--mn-white) !important; }
body.home .mn-home-rooms .mn-actions .mn-button:last-child { display: none; }
body.home .mn-home-rooms .mn-actions .mn-button:first-child { width: 100%; }
body.home .mn-home-about { background: var(--mn-ivory); }
body.home .mn-home-about .e-con-inner { display: grid; grid-template-columns: 270px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 28px; align-content: center; min-height: 116px; padding: 0; }
body.home .mn-home-about .elementor-element-mn-home-about-image { grid-row: 1 / span 2; min-height: 116px; }
body.home .mn-home-about .elementor-element-mn-home-about-image img { display: block; width: 100%; height: 116px; object-fit: cover; }
body.home .mn-home-about .elementor-element-mn-home-about-heading { grid-column: 2; align-self: end; }
body.home .mn-home-about .elementor-element-mn-home-about-copy { grid-column: 2; align-self: start; }
body.home .mn-home-about .elementor-element-mn-home-about-icon { display: none; }
body.home .mn-home-about h2 { margin: 0; }
body.home .mn-home-discover > .e-con-inner { gap: 16px; padding-bottom: 9px !important; }
body.home .mn-home-discover .elementor-element-mn-home-amenities-heading { margin-bottom: -18px; }
body.home .mn-home-about { padding-block: 9px; }
@media (min-width: 1025px) {
  body.home .mn-home-hero .elementor-element-mn-home-search {
    width: min(calc(100% - 64px), 1200px);
  }
  body.home .mn-home-section-link {
    right: max(32px, calc((100% - var(--mn-container)) / 2));
  }
}
@media (max-width: 900px) { body.home .mn-home-section-link { display: none; } }
@media (max-width: 767px) { body.home .mn-home-hotels .mn-hotel-grid, body.home .mn-home-amenities .mn-chip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.home .mn-home-hero .elementor-element-mn-home-search { position: static; width: auto; max-width: none; margin-top: 20px; transform: none; } body.home .mn-home-hero .mn-search { height: auto; transform: none; } }
