/* =========================================================
   Recruit Pathshala — Main Stylesheet
   Brand colours taken from the original site
   ========================================================= */
:root {
  --navy: #091e36;
  --navy-2: #0d2a4a;
  --teal: #087e8b;
  --mint: #9aecd9;
  --mint-2: #6ee3cf;
  --ink: #152c40;
  --muted: #71828a;
  --paper: #f6f8f5;
  --line: #d8e1df;
  --white: #ffffff;
  --radius: 22px;
  --shadow: 0 24px 60px -24px rgba(9, 30, 54, .35);
  --ease: cubic-bezier(.2, .8, .2, 1);
  --font: "Plus Jakarta Sans", Arial, Helvetica, sans-serif;
  --serif: "Fraunces", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  color: var(--ink);
  background: var(--white);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { text-decoration: none; }
::selection { background: var(--mint); color: var(--navy); }

.text-teal { color: var(--teal) !important; }
.text-mint { color: var(--mint) !important; }
.text-white-75 { color: rgba(255,255,255,.75); }
.serif-accent { font-family: var(--serif); font-style: italic; font-weight: 400; }

/* ---------- Preloader ---------- */
#preloader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--navy);
  display: grid; place-items: center;
  transition: opacity .6s var(--ease), visibility .6s;
}
#preloader.hide { opacity: 0; visibility: hidden; }
.loader-inner { text-align: center; }
.loader-inner img { width: 220px; animation: breathe 1.6s ease-in-out infinite; }
.loader-bar { width: 220px; height: 3px; background: rgba(255,255,255,.12); margin: 22px auto 0; border-radius: 3px; overflow: hidden; }
.loader-bar span { display: block; height: 100%; width: 40%; background: linear-gradient(90deg, var(--teal), var(--mint)); animation: loadbar 1.1s ease-in-out infinite; }
@keyframes loadbar { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
@keyframes breathe { 50% { transform: scale(1.05); opacity: .85; } }

/* ---------- Scroll progress & cursor glow ---------- */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--teal), var(--mint));
  z-index: 2000;
}
.cursor-glow {
  position: fixed; width: 420px; height: 420px; border-radius: 50%;
  pointer-events: none; z-index: 0;
  background: radial-gradient(circle, rgba(154,236,217,.16), transparent 65%);
  transform: translate(-50%, -50%);
  transition: opacity .3s;
  mix-blend-mode: screen;
}

