/* ============================================================
   JMD CLEANING — HOME PAGE STYLESHEET
   Loaded only on the homepage (index.html)
   ============================================================ */

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(50px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.left{transform:translateX(-60px)}
.reveal.right{transform:translateX(60px)}
.reveal.zoom{transform:scale(.85)}
.reveal.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none}
}

/* ---------- Hero ---------- */
.hero{min-height:calc(100vh - 120px);background:
  radial-gradient(1000px 600px at 85% -10%,rgba(33,209,159,.25),transparent 60%),
  radial-gradient(900px 700px at -10% 110%,rgba(0,168,232,.3),transparent 60%),
  linear-gradient(150deg,#0B2545 0%,#123A6B 55%,#0E5E8F 100%);
  display:flex;align-items:center;overflow:hidden;position:relative;padding:80px 0}
.hero-bg{position:absolute;inset:0;
background:url('../images/pre-sale-move-in-cleaning-05.jpg') center/cover no-repeat;





opacity:.16;z-index:0;animation:heroZoom 22s ease-in-out infinite alternate}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.1)}}
.hero-raster{position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(rgba(180,230,255,.28) 1.3px,transparent 1.3px);
  background-size:20px 20px;
  mask-image:linear-gradient(120deg,rgba(0,0,0,.9),rgba(0,0,0,.25) 60%,transparent);
  -webkit-mask-image:linear-gradient(120deg,rgba(0,0,0,.9),rgba(0,0,0,.25) 60%,transparent)}
#bubbles{position:absolute;inset:0;pointer-events:none;z-index:1}
.bubble{position:absolute;bottom:-120px;border-radius:50%;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.85),rgba(255,255,255,.15) 42%,rgba(180,235,255,.06) 70%);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:inset -6px -6px 14px rgba(0,168,232,.18),0 0 18px rgba(120,220,255,.14);
  animation:rise linear infinite}
