@font-face {
      font-family: "Bercaret";
      src: url("../fonts/Bercarets.ttf") format("truetype");
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }

@font-face {
      font-family: "Satoshi";
      src: url("../fonts/Satoshi-Variable.ttf") format("truetype");
      font-weight: 300 900;
      font-style: normal;
      font-display: swap;
    }

/* Emerson Interactive Plan — styles isolés du thème WordPress (Divi, etc.) */
.eip-map-wrap {
  width: 100%;
  height: var(--eip-height, 80vh);
  position: relative;
  isolation: isolate;
  contain: layout;
  color-scheme: dark;
  font-family: "Satoshi", "Segoe UI", Inter, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--text, #ece8e0);
  -webkit-font-smoothing: antialiased;
  --bg: #1a1a1c;
        --bg-elevated: #26262a;
        --text: #ece8e0;
        --muted: #a8a39a;
        --accent: #d9cdb8;
        --accent-hover: #f0e6d4;
        --accent-soft: rgba(217, 205, 184, 0.12);
        --panel: rgba(38, 38, 42, 0.96);
        --panel-border: rgba(255, 255, 255, 0.1);
        --shadow-soft: rgba(0, 0, 0, 0.45);
        --zone-stroke: rgba(240, 230, 212, 0.78);
        --zone-stroke-soft: rgba(240, 230, 212, 0.48);
        --zone-chambres: #008d36;
        --zone-chambres-hover: #063;
        --zone-chambres-active: #30ab55;
        --zone-culture: #9b529b;
        --zone-culture-hover: #9a62a5;
        --zone-culture-active: #9b529b;
        --zone-spa-eau: #7ecef3;
        --zone-spa-eau-hover: #81aadb;
        --zone-spa-eau-active: #7ecef3;
        --zone-service: #c2c1c1;
        --zone-service-hover: #b3b2b2;
        --zone-service-active: #888989;
        --zone-circulation: #ffdd18;
        --zone-circulation-hover: #ffd524;
        --zone-circulation-active: #ffe609;
        --floor-plan-opacity: 0.88;
}

.eip-map-wrap,
.eip-map-wrap *,
.eip-map-wrap *::before,
.eip-map-wrap *::after {
  box-sizing: border-box;
}

.eip-map-wrap :where(button, input, select, textarea) {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
  max-width: none;
  min-height: 0;
  background-image: none;
  appearance: none;
  -webkit-appearance: none;
}

.eip-map-wrap :where(img) {
  max-width: none;
  border: 0;
  box-shadow: none;
  vertical-align: middle;
}

.eip-map-wrap :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li) {
  font-family: inherit;
  color: inherit;
  padding: 0;
  margin: 0;
  list-style: none;
}

.eip-map-wrap :where(header, aside, section, nav) {
  display: block;
  background: transparent;
  border: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
}

.eip-map-wrap :where(svg) {
  overflow: visible;
  max-width: none;
}

