/* MANSION Luxury Popup v1.4.1 – CSS containment chi tiết */
:root{
  --mp-gold:#e6c56a;
  --mp-bg:#0a0a0a;
  --mp-text:#f5f0e6;
  --mp-muted:#c8c0b0;
  --mp-radius:6px;
  --mp-ease:cubic-bezier(.22,1,.36,1);
  --mp-font:Roboto,system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* Root overlay: full viewport, isolate stacking + skip render khi ẩn */
#mansion-popup{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s var(--mp-ease),visibility .3s var(--mp-ease);
  font-family:var(--mp-font);
  -webkit-font-smoothing:antialiased;
  box-sizing:border-box;
  /* size: chiếm đúng viewport → browser biết kích thước không cần đo con */
  contain:strict;
  content-visibility:hidden;
  contain-intrinsic-size:100vw 100vh;
  isolation:isolate;
}
#mansion-popup *,
#mansion-popup *::before,
#mansion-popup *::after{box-sizing:border-box}
#mansion-popup.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  content-visibility:visible;
  /* Khi mở: vẫn strict (inset:0 cố định) */
  contain:strict;
}

/* Backdrop: absolute full parent → strict an toàn */
.mansion-popup__backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,5,5,var(--mp-backdrop,.6));
  cursor:pointer;
  contain:strict;
  /* Tách layer riêng, không ảnh hưởng box */
  isolation:isolate;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .mansion-popup__backdrop{
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
  }
}

/*
 * Box: chiều cao theo nội dung → không dùng size/strict
 * layout + paint + style: isolate reflow & paint trong box
 */
.mansion-popup__box{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  width:min(920px,100%);
  max-width:100%;
  max-height:min(90vh,calc(100dvh - 24px));
  max-height:min(90vh,calc(100vh - 24px));
  overflow:hidden;
  background:var(--mp-bg);
  border:1px solid rgba(230,197,106,.55);
  border-radius:var(--mp-radius);
  box-shadow:0 28px 64px rgba(0,0,0,.55),0 0 0 1px rgba(230,197,106,.1);
  transform:translateY(14px) scale(.98);
  opacity:0;
  transition:transform .36s var(--mp-ease),opacity .36s var(--mp-ease);
  contain:layout paint style;
  isolation:isolate;
  backface-visibility:hidden;
}
#mansion-popup.is-open .mansion-popup__box{
  transform:none;
  opacity:1;
}
.mansion-popup__box::before{
  content:"";
  position:absolute;
  inset:3px;
  border:1px solid rgba(230,197,106,.16);
  border-radius:calc(var(--mp-radius) - 2px);
  pointer-events:none;
  z-index:3;
  /* Pseudo không ảnh hưởng layout ngoài */
  contain:strict;
}

/* Image wrap: vùng flex co giãn – layout paint đủ */
.mansion-popup__image-wrap{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#050505;
  overflow:hidden;
  contain:layout paint;
}
.mansion-popup__image-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  line-height:0;
  text-decoration:none;
  contain:layout style;
}
.mansion-popup__image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:center;
  background:#050505;
  /* Ảnh là replaced element – paint isolation */
  contain:paint;
  content-visibility:auto;
}

/* Close: kích thước cố định → strict */
.mansion-popup__close{
  position:absolute;
  top:10px;
  right:10px;
  width:36px;
  height:36px;
  border:1px solid rgba(230,197,106,.4);
  background:rgba(10,10,10,.8);
  color:var(--mp-gold);
  font-family:var(--mp-font);
  font-size:22px;
  font-weight:300;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:5;
  border-radius:50%;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
  padding:0;
  contain:strict;
}
.mansion-popup__close:hover,
.mansion-popup__close:focus-visible{
  background:var(--mp-gold);
  color:#0a0a0a;
  border-color:var(--mp-gold);
  outline:none;
  transform:scale(1.05);
}

/* Content text: không đổi size ngoài → layout style */
.mansion-popup__content{
  position:relative;
  z-index:2;
  flex:0 0 auto;
  text-align:center;
  padding:18px 24px 24px;
  color:var(--mp-text);
  background:#0a0a0a;
  font-family:var(--mp-font);
  contain:layout style;
}
.mansion-popup__content h2{
  margin:0 0 8px;
  color:var(--mp-gold);
  font-family:var(--mp-font);
  font-size:clamp(1.05rem,2.2vw,1.45rem);
  line-height:1.3;
  font-weight:500;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.mansion-popup__content p{
  margin:0 auto 16px;
  max-width:620px;
  color:var(--mp-muted);
  font-size:clamp(.85rem,1.5vw,.95rem);
  font-weight:400;
  line-height:1.6;
}
.mansion-popup__cta{
  display:inline-block;
  padding:11px 26px;
  border:1px solid var(--mp-gold);
  color:var(--mp-gold);
  text-decoration:none;
  font-family:var(--mp-font);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  transition:background .2s,color .2s,box-shadow .2s;
  contain:layout style;
}
.mansion-popup__cta:hover,
.mansion-popup__cta:focus-visible{
  background:var(--mp-gold);
  color:#0a0a0a;
  box-shadow:0 0 20px rgba(230,197,106,.3);
  outline:none;
}

body.mansion-popup-lock{
  overflow:hidden!important;
  touch-action:none;
}

/* Responsive – containment giữ nguyên, chỉ đổi kích thước */
@media (max-width:1024px){
  .mansion-popup__box{
    width:min(860px,100%);
    max-height:min(88vh,calc(100dvh - 20px));
    max-height:min(88vh,calc(100vh - 20px));
  }
}
@media (max-width:767px){
  #mansion-popup{
    padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  }
  .mansion-popup__box{
    width:100%;
    max-height:min(92vh,calc(100dvh - 16px));
    max-height:min(92vh,calc(100vh - 16px));
    border-radius:4px;
  }
  .mansion-popup__box::before{inset:2px}
  .mansion-popup__content{padding:14px 14px 18px}
  .mansion-popup__content h2{letter-spacing:.04em}
  .mansion-popup__content p{margin-bottom:12px}
  .mansion-popup__close{top:6px;right:6px;width:32px;height:32px;font-size:18px}
  .mansion-popup__cta{padding:10px 20px;font-size:.68rem}
}
@media (max-height:560px){
  .mansion-popup__box{
    max-height:calc(100dvh - 12px);
    max-height:calc(100vh - 12px);
  }
  .mansion-popup__content{padding:10px 14px 14px}
  .mansion-popup__content h2{font-size:1rem;margin-bottom:4px}
  .mansion-popup__content p{font-size:.8rem;margin-bottom:8px;line-height:1.45}
  .mansion-popup__cta{padding:8px 16px}
}
@media (max-width:380px){
  .mansion-popup__content h2{font-size:.95rem}
  .mansion-popup__content p{font-size:.8rem}
}
@media (prefers-reduced-motion:reduce){
  #mansion-popup,
  .mansion-popup__box,
  .mansion-popup__close,
  .mansion-popup__cta{transition:none!important}
  #mansion-popup.is-open .mansion-popup__box{transform:none}
}
@media (prefers-reduced-data:reduce){
  .mansion-popup__backdrop{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}
