:root {
  --brand: #7D5DE1;
  --accent: #F00203;
  --dark: #0f172a;
  --muted: #64748b;
}

body {
  scroll-behavior: smooth;
}

html, body {
  max-width: 100%;
  overflow-x: hidden;
}


/* Common */
.bg-brand { background: var(--brand) !important; }
.text-brand { color: var(--brand) !important; }
.badge-accent { background: var(--accent); }

.shadow-soft { box-shadow: 0 10px 25px rgba(2, 8, 23, .08); }

.section { padding: 72px 0; }

/* ================= NAVBAR ================= */

.navbar-main{
  font-size: .95rem;
}

.brand-logo {
  height: 45px;
  width: auto;
  display: block;
}

/* Link hover underline (desktop) */
.nav-underline {
  position: relative;
  font-weight: 500;
  color: #0f172a !important;
}
.nav-underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 0;
  height: 2px;
  background: var(--brand);
  transition: width .2s ease;
}
.nav-underline:hover::after,
.nav-underline.active::after {
  width: 100%;
}

/* Primary CTA (small) */
.btn-cta {
  background: var(--brand);
  border: none;
  color: #fff !important;
  font-weight: 600;
  padding: .55rem 1rem;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(125,93,225,.25);
  transition: box-shadow .2s ease, transform .06s ease;
}
.btn-cta:hover,
.btn-cta:focus,
.btn-cta:active {
  background: var(--brand) !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(125,93,225,.35);
  transform: translateY(-1px);
}

/* Make any .bg-brand button keep its color on hover/focus too */
.bg-brand:hover,
.bg-brand:focus,
.bg-brand:active {
  background: var(--brand) !important;
  color: #fff !important;
}

/* Modern toggler */
.nav-toggler-modern{
  border-radius: 999px;
  border-color: rgba(15,23,42,.08);
  padding: .3rem .55rem;
  background-color: #f9fafb;
}
.nav-toggler-modern:focus{
  box-shadow: 0 0 0 .15rem rgba(148,163,184,.4);
}

/* Make sure toggler icon is visible on light bg */
.navbar-toggler-icon{
  filter: invert(0.3);
}

/* Desktop fine-tuning */
.nav-main-menu .nav-link{
  padding-inline: .75rem;
}

/* ===== Mobile Navbar Enhancement ===== */
@media (max-width: 991.98px){
  /* Collapsed menu as card */
  #mainNav{
    margin-top: .5rem;
    padding: .75rem .9rem 1rem;
    background: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 14px 30px rgba(15,23,42,.12);
  }

  .nav-main-menu{
    margin-top: .25rem;
    border-top: 1px solid #e5e7eb;
    padding-top: .5rem;
  }

  .nav-main-menu .nav-item{
    width: 100%;
  }

  .nav-main-menu .nav-link{
    width: 100%;
    border-radius: .8rem;
    padding: .65rem .8rem;
    margin-bottom: .2rem;
    font-weight: 500;
  }

  /* On mobile, use background instead of underline animation */
  .nav-main-menu .nav-link.nav-underline::after{
    display: none;
  }
  .nav-main-menu .nav-link:hover,
  .nav-main-menu .nav-link.active{
    background: #f3f4ff;
    color: var(--brand) !important;
  }

  /* Mobile CTAs under menu */
  .nav-mobile-ctas .btn{
    border-radius: .9rem;
    font-weight: 600;
  }
}



/* ================= HERO (Modern) ================= */

.hero-modern { position: relative; padding-top: 64px; }
.hero-modern .hero-title{
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: .65rem;
}
.hero-modern .hero-subtitle{
  font-size: clamp(16px, 2.1vw, 20px);
  color: #475569;
  margin-bottom: 1.1rem;
}

/* Subtle gradient background + decorative blob */
.hero-bg{
  position:absolute; inset:0;
  background:
    radial-gradient(60rem 40rem at 20% -10%, rgba(125,93,225,.15), rgba(255,255,255,0) 60%),
    radial-gradient(50rem 30rem at 100% 30%, rgba(98,0,255,.08), rgba(255,255,255,0) 60%),
    linear-gradient(180deg, rgba(247,248,255,.7), transparent 35%);
  z-index:-1;
}

