/* ===== Brand Theme (TCS Patna) ===== */
:root{
  --indigo:#2B4C7E;
  --indigo-dark:#1B2E4B;
  --accent:#F58025;
  --teal:#2CB1A1;
  --success:#28A745;
  --warning:#FFC107;
  --danger:#DC3545;
  --gray-900:#111827;
  --gray-700:#4B5563;
  --gray-500:#9CA3AF;
  --gray-200:#e5e7eb;
  --gray-100:#F3F4F6;
  --white:#FFFFFF;

  /* Header height vars to keep content clear of fixed header */
  --header-h: 64px;       /* mobile default */
}
@media (min-width: 992px){
  :root{ --header-h: 72px; }  /* desktop header height */
}

/* ===== Base reset / quality-of-life ===== */
*,
*::before,
*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--gray-900);
  line-height: 1.6;
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,h2,h3,h4{ font-family:'Poppins', Inter, sans-serif }

a{ text-decoration:none; color:inherit; }
a:hover{ text-decoration:underline; }

img{ max-width:100%; height:auto; display:block }

/* Make keyboard focus clearly visible */
:focus-visible{
  outline: 3px solid rgba(245,128,37,.6); /* accent */
  outline-offset: 2px;
}

/* Better focus for buttons/links with dark backgrounds */
.btn:focus-visible,
.nav-link-ux:focus-visible,
.mobile-link:focus-visible{
  outline: 3px solid rgba(44,177,161,.6); /* teal */
  outline-offset: 2px;
}

/* Skip link */
.skip-link{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  position:fixed; left:1rem; top:1rem; width:auto; height:auto; z-index:10000;
  background:#000; color:#fff; padding:.5rem .75rem; border-radius:.5rem;
}

/* ===== Modern header (glass + scroll behavior) ===== */
.header-glass{
  --bg: rgba(27,46,75,.35); /* indigo-dark with alpha */
  background: var(--bg);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px); /* iOS Safari */
  transition: background .25s ease, box-shadow .25s ease, padding .25s ease;
  padding-block: .6rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
  z-index: 1040; /* above shapes/offcanvas baseline */
}
.header-glass.scrolled{
  --bg: rgba(27,46,75,.95);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  padding-block: .4rem;
}