/* ---------- Buttons ---------- */
.btn-rp {
  --bs-btn-padding-x: 1.5rem; --bs-btn-padding-y: .85rem;
  border-radius: 100px; font-weight: 600; font-size: .95rem;
  display: inline-flex; align-items: center; gap: .55rem; justify-content: center;
  position: relative; overflow: hidden; isolation: isolate;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), color .35s, background .35s;
}
.btn-rp::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(255,255,255,.18);
  transform: translateX(-101%) skewX(-15deg);
  transition: transform .6s var(--ease);
}
.btn-rp:hover::before { transform: translateX(101%) skewX(-15deg); }
.btn-rp i { transition: transform .35s var(--ease); }
.btn-rp:hover i { transform: translate(3px, -3px); }
.btn-rp-primary { background: var(--navy); color: #fff; border: 0; }
.btn-rp-primary:hover { background: var(--teal); color: #fff; box-shadow: 0 14px 30px -12px rgba(8,126,139,.7); }
.btn-rp-mint { background: var(--mint); color: var(--navy); border: 0; }
.btn-rp-mint:hover { background: #fff; color: var(--navy); box-shadow: 0 14px 30px -12px rgba(154,236,217,.8); }
.btn-rp-outline-light { border: 1.5px solid rgba(255,255,255,.4); color: #fff; background: transparent; }
.btn-rp-outline-light:hover { border-color: var(--mint); color: var(--mint); }

/* ---------- Navbar ---------- */
#mainNav {
  padding: 16px 0;
  transition: padding .4s var(--ease), background .4s, box-shadow .4s;
  background: rgba(255,255,255,0);
}
#mainNav.scrolled {
  padding: 8px 0;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 10px 30px -18px rgba(9,30,54,.4);
}
.brand-logo { height: 58px; transition: height .4s var(--ease); background: #fff; border-radius: 12px; padding: 4px 8px; }
#mainNav.scrolled .brand-logo { height: 48px; background: transparent; padding: 0; }
#mainNav .nav-link {
  color: rgba(255,255,255,.85); font-weight: 500; font-size: .93rem;
  position: relative; padding: .5rem .8rem !important;
}
#mainNav.scrolled .nav-link { color: var(--ink); }
#mainNav .nav-link::after {
  content: ""; position: absolute; left: .8rem; right: .8rem; bottom: .2rem; height: 2px;
  background: var(--mint); transform: scaleX(0); transform-origin: right;
  transition: transform .4s var(--ease);
}
#mainNav.scrolled .nav-link::after { background: var(--teal); }
#mainNav .nav-link:hover::after, #mainNav .nav-link.active::after { transform: scaleX(1); transform-origin: left; }
#mainNav .nav-link:hover, #mainNav .nav-link.active { color: var(--mint); }
#mainNav.scrolled .nav-link:hover, #mainNav.scrolled .nav-link.active { color: var(--teal); }
#mainNav:not(.scrolled) .btn-rp-primary { background: var(--mint); color: var(--navy); }

.navbar-toggler { border: 0; padding: 10px; display: flex; flex-direction: column; gap: 5px; box-shadow: none !important; }
.toggler-line { display: block; width: 26px; height: 2px; background: #fff; border-radius: 2px; transition: .3s; }
.toggler-line:nth-child(2) { width: 18px; margin-left: auto; }
#mainNav.scrolled .toggler-line { background: var(--navy); }

.mobile-menu { background: var(--navy); color: #fff; }
.mobile-menu .offcanvas-body { display: flex; flex-direction: column; padding: 2rem 1.5rem; }
.mobile-menu .offcanvas-body > a:not(.btn) {
  color: #fff; font-size: 1.6rem; font-weight: 600; padding: .8rem 0;
  border-bottom: 1px solid rgba(255,255,255,.1); display: flex; gap: 1rem; align-items: baseline;
  opacity: 0; transform: translateX(30px); transition: .5s var(--ease);
}
.mobile-menu .offcanvas-body > a span { font-size: .8rem; color: var(--mint); font-weight: 500; }
.mobile-menu.show .offcanvas-body > a { opacity: 1; transform: none; }
.mobile-menu.show .offcanvas-body > a:nth-child(2) { transition-delay: .07s; }
.mobile-menu.show .offcanvas-body > a:nth-child(3) { transition-delay: .14s; }
.mobile-menu.show .offcanvas-body > a:nth-child(4) { transition-delay: .21s; }
.mobile-menu.show .offcanvas-body > a:nth-child(5) { transition-delay: .28s; }
.mobile-menu.show .offcanvas-body > a:nth-child(6) { transition-delay: .35s; }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 100vh;
  background: var(--navy); color: #fff;
  padding: 150px 0 110px; overflow: hidden;
  display: flex; align-items: center;
}
.hero-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.blob { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .55; animation: blobMove 16s ease-in-out infinite; }
.blob-1 { width: 520px; height: 520px; background: var(--teal); top: -160px; right: -120px; }
.blob-2 { width: 420px; height: 420px; background: #134a6e; bottom: -160px; left: -140px; animation-delay: -5s; }
.blob-3 { width: 260px; height: 260px; background: var(--mint); top: 45%; left: 42%; opacity: .18; animation-delay: -9s; }
@keyframes blobMove {
  0%,100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(40px,-30px) scale(1.08); }
  66% { transform: translate(-30px,30px) scale(.95); }
}
.grid-lines {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%);
}
.eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .78rem; letter-spacing: .22em; font-weight: 700; color: var(--mint);
  padding: .5rem 1rem; border: 1px solid rgba(154,236,217,.3); border-radius: 100px;
  background: rgba(154,236,217,.06);
}
.pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 0 rgba(154,236,217,.7); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 12px rgba(154,236,217,0); } 100% { box-shadow: 0 0 0 0 rgba(154,236,217,0); } }

