:root{--navy:#003988;--navy-dark:#002060;--off:#F4F6FF;--ink:#0A0A1A;--muted:#5A6080;--saffron:#FF6B00;--gold:#F7C948;--green:#138808;}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Lato',sans-serif;background:#fff;color:var(--ink);overflow-x:hidden;cursor:none;}
#cursor{width:12px;height:12px;background:var(--navy);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .2s;}
#cursor-ring{width:36px;height:36px;border:2px solid var(--navy);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:transform .18s ease,width .25s,height .25s;}
body:has(a:hover) #cursor,body:has(button:hover) #cursor,body:has(input:focus) #cursor{width:20px;height:20px;background:var(--saffron);}
body:has(a:hover) #cursor-ring,body:has(button:hover) #cursor-ring{width:50px;height:50px;border-color:var(--saffron);}
@keyframes fadeUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideR{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideL{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes spinCW{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulseRing{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.2);opacity:0}}
@keyframes checkPop{0%{transform:scale(0) rotate(-20deg)}70%{transform:scale(1.2)}100%{transform:scale(1) rotate(0)}}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1);}
.reveal.up{opacity:1;transform:translateY(0);}
.reveal-r{opacity:0;transform:translateX(-40px);transition:opacity .7s ease,transform .7s ease;}
.reveal-r.up{opacity:1;transform:translateX(0);}
.reveal-l{opacity:0;transform:translateX(40px);transition:opacity .7s ease,transform .7s ease;}
.reveal-l.up{opacity:1;transform:translateX(0);}

/* PAGE HERO */
.page-hero{padding:110px 5% 0;background:#fff;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(0,57,136,.05) 59px,rgba(0,57,136,.05) 60px);pointer-events:none;}
.ph-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:0;position:relative;z-index:2;}