/* Fallback if backdrop-filter unsupported */
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))){
  .header-glass{ background: #223553; }
}

/* Brand accent */
.navbar-brand .brand-accent{ color: var(--accent); }

/* Desktop nav links with animated underline */
.nav-link-ux{
  position: relative;
  color: #E7ECF4 !important;
  padding: .5rem .75rem;
  border-radius: .5rem;
  transition: color .2s ease, background .2s ease;
  text-underline-offset: 2px;
}
.nav-link-ux::after{
  content:"";
  position: absolute;
  left: .75rem; right: .75rem; bottom: .25rem;
  height: 2px;
  background: linear-gradient(90deg, var(--accent), var(--teal));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
  border-radius: 2px;
}
.nav-link-ux:hover{ color: #fff !important; }
.nav-link-ux:hover::after{ transform: scaleX(1); }
.nav-link-ux.active{ color: #fff !important; }
.nav-link-ux.active::after{ transform: scaleX(1); }

/* CTA button style */
.btn-pill{ border-radius: 999px; }
.btn-menu{ border: 0; background: transparent; color: #fff; }

/* Offcanvas (mobile menu) */
.offcanvas{ background: #0f172a; color: #e2e8f0; }
.offcanvas .btn-close{ filter: invert(1) contrast(200%); }
.mobile-link{
  padding: .8rem 1rem;
  border-radius: .6rem;
  background: rgba(255,255,255,.04);
  color: #e2e8f0;
  border: 1px solid rgba(255,255,255,.06);
  display:block;
}
.mobile-link:hover{ background: rgba(255,255,255,.08); color: #fff; }

@media (max-width: 991.98px){
  .header-glass{ padding-block: .5rem; }
}

/* ===== Modern Hero (with header clearance + wave) ===== */
.hero-modern{
  position: relative;
  overflow: hidden; /* clip decorative shapes */
  display: flex;
  align-items: center;
  min-height: calc(100vh - var(--header-h));            /* avoid header overlap on mobile */
  padding-top: calc(var(--header-h) + clamp(1.5rem, 4vw, 2.5rem)); /* breathing room under header */
  padding-bottom: clamp(2rem, 4vw, 3rem);
  color:#fff;
  background:
    radial-gradient(1200px 600px at 20% -10%, rgba(44,177,161,.25), transparent 60%),
    radial-gradient(1000px 500px at 90% 10%, rgba(245,128,37,.18), transparent 60%),
    linear-gradient(135deg, var(--indigo) 0%, var(--indigo-dark) 100%);
}

/* Badge */
.hero-badge{
  display:inline-flex; align-items:center;
  padding:.35rem .7rem;
  border-radius:999px;
  background: rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
  font-size:.85rem;
}

/* Pill list under CTA */
.hero-pills{
  list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.6rem 1rem;
}
.hero-pills li{
  display:inline-flex; align-items:center;
  padding:.35rem .7rem;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:.9rem;
}

/* Hero Card (right column) */
.hero-card{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:100%;
  border-radius:1rem;
}

/* Ensure image fills container */
.object-fit-cover{ object-fit:cover; }

/* Glass card on right */
.glass{
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px) saturate(130%);
  -webkit-backdrop-filter: blur(10px) saturate(130%);
  border-radius: 1rem;
}

/* Small icon bubbles */
.icon-bubble{
  width:38px;height:38px;border-radius:999px;
  display:grid;place-items:center;
  background: rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
}

/* Mini stats */
.hero-stat{
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:.75rem;
  padding:.8rem .9rem;
  text-align:center;
  color:#fff;
}
.hero-stat .h4{ font-weight:700; color:#fff; }

/* Decorative shapes */
.hero-shape{
  position:absolute;
  filter: blur(40px);
  opacity:.25;
  pointer-events:none;
  z-index:1; /* behind content */
}
.hero-shape-1{
  width:320px;height:320px;border-radius:50%;
  background: radial-gradient(closest-side, var(--teal), transparent 70%);
  left:-80px; top:-60px;
}
.hero-shape-2{
  width:360px;height:360px;border-radius:50%;
  background: radial-gradient(closest-side, var(--accent), transparent 70%);
  right:-100px; top:10%;
}

/* Wave divider – full width, blends into next section */
.hero-wave{
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  line-height: 0;
  pointer-events: none;
  z-index: 2; /* above bg, below content */
}
.hero-wave svg{
  display: block;
  width: 100%;
  height: 90px;             /* desktop */
  fill: #F3F4F6;            /* matches .bg-section */
}
@media (max-width: 991.98px){
  .hero-wave svg{ height: 60px; }
}

/* Make sure hero content is above wave & shapes */
.hero-modern .container{ position: relative; z-index: 3; }

/* ===== Brand / Trust strip ===== */
.brand-strip{
  padding: 2.25rem 0;
  background: var(--gray-100); /* or var(--gray-100) if you want soft contrast */
}
.brand-kicker{
  font-weight: 600;
  color: var(--indigo);
  letter-spacing: .2px;
}
.brand-divider{
  height: 1px;
  background: linear-gradient(90deg, rgba(17,24,39,.08), rgba(17,24,39,.02));
  border-radius: 1px;
}

/* Rail */
.brand-rail{
  position: relative;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
}
.brand-track{
  display: inline-flex;
  gap: clamp(2rem, 6vw, 4rem);
  align-items: center;
  white-space: nowrap;
  animation: brand-marquee 28s linear infinite;
}
.brand-track-clone{
  position: absolute;
  top: 0; left: 100%;
}

/* Individual brand */
.brand{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--brand-h, 34px);
  opacity: .9;
  transition: transform .25s ease, opacity .25s ease, filter .25s ease;
  filter: grayscale(100%) contrast(110%);
}
.brand img{
  height: 100%;
  width: auto;
  max-width: 160px;
  object-fit: contain;
}
.brand:hover{
  opacity: 1;
  filter: grayscale(0%);
  transform: translateY(-2px);
}

/* Edge fades (for non-mask fallback) */
.brand-fade{
  position: absolute; top: 0; bottom: 0; width: 48px; pointer-events: none;
}
.brand-fade-left{
  left: 0; background: linear-gradient(90deg, #fff, rgba(255,255,255,0));
}
.brand-fade-right{
  right: 0; background: linear-gradient(270deg, #fff, rgba(255,255,255,0));
}

/* Sizes */
@media (min-width: 576px){ :root{ --brand-h: 36px; } }
@media (min-width: 992px){ :root{ --brand-h: 42px; } }

/* Animation */
@keyframes brand-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}

/* Pause on hover for accessibility */
.brand-rail:hover .brand-track{ animation-play-state: paused; }

/* Respect reduced motion: show static, multi-row grid */
@media (prefers-reduced-motion: reduce){
  .brand-track,
  .brand-track-clone{
    animation: none !important;
    position: static !important;
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1.25rem 2rem;
    white-space: normal;
  }
  .brand-rail{ mask-image: none; -webkit-mask-image: none; }
  .brand-fade{ display: none; }
}

/* ===== Services (Modern cards) ===== */
.services-modern{
  background: var(--white);
}

/* Card shell with gradient border and hover lift */
.svc-card{
  position: relative;
  border-radius: 1rem;
  background: linear-gradient(#fff,#fff) padding-box,
              linear-gradient(135deg, rgba(245,128,37,.5), rgba(44,177,161,.5)) border-box;
  border: 1px solid transparent;
  box-shadow: 0 4px 20px rgba(0,0,0,.04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  height: 100%;
}
.svc-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  border-color: transparent; /* keep gradient border */
}
.svc-inner{
  padding: 1.25rem 1.1rem 1.1rem;
}

/* Icon bubble */
.svc-icon{
  width: 52px; height: 52px; border-radius: 14px;
  display: grid; place-items: center;
  background: radial-gradient(120% 120% at 30% 20%, rgba(245,128,37,.20), rgba(44,177,161,.18));
  color: var(--indigo);
  margin-bottom: .75rem;
  border: 1px solid rgba(17,24,39,.06);
}
.svc-icon i{ font-size: 1.35rem; }

/* Feature bullets (chips) */
.svc-bullets{
  list-style: none; padding: 0; margin: 0 0 .25rem;
  display: flex; flex-wrap: wrap; gap: .5rem;
}
.svc-bullets li{
  padding: .25rem .55rem;
  border-radius: 999px;
  background: #f3f6fb;
  border: 1px solid rgba(17,24,39,.06);
  color: #334155;
}

/* Responsive spacing & typography */
@media (min-width: 992px){
  .svc-inner{ padding: 1.4rem 1.2rem 1.2rem; }
}

/* ===== Programs (Student & Career) ===== */
.programs-modern{
  /* soft band to separate from previous section */
  background: linear-gradient(180deg, rgba(43,76,126,.04), rgba(27,46,75,.02));
}

/* Card shell */
.prog-card{
  position: relative;
  display: flex; flex-direction: column;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(17,24,39,.06);
  box-shadow: 0 6px 24px rgba(0,0,0,.04);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.prog-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 48px rgba(0,0,0,.08);
}

/* Gradient head strip + label */
.prog-head{
  position: relative;
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem;
  padding: .9rem 1rem;
  background: linear-gradient(120deg, rgba(245,128,37,.12), rgba(44,177,161,.12));
  border-bottom: 1px solid rgba(17,24,39,.06);
}
.prog-head i{
  font-size: 1.25rem;
  color: var(--indigo);
}
.prog-label{
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .3px;
  padding: .25rem .55rem;
  border-radius: 999px;
  color: #1f2937;
  background: #fff;
  border: 1px solid rgba(17,24,39,.08);
}

/* Content */
.prog-body{ padding: 1rem 1rem .5rem; }
.prog-bullets{
  list-style: none; padding:0; margin:0 0 .75rem;
  display: grid; gap: .35rem;
}
.prog-bullets li{
  display:flex; align-items:center; gap:.5rem;
}
.prog-bullets li::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background: linear-gradient(90deg, var(--accent), var(--teal));
  flex:0 0 8px;
}

/* Chips */
.prog-chips{ display:flex; flex-wrap:wrap; gap:.4rem; }
.prog-chips .chip{
  font-size:.8rem;
  padding:.28rem .6rem;
  border-radius:999px;
  background:#f3f6fb;
  border:1px solid rgba(17,24,39,.08);
  color:#334155;
}

/* Footer CTA */
.prog-foot{
  margin-top:auto;
  padding: .9rem 1rem 1rem;
  border-top: 1px solid rgba(17,24,39,.06);
}

/* Hover focus states */
.prog-card:focus-within{ outline: 3px solid rgba(44,177,161,.4); outline-offset: 2px; }

/* Dark mode friendly tweaks (optional if you adopt dark sections later) */
@media (prefers-color-scheme: dark){
  .programs-modern{ background: linear-gradient(180deg, rgba(43,76,126,.08), rgba(27,46,75,.06)); }
}

/* ===== Outcomes band ===== */
.outcomes-band{
  background:
    radial-gradient(900px 300px at 10% 0%, rgba(44,177,161,.08), transparent 60%),
    radial-gradient(900px 300px at 90% 100%, rgba(245,128,37,.08), transparent 60%),
    linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

/* Stat tile */
.stat-tile{
  background: rgba(255,255,255,.75);
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 1rem;
  padding: 1.1rem .9rem;
  box-shadow: 0 8px 26px rgba(0,0,0,.06);
  backdrop-filter: blur(6px) saturate(120%);
  -webkit-backdrop-filter: blur(6px) saturate(120%);
  transition: transform .25s ease, box-shadow .25s ease;
}
.stat-tile:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
}

.stat-icon{
  width: 44px; height: 44px; margin-inline: auto; margin-bottom: .35rem;
  border-radius: 12px;
  display: grid; place-items: center;
  color: var(--indigo);
  background: radial-gradient(120% 120% at 30% 20%, rgba(245,128,37,.18), rgba(44,177,161,.18));
  border: 1px solid rgba(17,24,39,.06);
}
.stat-icon i{ font-size: 1.25rem; line-height: 1; }

.stat-value{
  font-weight: 800;
  font-size: clamp(1.4rem, 3.8vw, 2rem);
  color: var(--indigo);
  letter-spacing: .5px;
}
.stat-label{
  color: var(--gray-700);
  font-size: .92rem;
}

/* Tighten grid on small screens */
@media (max-width: 575.98px){
  .stat-tile{ padding: .9rem .75rem; }
  .stat-label{ font-size: .88rem; }
}

/* ===== Work / Portfolio ===== */
.work-modern{
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

/* Filter pills */
.work-filter .filter-btn{
  border: 1px solid rgba(17,24,39,.12);
  background: #fff;
  color: #1f2937;
  padding: .4rem .9rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: .95rem;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.work-filter .filter-btn:hover{ box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.work-filter .filter-btn.active{
  color: #fff;
  background: linear-gradient(135deg, var(--indigo), var(--indigo-dark));
  border-color: transparent;
}

/* Case card */
.case-card{
  position: relative;
  border-radius: 1rem;
  border: 1px solid rgba(17,24,39,.08);
  overflow: hidden;
  background:#fff;
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: 0 8px 26px rgba(0,0,0,.06);
}
.case-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 18px 48px rgba(0,0,0,.10);
}
.case-media{
  position: relative;
  overflow: hidden;
}
.case-media img{
  transition: transform .4s ease;
}
.case-card:hover .case-media img{
  transform: scale(1.04);
}
.case-media::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.25) 100%);
  opacity:.6; pointer-events:none; mix-blend-mode:multiply;
}

/* Badge on media */
.case-badge{
  position:absolute; left:.75rem; top:.75rem;
  padding:.25rem .55rem; border-radius:999px;
  font-size:.75rem; font-weight:700; letter-spacing:.2px;
  color:#1f2937; background:#fff; border:1px solid rgba(17,24,39,.10);
}

/* Body */
.case-body{ padding: 1rem 1rem 1.1rem; }
.case-meta{
  display:flex; flex-wrap:wrap; gap:.4rem .5rem; padding:0; margin:0 0 .6rem; list-style:none;
}
.case-meta li{
  padding:.2rem .5rem; border-radius:999px;
  background:#f3f6fb; border:1px solid rgba(17,24,39,.08); color:#334155;
}

/* Utility */
.object-fit-cover{ object-fit: cover; }

/* Hide items on filter (css class toggled by JS) */
.work-item.is-hidden{ display:none !important; }

/* ===== Pricing Modern ===== */
.pricing-modern{
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

/* Tabs */
.pricing-tabs .nav-link{
  border:1px solid rgba(17,24,39,.12);
  background:#fff;
  color:#1f2937;
  border-radius:999px;
  padding:.5rem 1rem;
  font-weight:700;
  transition: all .2s ease;
}
.pricing-tabs .nav-link:hover{ box-shadow:0 8px 24px rgba(0,0,0,.06); }
.pricing-tabs .nav-link.active{
  color:#fff;
  background: linear-gradient(135deg, var(--indigo), var(--indigo-dark));
  border-color:transparent;
}

/* Cards */
.price-card{
  position:relative; display:flex; flex-direction:column;
  border-radius:1rem;
  background:#fff;
  border:1px solid rgba(17,24,39,.08);
  box-shadow:0 8px 26px rgba(0,0,0,.06);
  overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.price-card:hover{
  transform: translateY(-6px);
  box-shadow:0 18px 48px rgba(0,0,0,.10);
}

/* Featured card ribbon */
.price-card.featured .price-ribbon{
  position:absolute; top:12px; right:-38px; transform:rotate(35deg);
  background: linear-gradient(135deg, var(--accent), var(--teal));
  color:#0f172a; font-weight:800; font-size:.7rem; letter-spacing:.4px;
  padding:.35rem 2rem; z-index:2;
}

/* Header */
.price-head{
  padding:1rem 1rem .75rem;
  background: linear-gradient(120deg, rgba(245,128,37,.06), rgba(44,177,161,.06));
  border-bottom:1px solid rgba(17,24,39,.06);
}
.badge-plan{
  display:inline-block; font-size:.75rem; font-weight:800; letter-spacing:.3px;
  padding:.25rem .6rem; border-radius:999px;
  background:#fff; color:#1f2937; border:1px solid rgba(17,24,39,.10);
  margin-bottom:.6rem;
}
.badge-plan.badge-accent{
  background: #fff7ed; /* soft accent */
  border-color: rgba(245,128,37,.35);
}

/* Feature list */
.price-list{
  list-style:none; margin:0; padding:1rem 1rem 0; display:grid; gap:.55rem;
}
.price-list li{
  display:flex; align-items:center; gap:.55rem; color:#374151;
}
.price-list i{ color: var(--teal); }

/* CTA area */
.price-cta{ padding:1rem; margin-top:auto; border-top:1px solid rgba(17,24,39,.06); }

/* Small screens */
@media (max-width: 575.98px){
  .price-head{ padding: .9rem .9rem .6rem; }
  .price-cta{ padding: .9rem; }
}

/* ===== Apply & Pay (Modern) ===== */
.apply-modern .apply-steps{
  position: relative;
  display:flex; justify-content:space-between; align-items:center;
  gap:.5rem; padding:.5rem .25rem 1.25rem;
}
.apply-modern .apply-steps .step{
  position: relative; display:flex; flex-direction:column; align-items:center; gap:.35rem; flex:1;
  color:#475569; text-align:center; min-width:0;
}
.apply-modern .apply-steps .step-label{
  font-size:.75rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.apply-modern .apply-steps .step-dot{
  width:20px; height:20px; border-radius:50%;
  background:#e5e7eb; border:2px solid #cbd5e1;
}
.apply-modern .apply-steps .step.done .step-dot,
.apply-modern .apply-steps .step.active .step-dot{
  background: linear-gradient(135deg, var(--accent), var(--teal));
  border-color: transparent;
}
.apply-modern .apply-steps .step-bar{
  position:absolute; left:0; right:0; bottom:.6rem; height:4px; border-radius:999px;
  background: #e5e7eb;
  overflow:hidden;
}
.apply-modern .apply-steps .step-bar::after{
  content:""; position:absolute; inset:0; width:var(--p,0%); background: linear-gradient(90deg, var(--accent), var(--teal));
}

/* Card */
.apply-card{ border-radius:1rem; overflow:hidden; }
.apply-card .card-body{ background:#fff; }
.apply-card .card-footer{ border-top:1px solid rgba(17,24,39,.06); }

/* Review & Pay boxes */
.review-box, .pay-box{
  border:1px solid rgba(17,24,39,.08);
  border-radius:.75rem; padding:1rem;
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

/* Inputs */
.input-group-text{ background:#f8fafc; }

/* Floating states on focus */
.form-control:focus, .form-select:focus{
  border-color: rgba(44,177,161,.6);
  box-shadow: 0 0 0 .2rem rgba(44,177,161,.15);
}

/* Buttons row spacing on mobile */
@media (max-width: 575.98px){
  .apply-modern .apply-steps{ padding-bottom: 1rem; }
}

/* ===== Testimonials Modern ===== */
.testimonials-modern{
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

.tstl-shell{
  position: relative;
}

.tstl-track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  gap: clamp(1rem, 2.5vw, 1.25rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: .5rem .25rem 1rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.tstl-track::-webkit-scrollbar{ display:none; }

/* Card */
.tstl-card{
  scroll-snap-align: start;
  position: relative;
  background: linear-gradient(#fff,#fff) padding-box,
              linear-gradient(135deg, rgba(245,128,37,.5), rgba(44,177,161,.5)) border-box;
  border: 1px solid transparent;
  border-radius: 1rem;
  padding: 1rem 1rem 0.9rem;
  box-shadow: 0 8px 26px rgba(0,0,0,.06);
  min-height: 210px;
  display: flex; flex-direction: column; justify-content: space-between;
  transition: transform .25s ease, box-shadow .25s ease;
}
.tstl-card:hover{ transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,.08); }

.tstl-quote-icon{
  position: absolute; top: .6rem; right: .75rem;
  color: var(--indigo); opacity: .25; font-size: 1.6rem;
}

.tstl-quote{
  margin: 0 0 .9rem 0;
  font-size: .98rem;
  color: #111827;
}

.tstl-meta{
  display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: center;
  padding-top: .35rem; border-top: 1px dashed rgba(17,24,39,.12);
}

.tstl-avatar{
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center; font-weight: 700; color: #0f172a;
  background: linear-gradient(135deg, rgba(245,128,37,.22), rgba(44,177,161,.22));
  border: 1px solid rgba(17,24,39,.08);
}
.tstl-avatar::after{
  content: attr(data-initials);
}

.tstl-name{ font-weight: 700; }
.tstl-role{ color: var(--gray-700); }

.tstl-stars i{ color: #f59e0b; font-size: .9rem; }

/* Controls */
.tstl-btn{
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 38px; height: 38px; border-radius: 999px; border: 1px solid rgba(17,24,39,.12);
  background: #fff; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.08);
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.tstl-btn:hover{ transform: translateY(-50%) scale(1.05); box-shadow: 0 12px 28px rgba(0,0,0,.10); }
.tstl-btn.prev{ left: -6px; }
.tstl-btn.next{ right: -6px; }

@media (max-width: 575.98px){
  .tstl-btn.prev{ left: 4px; }
  .tstl-btn.next{ right: 4px; }
}

/* Edge fades */
.tstl-fade{
  position: absolute; top: 0; bottom: 0; width: 40px; pointer-events: none;
}
.tstl-fade.left{ left: 0; background: linear-gradient(90deg, var(--white), rgba(255,255,255,0)); }
.tstl-fade.right{ right: 0; background: linear-gradient(270deg, var(--white), rgba(255,255,255,0)); }

/* Dots */
.tstl-dots{
  display: flex; justify-content: center; gap: .5rem; margin-top: .75rem;
}
.tstl-dots button{
  width: 8px; height: 8px; border-radius: 50%; border: 0; background: #cbd5e1;
}
.tstl-dots button.active{ background: linear-gradient(135deg, var(--accent), var(--teal)); }

/* Reduced motion: no scroll snapping animation */
@media (prefers-reduced-motion: reduce){
  .tstl-track{ scroll-behavior: auto !important; }
}

/* ===== Blog Modern ===== */
.blog-modern{
  position: relative;
}

.blog-card{
  border: 0;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 8px 26px rgba(0,0,0,.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease;
}
.blog-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}

.blog-img-wrapper{
  position: relative;
  overflow: hidden;
}
.blog-img{
  width: 100%; height: 200px; object-fit: cover;
  transition: transform .4s ease;
}
.blog-card:hover .blog-img{
  transform: scale(1.05);
}

.blog-tag{
  position: absolute; bottom: 10px; left: 10px;
  background: linear-gradient(135deg, var(--accent), var(--teal));
  color: #fff; font-size: .75rem; font-weight: 600;
  padding: .25rem .6rem; border-radius: 999px;
}

.blog-body{
  padding: 1rem 1.1rem 1.25rem;
  display: flex; flex-direction: column; gap: .5rem;
}

.blog-title{
  font-weight: 700; color: var(--indigo-dark);
  margin-bottom: .2rem;
}
.blog-excerpt{ color: var(--gray-700); line-height: 1.5; }
.blog-meta{ font-size: .8rem; display: flex; gap: .4rem; flex-wrap: wrap; }

.blog-meta i{ color: var(--gray-500); margin-right: .25rem; }

/* Responsive */
@media (max-width: 575.98px){
  .blog-img{ height: 160px; }
}

/* ===== FAQ Modern ===== */
.faq-modern{
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}

.faq-accordion .accordion-item{
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 1rem;
  overflow: hidden;
  background: linear-gradient(#fff,#fff) padding-box,
              linear-gradient(135deg, rgba(245,128,37,.35), rgba(44,177,161,.35)) border-box;
  border: 1px solid transparent;
  box-shadow: 0 8px 26px rgba(0,0,0,.06);
  transition: transform .25s ease, box-shadow .25s ease;
  margin-bottom: 1rem;
}
.faq-accordion .accordion-item:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
}

.faq-accordion .accordion-button{
  background: #fff;
  font-weight: 700;
  color: var(--indigo-dark);
  padding: 1rem 1.1rem;
}
.faq-accordion .accordion-button:focus{
  box-shadow: none;
  outline: 3px solid rgba(44,177,161,.25);
  outline-offset: 0;
}
.faq-accordion .accordion-button:not(.collapsed){
  background: linear-gradient(120deg, rgba(245,128,37,.08), rgba(44,177,161,.08));
  color: var(--indigo);
}

.faq-accordion .accordion-body{
  background: #fff;
  padding: 1rem 1.1rem 1.2rem;
  color: #374151;
  border-top: 1px dashed rgba(17,24,39,.12);
}

/* icon accent helper */
.text-accent{ color: var(--accent) !important; }

/* tighter spacing on mobile */
@media (max-width: 575.98px){
  .faq-accordion .accordion-button{ padding: .85rem 1rem; }
  .faq-accordion .accordion-body{ padding: .9rem 1rem 1rem; }
}

/* ===== Contact Modern ===== */
.contact-modern .contact-card{
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 14px 40px rgba(0,0,0,.08);
}

.contact-modern .contact-head{
  padding: 1rem 1.1rem;
  background: linear-gradient(120deg, rgba(245,128,37,.10), rgba(44,177,161,.10));
  border-bottom: 1px solid rgba(17,24,39,.08);
}
.contact-modern .contact-body{ padding: 1rem 1.1rem 1.25rem; }

/* Icon inputs */
.input-with-icon{ position: relative; }
.input-with-icon > i{
  position: absolute; left: .65rem; top: 50%; transform: translateY(-50%);
  color: var(--gray-500); pointer-events: none;
}
.input-with-icon .form-control,
.input-with-icon .form-select{
  padding-left: 2rem;
}

/* Map + info */
.info-card{ border-radius: 1rem; border: 1px solid rgba(17,24,39,.08); }
.contact-list li{
  display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem;
}
.contact-list i{ color: var(--indigo); }

.map-frame{
  background: #eef2f7; border: 1px solid rgba(17,24,39,.06);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.5);
}
.map-frame iframe{ width: 100%; height: 100%; border: 0; border-radius: .5rem; }

/* Newsletter */
.newsletter{
  border: 1px solid rgba(17,24,39,.08);
  border-radius: 1rem;
  overflow: hidden;
}
.newsletter .card-body{
  background: linear-gradient(180deg, rgba(43,76,126,.03), rgba(27,46,75,.02));
}
.news-form .form-control{ min-width: 220px; }

/* Button loading state */
#contactSubmit.loading .btn-text{ display: none; }
#contactSubmit.loading .spinner-border{ display: inline-block !important; }

/* Mobile tweaks */
@media (max-width: 575.98px){
  .contact-modern .contact-head{ padding: .9rem 1rem; }
  .contact-modern .contact-body{ padding: .9rem 1rem 1.1rem; }
}

/* ===== Footer Modern ===== */
.footer-modern{
  background:
    radial-gradient(1200px 600px at 0% 0%, rgba(44,177,161,.12), transparent 60%),
    radial-gradient(1000px 500px at 100% 100%, rgba(245,128,37,.10), transparent 60%),
    var(--indigo-dark);
  position: relative;
}

/* CTA band */
.footer-cta{
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(120deg, rgba(245,128,37,.12), rgba(44,177,161,.12));
  color: #0f172a;
  padding: 1rem 0;
}
.footer-cta .btn-outline-light{
  border-color: rgba(255,255,255,.7);
  color: #fff;
}
.footer-cta .btn-outline-light:hover{ background:#fff; color: var(--indigo-dark); }

/* Links & text */
.footer-modern .footer-links a{
  color: #d1d5db;
  display: inline-block;
  padding: .2rem 0;
  text-decoration: none;
}
.footer-modern .footer-links a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Contact list */
.footer-contact li{
  display:flex; align-items:center; gap:.5rem; margin-bottom:.35rem;
}
.footer-contact i{ color: #c7d2fe; } /* soft indigo tint */
.footer-contact a{ color: #e5e7eb; }
.footer-contact a:hover{ color: #fff; }

/* Social icon pills */
.soc-pill{
  width: 36px; height: 36px; border-radius: 999px;
  display: grid; place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.05);
  color: #e5e7eb;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.soc-pill:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.28);
  color: #fff;
}

/* Divider */
.footer-rule{ border-color: rgba(255,255,255,.16) !important; }

/* Mobile spacing */
@media (max-width: 575.98px){
  .footer-cta .container{ text-align:center; }
}


/* ===== Sections ===== */
.py-6{ padding-top:4rem; padding-bottom:4rem; }
.bg-section{ background: var(--gray-100); }
.section-head{ max-width:760px; margin:0 auto 2rem; }
.section-title{ color:var(--indigo); font-weight:700; margin:0 0 .25rem; }
.section-subtitle{ color:var(--gray-700); margin:0; }

/* ===== Cards ===== */
.card{
  border:1px solid var(--gray-200);
  border-radius:.75rem;
}
.card-hover{ transition: transform .25s ease, box-shadow .25s ease; }
.card-hover:hover{
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
}
.card-quote{
  border:1px solid var(--gray-200);
  border-radius:.75rem;
}

/* ===== Buttons (theme) ===== */
.btn-primary{ background:var(--indigo); border-color:var(--indigo); }
.btn-primary:hover{ background:#234063; border-color:#234063; }
.btn-accent{ background:var(--accent); border-color:var(--accent); color:#1b1b1b; }
.btn-accent:hover{ background:#d86912; border-color:#d86912; color:#111; }
.text-teal{ color:var(--teal)!important; }
.bg-accent{ background:var(--accent)!important; }

/* Improve outline buttons visibility on dark */
.btn-outline-primary{
  border-color: var(--indigo);
  color: var(--indigo);
}
.btn-outline-primary:hover{
  background: var(--indigo);
  color: #fff;
}

/* ===== Stats (generic blocks elsewhere) ===== */
.stat-value{ font-size:2rem; font-weight:700; color:var(--indigo); }
.stat-label{ font-size:.9rem; color:var(--gray-700); }

/* ===== Footer ===== */
.footer{ background: var(--indigo-dark); color:#e5e7eb; }
.footer a{ color:#d1d5db; }
.footer a:hover{ color:#fff; }

/* ===== Floating WhatsApp ===== */
.whatsapp-fab{
  position:fixed; right:16px; bottom:16px; display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; font-size:28px; z-index:999;
  box-shadow:0 10px 20px rgba(0,0,0,.2);
  transition: transform .2s ease;
}
.whatsapp-fab:hover{ transform:translateY(-2px); }

/* ===== Back to top ===== */
.back-to-top{
  position:fixed; right:16px; bottom:86px; width:44px; height:44px; border-radius:50%;
  background:var(--indigo); color:#fff; border:none; display:grid; place-items:center;
  opacity:0; visibility:hidden; transition: opacity .2s ease, visibility .2s ease, background .2s ease; z-index:998;
}
.back-to-top.show{ opacity:1; visibility:visible; }
.back-to-top:hover{ background:#234063; }

/* ===== Forms ===== */
.form-label{ font-weight:600; color:var(--gray-900); }
.form-control, .form-select{ border-radius:.5rem; }

/* ===== Responsive tweaks ===== */
@media (max-width: 575.98px){
  .hero-modern .display-5{ font-size:1.85rem; }
  .hero-card{ margin-top:.5rem; } /* if used */
}

/* ===== Reduced motion for accessibility ===== */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hero-shape{ transition:none !important; animation:none !important; }
}