.bubble::after{content:'';position:absolute;top:18%;left:22%;width:22%;height:14%;border-radius:50%;background:rgba(255,255,255,.9);filter:blur(1px);transform:rotate(-25deg)}
@keyframes rise{
  0%{transform:translateY(0) translateX(0) scale(.6);opacity:0}
  8%{opacity:.9}
  50%{transform:translateY(-55vh) translateX(30px) scale(1)}
  100%{transform:translateY(-115vh) translateX(-25px) scale(1.15);opacity:0}
}
.hero .container{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;position:relative;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#DFF4FF;padding:9px 20px;border-radius:50px;font-size:13.5px;font-weight:700;font-family:var(--font-display);backdrop-filter:blur(8px);animation:fadeUp .8s .1s both}
.hero-badge .star{color:var(--sun)}
.hero h1{color:#fff;font-size:clamp(36px,5vw,60px);font-weight:800;margin:22px 0;animation:fadeUp .8s .25s both}
.hero h1 .shine{background:linear-gradient(90deg,#33C6F4,#21D19F,#FFC93C,#33C6F4);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shineMove 5s linear infinite}
@keyframes shineMove{to{background-position:300% 0}}
.hero p{color:rgba(230,245,255,.85);font-size:17.5px;max-width:520px;animation:fadeUp .8s .4s both}
.hero-actions{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;animation:fadeUp .8s .55s both}
.hero-trust{display:flex;gap:34px;margin-top:44px;flex-wrap:wrap;animation:fadeUp .8s .7s both}
.hero-trust .t{color:#fff;font-family:var(--font-display)}
.hero-trust .t b{font-size:26px;display:block}
.hero-trust .t b em{font-style:normal;color:var(--mint)}
.hero-trust .t small{font-size:12.5px;color:rgba(220,240,255,.7);font-weight:600;letter-spacing:.5px}
@keyframes fadeUp{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}

/* --- 3D carousel --- */
.carousel3d-wrap{perspective:1400px;display:grid;place-items:center;min-height:460px;animation:fadeUp 1s .5s both}
.carousel3d{position:relative;width:290px;height:400px;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.5,0,.2,1)}
.c3d-card{position:absolute;inset:0;border-radius:24px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.45);border:5px solid rgba(255,255,255,.16);backface-visibility:hidden}
.c3d-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.c3d-card:hover img{transform:scale(1.07)}
.c3d-card .cap{position:absolute;left:0;right:0;bottom:0;padding:60px 20px 18px;background:linear-gradient(transparent,rgba(11,37,69,.92));color:#fff;font-family:var(--font-display)}
.c3d-card .cap b{font-size:18px;display:block}
.c3d-card .cap small{color:var(--sky);font-weight:700;letter-spacing:1.5px;font-size:11px;text-transform:uppercase}
.c3d-dots{display:flex;gap:9px;justify-content:center;margin-top:26px}
.c3d-dots button{width:11px;height:11px;border-radius:50%;border:none;background:rgba(255,255,255,.3);cursor:pointer;transition:.35s}
.c3d-dots button.on{background:var(--sun);transform:scale(1.35)}
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;z-index:3;pointer-events:none}
.hero-wave svg{display:block;width:100%;height:90px}

/* ---------- Why Choose Us ---------- */
.why{background:#fff;padding:20px 0 40px;position:relative;z-index:4}
.why .container{margin-top:0}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.why-box{background:linear-gradient(155deg,#21CEA4 0%,#17B18C 42%,#0F8E71 75%,#0A6B58 100%);
  border-radius:32px 90px 32px 90px;padding:38px 32px;position:relative;overflow:hidden;
  box-shadow:0 26px 60px rgba(16,140,110,.35);transition:.5s cubic-bezier(.4,0,.2,1)}
.why-box::before{content:'';position:absolute;top:-60px;right:-60px;width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.3),transparent 70%);transition:.5s}
.why-box::after{content:'';position:absolute;left:-40px;bottom:-40px;width:150px;height:150px;border-radius:50%;
  border:2px dashed rgba(255,255,255,.3);animation:spin 30s linear infinite}
.why-box:hover{transform:translateY(-12px);border-radius:90px 32px 90px 32px;box-shadow:0 38px 80px rgba(16,140,110,.48)}
.why-box:hover::before{transform:scale(1.6)}
.why-ic{width:74px;height:74px;border-radius:26px 40px 26px 40px;background:rgba(255,255,255,.14);
  border:1.5px solid rgba(255,255,255,.4);backdrop-filter:blur(4px);display:grid;place-items:center;
  margin-bottom:22px;transition:.5s;transform:rotate(-4deg);position:relative;z-index:1}
.why-box:hover .why-ic{background:#fff;border-color:transparent;transform:rotate(0) scale(1.08);border-radius:22px}
.why-ic svg{width:36px;height:36px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:.45s}
.why-box:hover .why-ic svg{stroke:#0F8E71}
.why-box h3{font-size:19px;margin-bottom:10px;color:#fff;position:relative;z-index:1}
.why-box p{font-size:14.5px;color:rgba(240,255,250,.92);position:relative;z-index:1}
.why-box .tag{display:inline-block;margin-top:18px;font-family:var(--font-display);font-weight:800;font-size:11.5px;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--navy);background:linear-gradient(120deg,var(--sun),#FFE9A6);
  padding:7px 16px;border-radius:50px;position:relative;z-index:1}
@media (max-width:992px){.why-grid{grid-template-columns:1fr}.why .container{margin-top:0}}

/* ---------- Services slider ---------- */
.services{background:#fff;padding-top:90px}
.svc-slider{position:relative;margin-top:56px}
.svc-viewport{overflow:hidden;margin:0 -13px;padding:14px 0 28px}
.svc-track{display:flex;transition:transform .7s cubic-bezier(.4,0,.2,1)}
.svc-slide{flex:0 0 33.3333%;padding:0 13px}
.svc-card{background:linear-gradient(180deg,#EAF6FE 0%,#F4FBFF 100%);border:1px solid #CFE9FA;border-radius:var(--radius);overflow:hidden;transition:.45s cubic-bezier(.4,0,.2,1);height:100%;display:flex;flex-direction:column}
.svc-card:hover{transform:translateY(-10px);box-shadow:var(--shadow-lg);border-color:#9FDBF7;background:#fff}
.svc-media{position:relative;height:210px;overflow:hidden}
.svc-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.svc-card:hover .svc-media img{transform:scale(1.1)}
.svc-media::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(11,37,69,.55))}
.svc-ic{width:66px;height:66px;border-radius:20px;background:var(--grad);display:grid;place-items:center;box-shadow:0 12px 26px rgba(0,168,232,.4);transition:.45s;position:relative;z-index:2;margin:-33px 0 16px;transform:rotate(-5deg);border:3px solid #fff}
.svc-card:hover .svc-ic{transform:rotate(0) scale(1.1)}
.svc-ic svg{width:32px;height:32px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc-body{padding:0 26px 28px;display:flex;flex-direction:column;flex:1}
.svc-body h3{font-size:19px;margin-bottom:10px}
.svc-body p{font-size:14.5px;flex:1}
.svc-body .go{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--aqua-dark);transition:.3s}
.svc-card:hover .go{gap:14px;color:var(--mint)}
.svc-arrows{position:absolute;top:-92px;right:0;display:flex;gap:10px}
.svc-arrows button{width:50px;height:50px;border-radius:50%;border:2px solid transparent;background:var(--grad);color:#fff;font-size:19px;cursor:pointer;transition:.35s;box-shadow:0 10px 24px rgba(0,168,232,.35)}
.svc-arrows button:hover{background:#fff;color:var(--aqua);border-color:#BEE6F9;transform:translateY(-3px)}
.svc-dots{display:flex;justify-content:center;gap:9px}
.svc-dots button{width:10px;height:10px;border-radius:50px;border:none;background:#CDE8F8;cursor:pointer;transition:.35s}
.svc-dots button.on{background:var(--grad);width:30px}

/* ---------- About ---------- */
.about{background:var(--ice);overflow:hidden}
.about .container{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.about-media{position:relative}
.about-media .main{border-radius:26px;box-shadow:var(--shadow-lg);width:100%;height:480px;object-fit:cover}
.about-media .float-img{position:absolute;right:-28px;bottom:-34px;width:240px;height:180px;object-fit:cover;border-radius:20px;border:7px solid #fff;box-shadow:var(--shadow-lg);animation:floaty 5s ease-in-out infinite}
.exp-badge{position:absolute;top:-26px;left:-26px;background:var(--grad);color:#fff;border-radius:22px;padding:22px 26px;font-family:var(--font-display);box-shadow:0 18px 40px rgba(0,168,232,.4);animation:floaty 6s .8s ease-in-out infinite}
.exp-badge b{font-size:38px;display:block;line-height:1}
.exp-badge small{font-size:12px;font-weight:700;letter-spacing:1px}
.about-list{margin:26px 0 34px;display:grid;gap:14px}
.about-list li{display:flex;gap:14px;align-items:flex-start;font-weight:600;color:var(--navy-2)}
.about-list .chk{flex:none;width:26px;height:26px;border-radius:50%;background:var(--mint);display:grid;place-items:center;color:#fff;font-size:13px;font-weight:800;margin-top:2px}

/* ---------- Stats ---------- */
.stats{background:var(--navy);padding:70px 0;position:relative;overflow:hidden}
.stats::before{content:'';position:absolute;inset:0;background:radial-gradient(700px 300px at 20% 0%,rgba(0,168,232,.25),transparent),radial-gradient(700px 300px at 85% 100%,rgba(33,209,159,.18),transparent)}
.stats .container{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;position:relative}
.stat{text-align:center;color:#fff}
.stat .num{font-family:var(--font-display);font-size:52px;font-weight:800;background:linear-gradient(120deg,#33C6F4,#21D19F);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.stat .num sup{font-size:26px;-webkit-text-fill-color:var(--sun)}
.stat p{color:rgba(220,240,255,.75);font-weight:600;letter-spacing:1px;text-transform:uppercase;font-size:12.5px;margin-top:4px}

/* ---------- Before / After ---------- */
.beforeafter{background:#fff}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px}
.ba-item{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--navy)}
.ba-slider{position:relative;height:320px;overflow:hidden;cursor:ew-resize;user-select:none;touch-action:none}
.ba-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-after{clip-path:inset(0 0 0 50%)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:4px;background:#fff;transform:translateX(-50%);box-shadow:0 0 16px rgba(0,0,0,.45)}
.ba-handle::after{content:'⇔';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:19px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.ba-tag{position:absolute;top:14px;padding:6px 14px;border-radius:50px;font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:1.5px;color:#fff;z-index:2;pointer-events:none}
.ba-tag.before{left:14px;background:rgba(11,37,69,.75)}
.ba-tag.after{right:14px;background:var(--mint)}
.ba-item h4{color:#fff;text-align:center;padding:18px;font-size:16.5px}

/* ---------- Our Projects grid ---------- */
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:56px}
.proj-item .svc-media{height:220px}
.proj-item h4{margin:0}
@media (max-width:992px){.proj-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.proj-grid{grid-template-columns:1fr}}

/* ---------- How it works ---------- */
.how{background:linear-gradient(180deg,var(--ice),#fff)}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:64px;position:relative}
.how-grid::before{content:'';position:absolute;top:52px;left:14%;right:14%;border-top:3px dashed #BFE3F7;z-index:0}
.how-step{text-align:center;position:relative;z-index:1;background:transparent;padding:0 12px}
.how-num{width:104px;height:104px;margin:0 auto 24px;border-radius:50%;background:#fff;border:3px solid #D6EEFB;display:grid;place-items:center;font-family:var(--font-display);font-size:34px;font-weight:800;color:var(--aqua);box-shadow:var(--shadow);transition:.45s;position:relative}
.how-step:hover .how-num{background:var(--grad);color:#fff;border-color:transparent;transform:scale(1.1) rotate(6deg)}
.how-num::after{content:'';position:absolute;inset:-12px;border-radius:50%;border:2px dotted var(--sky);animation:spin 14s linear infinite}
.how-step h3{font-size:20px;margin-bottom:10px}

/* ---------- Videos ---------- */
.videos{background:var(--navy);position:relative;overflow:hidden}
.videos::before{content:'';position:absolute;inset:0;background:radial-gradient(800px 400px at 90% 10%,rgba(0,168,232,.2),transparent)}
.videos .section-title,.videos .section-sub{color:#fff}
.videos .section-sub{color:rgba(220,240,255,.75)}
.videos .eyebrow{background:rgba(51,198,244,.15);color:var(--sky)}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:56px;position:relative}
.video-card{border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 55px rgba(0,0,0,.4);background:#08192F;transition:.4s}
.video-card:hover{transform:translateY(-10px)}
.video-frame{position:relative;aspect-ratio:16/9;background:#08192F}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-card .vc-cap{padding:18px 20px;color:#fff;font-family:var(--font-display);font-weight:700;font-size:15px;display:flex;align-items:center;gap:10px}
.video-card .vc-cap::before{content:'▶';color:var(--sun);font-size:12px}

/* ---------- Testimonials ---------- */
.testimonials{background:#fff;overflow:hidden}
.tslider{position:relative;max-width:860px;margin:50px auto 0}
.tslides{display:flex;transition:transform .7s cubic-bezier(.4,0,.2,1)}
.tslide{flex:0 0 100%;padding:10px 20px}
.tcard{background:var(--ice);border-radius:26px;padding:50px 54px;text-align:center;position:relative;border:1px solid #E0F1FB}
.tcard::before{content:'“';position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:64px;height:64px;border-radius:50%;background:var(--grad);color:#fff;font-family:var(--font-display);font-size:46px;line-height:80px;box-shadow:0 12px 30px rgba(0,168,232,.4)}
.tcard p{font-size:17.5px;font-style:italic;color:var(--navy-2);margin:18px 0 24px}
.tcard .stars{color:var(--sun);font-size:18px;letter-spacing:4px}
.tcard b{font-family:var(--font-display);color:var(--navy);font-size:17px;display:block;margin-top:8px}
.tcard small{color:var(--aqua-dark);font-weight:700;letter-spacing:1px;text-transform:uppercase;font-size:11.5px}
.tnav{display:flex;justify-content:center;gap:12px;margin-top:34px}
.tnav button{width:50px;height:50px;border-radius:50%;border:2px solid #D6EEFB;background:#fff;color:var(--aqua);font-size:18px;cursor:pointer;transition:.35s}
.tnav button:hover{background:var(--grad);color:#fff;border-color:transparent;transform:translateY(-3px)}

/* ---------- CTA / Quote ---------- */
.cta{background:linear-gradient(135deg,#0077C8,#00A8E8 55%,#21D19F);position:relative;overflow:hidden}
.cta .bubble{background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.7),rgba(255,255,255,.12) 45%,transparent 72%);border-color:rgba(255,255,255,.35)}
.cta .container{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;position:relative;z-index:2}
.cta h2{color:#fff;font-size:clamp(28px,4vw,42px);margin-bottom:16px}
.cta p{color:rgba(240,250,255,.9);font-size:17px}
.quote-card{background:#fff;border-radius:24px;padding:40px;box-shadow:0 40px 90px rgba(6,40,70,.4)}
.quote-card h3{font-size:22px;margin-bottom:24px;text-align:center}
.quote-card .row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.quote-card input,.quote-card select{width:100%;padding:15px 18px;border:1.5px solid #DCEDF8;border-radius:12px;font-family:var(--font-body);font-size:14.5px;color:var(--navy);background:var(--ice);transition:.3s;outline:none}
.quote-card input:focus,.quote-card select:focus{border-color:var(--aqua);background:#fff;box-shadow:0 0 0 4px rgba(0,168,232,.12)}
.quote-card .btn{width:100%;justify-content:center;margin-top:8px}

/* ---------- Home Responsive ---------- */
@media (max-width:1100px){
  .svc-slide{flex:0 0 50%}
  .stats .container{grid-template-columns:repeat(2,1fr);gap:44px}
  .video-grid,.ba-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:992px){
  .hero .container{grid-template-columns:1fr;text-align:center}
  .hero p{margin-inline:auto}
  .hero-actions,.hero-trust{justify-content:center}
  .carousel3d-wrap{min-height:430px}
  .about .container,.cta .container{grid-template-columns:1fr}
  .about-media{margin-bottom:30px}
  .how-grid::before{display:none}
  .how-grid{gap:50px}
}
@media (max-width:640px){
  section{padding:70px 0}
  .svc-slide{flex:0 0 100%}
  .svc-arrows{position:static;justify-content:center;margin-bottom:8px}
  .video-grid,.ba-grid,.how-grid{grid-template-columns:1fr}
  .stats .container{grid-template-columns:repeat(2,1fr)}
  .stat .num{font-size:40px}
  .carousel3d{width:240px;height:330px}
  .about-media .main{height:360px}
  .about-media .float-img{width:180px;height:135px;right:-8px;bottom:-24px}
  .exp-badge{left:-8px;padding:16px 20px}
  .exp-badge b{font-size:28px}
  .tcard{padding:44px 26px}
  .quote-card{padding:28px 22px}
  .quote-card .row{grid-template-columns:1fr}
  .hero-trust{gap:22px}
}

/* ====== Service Image Popup / Lightbox ====== */
.svc-media{cursor:pointer;position:relative}
.svc-media::before{content:'🔍';position:absolute;top:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:18px;padding:6px 9px;border-radius:8px;z-index:3;opacity:0;transition:.3s;backdrop-filter:blur(4px)}
.svc-media:hover::before{opacity:1}
.img-popup{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:20px}
.img-popup.open{display:flex;animation:popIn .3s ease}
@keyframes popIn{from{opacity:0}to{opacity:1}}
.img-popup-overlay{position:absolute;inset:0;background:rgba(5,15,35,.9);cursor:pointer}
.img-popup-box{position:relative;max-width:940px;width:100%;z-index:2;animation:popScale .3s var(--ease,ease) both}
@keyframes popScale{from{transform:scale(.9)}to{transform:scale(1)}}
.img-popup-box img{width:100%;border-radius:14px;display:block;max-height:80vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.img-popup-close{position:absolute;top:-18px;right:-18px;width:42px;height:42px;border-radius:50%;background:#fff;border:none;font-size:22px;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 20px rgba(0,0,0,.35);transition:.35s;line-height:1;font-weight:700}
.img-popup-close:hover{background:var(--sun,#FFC93C);transform:rotate(90deg) scale(1.1)}
.img-popup-cap{text-align:center;color:rgba(255,255,255,.9);margin-top:14px;font-size:16px;font-weight:700;font-family:var(--font-display)}