.hero-title {
  font-size: clamp(2.6rem, 6vw, 4.8rem); font-weight: 800; line-height: 1.04;
  letter-spacing: -.035em; margin: 1.6rem 0 1.4rem;
}
.hero-title .line { display: block; overflow: hidden; padding-bottom: .08em; }
.hero-title .word { display: inline-block; transform: translateY(110%); transition: transform 1s var(--ease); }
.loaded .hero-title .line:nth-child(1) .word { transform: none; transition-delay: .1s; }
.loaded .hero-title .line:nth-child(2) .word { transform: none; transition-delay: .22s; }
.loaded .hero-title .line:nth-child(3) .word { transform: none; transition-delay: .34s; }
.hero-title .serif-accent {
  color: var(--mint); font-weight: 500;
  background: linear-gradient(90deg, var(--mint), var(--mint-2), #c8fff2, var(--mint));
  background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: shine 6s linear infinite;
}
@keyframes shine { to { background-position: 300% 0; } }
.hero-lead { font-size: 1.12rem; color: rgba(255,255,255,.78); max-width: 540px; margin-bottom: 2rem; line-height: 1.7; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 1.4rem; margin-top: 2.4rem; }
.hero-tags span { font-size: .74rem; letter-spacing: .16em; font-weight: 700; color: rgba(255,255,255,.6); }
.hero-tags i { color: var(--mint); margin-right: .3rem; }

.hero-visual { position: relative; padding: 30px 20px 60px; }
.hero-img-wrap {
  position: relative; border-radius: 30px; overflow: hidden;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,.6);
  transform-style: preserve-3d; transition: transform .2s ease-out;
}
.hero-img { width: 100%; height: 480px; object-fit: cover; display: block; transform: scale(1.08); animation: kenburns 18s ease-in-out infinite alternate; }
@keyframes kenburns { to { transform: scale(1.18) translate(-2%, -2%); } }
.hero-img-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,30,54,0) 35%, rgba(9,30,54,.92)); }
.path-card { position: absolute; left: 28px; right: 28px; bottom: 26px; }
.path-card small { font-size: .7rem; letter-spacing: .25em; color: var(--mint); font-weight: 700; }
.path-card h3 { font-size: 1.8rem; font-weight: 700; margin: .4rem 0 0; line-height: 1.15; }
.path-card h3 em { font-family: var(--serif); font-weight: 400; color: var(--mint); }

