.jmrv-auto-host,.jmrv-manual-anchor{display:block;width:100%;margin-top:14px}

/* Keep the visualizer isolated from theme button/image sizing rules. */
.jmrv-widget,.jmrv-widget *,
.jmrv-modal,.jmrv-modal *{box-sizing:border-box}

.jmrv-trigger{
  width:100%;
  appearance:none;
  border:1px solid #2f3336;
  background:transparent;
  color:#2f3336;
  border-radius:999px;
  padding:13px 22px;
  min-height:48px;
  font:inherit;
  font-size:15px;
  line-height:1.2;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.jmrv-trigger:hover,.jmrv-trigger:focus-visible{
  background:#2f3336;
  color:#fff;
}
.jmrv-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:999999;
  background:rgba(30,27,24,.58);
  overflow-x:hidden;
}
.jmrv-modal.is-open{display:block}
.jmrv-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.jmrv-dialog{
  position:relative;
  width:min(1520px,96vw);
  max-width:100vw;
  max-height:94vh;
  margin:3vh auto;
  background:#f6f2eb;
  box-shadow:0 30px 90px rgba(0,0,0,.22);
  overflow-y:auto;
  overflow-x:hidden;
}
.jmrv-close{
  position:absolute;
  top:18px;
  right:22px;
  width:44px;
  height:44px;
  min-width:0;
  padding:0;
  border:0;
  background:transparent;
  color:#333;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  z-index:5;
}
.jmrv-header{
  padding:26px 34px 16px;
  border-bottom:1px solid rgba(0,0,0,.08);
  min-width:0;
}
.jmrv-header h2{
  margin:0;
  font-size:clamp(32px,4vw,58px);
  letter-spacing:.18em;
  line-height:1;
  font-weight:350;
  text-transform:uppercase;
  color:#202020;
}
.jmrv-header p{
  margin:10px 0 0;
  font-size:14px;
  letter-spacing:.45em;
  text-transform:uppercase;
  color:#63605c;
}
.jmrv-body{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(420px,0.95fr);
  min-height:640px;
  min-width:0;
  max-width:100%;
}
.jmrv-scene-wrap{
  padding:0;
  background:#e9e2d8;
  min-width:0;
  max-width:100%;
}
.jmrv-scene{
  position:relative;
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
  overflow:hidden;
  min-width:0;
  max-width:100%;
}
.jmrv-art{
  position:absolute;
  left:var(--art-left,50%);
  top:var(--art-top,11%);
  transform:translateX(-50%);
  display:block;
  max-width:none !important;
  max-height:none !important;
  box-shadow:0 16px 34px rgba(0,0,0,.20);
  background:#fff;
  transition:width .22s ease,height .22s ease,left .22s ease,top .22s ease;
}
.jmrv-no-image{
  position:absolute;
  left:50%;
  top:22%;
  transform:translateX(-50%);
  width:min(420px,calc(100% - 32px));
  max-width:420px;
  padding:16px 18px;
  border:1px solid #ddd2c6;
  background:rgba(255,255,255,.95);
  font-size:13px;
  color:#514c47;
  text-align:center;
}
.jmrv-prev,.jmrv-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:58px;
  height:58px;
  min-width:0;
  padding:0;
  border-radius:999px;
  border:0;
  background:rgba(255,255,255,.88);
  color:#313131;
  box-shadow:0 10px 25px rgba(0,0,0,.14);
  cursor:pointer;
  font-size:34px;
  line-height:1;
  z-index:3;
}
.jmrv-prev{left:18px}
.jmrv-next{right:18px}
.jmrv-prev:hover,.jmrv-next:hover,.jmrv-prev:focus-visible,.jmrv-next:focus-visible{
  background:#fff;
}
.jmrv-side{
  padding:34px 30px 28px;
  display:flex;
  flex-direction:column;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.jmrv-section{
  margin-bottom:34px;
  min-width:0;
  max-width:100%;
}
.jmrv-label{
  display:block;
  margin-bottom:14px;
  font-size:13px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#2f2f2f;
}
.jmrv-room-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
  min-width:0;
  max-width:100%;
}
.jmrv-room{
  appearance:none;
  display:block;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0;
  border:1px solid #d8cfc2;
  background:#fff;
  padding:0;
  font:inherit;
  color:inherit;
  cursor:pointer;
  text-align:left;
  overflow:hidden;
}
.jmrv-room.is-active{
  border-color:#222;
  box-shadow:0 0 0 1px #222 inset;
}
.jmrv-room img{
  display:block;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto;
  aspect-ratio:16/11;
  object-fit:cover;
}
.jmrv-room span{
  display:block;
  width:100%;
  min-width:0;
  padding:8px 10px 10px;
  font-size:13px;
  line-height:1.25;
  white-space:normal;
  overflow-wrap:anywhere;
  color:#48443f;
}
.jmrv-size-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  width:100%;
  min-width:0;
  max-width:100%;
}
.jmrv-size{
  appearance:none;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  min-height:58px;
  margin:0;
  border:1px solid #d8cfc2;
  background:transparent;
  color:#45403a;
  padding:8px 5px;
  font:inherit;
  font-size:13px;
  cursor:pointer;
}
.jmrv-size.is-active,.jmrv-size:hover,.jmrv-size:focus-visible{
  border-color:#222;
  background:#222;
  color:#fff;
}
.jmrv-detail-block{
  border-top:1px solid #d8cfc2;
  padding-top:18px;
}
.jmrv-detail-title{
  margin:0 0 14px;
  font-size:clamp(26px,2.4vw,34px);
  line-height:1.15;
  font-weight:400;
  color:#222;
}
.jmrv-detail-copy{
  margin:0;
  color:#66615b;
  font-size:15px;
  line-height:1.7;
}
.jmrv-note{
  margin-top:auto;
  color:#8a837b;
  font-size:12px;
  line-height:1.7;
  font-style:italic;
}
body.jmrv-lock{overflow:hidden}

