/* =========================================================
   CaressTech India — Design Tokens
   Blue #0F4FB5 · Orange #FF8A00 · Light BG #F8FAFD
   Dark Text #1F2937 · Grey Text #6B7280
   Display: Manrope · Body: Poppins
========================================================= */
:root{
  --blue:#0F4FB5;
  --blue-deep:#082C6B;
  --blue-light:#3E7BFF;
  --blue-ink:#0B2A66;
  --orange:#FF8A00;
  --orange-deep:#E2650A;
  --orange-light:#FFB74D;
  --white:#FFFFFF;
  --bg-light:#F8FAFD;
  --bg-tint:#EEF3FC;
  --text-dark:#1F2937;
  --text-grey:#6B7280;
  --radius-lg:22px;
  --radius-md:14px;
  --gradient-brand:linear-gradient(135deg, var(--blue) 0%, var(--blue-light) 100%);
  --gradient-brand-hover:linear-gradient(135deg, var(--orange) 0%, var(--orange-light) 100%);
  --gradient-deep:linear-gradient(145deg, var(--blue-ink) 0%, var(--blue-deep) 55%, var(--blue) 100%);
  --shadow-soft:0 12px 32px rgba(15,79,181,0.12);
  --shadow-soft-hover:0 20px 44px rgba(15,79,181,0.20);
  --shadow-orange:0 14px 30px rgba(255,138,0,0.24);
  --safe-b:env(safe-area-inset-bottom, 0px);
  --safe-r:env(safe-area-inset-right, 0px);
}