.eip-map-wrap{
      width: 100%;
      height: var(--eip-height, 80vh);
      position: relative;
      cursor: grab;
      user-select: none;
      touch-action: none;
      overflow: hidden;
      --eip-bg-color: #1a1a1c;
      --eip-bg-base: linear-gradient(180deg, #242428 0%, #1e1e22 55%, #1a1a1c 100%);
      background-color: var(--eip-bg-color);
      background-image: var(--eip-bg-base);
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    }

    .eip-map-wrap.dragging{
      cursor: grabbing;
    }

    .eip-map-wrap::before{
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 15% 10%, rgba(255, 255, 255, 0.04), transparent 48%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(0, 0, 0, 0.12));
      pointer-events: none;
      z-index: 1;
    }

    /* Image de fond derrière le plan (pas au-dessus de l’UI / SVG). */
    .eip-map-wrap.has-bg-image{
      isolation: isolate;
    }

    .eip-map-wrap.has-bg-image::after{
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      pointer-events: none;
      background-image: var(--eip-bg-image);
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      opacity: var(--eip-bg-image-opacity, 1);
    }

    .eip-map-wrap svg{
      width: 100%;
      height: 100%;
      display: block;
    }

    .eip-map-wrap [data-eip="viewport-layer"]{
      transition: opacity 220ms ease;
    }

    .eip-map-wrap .plan-grid-major{
      fill: url(#gridMajor);
      opacity: 0.42;
    }

    .eip-map-wrap .plan-grid-minor{
      fill: url(#gridMinor);
      opacity: 0.36;
    }

    .eip-map-wrap .top-bar{
      position: absolute;
      top: 18px;
      left: 18px;
      right: 18px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      padding: 0;
      pointer-events: auto;
      z-index: 4;
    }

    .eip-map-wrap .brand-title{
      margin: 0;
      font-size: 5rem;
      text-transform: uppercase;
      font-weight: 400;
      font-family: "Bercaret", Georgia, serif;
      color: var(--text);
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    }

    .eip-map-wrap .brand-subtitle{
      margin: 4px 0 0;
      font-size: 1rem;
      color: var(--muted);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      text-shadow: none;
    }

    .eip-map-wrap .floor-select-wrap{
      margin-top: 0.55rem;
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      color: var(--text);
      text-shadow: none;
      position: relative;
      padding: 0.45rem 0.65rem;
      border-radius: 0.55rem;
      background: var(--panel);
      border: 1px solid var(--panel-border);
      box-shadow: 0 6px 22px var(--shadow-soft);
    }

    .eip-map-wrap .floor-select-label{
      font-size: 1rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--accent);
      white-space: nowrap;
    }

    .eip-map-wrap .floor-select{
      border: none;
      background: transparent;
      color: var(--text);
      font-family: "Satoshi", "Segoe UI", Inter, Arial, sans-serif;
      font-size: 1.12rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      min-width: 8.5rem;
      padding: 0.25rem 1.35rem 0.25rem 0.25rem;
      border-radius: 0;
      outline: none;
      cursor: pointer;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      text-shadow: none;
    }

    .eip-map-wrap .floor-select-wrap::after{
      content: "▾";
      position: absolute;
      right: 0.72rem;
      top: 50%;
      transform: translateY(-46%);
      font-size: 1rem;
      color: var(--accent);
      pointer-events: none;
    }

    .eip-map-wrap .floor-select option{
      background: #26262a;
      color: var(--text);
    }

    .eip-map-wrap .hint{
      margin: 0;
      position: absolute;
      left: 50%;
      bottom: 0.9rem;
      transform: translateX(-50%);
      font-size: 1rem;
      color: var(--muted);
      letter-spacing: 0.08em;
      text-transform: uppercase;
      text-align: center;
      text-shadow: none;
      z-index: 5;
    }

    .eip-map-wrap .zone-hover-tag{
      position: absolute;
      left: 0;
      top: 0;
      z-index: 6;
      margin: 0;
      padding: 0.4rem 0.75rem;
      max-width: 22rem;
      font-family: "Satoshi", "Segoe UI", Inter, Arial, sans-serif;
      font-size: 1.2rem;
      font-weight: 600;
      line-height: 1.25;
      letter-spacing: 0.03em;
      color: var(--text);
      pointer-events: none;
      background: var(--panel);
      border: 1px solid var(--panel-border);
      border-radius: 0.4rem;
      box-shadow: 0 4px 14px var(--shadow-soft);
      opacity: 0;
      visibility: hidden;
      transition: opacity 100ms ease, visibility 100ms ease;
    }

    .eip-map-wrap .zone-hover-tag.is-visible{
      opacity: 1;
      visibility: visible;
    }

    .eip-map-wrap .zone-hover-tag[class*="tag-type-"]{
      border-width: 2px;
    }

    .eip-map-wrap .zone-hover-tag.tag-type-chambres{
      color: #d4f5e4;
      background: rgba(0, 77, 38, 0.92);
      border-color: var(--zone-chambres);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
    }

    .eip-map-wrap .zone-hover-tag.tag-type-culture{
      color: #f0d8f4;
      background: rgba(72, 40, 88, 0.92);
      border-color: var(--zone-culture);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
    }

    .eip-map-wrap .zone-hover-tag.tag-type-spaEau{
      color: #e4f6fc;
      background: rgba(28, 88, 118, 0.92);
      border-color: var(--zone-spa-eau);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
    }

    .eip-map-wrap .zone-hover-tag.tag-type-service{
      color: #f2f2f2;
      background: rgba(72, 72, 72, 0.94);
      border-color: var(--zone-service);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
    }

    .eip-map-wrap .zone-hover-tag.tag-type-circulation{
      color: #3a3200;
      background: rgba(255, 221, 24, 0.92);
      border-color: var(--zone-circulation);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
    }

    .eip-map-wrap .mobile-map-enter, .eip-map-wrap .mobile-map-exit{
      display: none;
      position: absolute;
      z-index: 5;
    }

    .eip-map-wrap .mobile-map-enter{
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
    }

    .eip-map-wrap .mobile-map-exit{
      left: 50%;
      bottom: 0.8rem;
      transform: translateX(-50%);
    }

    .eip-map-wrap .mobile-map-btn{
      border: none;
      background: var(--bg-elevated);
      color: var(--text);
      padding: 0.6rem 0.85rem;
      border-radius: 0.45rem;
      font-size: 1rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      cursor: pointer;
      border: 1px solid var(--panel-border);
      box-shadow: 0 4px 14px var(--shadow-soft);
    }

    .eip-map-wrap .mobile-map-btn.primary{
      background: #4a4540;
      color: var(--accent-hover);
      border-color: rgba(255, 255, 255, 0.14);
    }

    .eip-map-wrap .legend-overlay{
      position: absolute;
      top: 20px;
      right: 20px;
      left: auto;
      width: min(21rem, calc(100% - 36px));
      max-height: calc(100vh - 10rem);
      overflow: hidden;
      overflow-y: auto;
      padding: 20px;
      background: linear-gradient(180deg, rgba(42, 42, 46, 0.98) 0%, rgba(34, 34, 38, 0.94) 100%);
      border: 1px solid var(--panel-border);
      border-radius: 10px;
      box-shadow: 0 10px 32px var(--shadow-soft);
      transition: transform 240ms ease, opacity 200ms ease;
      z-index: 4;
    }

    .eip-map-wrap.legend-collapsed .legend-overlay{
      transform: translateX(112%);
      opacity: 0;
      pointer-events: none;
    }

    .eip-map-wrap .stages-overlay{
      position: absolute;
      top: 11.5rem;
      left: 20px;
      width: min(9.5rem, calc(100% - 36px));
      max-height: calc(100vh - 13rem);
      overflow-x: hidden;
      overflow-y: auto;
      display: grid;
      gap: 0.4rem;
      z-index: 4;
    }

    .eip-map-wrap .stages-title{
      margin: 0 0 0.2rem;
      font-size: 1rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--accent);
      text-shadow: none;
    }

    .eip-map-wrap .stage-btn{
      border: none;
      padding: 0.55rem;
      border-radius: 0.4rem;
      background: var(--panel);
      border: 1px solid var(--panel-border);
      box-shadow: 0 4px 16px var(--shadow-soft);
      cursor: pointer;
      opacity: 0.5;
      transition: opacity 180ms ease;
      overflow: hidden;
      position: relative;
    }

    .eip-map-wrap .stage-btn img{
      display: block;
      width: 100%;
      height: 3.25rem;
      object-fit: contain;
    }

    .eip-map-wrap .stage-btn:hover{
      opacity: 0.8;
    }

    .eip-map-wrap .stage-btn.active{
      opacity: 1;
    }

    .eip-map-wrap .stage-label{
      position: absolute;
      left: 0.3rem;
      bottom: 0.22rem;
      background: rgba(38, 38, 42, 0.92);
      color: var(--text);
      font-size: 1rem;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      padding: 0.18rem 0.36rem;
      border-radius: 0.25rem;
      border: 1px solid var(--panel-border);
      pointer-events: none;
    }

    .eip-map-wrap .sidebar-backdrop{
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.55);
      opacity: 0;
      pointer-events: none;
      transition: opacity 220ms ease;
      z-index: 40;
    }

    .eip-map-wrap.sidebar-open .sidebar-backdrop{
      opacity: 1;
      pointer-events: auto;
    }

    .eip-map-wrap .legend-head{
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
      gap: 5px;
    }

    .eip-map-wrap .legend-title{
      margin: 0;
      font-size: 1.15rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--accent);
      font-family: "Satoshi", sans-serif;
      text-shadow: none;
    }

    .eip-map-wrap .legend-list{
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 5px;
    }

    .eip-map-wrap .legend-list li{
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
    }

    .eip-map-wrap .legend-list li::before{
      content: "";
      width: 0.55rem;
      height: 0.55rem;
      flex-shrink: 0;
      margin-top: 0.52rem;
      border-radius: 999px;
      opacity: 0.9;
    }

    .eip-map-wrap .legend-list li.legend-type-chambres::before{
      background: var(--zone-chambres);
    }

    .eip-map-wrap .legend-list li.legend-type-culture::before{
      background: var(--zone-culture);
    }

    .eip-map-wrap .legend-list li.legend-type-spaEau::before{
      background: var(--zone-spa-eau);
    }

    .eip-map-wrap .legend-list li.legend-type-service::before{
      background: var(--zone-service);
    }

    .eip-map-wrap .legend-list li.legend-type-circulation::before{
      background: var(--zone-circulation);
    }

    .eip-map-wrap .legend-type-label{
      flex: 1;
      padding: 6px 2px;
      font-size: 1rem;
      line-height: 1.35;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text);
    }

    .eip-map-wrap .legend-btn{
      flex: 1;
      min-width: 0;
      text-align: left;
      border: none;
      background: none;
      color: var(--text);
      border-radius: 0;
      padding: 6px 2px;
      cursor: pointer;
      display: block;
      transition: transform 150ms ease, color 150ms ease;
      text-shadow: none;
    }

    .eip-map-wrap .legend-btn:hover{
      color: var(--accent-hover);
      transform: translateX(4px);
    }

    .eip-map-wrap .legend-btn.active{
      color: var(--accent-hover);
    }

    .eip-map-wrap .map-tools{
      position: absolute;
      bottom: 1.5rem;
      left: 18px;
      display: grid;
      gap: 8px;
      padding: 0;
      z-index: 4;
    }

    .eip-map-wrap .site-logo{
      position: absolute;
      right: 18px;
      bottom: 1.5rem;
      z-index: 4;
      --eip-logo-max-height: 10.5rem;
      max-width: min(36rem, 72vw);
      max-height: var(--eip-logo-max-height);
      width: auto;
      height: auto;
      object-fit: contain;
      opacity: 0.92;
      pointer-events: none;
      filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
    }

    .eip-map-wrap .site-logo[hidden]{
      display: none;
    }

    .eip-map-wrap .icon-btn{
      width: 38px;
      height: 38px;
      border: none;
      border-radius: 999px;
      background: var(--panel);
      border: 1px solid var(--panel-border);
      color: var(--text);
      font-size: 1.125rem;
      line-height: 1;
      cursor: pointer;
      transition: transform 150ms ease, color 150ms ease;
      box-shadow: 0 4px 14px var(--shadow-soft);
      text-shadow: none;
    }

    .eip-map-wrap .icon-btn:hover, .eip-map-wrap .icon-btn.active{
      color: var(--accent-hover);
      transform: scale(1.08);
    }

    .eip-map-wrap .zone-sidebar{
      position: absolute;
      top: 18px;
      right: 74px;
      width: min(460px, calc(100% - 110px));
      max-height: calc(100% - 36px);
      overflow: auto;
      padding: 18px 22px;
      background: var(--panel);
      border: 1px solid var(--panel-border);
      box-shadow: 0 12px 40px var(--shadow-soft);
      border-radius: 14px;
      transform: translateX(calc(100% + 40px));
      opacity: 0;
      pointer-events: none;
      transition: transform 360ms cubic-bezier(0.2, 0.75, 0.2, 1), opacity 240ms ease;
      z-index: 50;
      display: flex;
      flex-direction: column;
    }

    .eip-map-wrap.sidebar-open .zone-sidebar{
      transform: translateX(0);
      opacity: 1;
      pointer-events: auto;
    }

    @media (min-width: 901px){
      .eip-map-wrap.sidebar-open .zone-sidebar{
        transform: translateX(0);
        opacity: 1;
        pointer-events: auto;
        top: 1.2rem;
        bottom: 1.2rem;
        left: 1.2rem;
        right: 1.2rem;
        width: auto;
        max-height: none;
        height: auto;
        overflow: hidden;
        padding: 1.25rem 1.5rem 1.5rem;
      }

      .eip-map-wrap .sidebar-head{
        position: absolute;
        top: 0.75rem;
        right: 0.75rem;
        z-index: 5;
        margin: 0;
        pointer-events: none;
      }

      .eip-map-wrap .zone-sidebar .close-btn{
        pointer-events: auto;
        background: rgba(18, 18, 20, 0.55);
        border-radius: 999px;
      }

      .eip-map-wrap .details-layout{
        flex: 1 1 auto;
        min-height: 0;
        height: 100%;
        grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 0.85fr);
        gap: 1.5rem;
        align-items: stretch;
      }

      .eip-map-wrap .details-layout--text-only{
        grid-template-columns: 1fr;
      }

      .eip-map-wrap .details-media{
        margin: 0;
        height: 100%;
        min-height: 0;
        align-self: stretch;
      }

      .eip-map-wrap .details-main-image{
        width: 100%;
        height: 100%;
        min-height: 0;
        max-height: none;
        object-fit: contain;
      }

      .eip-map-wrap .details-copy{
        margin-top: 0;
        height: 100%;
        min-height: 0;
        overflow-y: auto;
        padding-right: 0.25rem;
        align-content: start;
      }
    }

    .eip-map-wrap .sidebar-head{
      display: flex;
      justify-content: flex-end;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 10px;
    }

    .eip-map-wrap .close-btn{
      position: absolute;
      right: 0;
      top: 0; 
      width: 2.8rem;
      height: 2.8rem;
      border: none;
      border-radius: 999px;
      background: none;
      color: var(--text);
      line-height: 1;
      font-size: 1.8rem;
      cursor: pointer;
      flex: 0 0 auto;
      transition: color 150ms ease;
      text-shadow: none;
    }

    .eip-map-wrap .close-btn:hover{
      color: var(--accent-hover);
    }

    .eip-map-wrap .zone-sidebar .close-btn{
      color: var(--text);
      text-shadow: none;
    }

    .eip-map-wrap .zone-sidebar .close-btn:hover{
      color: var(--accent-hover);
    }

    .eip-map-wrap .details-zone{
      display: none;
    }

    .eip-map-wrap .details-title{
      margin: 0 0 8px;
      font-size: 2.25rem;
      font-weight: 400;
      line-height: 1.2;
      font-family: "Bercaret", Georgia, "Times New Roman", serif;
      text-shadow: none;
    }

    .eip-map-wrap .zone-sidebar .details-title{
      color: var(--text);
      text-shadow: none;
    }

    .eip-map-wrap .details-text{
      margin: 0;
      color: var(--muted);
      line-height: 1.6;
      font-size: 1.2rem;
      text-shadow: none;
    }

    .eip-map-wrap .details-text p{
      margin: 0 0 0.85em;
    }

    .eip-map-wrap .details-text p:last-child{
      margin-bottom: 0;
    }

    .eip-map-wrap .details-text strong, .eip-map-wrap .details-text b{
      font-weight: 700;
      color: var(--text);
    }

    .eip-map-wrap .details-text em, .eip-map-wrap .details-text i{
      font-style: italic;
    }

    .eip-map-wrap .details-text ul, .eip-map-wrap .details-text ol{
      margin: 0.5em 0;
      padding-left: 1.25em;
    }

    .eip-map-wrap .details-layout--text-only{
      grid-template-columns: 1fr;
      min-height: 0;
    }

    .eip-map-wrap .details-layout--text-only .details-media{
      display: none;
    }

    .eip-map-wrap .zone-sidebar .details-text{
      color: var(--muted);
      text-shadow: none;
    }

    .eip-map-wrap .details-layout{
      display: grid;
      grid-template-columns: minmax(0, 3fr) minmax(0, 1fr);
      gap: 1.25rem;
      align-items: stretch;
      min-height: 0;
      flex: 1 1 auto;
    }

    .eip-map-wrap .details-media{
      position: relative;
      margin: 0;
      min-height: 0;
      overflow: hidden;
      border-radius: 0.625rem;
      background: #1e1e22;
    }

    .eip-map-wrap .details-main-image{
      width: 100%;
      height: 100%;
      min-height: min(56vh, 34rem);
      max-height: none;
      object-fit: contain;
      border-radius: 0.625rem;
      display: block;
      background: #1e1e22;
    }

    .eip-map-wrap .details-nav{
      position: absolute;
      top: 50%;
      z-index: 2;
      transform: translateY(-50%);
      width: 2rem;
      height: 2rem;
      padding: 0;
      border: 1px solid rgba(255, 255, 255, 0.18);
      border-radius: 999px;
      background: rgba(18, 18, 20, 0.72);
      color: #f4f4f5;
      font-size: 1.35rem;
      line-height: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      opacity: 0.88;
      transition: opacity 140ms ease, background 140ms ease, border-color 140ms ease;
    }

    .eip-map-wrap .details-nav:hover{
      opacity: 1;
      background: rgba(28, 28, 32, 0.9);
      border-color: rgba(255, 255, 255, 0.28);
    }

    .eip-map-wrap .details-nav:focus-visible{
      outline: 2px solid rgba(255, 255, 255, 0.55);
      outline-offset: 2px;
    }

    .eip-map-wrap .details-nav[hidden]{
      display: none;
    }

    .eip-map-wrap .details-nav--prev{
      left: 0.55rem;
    }

    .eip-map-wrap .details-nav--next{
      right: 0.55rem;
    }

    .eip-map-wrap .details-thumbs{
      margin-top: 0.55rem;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      padding-bottom: 0.125rem;
      align-items: flex-start;
      max-width: 100%;
    }

    .eip-map-wrap .thumb-btn{
      padding: 0;
      border: none;
      background: none;
      cursor: pointer;
      opacity: 0.85;
      transition: opacity 140ms ease, transform 140ms ease;
    }

    .eip-map-wrap .thumb-btn:hover{
      opacity: 1;
      transform: translateY(-1px);
    }

    .eip-map-wrap .thumb-btn.active{
      opacity: 1;
    }

    .eip-map-wrap .thumb-btn img{
      width: 6.2rem;
      height: 6rem;
      object-fit: cover;
      border-radius: 0.375rem;
      display: block;
    }

    .eip-map-wrap .details-copy{
      margin-top: 0.2rem;
      display: grid;
      align-content: start;
      gap: 0.75rem;
      min-width: 0;
    }

    .eip-map-wrap .zone-sidebar.is-service-zone .details-media, .eip-map-wrap .zone-sidebar.is-service-zone .details-thumbs{
      display: none;
    }

    .eip-map-wrap #floorImageA, .eip-map-wrap #floorImageB{
      pointer-events: none;
    }

    .eip-map-wrap [data-eip="floor-images-layer"]{
      pointer-events: none;
    }

    .eip-map-wrap [data-eip="zones-layer"]{
      pointer-events: none;
    }

    .eip-map-wrap .zone{
      stroke: transparent;
      stroke-width: 0;
    }

    .eip-map-wrap [data-eip="zones-layer"] .zone-base{
      fill: transparent;
      pointer-events: none;
    }

    .eip-map-wrap [data-eip="zones-hit-layer"] .zone{
      cursor: pointer;
      fill: transparent;
      pointer-events: auto;
    }

    .eip-map-wrap [data-eip="zones-hit-layer"] .zone-hit-inert{
      pointer-events: none;
      cursor: inherit;
    }

    @media (max-width: 900px){
      .eip-map-wrap .stages-overlay{
        display: none;
      }

      .eip-map-wrap{
        touch-action: pan-y;
      }

      .eip-map-wrap.map-interaction-enabled{
        touch-action: none;
      }

      .eip-map-wrap.map-interaction-disabled .eip-map-wrap [data-eip="viewport-layer"]{
        opacity: 0.6;
      }

      .eip-map-wrap .top-bar{
        top: 0.75rem;
        left: 0.75rem;
        right: 4rem;
      }

      .eip-map-wrap .brand-title{
        font-size: clamp(1.5rem, 7vw, 2.2rem);
      }

      .eip-map-wrap .floor-select-label{
        font-size: 1rem;
      }

      .eip-map-wrap .floor-select{
        font-size: 1.12rem;
        min-width: 7.8rem;
      }

      .eip-map-wrap .legend-overlay{
        top: 6.25rem;
        right: 0.75rem;
        left: auto;
        width: min(19rem, calc(100% - 1.5rem));
        max-height: calc(100vh - 7.5rem);
        padding: 0.875rem 0.75rem;
      }

      .eip-map-wrap .map-tools{
        top: 0.75rem;
        right: 0.75rem;
        left: auto;
        bottom: auto;
        display: flex;
        flex-direction: column;
        gap: 0.375rem;
      }

      .eip-map-wrap .site-logo{
        right: 0.75rem;
        bottom: 0.75rem;
        max-width: min(10rem, 38vw);
        max-height: calc(var(--eip-logo-max-height) * 0.86);
      }

      .eip-map-wrap .icon-btn{
        width: 2.5rem;
        height: 2.5rem;
      }

      .eip-map-wrap .zone-sidebar{
        left: 0;
        right: 0;
        width: auto;
        top: auto;
        bottom: 0;
        max-height: min(92dvh, 100%);
        padding:
          calc(0.75rem + env(safe-area-inset-top, 0px))
          1rem
          calc(1.25rem + env(safe-area-inset-bottom, 0px));
        border-radius: 1rem 1rem 0 0;
        border-bottom: none;
        transform: translateY(calc(100% + 1.5rem));
        overflow: hidden;
        box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.35);
      }

      .eip-map-wrap.sidebar-open .zone-sidebar{
        transform: translateY(0);
      }

      .eip-map-wrap .sidebar-head{
        position: sticky;
        top: 0;
        z-index: 3;
        margin: -0.25rem 0 0.5rem;
        padding-bottom: 0.25rem;
        background: linear-gradient(var(--panel) 70%, transparent);
      }

      .eip-map-wrap .zone-sidebar .close-btn{
        position: relative;
        top: auto;
        right: auto;
        margin-left: auto;
        width: 2.5rem;
        height: 2.5rem;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.08);
        font-size: 1.6rem;
      }

      .eip-map-wrap .details-title{
        font-size: clamp(1.5rem, 5.5vw, 1.95rem);
        margin-bottom: 0.5rem;
      }

      .eip-map-wrap .details-text{
        font-size: 1.08rem;
        line-height: 1.55;
      }

      .eip-map-wrap .details-layout{
        display: flex;
        flex-direction: column;
        gap: 0.85rem;
        min-height: 0;
        flex: 1 1 auto;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 0.25rem;
      }

      .eip-map-wrap .details-media{
        flex: 0 0 auto;
        order: -1;
        width: 100%;
        margin: 0;
        aspect-ratio: 16 / 10;
        min-height: min(38dvh, 16rem);
        max-height: min(42dvh, 18rem);
      }

      .eip-map-wrap .details-main-image{
        width: 100%;
        height: 100%;
        min-height: min(38dvh, 16rem);
        max-height: min(42dvh, 18rem);
        object-fit: contain;
        border-radius: 0.625rem;
      }

      .eip-map-wrap .details-copy{
        margin-top: 0;
        gap: 0.65rem;
      }

      .eip-map-wrap .details-thumbs{
        margin-top: 0.15rem;
        gap: 0.4rem;
      }

      .eip-map-wrap .thumb-btn img{
        width: 4.5rem;
        height: 4.25rem;
      }

      .eip-map-wrap .details-nav{
        width: 2.25rem;
        height: 2.25rem;
        font-size: 1.25rem;
      }

      .eip-map-wrap .hint{
        display: none;
      }

      .eip-map-wrap .mobile-map-enter, .eip-map-wrap .mobile-map-exit{
        display: block;
      }
    }

    @media (max-width: 600px){
      .eip-map-wrap .legend-overlay{
        width: calc(100% - 1.5rem);
      }

      .eip-map-wrap .legend-title{
        font-size: 1rem;
      }

      .eip-map-wrap .legend-btn{
        font-size: 1rem;
      }

      .eip-map-wrap .details-media{
        min-height: min(34dvh, 14rem);
        max-height: min(38dvh, 16rem);
      }

      .eip-map-wrap .details-main-image{
        min-height: min(34dvh, 14rem);
        max-height: min(38dvh, 16rem);
      }
    }