@media (max-width:1100px){
  .jmrv-body{
    grid-template-columns:minmax(0,1fr);
    min-height:0;
  }
  .jmrv-side{padding:24px 22px 26px}
  .jmrv-room-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .jmrv-size-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}

@media (max-width:820px){
  .jmrv-dialog{
    width:100vw;
    max-width:100vw;
    max-height:100dvh;
    min-height:100dvh;
    margin:0;
    border-radius:0;
  }
  .jmrv-header{padding:20px 52px 12px 16px}
  .jmrv-header h2{font-size:34px;letter-spacing:.12em}
  .jmrv-header p{font-size:11px;letter-spacing:.22em}
  .jmrv-close{top:12px;right:10px}
  .jmrv-side{
    width:100%;
    min-width:0;
    max-width:100%;
    padding:18px 16px 22px;
    overflow:hidden;
  }
  .jmrv-section,
  .jmrv-room-grid,
  .jmrv-size-grid{
    width:100%;
    min-width:0;
    max-width:100%;
  }
  .jmrv-room-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px;
  }
  .jmrv-size-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .jmrv-room,
  .jmrv-size{
    min-width:0 !important;
    max-width:100% !important;
    width:100% !important;
  }
  .jmrv-room img{
    min-width:0 !important;
    max-width:100% !important;
    width:100% !important;
  }
  .jmrv-prev,.jmrv-next{width:48px;height:48px;font-size:30px}
}

@media (max-width:520px){
  .jmrv-header h2{font-size:28px;letter-spacing:.09em}
  .jmrv-header p{font-size:10px;letter-spacing:.14em;line-height:1.45}
  .jmrv-side{padding-left:14px;padding-right:14px}
  .jmrv-room-grid{gap:8px}
  .jmrv-size-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