/* Gradient accent for a word */
.text-gradient{
  background: linear-gradient(90deg, #7D5DE1 0%, #9a7bff 60%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Chips */
.chip{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.4rem .7rem; border-radius:999px;
  font-size:.85rem; font-weight:600;
  border:1px solid #e6e9f3;
  color:#0f172a; background:#fff;
}
.chip-success{ border-color: rgba(34,197,94,.25); color:#065f46; background:rgba(34,197,94,.08); }
.chip-light{ background:#fff; }

/* CTA Large */
.btn-cta-lg{
  background: var(--brand);
  color:#fff !important;
  border:none; border-radius: 999px;
  padding:.8rem 1.25rem; font-weight:700;
  box-shadow:0 12px 28px rgba(125,93,225,.25);
  transition: box-shadow .2s ease, transform .06s ease;
}
.btn-cta-lg:hover,
.btn-cta-lg:focus,
.btn-cta-lg:active{
  background: var(--brand) !important;
  color:#fff !important;
  box-shadow:0 14px 30px rgba(125,93,225,.33);
  transform: translateY(-1px);
}

/* Little separator dot */
.dot{ width:6px; height:6px; border-radius:50%; background:#cbd5e1; display:inline-block; }

/* Trust bar */
.trustbar{
  display:grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap:.6rem;
}
@media (min-width: 768px){
  .trustbar{ grid-template-columns: repeat(4, minmax(0,1fr)); }
}
.trust-item{
  background:#fff; border:1px solid #eef1f7; border-radius:12px;
  padding:.6rem .75rem; font-size:.9rem; color:#0f172a;
  display:flex; align-items:center; gap:.5rem;
}
.trust-item i{ color: var(--brand); }

/* Lead card polish */
.lead-card{ border-radius:18px; }
.bg-brand-subtle{ background: rgba(125,93,225,.12); }
.lead-card .form-control,
.lead-card .form-select{ border-radius: 10px; }
.lead-card .form-control:focus,
.lead-card .form-select:focus{
  border-color: var(--brand);
  box-shadow: 0 0 0 .2rem rgba(125,93,225,.15);
}

/* Hero spacing on small screens */
@media (max-width: 991.98px){
  .hero-modern .lead-card{ margin-top: .5rem; }
}

/* Offer strip inside card */
.bg-light-subtle{ background: #f8fafc; }

/* ================= Cards, badges, misc ================= */

.guarantee-badge {
  border: 2px dashed var(--accent);
  padding: .5rem .75rem;
  border-radius: 999px;
  font-weight: 600;
}

.price-card { border: 1px solid #e5e7eb; border-radius: 16px; }
.price-card.highlight {
  border-color: var(--brand);
  box-shadow: 0 8px 24px rgba(125, 93, 225, .18);
}

.logo-strip img {
  height: 38px; margin: 0 16px; opacity: .9; filter: grayscale(20%);
}

/* Sticky CTA */
.sticky-cta {
  position: fixed; inset: auto 0 16px; z-index: 1030; pointer-events: none;
}
.sticky-cta .btn { pointer-events: auto; }

/* Form Required Mark */
.required::after { content: " *"; color: #d00; }

/* Footer */
footer { background: #0b1220; color: #cbd5e1; }

/* ================= ABOUT / PROGRAM ================= */

.about-modern{ position: relative; }
.about-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(40rem 24rem at 80% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(30rem 24rem at -10% 100%, rgba(98,0,255,.06), rgba(255,255,255,0) 60%);
}
.kicker{
  display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:#64748b; margin-bottom:.5rem;
}
.about-title{
  font-size: clamp(26px, 3.2vw, 36px);
  line-height: 1.15; letter-spacing: -0.01em; margin-bottom: .5rem;
}
.about-text{ color:#475569; font-size:1rem; }

/* Feature list with icons */
.feature-list{
  list-style:none; padding:0; margin: 1rem 0 0;
  display:flex; flex-direction:column; gap:.8rem;
}
.feature-list li{
  display:flex; gap:.75rem; align-items:flex-start;
  background:#fff; border:1px solid #eef1f7; border-radius:12px; padding:.75rem .9rem;
}
.feature-list i{
  font-size:1.1rem; color: var(--brand);
  width:1.6rem; height:1.6rem; display:flex; align-items:center; justify-content:center;
}
.feature-list h6{ margin:0; font-weight:700; }
.feature-list p{ margin:.15rem 0 0; color:#64748b; font-size:.92rem; }

/* Snapshot card */
.snapshot{ border-radius:18px; }
.stat-box{
  display:flex; align-items:center; gap:.75rem;
  border:1px solid #eef1f7; border-radius:12px; padding:.9rem .9rem; background:#fff;
}
.stat-icon{
  width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background: rgba(125,93,225,.12); color: var(--brand);
}
.stat-meta small{ display:block; color:#64748b; }
.stat-meta strong{ display:block; font-weight:700; color:#0f172a; font-size:.98rem; }
.divider{ height:1px; background: linear-gradient(90deg, transparent, #e9edf5, transparent); }


/* ===== CURRICULUM Modern ===== */
.curriculum-modern {
  position: relative;
  background: #f9faff;
}
.curriculum-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(40rem 24rem at 90% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(30rem 20rem at 0% 100%, rgba(98,0,255,.05), rgba(255,255,255,0) 70%);
}

/* Section Title */
.section-title {
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Card Style */
.curriculum-card {
  background: #fff;
  border-radius: 18px;
  padding: 2rem 1.5rem;
  border: 1px solid #eef1f7;
  box-shadow: 0 6px 20px rgba(15,23,42,.05);
  transition: all .3s ease;
  text-align: left;
}
.curriculum-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(125,93,225,.15);
  border-color: rgba(125,93,225,.3);
}

/* Icon */
.icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(125,93,225,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  font-size: 1.6rem;
  margin-bottom: 1rem;
  transition: background .3s ease, transform .3s ease;
}
.curriculum-card:hover .icon-wrap {
  background: var(--brand);
  color: #fff;
  transform: scale(1.05);
}

/* Typography inside card */
.curriculum-card h5 {
  font-size: .95rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--brand);
  margin-bottom: 0.25rem;
}
.curriculum-card h6 {
  font-size: 1.1rem;
  font-weight: 700;
}

/* Responsive grid tweaks */
@media (max-width: 575.98px){
  .curriculum-card {
    text-align: center;
  }
  .icon-wrap {
    margin-left: auto;
    margin-right: auto;
  }
}

/* ===== PLACEMENT PARTNERS ===== */
.partners-modern{
  position: relative;
  background: #ffffff;
}
.partners-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(42rem 26rem at 85% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(36rem 22rem at -5% 100%, rgba(98,0,255,.06), rgba(255,255,255,0) 65%);
}

/* Grid: auto-fit responsive columns */
.partners-grid{
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 576px){
  .partners-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 992px){
  .partners-grid{ grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* Logo card + uniform image sizing */
.logo-card{
  background: #fff;
  border: 1px solid #eef1f7;
  border-radius: 14px;
  padding: 14px 16px;
  display: flex; align-items: center; justify-content: center;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, filter .25s ease;
  box-shadow: 0 6px 18px rgba(2,8,23,.04);
  /* grayscale by default for a classy strip */
  filter: grayscale(100%) contrast(95%);
}
.logo-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(125,93,225,.15);
  border-color: rgba(125,93,225,.35);
  filter: none; /* restore color on hover */
}

/* The magic: every logo appears the same visual size */
.logo-img{
  display:block;
  max-width: 100%;
  height: 44px;               /* uniform height for all logos */
  object-fit: contain;        /* preserve aspect ratio, no cropping */
  image-rendering: -webkit-optimize-contrast;
}

/* Section title reuse */
.section-title{
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* ===== PRICING Modern ===== */
.pricing-modern { position: relative; }
.pricing-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(46rem 28rem at 85% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(32rem 22rem at 0% 100%, rgba(98,0,255,.06), rgba(255,255,255,0) 65%);
}

/* Cards */
.pricing-card{
  position: relative;
  background:#fff;
  border:1px solid #eef1f7;
  border-radius:18px;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: visible; /* let ribbon sit outside */
}
.pricing-card:hover{
  transform: translateY(-6px);
  box-shadow:0 14px 34px rgba(125,93,225,.18);
  border-color: rgba(125,93,225,.35);
}
.pricing-card.highlight{
  border-color: var(--brand);
  box-shadow:0 14px 34px rgba(125,93,225,.22);
}

/* Ribbons sit just above the card border (no overlap with headings) */
.ribbon{
  position:absolute;
  top: -12px;            /* move above card */
  left: 18px;
  padding:.25rem .6rem;
  border-radius:999px;
  font-size:.75rem; font-weight:700;
  z-index: 3;
  box-shadow: 0 6px 16px rgba(2,8,23,.12);
}
.ribbon-offer{ background:#0ea5e9; color:#fff; }
.ribbon-best{ background: var(--brand); color:#fff; }

.price-wrap{ display:flex; align-items:end; gap:.65rem; }
.price{ font-size: clamp(28px, 4vw, 40px); line-height:1; font-weight:800; letter-spacing:-0.02em; color:#0f172a; }
.cut{ color:#94a3b8; text-decoration: line-through; font-weight:600; }

.feature-check{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; }
.feature-check li{ display:flex; align-items:flex-start; gap:.5rem; color:#475569; font-size:.95rem; }
.feature-check i{ color:#16a34a; margin-top:.15rem; }

/* Chips */
.chip{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.35rem .65rem; border-radius:999px; font-size:.8rem; font-weight:700;
  border:1px solid #e6e9f3; color:#0f172a; background:#fff;
}
.chip-success{ border-color: rgba(34,197,94,.25); color:#065f46; background:rgba(34,197,94,.1); }

/* Keep CTAs consistent */
.pricing-card .btn-cta-lg{ width:100%; }
.pricing-card .btn-outline-dark{ border-radius:999px; }

/* Give the body extra top padding so headings never sit under badges */
.pricing-card .card-body{
  padding-top: 3.25rem !important; /* was 1.5rem via p-4; this clears ribbons & chips */
}





/* ===== CAREER SERVICES ===== */
.career-modern{ position:relative; }
.career-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(42rem 26rem at 15% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(36rem 22rem at 105% 100%, rgba(98,0,255,.06), rgba(255,255,255,0) 65%);
}

/* Grid of 4 feature cards */
.features-grid{
  display:grid;
  gap:16px;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 575.98px){
  .features-grid{ grid-template-columns: 1fr; }
}

.feature-card{
  background:#fff;
  border:1px solid #eef1f7;
  border-radius:16px;
  padding:1.1rem 1rem;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.feature-card:hover{
  transform: translateY(-6px);
  box-shadow:0 14px 34px rgba(125,93,225,.18);
  border-color: rgba(125,93,225,.35);
}
.feature-card .icon{
  width:44px; height:44px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(125,93,225,.12);
  color: var(--brand);
  font-size:1.2rem;
  margin-bottom:.5rem;
}
.feature-card h6{ font-weight:700; margin-bottom:.25rem; }

/* Steps rail */
.steps-card{ border-radius:18px; }
.step{ position:relative; display:flex; gap:.8rem; padding-left:.2rem; margin-bottom:1.1rem; }
.step .num{
  flex:0 0 auto;
  width:32px; height:32px; border-radius:999px;
  background: var(--brand);
  color:#fff; font-weight:800; font-size:.9rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 18px rgba(125,93,225,.25);
}
.step .meta strong{ display:block; color:#0f172a; }

/* Guarantee panel */
.guarantee-panel{
  margin-top:12px;
  border:2px dashed var(--accent);
  border-radius:16px;
  padding:1rem 1rem;
  background: #fff;
}
.guarantee-panel i{ color: var(--brand); }
.guarantee-panel .btn{ margin-top:.25rem; }

/* Reuse */
.kicker{
  display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:#64748b; margin-bottom:.5rem;
}
.section-title{
  font-size: clamp(26px, 3vw, 36px);
  line-height: 1.15; font-weight: 700; letter-spacing:-0.01em;
}




/* ===== LEAD / CONTACT ===== */
.lead-modern{
  position: relative;
  background: #f9fafb;
}
.lead-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(42rem 26rem at 10% 0%, rgba(125,93,225,.10), rgba(255,255,255,0) 60%),
    radial-gradient(36rem 22rem at 100% 100%, rgba(98,0,255,.06), rgba(255,255,255,0) 65%);
}

/* Main form card */
.lead-card-main{
  border-radius:18px;
}
.lead-form .form-control,
.lead-form .form-select{
  border-radius:10px;
}
.lead-form .form-control:focus,
.lead-form .form-select:focus{
  border-color: var(--brand);
  box-shadow: 0 0 0 .2rem rgba(125,93,225,.15);
}

/* Plan pill radios */
.plan-options{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.plan-pill{
  display:flex;
  align-items:center;
  gap:.7rem;
  padding:.6rem .75rem;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#fff;
  cursor:pointer;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.plan-pill .form-check-input{
  margin-left:0;
  margin-right:.4rem;
}
.plan-pill .pill-content{ display:flex; flex-direction:column; }
.plan-pill .pill-title{ font-weight:600; font-size:.95rem; }
.plan-pill .pill-sub{ font-size:.8rem; color:#64748b; }

/* selected state using :has (graceful fallback if not supported) */
.plan-pill:has(.form-check-input:checked){
  border-color: var(--brand);
  box-shadow: 0 0 0 .14rem rgba(125,93,225,.15);
  background: rgba(125,93,225,.03);
}

/* Right side map card */
.map-card{
  border-radius:18px;
}
.map-wrapper iframe{
  width:100%;
  height:260px;
  min-height:220px;
}
@media (min-width: 992px){
  .map-wrapper iframe{ height:300px; }
}
.contact-details div{ margin-bottom:.1rem; }

/* Contact chips under map */
.contact-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.contact-chips .chip{
  font-size:.85rem;
}

/* Make CTA row nice on mobile */
@media (max-width: 767.98px){
  .lead-form .btn{
    width:100%;
  }
}

/* ===== FOOTER ===== */
.footer-main{
  background: radial-gradient(circle at top left, #111827 0, #020617 55%, #020617 100%);
  color:#cbd5e1;
  border-top:1px solid rgba(148,163,184,.25);
  margin-top:0;
}

.footer-logo{
  height:32px;
  width:auto;
}

.footer-heading{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:700;
  color:#e5e7eb;
  margin-bottom:.6rem;
}

.text-footer-muted{
  color:#9ca3af;
}

.footer-link,
.footer-link-inline{
  display:inline-block;
  font-size:.9rem;
  color:#e5e7eb;
  text-decoration:none;
  opacity:.8;
  transition:opacity .2s ease, color .2s ease, transform .15s ease;
}
.footer-link{
  margin-bottom:.25rem;
}
.footer-link:hover,
.footer-link-inline:hover{
  opacity:1;
  color:#ffffff;
  transform: translateX(2px);
}

/* Social icons */
.footer-social{
  width:32px;
  height:32px;
  border-radius:999px;
  background:rgba(148,163,184,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#e5e7eb;
  font-size:1.1rem;
  text-decoration:none;
  transition: background .2s ease, transform .15s ease, color .2s ease;
}
.footer-social:hover{
  background: var(--brand);
  color:#fff;
  transform: translateY(-2px);
}

.footer-divider{
  border-color: rgba(148,163,184,.28);
}

/* Responsive tweaks */
@media (max-width: 767.98px){
  .footer-main .text-md-end{
    text-align:left !important;
  }
}



/* ===== Sticky CTA (Modern Mobile Bar) ===== */
.sticky-cta-wrapper{
  position: fixed;
  bottom: 18px;
  left: 0;
  right: 0;
  transform: none;              /* remove centering transform */
  width: 100%;
  max-width: 100%;              /* no extra width beyond viewport */
  padding: 0 12px;
  z-index: 2000;
  pointer-events: none;         /* container shouldn't block taps outside */
}

.sticky-cta-inner{
  max-width: 450px;
  margin: 0 auto;               /* center the inner card */
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(14px) saturate(180%);
  -webkit-backdrop-filter: blur(14px) saturate(180%);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.15);
  padding: 8px;
  display: flex;
  gap: 8px;
  pointer-events: auto;         /* buttons are clickable */
}

/* CTA Buttons */
.cta-btn{
  flex: 1;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 700;
  font-size: .95rem;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .2s ease;
  color: #fff !important;
}

/* Apply Button */
.cta-apply{
  background: var(--brand);
  box-shadow: 0 6px 14px rgba(125,93,225,.25);
}
.cta-apply:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 18px rgba(125,93,225,.35);
}

/* WhatsApp Button */
.cta-whatsapp{
  background: #25D366;
  box-shadow: 0 6px 14px rgba(37,211,102,.25);
}
.cta-whatsapp:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 18px rgba(37,211,102,.35);
}
/* Hides sticky CTA on larger screens */
@media (min-width: 992px){
  .sticky-cta-wrapper{ display:none !important; }
}



/* ===== Promo Modal (Welcome Popup) ===== */
.promo-modal .modal-dialog{
  max-width: 720px;
}

.promo-modal .modal-content{
  border-radius: 24px;
  border: none;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(15,23,42,.45);
}

.promo-modal .modal-header{
  border-bottom: none;
  padding: 1rem 1.5rem 0.25rem;
}

.promo-modal .modal-body{
  padding: 0.75rem 1.5rem 1.5rem;
}

@media (min-width: 768px){
  .promo-modal .modal-header{
    padding: 1.25rem 2rem 0.25rem;
  }
  .promo-modal .modal-body{
    padding: 0.75rem 2rem 2rem;
  }
}

.promo-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.35rem .7rem;
  border-radius:999px;
  font-size:.75rem;
  font-weight:700;
  background: rgba(34,197,94,.12);
  color:#166534;
}
.promo-badge i{
  font-size:1rem;
}

.promo-modal-title{
  font-size: 1.4rem;
  font-weight: 700;
  margin-top: .5rem;
  margin-bottom: .35rem;
}

.promo-sub{
  font-size:.9rem;
  color:#64748b;
}

.promo-highlight{
  background: #f9fafb;
  border-radius: 14px;
  padding:.75rem .9rem;
  font-size:.9rem;
  margin-top: .75rem;
}
.promo-highlight i{
  color: var(--brand);
}

.promo-price-row{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-top:.35rem;
  font-size:.9rem;
}
.promo-price-row strong{
  font-weight:700;
}

@media (min-width: 576px){
  .promo-price-row{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:.75rem;
  }
}

.promo-actions{
  margin-top:1rem;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.promo-actions .btn{
  border-radius:999px;
  font-weight:600;
}

.promo-note{
  margin-top:.5rem;
  font-size:.78rem;
  color:#9ca3af;
}

/* Right column visuals */
.promo-modal-right{
  background:
    radial-gradient(circle at top left, rgba(125,93,225,.16), transparent 55%),
    radial-gradient(circle at bottom right, rgba(248,250,252,1), #ffffff 60%);
  padding:1rem;
}

.promo-checklist{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:.4rem;
  font-size:.85rem;
  color:#0f172a;
}
.promo-checklist li i{
  color:#16a34a;
  margin-right:.35rem;
}

.promo-seats{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .65rem;
  border-radius:999px;
  border:1px dashed rgba(248,113,113,.8);
  background: #fef2f2;
  color:#b91c1c;
  font-size:.78rem;
  margin-top:.75rem;
}

/* Close button tweak */
.promo-modal .btn-close{
  box-shadow:none !important;
}

