/* Charlotte Mirror Image V1A Security + Luxury Polish
   Safe overlay stylesheet: keeps DB-driven content, modernizes presentation site-wide. */
:root{
  --cmi-ink:#111018;
  --cmi-deep:#07070b;
  --cmi-plum:#8f167d;
  --cmi-plum-2:#b927a4;
  --cmi-gold:#d7b15d;
  --cmi-gold-2:#fff0b7;
  --cmi-soft:#f7f3f8;
  --cmi-muted:#6f6873;
  --cmi-card:#ffffff;
  --cmi-shadow:0 28px 80px rgba(10,10,18,.22);
  --cmi-shadow-soft:0 16px 42px rgba(10,10,18,.14);
  --cmi-radius:24px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  color:var(--cmi-ink);
  background:radial-gradient(circle at 20% 0%, rgba(185,39,164,.08), transparent 36%), #fff;
  font-smoothing:antialiased;
  -webkit-font-smoothing:antialiased;
}
a{transition:color .22s ease, background .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;}
a:hover{text-decoration:none;}
img{max-width:100%;}

/* Header */
.cmi-header{background:rgba(255,255,255,.98);box-shadow:0 16px 42px rgba(0,0,0,.08);}
.cmi-topbar{
  background:linear-gradient(135deg,#07070b 0%,#261024 48%,#8f167d 100%) !important;
  color:#fff;
  letter-spacing:.01em;
}
.cmi-topbar a,.cmi-topbar span{color:#fff !important;font-weight:700;}
.cmi-topbar .container{display:flex;justify-content:space-between;align-items:center;gap:15px;}
.cmi-topbar ul{float:none;margin-left:auto;}
.cmi-account-links li a{opacity:.94;}
.cmi-account-links li a:hover{opacity:1;color:var(--cmi-gold-2)!important;}
.cmi-brandbar{padding:18px 0 !important;background:linear-gradient(180deg,#fff 0%,#fbf8fc 100%);}
.cmi-logo img{max-height:96px;width:auto;filter:drop-shadow(0 12px 18px rgba(0,0,0,.12));}
.cmi-social a{
  border-radius:999px;
  background:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.11), inset 0 0 0 1px rgba(143,22,125,.08);
  display:inline-flex;align-items:center;justify-content:center;
}
.cmi-social a:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(143,22,125,.18);}
.cmi-social img{width:20px;height:20px;}
.cmi-header-actions .btn,.cmi-mobile-actions .btn,.btn-primary{
  border:0 !important;
  border-radius:999px !important;
  color:#fff !important;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:none;
  background:linear-gradient(135deg,var(--cmi-plum),var(--cmi-plum-2)) !important;
  box-shadow:0 14px 34px rgba(143,22,125,.28), inset 0 1px 0 rgba(255,255,255,.3);
  overflow:hidden;
  position:relative;
}
.cmi-header-actions .btn:before,.cmi-mobile-actions .btn:before,.btn-primary:before{
  content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:translateX(-120%);transition:transform .55s ease;
}
.cmi-header-actions .btn:hover:before,.cmi-mobile-actions .btn:hover:before,.btn-primary:hover:before{transform:translateX(120%);}
.cmi-header-actions .btn:hover,.cmi-mobile-actions .btn:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(143,22,125,.36);}
.cmi-btn-secondary{background:linear-gradient(135deg,#1b1821,#4a2145) !important;}
.cmi-mobile-actions{padding:14px 0 0 !important;text-align:center !important;}
.cmi-mobile-actions li{display:block !important;margin:8px 0 !important;}

/* Navigation */
.cmi-navigation{
  background:linear-gradient(180deg,#1b1821 0%,#07070b 100%) !important;
  box-shadow:0 12px 35px rgba(0,0,0,.18);
}
.cmi-navigation .menu{display:flex;align-items:center;justify-content:center;}
.cmi-navigation .menu>li>a{
  color:#fff !important;
  font-weight:800;
  letter-spacing:.025em;
  text-transform:uppercase;
  font-size:13px;
  padding:18px 14px;
}
.cmi-navigation .menu>li>a:hover,
.cmi-navigation .menu>li.current-menu-item>a{color:var(--cmi-gold-2)!important;background:rgba(255,255,255,.06);}
.cmi-navigation .menu ul{
  background:#111018;
  border:1px solid rgba(255,255,255,.10);
  border-radius:0 0 18px 18px;
  box-shadow:0 28px 60px rgba(0,0,0,.32);
  overflow:hidden;
}
.cmi-navigation .menu ul a{color:#fff!important;padding:13px 18px;}
.cmi-navigation .menu ul a:hover{background:rgba(185,39,164,.26);color:var(--cmi-gold-2)!important;}
.toggleMenu{font-weight:800;letter-spacing:.08em;}

/* Hero/video */
.video-wrapper,.video-frame{
  background:radial-gradient(circle at 50% 0%, rgba(215,177,93,.20), transparent 28%), #050508;
  position:relative;
  overflow:hidden;
}
.video-wrapper:after,.video-frame:after{
  content:'';position:absolute;inset:auto 0 0 0;height:90px;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.32),transparent);
}
.embed-responsive{border-radius:0;box-shadow:inset 0 -50px 100px rgba(0,0,0,.16);}
.video-wrapper video,.video-wrapper iframe,.video-frame video,.video-frame iframe{display:block;}

/* Page banners */
.page-banner{
  min-height:260px;
  display:flex;align-items:center;
  padding:86px 0 !important;
  background-attachment:scroll;
  box-shadow:inset 0 -90px 120px rgba(0,0,0,.28);
}
.page-banner:before{
  background:linear-gradient(135deg,rgba(7,7,11,.82),rgba(74,16,68,.68),rgba(7,7,11,.62)) !important;
}
.page-banner h1{
  font-size:clamp(42px,7vw,76px) !important;
  line-height:1.03;
  font-weight:900;
  text-shadow:0 10px 36px rgba(0,0,0,.55);
  letter-spacing:-.035em;
}
.page-banner h1 .title span,.page-banner h1 span span{display:inline-block;}
.page-banner h1:after{
  content:'';
  width:92px;height:4px;border-radius:999px;
  display:block;margin:22px auto 0;
  background:linear-gradient(90deg,transparent,var(--cmi-gold),transparent);
  box-shadow:0 0 28px rgba(215,177,93,.65);
}

/* Site sections */
.section,.site-content,.page-wrapper{
  position:relative;
}
.section{padding:76px 0;}
.site-content,.page-wrapper{
  padding:70px 0 !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(185,39,164,.08), transparent 30%),
    linear-gradient(180deg,#fff 0%,#fbf8fc 100%) !important;
}
.site-content .container,.page-wrapper .container{position:relative;z-index:1;}
.site-content .container>p,.site-content .container>div:not(.row):not(.gallery-list),.page-wrapper .container{
  font-size:16px;
  line-height:1.82;
}
h1,h2,h3,h4,h5{letter-spacing:-.025em;}
h3{font-weight:900;color:#15111a;}
h3 span{position:relative;}
.content p,.site-content p,.page-wrapper p{color:#38313d;line-height:1.78;}
.content ul,.site-content ul:not(.list-unstyled):not(.cmi-footer-menu):not(.cmi-footer-social){line-height:1.75;}

/* Home content/cards */
.w1{background-size:cover;background-position:center;}
.w1:before,.w4:before,.w3:before{content:'';position:absolute;inset:0;pointer-events:none;}
.w1:before{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,255,255,.78));}
.w1 .container{position:relative;z-index:1;}
.w1 .full-img img,.w2 .full-img img,.gallery-photo .box,.gallery-list .item,.quote-block .quote-content,.package_box,.toogle_wrap,.list-unstyled li{
  border-radius:var(--cmi-radius);
  box-shadow:var(--cmi-shadow-soft);
  border:1px solid rgba(143,22,125,.10);
}
.w1 .full-img img,.w2 .full-img img{overflow:hidden;transform:perspective(1000px) rotateY(-3deg);box-shadow:0 28px 90px rgba(0,0,0,.22);}
.w2{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.75);
  border-radius:32px;
  padding:40px;
  box-shadow:var(--cmi-shadow);
}
.w2 h5{font-size:clamp(24px,3vw,38px);font-weight:900;color:var(--cmi-plum);}
.w3{background-size:cover;background-position:center;}
.w3:before{background:linear-gradient(135deg,rgba(7,7,11,.86),rgba(76,17,70,.74));}
.w3 .container{position:relative;z-index:1;}
.w3 a.d-block{
  border-radius:28px;
  background:#fff;
  box-shadow:0 26px 70px rgba(0,0,0,.32);
  border:1px solid rgba(255,255,255,.3);
}
.w3 a.d-block:hover{transform:translateY(-8px) scale(1.03) rotate(.5deg) !important;}
.w3 a.d-block .content{background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.72)) !important;color:var(--cmi-plum);}
.w3 a.d-block .full-img{border-radius:28px;overflow:hidden;}
.w4{background-size:cover;background-position:center;}
.w4:before{background:linear-gradient(180deg,rgba(7,7,11,.78),rgba(7,7,11,.55));}
.w4 .container{position:relative;z-index:1;}
.w4 h3{color:#fff;text-shadow:0 12px 34px rgba(0,0,0,.5);}
#masonary .item a,.gallery-photo .box a,.gallery-list a{border-radius:22px;overflow:hidden;display:block;}
#masonary .item img,.gallery-photo .box img,.gallery-list img{transition:transform .5s ease, filter .5s ease;}
#masonary .item:hover img,.gallery-photo .box:hover img,.gallery-list .item:hover img{transform:scale(1.06);filter:saturate(1.08) contrast(1.05);}

/* Testimonials / FAQ */
.testimonials{background:linear-gradient(180deg,#fbf8fc,#fff);}
.quote-block .quote-content{
  border-radius:28px !important;
  background:linear-gradient(180deg,#fff,#fbf8fc) !important;
  box-shadow:0 24px 64px rgba(20,15,26,.14) !important;
}
.quote-block .quote-content blockquote:before{color:var(--cmi-plum);}
.quote-block .user{border:5px solid #fff;box-shadow:0 14px 32px rgba(0,0,0,.22);background-size:cover !important;}
.list-unstyled li{border:0 !important;background:#fff !important;padding:24px !important;}
.list-unstyled li img{box-shadow:0 12px 28px rgba(0,0,0,.18);border:3px solid #fff;object-fit:cover;}
.toogle_wrap{overflow:hidden;background:#fff !important;border:0;}
.trigger a{color:#211728 !important;}
.trigger.activefaq a,.trigger a:hover{color:var(--cmi-plum)!important;}
.toggle_container{background:linear-gradient(180deg,#fff,#fbf8fc);}

/* Photo booth content */
.selfie-list .list-block{min-height:460px;overflow:hidden;}
.selfie-list .list-block .content{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  border-radius:30px;
  padding:34px !important;
  box-shadow:0 24px 70px rgba(0,0,0,.22);
  backdrop-filter:blur(8px);
}
.selfie-list .list-block .content h1{font-size:clamp(30px,4vw,54px);font-weight:900;}
.selfie-list .list-block .image{filter:saturate(1.03) contrast(1.04);}
.selfie-list .list-block:nth-child(odd){background:linear-gradient(135deg,#17131b,#8f167d) !important;}
.selfie-list .list-block:nth-child(even){background:linear-gradient(135deg,#07070b,#4c1647) !important;}

/* Gallery */
.gallery-list a .overlay{background:linear-gradient(135deg,rgba(7,7,11,.72),rgba(143,22,125,.48)) !important;}
.gallery-list a:hover .overlay{background:linear-gradient(135deg,rgba(7,7,11,.42),rgba(143,22,125,.25)) !important;}
.gallery-list a h4{font-size:22px;font-weight:900;text-shadow:0 10px 28px rgba(0,0,0,.6);background:none !important;padding:0 !important;}
.gallery-list a h4 span{background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:9px 18px!important;line-height:1.2!important;backdrop-filter:blur(5px);}
.gallery-photo .box{padding:8px !important;background:linear-gradient(180deg,#fff,#f6f0f7)!important;}

/* Forms/buttons */
.form-control{border-radius:14px;border:1px solid rgba(143,22,125,.16);box-shadow:inset 0 2px 4px rgba(0,0,0,.04);}
.form-control:focus{border-color:var(--cmi-plum);box-shadow:0 0 0 3px rgba(143,22,125,.12);}
.btn-secondary{border:0;border-radius:999px;background:#19151f;color:#fff;font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.18);}
.btn-secondary:hover{background:#2b2131;color:#fff;transform:translateY(-2px);}

/* Footer */
.cmi-footer{
  background:linear-gradient(135deg,#07070b,#1b1120 52%,#3c1237) !important;
  color:#e9dfeb;
  padding:42px 0 !important;
}
.cmi-footer a{color:#fff;}
.cmi-footer a:hover{color:var(--cmi-gold-2);}
.cmi-footer img{max-height:86px;width:auto;filter:drop-shadow(0 12px 24px rgba(0,0,0,.35));}
.cmi-footer ul li:after{color:rgba(255,255,255,.24);}
.cmi-footer p{color:#d8c9dc;margin:8px 0 0;}
.cmi-footer-tagline{display:block;margin-top:4px;color:#bdaec4;font-weight:500;}

/* Small screens */
@media (max-width: 991px){
  .cmi-navigation .menu{display:block;}
  .cmi-navigation .menu>li>a{padding:14px 10px;}
  .w2{padding:26px;border-radius:24px;}
  .selfie-list .list-block{min-height:auto;padding:60px 0;}
}
@media (max-width: 767px){
  .cmi-topbar .container{display:block;text-align:center;}
  .cmi-topbar .float-left{float:none!important;}
  .cmi-topbar ul{float:none!important;margin:8px 0 0;text-align:center;}
  .cmi-logo{text-align:center;margin-bottom:12px;}
  .page-banner{min-height:220px;padding:60px 0!important;}
  .section{padding:55px 0;}
  .site-content,.page-wrapper{padding:48px 0!important;}
  .w1 .full-img img,.w2 .full-img img{transform:none;}
  .footer{text-align:center;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important;}
}


/* V1B contrast rescue for DB-driven photo booth content.
   Some content was saved in the database with dark inline colors. This keeps
   text readable on the new plum/black 3D panels without editing the database. */
.selfie-list .list-block .content,
.selfie-list .list-block .content p,
.selfie-list .list-block .content div,
.selfie-list .list-block .content span,
.selfie-list .list-block .content li,
.selfie-list .list-block .content strong,
.selfie-list .list-block .content em,
.selfie-list .list-block .content h1,
.selfie-list .list-block .content h2,
.selfie-list .list-block .content h3,
.selfie-list .list-block .content h4,
.selfie-list .list-block .content h5,
.selfie-list .list-block .content h6{
  color:#fff !important;
  text-shadow:0 3px 14px rgba(0,0,0,.24);
}
.selfie-list .list-block .content p,
.selfie-list .list-block .content div,
.selfie-list .list-block .content li,
.selfie-list .list-block .content span{
  color:#f7edf8 !important;
  font-size:16px;
  line-height:1.82;
}
.selfie-list .list-block .content h1,
.selfie-list .list-block .content h2,
.selfie-list .list-block .content h3{
  color:#ffffff !important;
  letter-spacing:-.035em;
}
.selfie-list .list-block .content h1:after,
.selfie-list .list-block .content h2:after,
.selfie-list .list-block .content h3:after{
  content:'';
  width:70px;
  height:3px;
  display:block;
  margin:14px 0 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--cmi-gold),rgba(255,255,255,.15));
  box-shadow:0 0 22px rgba(215,177,93,.46);
}
.selfie-list .list-block .content a{
  color:#fff0b7 !important;
  text-decoration:underline;
  text-underline-offset:3px;
}
.selfie-list .list-block .content a:hover{color:#ffffff !important;}
.selfie-list .list-block .content ul,
.selfie-list .list-block .content ol{padding-left:20px;margin-bottom:0;}
.selfie-list .list-block .content *[style]{color:inherit !important;}

/* Make the photo booth copy card a little brighter for contrast. */
.selfie-list .list-block .content{
  background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.07));
  border-color:rgba(255,255,255,.25);
}