**{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  width:100%;
}
body{
  font-family:'Poppins',sans-serif;
  color:var(--text-dark);
  background:var(--white);
  overflow-x:hidden;
  width:100%;
  position:relative;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,.brand-word{font-family:'Manrope',sans-serif;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

a{text-decoration:none;}
:focus-visible{outline:3px solid var(--orange); outline-offset:2px;}

/* ---------- Preloader ---------- */
#preloader{position:fixed; inset:0; background:var(--white); z-index:9999; display:flex; align-items:center; justify-content:center; transition:opacity .5s ease, visibility .5s ease;}
#preloader.hide{opacity:0; visibility:hidden;}
.preloader-hex{width:70px; height:70px; animation:spin 1.4s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ---------- Circuit Trace signature ---------- */
#circuit-trace{position:fixed; top:0; left:14px; width:6px; height:100%; z-index:2; pointer-events:none; display:none;}
#trace-path{fill:none; stroke:var(--orange); stroke-width:2; stroke-dasharray:3000; stroke-dashoffset:3000;}
@media (min-width:992px){ #circuit-trace{display:block;} }

/* ---------- Navbar ---------- */
#mainNav{
  padding:18px 0; transition:all .35s ease; background:rgba(255,255,255,0); z-index:1000;
}
#mainNav.solid{background:var(--white); box-shadow:0 4px 24px rgba(15,79,181,0.08); padding:10px 0;}
/* --- Fix: keep logo + hamburger on one row, send menu to its own row below --- */
#mainNav .container{
  flex-wrap: nowrap;
}
.navbar-brand{
  flex-shrink: 0;      /* logo never gets squeezed */
  min-width: auto;
  overflow: visible;
  display: flex;
  align-items: center;
  gap: 8px;
}
.navbar-brand img.brand-logo{
  height: 40px;
  width: auto;
  flex-shrink: 0;
  display: block;
}
.navbar-toggler{
  margin-left: auto;
  flex-shrink: 0;
}
/* On mobile, force the opened menu onto its own full-width row instead of
   squeezing into the same flex row as the logo + toggler */
@media (max-width: 991.98px){
  #mainNav .container{
    flex-wrap: wrap;
  }
  #mainNav #navMenu{
    flex-basis: 100%;
    order: 3;
  }
}
@media (max-width: 360px){
  .brand-word{ font-size: 1.05rem; }
  .brand-sub{ letter-spacing: 2px; font-size: .55rem; }
}
.brand-word{font-weight:800; font-size:1.5rem; letter-spacing:-0.5px;}
.brand-blue{color:var(--blue);}
.brand-orange{color:var(--orange);}
.brand-sub{display:block; font-size:.6rem; letter-spacing:4px; color:var(--orange); font-weight:700; margin-left:2px;}
.navbar-toggler{
  border:2px solid var(--bg-tint); border-radius:10px; padding:0; background:#fff;
  box-shadow:var(--shadow-soft); width:44px; height:44px; min-width:44px; min-height:44px;
  display:flex; align-items:center; justify-content:center; flex:0 0 44px;
}
.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(255,138,0,.25);}
.navbar-toggler:hover{border-color:var(--blue);}
/* Pure CSS hamburger — no external font/icon dependency, so it always renders */
.hamburger{position:relative; width:22px; height:16px; display:inline-block;}
.hamburger span{
  position:absolute; left:0; width:100%; height:2.5px; border-radius:2px;
  background:var(--blue); transition:transform .3s ease, opacity .2s ease, top .3s ease;
}
.hamburger span:nth-child(1){top:0;}
.hamburger span:nth-child(2){top:7px;}
.hamburger span:nth-child(3){top:14px;}
/* Morph into an X when menu is open (Bootstrap toggles aria-expanded) */
.navbar-toggler[aria-expanded="true"] .hamburger span{background:var(--orange);}
.navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(1){top:7px; transform:rotate(45deg);}
.navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(2){opacity:0;}
.navbar-toggler[aria-expanded="true"] .hamburger span:nth-child(3){top:7px; transform:rotate(-45deg);}
.nav-link{color:var(--text-dark) !important; font-weight:500; margin:0 6px; position:relative; padding:10px 6px !important;}
.nav-link::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--orange); transition:width .25s ease;}
.nav-link:hover::after{width:100%;}
.btn-cta{background:var(--gradient-brand); color:#fff !important; padding:10px 24px; border-radius:50px; font-weight:600; transition:.3s; box-shadow:0 6px 18px rgba(15,79,181,0.28); min-height:44px; display:inline-flex; align-items:center;}
.btn-cta:hover{background:var(--gradient-brand-hover); box-shadow:var(--shadow-orange); transform:translateY(-2px);}

/* ---------- Buttons ---------- */
.btn-primary-brand{background:var(--gradient-brand); color:#fff; padding:14px 32px; border-radius:50px; font-weight:600; border:2px solid transparent; transition:.3s; box-shadow:0 10px 26px rgba(15,79,181,0.26); min-height:48px; display:inline-flex; align-items:center; justify-content:center;}
.btn-primary-brand:hover{background:var(--gradient-brand-hover); color:#fff; transform:translateY(-3px); box-shadow:var(--shadow-orange);}
.btn-outline-brand{background:transparent; color:var(--blue); padding:14px 32px; border-radius:50px; font-weight:600; border:2px solid var(--blue); transition:.3s; min-height:48px; display:inline-flex; align-items:center; justify-content:center;}
.btn-outline-brand:hover{background:var(--gradient-brand); border-color:transparent; color:#fff; transform:translateY(-3px); box-shadow:var(--shadow-soft-hover);}
.btn-outline-white{background:rgba(255,255,255,0.06); color:#fff; padding:14px 32px; border-radius:50px; font-weight:600; border:2px solid rgba(255,255,255,0.7); transition:.3s; backdrop-filter:blur(4px); min-height:48px; display:inline-flex; align-items:center; justify-content:center;}
.btn-outline-white:hover{background:#fff; color:var(--blue-deep); border-color:#fff; transform:translateY(-3px);}
.hero-btns{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap;}

/* ---------- Section basics ---------- */
.section-pad{padding:100px 0;}
.section-pad-sm{padding:70px 0 40px;}
.bg-tint{background:var(--bg-light);}
.eyebrow{color:var(--orange); font-weight:700; letter-spacing:2px; text-transform:uppercase; font-size:.8rem; margin-bottom:10px;}
.section-title{color:var(--blue); font-weight:800; font-size:clamp(1.5rem, 4vw, 2.3rem); margin-bottom:18px;}
.section-lead{color:var(--text-grey); max-width:640px; margin:0 auto 10px; font-size:clamp(.95rem, 2vw, 1.05rem);}
.body-text{color:var(--text-grey); line-height:1.8;}
.small-text{color:var(--text-grey); font-size:.92rem;}
.mini-heading{font-size:1rem; font-weight:700; color:var(--text-dark); display:flex; align-items:center; gap:8px;}
.text-orange{color:var(--orange);}

/* ---------- Placeholder art cards (swap with real photography) ---------- */
.ph-card{
  background:linear-gradient(135deg, var(--bg-tint), #dbe6fa);
  border:1.5px dashed #b9cdf2;
  border-radius:var(--radius-lg);
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--blue-deep); font-weight:600; font-size:.95rem; padding:20px;
  min-height:220px; position:relative; overflow:hidden;
}
.ph-card::before{content:'\f03e'; font-family:'Font Awesome 6 Free'; font-weight:900; position:absolute; font-size:2.4rem; opacity:.18; top:14px; left:18px; color:var(--blue);}
.ph-tall{min-height:420px;}
.ph-product{min-height:230px; border-radius:var(--radius-lg) var(--radius-lg) 0 0;}

/* ---------- Hero ---------- */
.hero{position:relative; padding:170px 0 90px; background:var(--white); overflow:hidden;}
.hero::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(480px 380px at 12% 18%, rgba(15,79,181,0.09), transparent 70%),
    radial-gradient(520px 420px at 92% 30%, rgba(255,138,0,0.10), transparent 70%),
    radial-gradient(600px 480px at 50% 100%, rgba(15,79,181,0.06), transparent 70%);
}
.hero-inner{position:relative; z-index:2;}
.hero-title{font-size:clamp(2.2rem, 6vw, 3.5rem); font-weight:800; color:var(--blue); line-height:1.1;}
.orange-underline{position:relative; color:var(--orange);}
.hero-sub{color:var(--text-grey); font-size:clamp(1rem, 2.4vw, 1.1rem); margin-top:20px; max-width:520px;}
.hero-visual{position:relative;}
.hero-illustration{width:100%; height:auto; filter:drop-shadow(0 20px 40px rgba(15,79,181,0.12));}

.hero-bg-graphics{position:absolute; inset:0; z-index:1; pointer-events:none;}
.float-graphic{position:absolute; opacity:.35;}
.g1{width:90px; top:12%; left:6%; animation:floatY 6s ease-in-out infinite;}
.g2{width:70px; top:65%; left:10%; animation:floatY 7s ease-in-out infinite 1s;}
.g3{width:80px; top:20%; right:8%; animation:floatY 5.5s ease-in-out infinite .5s;}
.g4{width:60px; top:70%; right:14%; animation:floatY 6.5s ease-in-out infinite 1.5s;}
.g5{width:110px; top:45%; left:2%; animation:floatY 8s ease-in-out infinite;}
@keyframes floatY{0%,100%{transform:translateY(0px);} 50%{transform:translateY(-18px);}}

/* ---------- Product swiper ---------- */
.product-card{background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .3s, box-shadow .3s; height:100%;}
.product-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-soft-hover);}
.product-card:hover .ph-product{transform:scale(1.04);}
.ph-product{transition:transform .4s ease;}
.product-body{padding:22px;}
.product-body h3{color:var(--blue); font-size:1.15rem; font-weight:700; margin-bottom:8px;}
.product-body p{color:var(--text-grey); font-size:.92rem;}
.product-meta{list-style:none; padding:0; display:flex; gap:16px; font-size:.82rem; color:var(--text-grey); margin:10px 0;}
.product-meta i{color:var(--orange); margin-right:5px;}
.concepts{font-size:.82rem; color:var(--text-dark); margin-bottom:14px;}
.productSwiper{padding-bottom:50px;}
.swiper-button-next, .swiper-button-prev{color:var(--blue);}
.swiper-pagination-bullet-active{background:var(--orange) !important;}

/* ---------- Electronics infinite scroller ---------- */
.scroller{overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.scroller-track{display:flex; gap:20px; width:max-content; animation:scrollX 40s linear infinite;}
.scroller:hover .scroller-track{animation-play-state:paused;}
@keyframes scrollX{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.component-card{background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); padding:16px; width:150px; flex:0 0 auto; text-align:center; transition:transform .25s;}
.component-card:hover{transform:translateY(-6px);}
.component-card .comp-icon{width:60px; height:60px; border-radius:12px; background:linear-gradient(135deg, var(--bg-tint), #dbe6fa); display:flex; align-items:center; justify-content:center; margin:0 auto 10px; color:var(--blue); font-size:1.4rem; transition:.25s;}
.component-card:hover .comp-icon{background:var(--gradient-brand); color:#fff;}
.component-card h5{font-size:.85rem; font-weight:700; margin-bottom:2px; color:var(--text-dark);}
.component-card p{font-size:.72rem; color:var(--text-grey); margin:0;}

/* ---------- Curriculum ---------- */
.curric-card{background:#fff; border-radius:var(--radius-lg); padding:36px 28px; text-align:center; box-shadow:var(--shadow-soft); height:100%; transition:transform .3s, box-shadow .3s;}
.curric-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-soft-hover);}
.curric-icon{font-size:2.4rem; color:var(--orange); margin-bottom:16px;}
.curric-card h3{color:var(--blue); font-weight:700; margin-bottom:10px;}
.curric-card p{color:var(--text-grey); font-size:.92rem; margin-bottom:20px;}
.btn-lang{border:2px solid var(--blue); color:var(--blue); border-radius:50px; padding:10px; font-weight:600; background:transparent; transition:.25s;}
.btn-lang:hover{background:var(--blue); color:#fff;}

/* ---------- Benefit cards ---------- */
.benefit-card{background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); padding:26px 14px; text-align:center; height:100%; transition:transform .25s, box-shadow .25s; border-top:3px solid var(--blue);}
.benefit-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-soft-hover);}
.benefit-card i{font-size:1.8rem; color:var(--blue); margin-bottom:12px;}
.benefit-card h4{font-size:.92rem; font-weight:700; margin:0;}
.col-md-3:nth-child(even) .benefit-card, .col-6:nth-child(even) .benefit-card{border-top-color:var(--orange);}
.col-md-3:nth-child(even) .benefit-card i, .col-6:nth-child(even) .benefit-card i{color:var(--orange);}

/* ---------- Timeline (real sequence) ---------- */
.timeline{position:relative; max-width:760px; margin:0 auto;}
.timeline::before{content:''; position:absolute; left:29px; top:0; bottom:0; width:2px; background:linear-gradient(var(--blue), var(--orange));}
.timeline-item{display:flex; gap:24px; margin-bottom:36px; align-items:flex-start;}
.timeline-num{flex:0 0 60px; height:60px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-family:'Manrope',sans-serif; position:relative; z-index:2;}
.timeline-body h4{color:var(--blue); font-weight:700; margin-bottom:6px;}
.timeline-body p{color:var(--text-grey); margin:0;}

/* ---------- Partner section ---------- */
.partner-section{background:var(--gradient-deep); position:relative; overflow:hidden;}
.partner-section::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(420px 340px at 8% 20%, rgba(255,138,0,0.16), transparent 70%),
    radial-gradient(480px 380px at 95% 85%, rgba(62,123,255,0.28), transparent 70%);
}
.partner-section .container{position:relative; z-index:1;}
.partner-section .section-title{font-size:clamp(1.6rem, 4vw, 2.1rem);}
.partner-section .section-lead{max-width:700px; margin:0 auto 10px; opacity:.92;}

/* ---------- Gallery ---------- */
.gallery-filters{display:flex; flex-wrap:wrap; justify-content:center; gap:10px;}
.filter-btn{border:2px solid var(--bg-tint); background:var(--bg-tint); color:var(--text-dark); padding:8px 20px; border-radius:50px; font-size:.85rem; font-weight:600; transition:.25s;}
.filter-btn:hover, .filter-btn.active{background:var(--blue); border-color:var(--blue); color:#fff;}
.gallery-grid{columns:4 220px; column-gap:16px;}
.gallery-item{break-inside:avoid; margin-bottom:16px; border-radius:var(--radius-md); overflow:hidden; cursor:pointer; box-shadow:var(--shadow-soft); transition:transform .25s;}
.gallery-item:hover{transform:translateY(-4px);}
.gallery-item .ph-card{border-radius:var(--radius-md); min-height:160px;}
.gallery-item.hidden{display:none;}

.lightbox{position:fixed; inset:0; background:rgba(15,23,42,.92); display:none; align-items:center; justify-content:center; z-index:2000; padding:30px;}
.lightbox.open{display:flex;}
.lightbox-content{max-width:600px; width:100%;}
.lightbox-content .ph-card{min-height:340px; border-color:rgba(255,255,255,.3);}
.lightbox-close{position:absolute; top:24px; right:30px; background:none; border:none; color:#fff; font-size:1.8rem;}

/* ---------- Contact ---------- */
.contact-info p{font-size:1rem; margin-bottom:16px; color:var(--text-dark);}
.contact-info i{color:var(--orange); width:24px;}
.map-placeholder{margin-top:20px; height:200px; border-radius:var(--radius-md); background:var(--bg-tint); border:1.5px dashed #b9cdf2; display:flex; align-items:center; justify-content:center; color:var(--blue-deep); font-weight:600;}
.contact-form{background:#fff; border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-soft);}
.contact-form .form-control, .contact-form .form-select{border-radius:10px; border:1.5px solid #e2e8f0; padding:12px 14px;}
.contact-form .form-control:focus, .contact-form .form-select:focus{border-color:var(--blue); box-shadow:0 0 0 3px rgba(15,79,181,.12);}
.form-success{display:none; margin-top:18px; background:#eafaf0; color:#178a4c; padding:14px 18px; border-radius:10px; font-weight:600;}
.form-success.show{display:block;}

/* ---------- Footer ---------- */
footer{background:var(--blue-deep); color:#dbe6fa; padding:70px 0 24px;}
footer h5{color:#fff; font-weight:700; margin-bottom:16px;}
.footer-logo{font-size:1.5rem;}
.footer-sub{letter-spacing:4px; font-size:.7rem; color:var(--orange); font-weight:700; margin-bottom:14px;}
.text-light-grey{color:#a9bde0 !important;}
.footer-links{list-style:none; padding:0;}
.footer-links li{margin-bottom:10px;}
.footer-links a{color:#dbe6fa; transition:color .2s;}
.footer-links a:hover{color:var(--orange);}
.social-icons{display:flex; gap:12px;}
.social-icons a{width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; display:flex; align-items:center; justify-content:center; transition:.25s;}
.social-icons a:hover{background:var(--orange);}
.newsletter-form{display:flex; gap:8px;}
.newsletter-form input{flex:1; border-radius:8px; border:none; padding:10px 14px;}
.newsletter-form button{background:var(--orange); border:none; color:#fff; width:42px; border-radius:8px;}
footer hr{border-color:rgba(255,255,255,.12); margin:36px 0 18px;}
.copyright{font-size:.85rem; color:#a9bde0; text-align:center;}

/* ---------- Sticky buttons ---------- */
.sticky-btn{position:fixed; right:24px; width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.3rem; box-shadow:0 8px 22px rgba(0,0,0,.18); z-index:900; transition:.25s; border:none;}
.whatsapp-btn{background:#25D366; bottom:96px;}
.call-btn{background:var(--blue); bottom:24px;}
.top-btn{background:var(--orange); bottom:168px; opacity:0; visibility:hidden; transform:translateY(10px);}
.top-btn.show{opacity:1; visibility:visible; transform:translateY(0);}
.sticky-btn:hover{transform:scale(1.08);}

/* ---------- Responsive ---------- */
@media (max-width:991px){
  .hero{padding:140px 0 60px;}
  .gallery-grid{columns:2 200px;}
  #navMenu{background:#fff; margin-top:14px; padding:16px; border-radius:14px; box-shadow:var(--shadow-soft);}
  .navbar-nav .nav-item{border-bottom:1px solid var(--bg-tint);}
  .navbar-nav .nav-item:last-child{border-bottom:none; margin-top:10px;}
  .btn-cta{width:100%; justify-content:center;}
}
@media (max-width:575px){
  .gallery-grid{columns:1;}
  .hero-btns{flex-direction:column; align-items:stretch;}
  .hero-btns .btn{width:100%;}
  .sticky-btn{width:48px; height:48px; right:calc(14px + var(--safe-r)); font-size:1.15rem;}
  .whatsapp-btn{bottom:calc(88px + var(--safe-b));}
  .call-btn{bottom:calc(20px + var(--safe-b));}
  .top-btn{bottom:calc(152px + var(--safe-b));}
  .section-pad{padding:64px 0;}
  .section-pad-sm{padding:48px 0 24px;}
  .contact-form{padding:22px;}
  .curric-card, .product-body{padding:24px 18px;}
  .timeline::before{left:23px;}
  .timeline-num{flex:0 0 48px; height:48px; font-size:.9rem;}
  input, select, textarea, button{font-size:16px !important;} /* prevents Android auto-zoom on focus */
}
@media (max-width:400px){
  .hero-title{font-size:1.95rem;}
  .brand-word{font-size:1.25rem;}
  .gallery-filters{gap:6px;}
  .filter-btn{padding:7px 14px; font-size:.78rem;}
}