/* LEFT: Contact Form Panel */
.contact-left{padding:50px 50px 60px 0;border-right:3px solid var(--navy);}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:16px;}
.breadcrumb a{color:var(--navy);text-decoration:none;font-weight:700;}
.ph-eyebrow{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--saffron);margin-bottom:14px;}
.ph-eyebrow::before{content:'';width:28px;height:3px;background:var(--saffron);}
.ph-h1{font-family:'Poppins',sans-serif;font-size:clamp(40px,5.5vw,72px);font-weight:900;line-height:.93;letter-spacing:-3px;text-transform:uppercase;color:var(--ink);margin-bottom:22px;}
.ph-h1 .inv{display:inline-block;background:var(--navy);color:#fff;padding:2px 10px;}
.ph-h1 .saf{color:var(--saffron);}
.ph-sub{font-size:15px;line-height:1.8;color:var(--muted);border-left:4px solid var(--saffron);padding-left:14px;margin-bottom:32px;}
.ph-sub strong{color:var(--ink);}

/* FORM */
.contact-form{display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-group.full{grid-column:1/-1;}
.form-label{font-family:'Poppins',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--navy);}
.form-input,.form-select,.form-textarea{
  padding:13px 16px;
  border:3px solid var(--navy);
  background:#fff;
  font-family:'Lato',sans-serif;
  font-size:14px;color:var(--ink);
  outline:none;
  transition:border-color .2s,box-shadow .2s;
  appearance:none;
}
.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23003988' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer;}
.form-textarea{resize:vertical;min-height:120px;line-height:1.65;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--saffron);box-shadow:4px 4px 0 rgba(255,107,0,.15);}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(90,96,128,.45);}
.form-input.error,.form-textarea.error{border-color:#E53935;box-shadow:4px 4px 0 rgba(229,57,53,.1);}

/* Budget chips */
.budget-chips{display:flex;gap:8px;flex-wrap:wrap;}
.budget-chip{padding:8px 16px;border:3px solid rgba(0,57,136,.2);font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .2s;background:#fff;}
.budget-chip:hover{border-color:var(--navy);color:var(--navy);}
.budget-chip.selected{background:var(--navy);color:#fff;border-color:var(--navy);}

/* Service checkboxes */
.svc-checks,span.wpcf7-form-control.wpcf7-checkbox{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.svc-check,.wpcf7-list-item{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border:2px solid rgba(0,57,136,.12);transition:border-color .2s,background .2s;}
.svc-check:hover,.wpcf7-list-item:hover{border-color:var(--navy);}
.svc-check.checked{background:rgba(0,57,136,.06);border-color:var(--navy);}
/* .svc-check input[type=checkbox],.wpcf7-list-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;} */
.svc-check-box{width:18px;height:18px;border:2px solid var(--navy);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.svc-check.checked .svc-check-box{background:var(--navy);}
.svc-check-box svg{width:10px;height:10px;color:#fff;display:none;}
.svc-check.checked .svc-check-box svg{display:block;}
.svc-check-label{font-size:12px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.5px;}
span.wpcf7-form-control.wpcf7-checkbox span {
    margin: 0;
}
textarea#f-msg {
    width: 100%;
    height: 99px;
}
.submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:8px;}
.submit-btn{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:#fff;font-family:'Poppins',sans-serif;font-weight:700;font-size:15px;padding:16px 32px;border:3px solid var(--navy);cursor:pointer;text-transform:uppercase;letter-spacing:1px;position:relative;overflow:hidden;transition:border-color .2s;}
.submit-btn::after{content:'';position:absolute;inset:0;background:var(--saffron);transform:translateX(-101%);transition:transform .3s ease;z-index:0;}
.submit-btn span,.submit-btn svg{position:relative;z-index:1;}
.submit-btn:hover::after{transform:translateX(0);}
.submit-btn:hover{border-color:var(--saffron);}
.submit-note{font-size:12px;color:var(--muted);}

/* SUCCESS STATE */
.form-success{display:none;text-align:center;padding:48px 32px;}
.success-check{width:80px;height:80px;background:var(--green);margin:0 auto 20px;display:flex;align-items:center;justify-content:center;animation:checkPop .5s cubic-bezier(.22,1,.36,1);}
.success-check svg{width:40px;height:40px;color:#fff;}
.success-title{font-family:'Poppins',sans-serif;font-size:28px;font-weight:900;color:var(--ink);margin-bottom:8px;}
.success-desi{font-size:16px;color:var(--navy);font-style:italic;font-weight:700;margin-bottom:12px;}
.success-sub{font-size:14px;color:var(--muted);line-height:1.75;}

/* RIGHT: Info panel */
.contact-right{padding:50px 0 60px 50px;}
.info-desi{font-family:'Poppins',sans-serif;font-size:15px;font-style:italic;color:var(--navy);font-weight:600;margin-bottom:30px;border-left:4px solid var(--gold);padding-left:14px;}
.contact-info-block{margin-bottom:28px;}
.cib-title{font-family:'Poppins',sans-serif;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:12px;}
.cib-items{display:flex;flex-direction:column;gap:10px;}
.cib-item{display:flex;align-items:flex-start;gap:12px;}
.cib-icon{width:40px;height:40px;background:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cib-icon svg{width:18px;height:18px;color:#fff;}
.cib-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;margin-bottom:3px;}
.cib-val{font-size:15px;font-weight:700;color:var(--ink);}
.cib-val a{color:var(--navy);text-decoration:none;transition:color .2s;}
.cib-val a:hover{color:var(--saffron);}

/* Working hours */
.hours-grid{display:flex;flex-direction:column;gap:6px;margin-top:4px;}
.hour-row{display:flex;justify-content:space-between;font-size:13px;}
.hour-day{color:var(--muted);font-weight:700;}
.hour-time{color:var(--ink);font-weight:700;}
.hour-row.today .hour-day{color:var(--saffron);}
.hour-row.today .hour-time{color:var(--saffron);}

/* Online badge */
.online-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(19,136,8,.08);border:2px solid rgba(19,136,8,.2);padding:8px 16px;margin-bottom:24px;}
.ob-dot{width:8px;height:8px;border-radius:50%;background:var(--green);position:relative;}
.ob-dot::after{content:'';position:absolute;inset:-4px;border-radius:50%;background:rgba(19,136,8,.3);animation:pulseRing .1s ease-out infinite;}
.ob-text{font-size:12px;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:1.5px;}

/* Social links */
.social-row{display:flex;gap:8px;margin-top:20px;}
.soc-btn{width:40px;height:40px;border:3px solid var(--navy);display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-size:12px;font-weight:700;color:var(--navy);cursor:pointer;transition:background .2s,color .2s;}
.soc-btn:hover{background:var(--navy);color:#fff;}

/* Quick contact cards at bottom */
.quick-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;}
.qc-card{border:3px solid var(--navy);padding:16px;text-align:center;cursor:pointer;transition:background .2s,color .2s;text-decoration:none;display:block;}
.qc-card:hover{background:var(--navy);}
.qc-card:hover .qcc-icon,.qc-card:hover .qcc-label,.qc-card:hover .qcc-val{color:#fff;}
.qcc-icon{font-size:24px;margin-bottom:6px;}
.qcc-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:4px;}
.qcc-val{font-size:13px;font-weight:700;color:var(--navy);}

/* MAP PLACEHOLDER */
.map-section{background:var(--navy);padding:70px 5%;position:relative;overflow:hidden;}
.map-section::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 1px,transparent 1px,transparent 12px);pointer-events:none;}
.map-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.map-section .eyebrow{color:var(--gold);margin-bottom:12px;}
.map-section .eyebrow::before{background:var(--gold);}
.map-section .sec-title{color:#fff;}
.map-section .sec-title .blk{background:#fff;color:var(--navy);}
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:3px solid rgba(255,255,255,.2);margin-top:40px;}
.map-visual{background:rgba(0,0,0,.3);min-height:320px;display:flex;align-items:center;justify-content:center;border-right:3px solid rgba(255,255,255,.15);position:relative;overflow:hidden;}
.map-kolkata-svg{width:100%;height:100%;position:absolute;inset:0;}
.map-info{padding:36px 32px;}
.mi-row{display:flex;gap:14px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);}
.mi-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.mi-icon{width:36px;height:36px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mi-icon svg{width:16px;height:16px;color:var(--gold);}
.mi-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:rgba(255,255,255,.4);margin-bottom:4px;}
.mi-val{font-size:14px;font-weight:700;color:#fff;}
.mi-sub{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px;}

/* TRUST BAND */
.trust-band{background:#fff;border-top:3px solid var(--navy);border-bottom:3px solid var(--navy);padding:36px 5%;}
.tb-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.tb-item{text-align:center;padding:20px 24px;border-right:3px solid var(--navy);}
.tb-item:last-child{border-right:none;}
.tb-icon{font-size:32px;margin-bottom:8px;}
.tb-num{font-family:'Poppins',sans-serif;font-size:28px;font-weight:900;color:var(--navy);line-height:1;}
.tb-label{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-weight:700;margin-top:4px;}

.eyebrow{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:3px;color:var(--saffron);}
.eyebrow::before{content:'';width:28px;height:3px;background:var(--saffron);}
.sec-title{font-family:'Poppins',sans-serif;font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.05;letter-spacing:-1.5px;text-transform:uppercase;color:var(--ink);}
.sec-title .blk{background:var(--navy);color:#fff;padding:0 8px;margin-left:4px;}

/* RESPONSIVE */
@media(max-width:1024px){
  .ph-inner{grid-template-columns:1fr;}
  .contact-left{border-right:none;border-bottom:3px solid var(--navy);padding:40px 0;}
  .contact-right{padding:40px 0;}
  .map-grid{grid-template-columns:1fr;}
  .map-visual{border-right:none;border-bottom:3px solid rgba(255,255,255,.15);}
  .tb-inner{grid-template-columns:repeat(2,1fr);}
  .tb-item:nth-child(2){border-right:none;}
  .tb-item:nth-child(3){border-top:3px solid var(--navy);}
  .footer-top{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  nav a:not(.nav-cta){display:none;}
  .form-row{grid-template-columns:1fr;}
  .svc-checks{grid-template-columns:1fr;}
  .quick-contact-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .tb-inner{grid-template-columns:1fr 1fr;}
}