.float-chip {
  position: absolute; background: rgba(255,255,255,.95); color: var(--navy);
  border-radius: 100px; padding: .65rem 1.1rem .65rem .65rem; font-weight: 600; font-size: .92rem;
  display: flex; align-items: center; gap: .6rem; box-shadow: var(--shadow);
  animation: floaty 5s ease-in-out infinite; z-index: 3;
}
.float-chip b { width: 34px; height: 34px; border-radius: 50%; background: var(--teal); color: #fff; display: grid; place-items: center; font-size: .78rem; }
.chip-1 { top: 0; left: -10px; }
.chip-2 { top: 34%; right: -14px; animation-delay: -1.6s; }
.chip-2 b { background: var(--navy); }
.chip-3 { top: 58%; left: -30px; animation-delay: -3.2s; }
.chip-3 b { background: var(--mint); color: var(--navy); }
@keyframes floaty { 50% { transform: translateY(-14px); } }

.eco-card {
  position: absolute; right: 10px; bottom: 0; z-index: 3;
  background: var(--mint); color: var(--navy); border-radius: 20px;
  padding: 1rem 1.3rem; display: flex; gap: .9rem; align-items: center; max-width: 290px;
  box-shadow: var(--shadow); animation: floaty 6s ease-in-out infinite; animation-delay: -2s;
}
.eco-card p { margin: 0; font-size: .9rem; line-height: 1.35; }
.eco-icon { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 14px; background: var(--navy); color: var(--mint); display: grid; place-items: center; font-size: 1.3rem; }
.orbit { position: absolute; width: 140px; top: -30px; right: -30px; z-index: 0; animation: spin 22s linear infinite; }
.orbit circle { fill: none; stroke: var(--mint); stroke-width: 1.2; stroke-dasharray: 4 9; opacity: .6; }
@keyframes spin { to { transform: rotate(360deg); } }

.scroll-cue { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); width: 26px; height: 42px; border: 2px solid rgba(255,255,255,.35); border-radius: 20px; }
.scroll-cue span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 4px; background: var(--mint); animation: scrollcue 1.8s infinite; }
@keyframes scrollcue { 0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

/* ---------- Marquee ---------- */
.marquee-band { background: var(--navy); padding: 0 0 4px; position: relative; overflow: hidden; }
.marquee { overflow: hidden; white-space: nowrap; padding: 22px 0; background: var(--teal); transform: rotate(-1.5deg) scale(1.03); margin: -10px 0 0; position: relative; z-index: 2; box-shadow: 0 16px 40px -16px rgba(0,0,0,.4); }
.marquee-reverse { background: var(--mint); transform: rotate(1.2deg) scale(1.03); margin-top: -14px; z-index: 1; padding: 14px 0; }
.marquee-track { display: inline-flex; align-items: center; gap: 2.2rem; animation: marquee 32s linear infinite; padding-right: 2.2rem; }
.marquee-reverse .marquee-track { animation-direction: reverse; animation-duration: 38s; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee span { font-size: clamp(1.1rem, 2.2vw, 1.6rem); font-weight: 800; letter-spacing: .04em; color: #fff; }
.marquee i { font-style: normal; color: var(--mint); font-size: 1.4rem; display: inline-block; animation: spin 6s linear infinite; }
.marquee-reverse span { color: var(--navy); font-weight: 700; font-size: 1rem; text-transform: uppercase; letter-spacing: .18em; }
.marquee-reverse i { color: var(--teal); font-size: .6rem; animation: none; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Sections ---------- */
.section { padding: 120px 0; position: relative; }
.section-paper { background: var(--paper); }
.section-dark { background: var(--navy); color: #fff; overflow: hidden; }
.section-label {
  font-size: .78rem; letter-spacing: .24em; font-weight: 700; color: var(--teal);
  display: inline-flex; align-items: center; gap: .8rem; margin-bottom: 1.1rem;
}
.section-label::before { content: ""; width: 34px; height: 2px; background: currentColor; }
.section-label.light { color: var(--mint); }
.section-title { font-size: clamp(2rem, 4.2vw, 3.3rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin-bottom: 1.4rem; }
.lead-text { font-size: 1.12rem; color: var(--muted); line-height: 1.75; }
.section p { line-height: 1.75; }

/* ---------- About ---------- */
.about-media { position: relative; }
.img-reveal { position: relative; overflow: hidden; border-radius: var(--radius); }
.img-reveal img { width: 100%; display: block; object-fit: cover; transform: scale(1.25); transition: transform 1.6s var(--ease); }
.img-reveal::after { content: ""; position: absolute; inset: 0; background: var(--teal); transform-origin: right; transition: transform 1.1s var(--ease) .1s; }
.reveal.in .img-reveal img, .img-reveal.in img { transform: scale(1); }
.reveal.in .img-reveal::after, .img-reveal.in::after { transform: scaleX(0); }
.about-media .img-reveal img { height: 520px; }
.about-badge {
  position: absolute; left: -40px; bottom: -40px; width: 140px; height: 140px;
  background: var(--navy); border-radius: 50%; display: grid; place-items: center; box-shadow: var(--shadow);
}
.about-badge svg { position: absolute; inset: 8px; width: calc(100% - 16px); animation: spin 14s linear infinite; }
.about-badge text { fill: var(--mint); font-size: 10.5px; letter-spacing: 2.2px; font-weight: 700; }
.about-badge i { color: #fff; font-size: 1.8rem; }
.quote-box { position: relative; background: var(--paper); border-left: 4px solid var(--teal); border-radius: 0 18px 18px 0; padding: 1.6rem 1.8rem 1.6rem 4rem; margin: 1.8rem 0; }
.quote-box i { position: absolute; left: 1.2rem; top: .9rem; font-size: 2.2rem; color: var(--teal); }
.quote-box p { margin: 0; color: var(--ink); font-weight: 500; }
.mini-pillar {
  border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem; height: 100%;
  display: flex; align-items: center; gap: .7rem; transition: .4s var(--ease); background: #fff;
}
.mini-pillar i { font-size: 1.4rem; color: var(--teal); }
.mini-pillar b { font-size: .75rem; color: var(--muted); }
.mini-pillar span { font-weight: 700; color: var(--navy); }
.mini-pillar:hover { background: var(--navy); border-color: var(--navy); transform: translateY(-6px); box-shadow: var(--shadow); }
.mini-pillar:hover span { color: #fff; }
.mini-pillar:hover i { color: var(--mint); }

/* ---------- Expertise ---------- */
.dark-deco { position: absolute; right: -10%; top: 0; width: 60%; height: 100%; background-size: cover; background-position: center; opacity: .14; mask-image: linear-gradient(90deg, transparent, #000 60%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%); }
.expertise-tabs { gap: .6rem; list-style: none; padding: 6px; border-radius: 100px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); display: inline-flex; flex-wrap: wrap; }
.expertise-tabs button {
  background: transparent; border: 0; color: rgba(255,255,255,.75); font-weight: 600;
  padding: .75rem 1.3rem; border-radius: 100px; transition: .35s var(--ease); font-size: .92rem;
}
.expertise-tabs button i { margin-right: .35rem; }
.expertise-tabs button:hover { color: #fff; }
.expertise-tabs button.active { background: var(--mint); color: var(--navy); box-shadow: 0 10px 24px -10px rgba(154,236,217,.7); }
.tab-pane.fade .x-card { opacity: 0; transform: translateY(30px); transition: .6s var(--ease); }
.tab-pane.show .x-card { opacity: 1; transform: none; }
.tab-pane.show .col-lg-4:nth-child(2) .x-card { transition-delay: .1s; }
.tab-pane.show .col-lg-4:nth-child(3) .x-card { transition-delay: .2s; }
.x-card {
  position: relative; height: 100%; padding: 2rem; border-radius: var(--radius);
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(6px);
  display: flex; flex-direction: column; overflow: hidden;
}
.x-card::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: linear-gradient(140deg, var(--mint), transparent 40%, transparent 60%, var(--teal));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity .4s;
}
.x-card:hover::before { opacity: 1; }
.x-card:hover { background: linear-gradient(160deg, rgba(8,126,139,.35), rgba(255,255,255,.03)); }
.x-num { font-size: .72rem; letter-spacing: .2em; color: var(--mint); font-weight: 700; }
.x-icon { width: 58px; height: 58px; border-radius: 16px; background: rgba(154,236,217,.12); color: var(--mint); display: grid; place-items: center; font-size: 1.6rem; margin: 1.3rem 0; transition: .5s var(--ease); }
.x-card:hover .x-icon { background: var(--mint); color: var(--navy); transform: rotate(-8deg) scale(1.08); }
.x-card h3 { font-size: 1.35rem; font-weight: 700; color: #fff; }
.x-card p { color: rgba(255,255,255,.72); flex: 1; }
.x-link { color: var(--mint); font-weight: 600; font-size: .92rem; display: inline-flex; gap: .4rem; align-items: center; }
.x-link i { transition: transform .3s; }
.x-link:hover { color: #fff; }
.x-link:hover i { transform: translate(3px,-3px); }
.cta-strip {
  margin-top: 3rem; padding: 1.4rem 1.4rem 1.4rem 2rem; border-radius: 100px;
  background: rgba(255,255,255,.06); border: 1px dashed rgba(154,236,217,.4);
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.cta-strip p { margin: 0; color: rgba(255,255,255,.85); font-weight: 500; }
.cta-strip p i { color: var(--mint); margin-right: .4rem; }

/* ---------- Approach / timeline ---------- */
.approach-sticky { top: 110px; z-index: 1; }
.approach-img img { height: 240px; }
.timeline { position: relative; padding-left: 0; }
.timeline-line { position: absolute; left: 33px; top: 20px; bottom: 20px; width: 2px; background: var(--line); }
.timeline-fill { position: absolute; left: 0; top: 0; width: 100%; height: 0; background: linear-gradient(var(--teal), var(--mint)); }
.t-step { position: relative; display: flex; gap: 1.6rem; margin-bottom: 1.8rem; }
.t-dot {
  flex: 0 0 68px; height: 68px; border-radius: 50%; background: #fff; border: 2px solid var(--line);
  display: grid; place-items: center; font-weight: 800; color: var(--teal); position: relative; z-index: 1;
  transition: .5s var(--ease);
}
.t-step.in .t-dot { background: var(--navy); border-color: var(--navy); color: var(--mint); box-shadow: 0 0 0 8px rgba(8,126,139,.12); }
.t-body {
  flex: 1; background: #fff; border-radius: var(--radius); padding: 1.8rem; border: 1px solid var(--line);
  position: relative; transition: .45s var(--ease); overflow: hidden;
}
.t-body::after { content: ""; position: absolute; left: 0; bottom: 0; height: 4px; width: 0; background: linear-gradient(90deg, var(--teal), var(--mint)); transition: width .6s var(--ease); }
.t-body:hover { transform: translateX(8px); box-shadow: var(--shadow); border-color: transparent; }
.t-body:hover::after { width: 100%; }
.t-ico { position: absolute; right: 1.4rem; top: 1.2rem; font-size: 2.6rem; color: var(--paper); transition: .5s; }
.t-body:hover .t-ico { color: rgba(8,126,139,.15); transform: scale(1.15) rotate(-6deg); }
.t-body h3 { font-size: 1.4rem; font-weight: 800; color: var(--navy); }
.t-body p { color: var(--muted); margin: 0; }

/* ---------- Director ---------- */
.director-section { background: linear-gradient(180deg, var(--paper) 0 30%, #fff 30%); }
.director-card { background: var(--navy); border-radius: 34px; overflow: hidden; box-shadow: 0 40px 90px -40px rgba(9,30,54,.7); position: relative; }
.director-card::before { content: ""; position: absolute; width: 520px; height: 520px; right: -200px; top: -200px; border-radius: 50%; background: radial-gradient(circle, rgba(8,126,139,.55), transparent 70%); }
.director-photo { position: relative; height: 100%; min-height: 520px; overflow: hidden; }
.director-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top center; position: absolute; inset: 0; transition: transform 1.2s var(--ease); }
.director-card:hover .director-photo img { transform: scale(1.05); }
.director-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, var(--navy)), linear-gradient(0deg, rgba(9,30,54,.7), transparent 40%); }
.director-ring { position: absolute; width: 180px; height: 180px; border: 2px dashed var(--mint); border-radius: 50%; left: -60px; bottom: -60px; z-index: 2; animation: spin 18s linear infinite; opacity: .7; }
.director-tag { position: absolute; left: 24px; bottom: 24px; z-index: 3; background: var(--mint); color: var(--navy); font-weight: 700; font-size: .85rem; padding: .55rem 1rem; border-radius: 100px; }
.director-content { padding: 4rem 3.5rem; color: #fff; position: relative; z-index: 1; }
.director-name { font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 800; letter-spacing: -.03em; margin-bottom: .2rem; }
.director-role { color: var(--mint); font-weight: 600; letter-spacing: .03em; }
.director-quote { display: flex; gap: .8rem; align-items: flex-start; margin: 1.6rem 0; padding: 1.2rem 1.4rem; border-radius: 18px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); }
.director-quote i { font-size: 2rem; color: var(--mint); line-height: 1; }
.director-quote p { margin: 0; font-family: var(--serif); font-style: italic; font-size: 1.25rem; }
.director-bio { color: rgba(255,255,255,.75); }
.director-skills { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }
.director-skills span { padding: .45rem .95rem; border-radius: 100px; border: 1px solid rgba(154,236,217,.35); color: var(--mint); font-size: .82rem; font-weight: 600; transition: .3s; }
.director-skills span:hover { background: var(--mint); color: var(--navy); }
.director-social { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.director-social > a:not(.btn) { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: #fff; border: 1px solid rgba(255,255,255,.25); transition: .35s var(--ease); }
.director-social > a:not(.btn):hover { background: var(--mint); color: var(--navy); border-color: var(--mint); transform: translateY(-4px); }

/* ---------- Learning ---------- */
.learning-section { overflow: hidden; padding-top: 60px; }
.big-marquee { overflow: hidden; white-space: nowrap; margin-bottom: 70px; }
.big-marquee .marquee-track { animation-duration: 40s; gap: 3rem; }
.big-marquee span { font-size: clamp(3rem, 8vw, 7rem); font-weight: 800; letter-spacing: -.04em; color: var(--navy); }
.big-marquee span.outline { color: transparent; -webkit-text-stroke: 2px var(--teal); }
.learning-visual { position: relative; }
.learning-visual img { height: 500px; }
.p-mark {
  position: absolute; right: -24px; top: -24px; width: 120px; height: 120px; border-radius: 30px;
  background: var(--mint); color: var(--navy); font-size: 3.4rem; font-weight: 800;
  display: grid; place-items: center; box-shadow: var(--shadow); animation: floaty 5s ease-in-out infinite;
}
.p-mark i { position: absolute; top: 14px; right: 16px; font-size: 1.3rem; color: var(--teal); }
.learn-chip {
  display: flex; align-items: center; gap: .7rem; padding: 1rem 1.1rem; border-radius: 16px;
  background: var(--paper); border: 1px solid var(--line); font-weight: 600; color: var(--navy); height: 100%;
  transition: .35s var(--ease); font-size: .95rem;
}
.learn-chip i { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 12px; background: #fff; color: var(--teal); display: grid; place-items: center; font-size: 1.1rem; transition: .35s; }
.learn-chip:hover { background: var(--teal); color: #fff; border-color: var(--teal); transform: translateY(-4px); }
.learn-chip:hover i { background: var(--mint); color: var(--navy); }

/* ---------- Conversation / form ---------- */
.conversation .blob-1 { opacity: .35; }
.privacy-note { display: flex; gap: .9rem; align-items: center; padding: 1rem 1.2rem; border-radius: 16px; background: rgba(154,236,217,.08); border: 1px solid rgba(154,236,217,.25); color: rgba(255,255,255,.8); font-size: .92rem; margin-top: 1.5rem; }
.privacy-note i { font-size: 1.6rem; color: var(--mint); }
.brief-form { background: #fff; border-radius: 30px; padding: 2.4rem; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); position: relative; }
.brief-form .form-control, .brief-form .form-select { border-radius: 14px; border: 1.5px solid var(--line); color: var(--ink); background-color: var(--paper); }
.brief-form .form-control:focus, .brief-form .form-select:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(8,126,139,.12); background: #fff; }
.brief-form .form-floating > label { color: var(--muted); }
.brief-form .btn-rp-mint { background: var(--navy); color: #fff; }
.brief-form .btn-rp-mint:hover { background: var(--teal); color: #fff; }
.form-success { display: none; margin-top: 1rem; padding: .9rem 1.1rem; border-radius: 14px; background: rgba(154,236,217,.35); color: var(--navy); font-weight: 600; }
.form-success.show { display: block; animation: popin .5s var(--ease); }
@keyframes popin { from { opacity: 0; transform: scale(.9); } }

/* ---------- Footer ---------- */
.footer { background: #06162a; color: rgba(255,255,255,.7); padding: 70px 0 30px; }
.footer-logo { height: 64px; }
.footer-top { display: flex; justify-content: space-between; align-items: center; gap: 2rem; flex-wrap: wrap; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-links { display: flex; gap: 1.8rem; flex-wrap: wrap; }
.footer-links a { color: rgba(255,255,255,.8); font-weight: 500; position: relative; }
.footer-links a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: var(--mint); transform: scaleX(0); transition: .35s var(--ease); transform-origin: left; }
.footer-links a:hover { color: var(--mint); }
.footer-links a:hover::after { transform: scaleX(1); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 1.6rem; font-size: .9rem; }
.back-top-link { color: var(--mint); }
.back-to-top {
  position: fixed; right: 22px; bottom: 22px; width: 50px; height: 50px; border-radius: 50%;
  background: var(--teal); color: #fff; display: grid; place-items: center; font-size: 1.2rem; z-index: 999;
  opacity: 0; visibility: hidden; transform: translateY(20px); transition: .4s var(--ease); box-shadow: var(--shadow);
}
.back-to-top.show { opacity: 1; visibility: visible; transform: none; }
.back-to-top:hover { background: var(--mint); color: var(--navy); }

/* ---------- Scroll reveal animations ---------- */
.reveal { opacity: 0; transition: opacity .9s var(--ease), transform .9s var(--ease); will-change: transform, opacity; }
.reveal[data-anim="fade-up"] { transform: translateY(40px); }
.reveal[data-anim="slide-left"] { transform: translateX(60px); }
.reveal[data-anim="slide-right"] { transform: translateX(-60px); }
.reveal[data-anim="zoom-in"] { transform: scale(.88); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
  .section { padding: 90px 0; }
  .hero { padding: 130px 0 90px; text-align: left; }
  .hero-img { height: 380px; }
  .chip-1 { left: 0; } .chip-3 { left: 0; } .chip-2 { right: 0; }
  .about-media .img-reveal img { height: 400px; }
  .about-badge { left: auto; right: 20px; bottom: -40px; width: 120px; height: 120px; }
  .director-photo { min-height: 440px; }
  .director-photo::after { background: linear-gradient(0deg, var(--navy), transparent 45%); }
  .director-content { padding: 2.5rem 1.8rem 3rem; }
  .learning-visual img { height: 380px; }
  .p-mark { right: 10px; top: -30px; width: 96px; height: 96px; font-size: 2.6rem; }
  .cta-strip { border-radius: 24px; }
  .approach-sticky { position: static !important; }
}
@media (max-width: 575.98px) {
  .g-5 { --bs-gutter-x: 1.5rem; }
  .section, .hero { overflow-x: clip; }
  .hero-title { font-size: 2.45rem; }
  .hero-img { height: 320px; }
  .float-chip { font-size: .8rem; padding: .45rem .8rem .45rem .45rem; }
  .float-chip b { width: 28px; height: 28px; }
  .chip-2 { top: 28%; }
  .chip-3 { top: 36%; }
  .eco-card { position: relative; right: auto; margin: 18px auto 0; max-width: 100%; }
  .hero-visual { padding: 20px 0 10px; }
  .orbit { display: none; }
  .brief-form { padding: 1.5rem; border-radius: 22px; }
  .t-dot { flex-basis: 52px; height: 52px; font-size: .9rem; }
  .timeline-line { left: 25px; }
  .t-step { gap: 1rem; }
  .t-body { padding: 1.3rem; }
  .expertise-tabs { border-radius: 22px; width: 100%; }
  .expertise-tabs li { flex: 1 1 100%; }
  .expertise-tabs button { width: 100%; text-align: left; }
  .footer-top, .footer-bottom { flex-direction: column; align-items: flex-start; }
  .brand-logo { height: 46px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal, .hero-title .word { opacity: 1 !important; transform: none !important; }
}
